STM32
直播中

人走了

10年用户 1000经验值
擅长:制造/封装 光电显示
私信 关注
[问答]

TIM_PWM+DMA输出三个不同占空比的单脉冲,为什么第三个数据总是第一个输出?

使用tiM_PWM + DMA,DMA传输长度为3,即顺序输出3个不同占空比的单脉冲(10%,20%,50%),三个脉冲输出完成后进入DMA传输完成中断,关闭定时器。通过抓图形发现,实际输出是50%,10%,20%,请问这是为什么?

回帖(2)

王宁

2024-4-3 14:23:15
是不是定时器关闭的太早了?波形还没产生,就关闭定时器?
举报

大红枣

2024-4-3 16:01:08
这可能是因为DMA传输的时环回模式(circular mode)被启用所引起的。在DMA传输完成后,DMA会自动返回到起始地址,从而导致传输的数据循环重复,最终导致输出的占空比顺序混乱。

要解决这个问题,可以禁用DMA的环回模式。在配置DMA传输时,将DMA的环回模式禁用,确保每次传输完成后DMA不会自动回到起始地址,而是等待下一次传输的触发。

另外,还要确保在修改DMA传输数据时,定时器的计数器已经清零,否则修改的数据可能不会立即生效,会继续使用之前的数据进行输出。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分