|
最近在使用PWM+DMA的方式控制灯珠,一开始直接用MCU的输出引脚控制没有发现这个问题,因为起始信号都是低电平。后来使用了MOS管接到MCU的控制端,让MOS管来输出控制灯珠。这样一来所有的电平就必须反过来,灯珠的起始信号就由低变成了高。但在调试的过程中发现一个问题:
我的第一组数据明明发送了八个周期的PWM信号,但是示波器之抓到了7个,询问大佬才知道PWM的DMA第一个非全高或者全低的PWM周期会被溢出中断吞掉,属于是芯片的设计问题了。但是一般这种问题GD32的芯片才有,我得STM32F407不知道为啥也有。 |
请教STM32F103的DMA空闲接收问题
STM32H725VGT3内存不足问题
STM32G473,PA3导致定时器定时误差过大
STM32H7A3 怎样配置MDMA的硬件触发MDMA_REQUEST_DMA1_Stream0_TC将数据再次转运
定时器输出PWM控制电机的问题
串口DMA收发出现ORE错误
关于外部事件(EXTI0)触发SPI读取数据
STM32F429突然死机
stm32u575 gpdma burst length=1 配置其他数值不工作
TIM 单脉冲输出后的电平如何设置?
微信公众号
手机版
PWM+DMA求助
那个帖子大佬指出选取更新点的重要性,因为DMA响应是要花一点时间的,所以更新点选取要考虑定时器速度是否匹配。 这也是为什么定时器会有预装载和更新事件的功能,就是为了准确脉宽调整用的。
通过DMA 实现PWM 的方式有很多经验,网站上也有实战经验分享可以参考。
注意下载下来才能看到全部内容,预览内存空间有限。
LAT0053 STM32L053可控PWM脉冲方法之DMA | STMCU中文官网
谢谢大佬指点!