OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6050|回复: 7

stm32 dma控制pwm失败求助

[复制链接]

38

主题

68

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
282
金钱
282
注册时间
2015-12-16
在线时间
49 小时
发表于 2023-1-29 16:40:37 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 zdyzxs 于 2023-1-29 18:59 编辑

最近在用stm32f030控制RGB灯,dma+pwm驱动,当使用HAL_TIM_PWM_Start_DMA(&htim2, TIM_CHANNEL_2, (uint32_t *)send_Buf, NUM)输出指定占空比时,可以输出pwm波,但占空比不是send_Buf[]数组中的值,而一直是初始化中sConfigOC.Pulse设置的值,一直找不到原因,请问有哪位大神知道原因吗?

RGB_test.rar

12.55 MB, 下载次数: 40

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

8

主题

533

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2831
金钱
2831
注册时间
2016-5-13
在线时间
179 小时
发表于 2023-1-29 17:22:15 | 显示全部楼层
你用标准库来调试吧。HAL库你用的还是不熟悉吧。你在HAL里找找看有没有类似于:TIM_SetCompare1(TIM1,Tab_tim1_pwm[ch]); 的设置。
回复

使用道具 举报

8

主题

533

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2831
金钱
2831
注册时间
2016-5-13
在线时间
179 小时
发表于 2023-1-29 17:23:46 | 显示全部楼层
你把你的code贴上来。让大家帮你分析一下。
回复

使用道具 举报

0

主题

89

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1286
金钱
1286
注册时间
2020-4-7
在线时间
309 小时
发表于 2023-1-29 17:45:28 | 显示全部楼层
__HAL_TIM_SetAutoreload(&htim2,AutoLoadValue);                                                                                    //改变自动装载值,可以改变频率
__HAL_TIM_SetCompare(&htim2,TIM_CHANNEL_3,__HAL_TIM_GET_AUTORELOAD(&htim2)>>1);            //设置比较值,可以改变占空比
回复

使用道具 举报

38

主题

68

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
282
金钱
282
注册时间
2015-12-16
在线时间
49 小时
 楼主| 发表于 2023-1-29 19:01:42 | 显示全部楼层
电脑小白 发表于 2023-1-29 17:23
你把你的code贴上来。让大家帮你分析一下。

我的code已经上传,麻烦大家帮忙看看,实在是找不到原因了
回复

使用道具 举报

38

主题

68

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
282
金钱
282
注册时间
2015-12-16
在线时间
49 小时
 楼主| 发表于 2023-1-29 19:04:03 | 显示全部楼层
lv浅陌 发表于 2023-1-29 17:45
__HAL_TIM_SetAutoreload(&htim2,AutoLoadValue);                                                       ...

这2个函数没有用到dma吧?我是基于dma的,要方便去控制RGB灯条
回复

使用道具 举报

8

主题

533

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2831
金钱
2831
注册时间
2016-5-13
在线时间
179 小时
发表于 2023-1-30 14:07:16 | 显示全部楼层
你修改一下__HAL_TIM_SetCompare试试看效果。
虽然不明白你们在说什么,但感觉很厉害的样子。
回复

使用道具 举报

4

主题

96

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3515
金钱
3515
注册时间
2018-5-25
在线时间
811 小时
发表于 2023-1-30 15:02:06 | 显示全部楼层
MX_TIM17_Init();
  MX_DMA_Init();

我这没有板子,你把这两个函数的顺序反过来试一下,可能你的DMA没有使能时钟导致初始化失败了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 18:55

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表