|
最近在使用PWM+DMA的方式控制灯珠,一开始直接用MCU的输出引脚控制没有发现这个问题,因为起始信号都是低电平。后来使用了MOS管接到MCU的控制端,让MOS管来输出控制灯珠。这样一来所有的电平就必须反过来,灯珠的起始信号就由低变成了高。但在调试的过程中发现一个问题:
我的第一组数据明明发送了八个周期的PWM信号,但是示波器之抓到了7个,询问大佬才知道PWM的DMA第一个非全高或者全低的PWM周期会被溢出中断吞掉,属于是芯片的设计问题了。但是一般这种问题GD32的芯片才有,我得STM32F407不知道为啥也有。 |
在 STM32Cube 中配置正交编码器模式
stm32H723 tim23和tim24 中间对齐模式无效
stm32H723 tim23和tim24是不是不支持中间对齐模式?
用电位器调节 PWM 频率
求问诡异的问题,eth网口ping不通
stm32H723 tim1和tim23 tim24同步的问题
stm32n657的TIM8定时器
向 “HAL_RTC_GetTime” 函数传递的第一个参数出现指针类型不兼容警告
无法从编码器模式下的 TIM1 获取计数值
定时器输出PWM控制电机的问题
微信公众号
手机版
PWM+DMA求助
那个帖子大佬指出选取更新点的重要性,因为DMA响应是要花一点时间的,所以更新点选取要考虑定时器速度是否匹配。 这也是为什么定时器会有预装载和更新事件的功能,就是为了准确脉宽调整用的。
通过DMA 实现PWM 的方式有很多经验,网站上也有实战经验分享可以参考。
注意下载下来才能看到全部内容,预览内存空间有限。
LAT0053 STM32L053可控PWM脉冲方法之DMA | STMCU中文官网
谢谢大佬指点!