
最近在使用PWM+DMA的方式控制灯珠,一开始直接用MCU的输出引脚控制没有发现这个问题,因为起始信号都是低电平。后来使用了MOS管接到MCU的控制端,让MOS管来输出控制灯珠。这样一来所有的电平就必须反过来,灯珠的起始信号就由低变成了高。但在调试的过程中发现一个问题: 我的第一组数据明明发送了八个周期的PWM信号,但是示波器之抓到了7个,询问大佬才知道PWM的DMA第一个非全高或者全低的PWM周期会被溢出中断吞掉,属于是芯片的设计问题了。但是一般这种问题GD32的芯片才有,我得STM32F407不知道为啥也有。 |
STM32G030K6Tx使用ADC+DMA进行6通道ADC采集,DMA传输错位问题。
STM32G474VET6如何配置HRTIM的中心对齐模式
stm32H755BIT6 TIM1中断问题
STM32F405RGT6 ADC2+TIM4触发+DMA(DMA2_Stream2_CH1)+DMA中断会死机(取消中断后完全正常)
多DMA数据流问题
stm32h725
非对称PWM的问题
STM32407 使用串口闲时中断+DMA方式接收最大接收字节是多少
STM32L433VCT6 进入STOP模式2之后,功耗依然和正常运行模式没有差别,请教大神
STM32MP135D的TIM2使用ETR作为外部时钟时,无法使用PE15作为输入
PWM+DMA求助
那个帖子大佬指出选取更新点的重要性,因为DMA响应是要花一点时间的,所以更新点选取要考虑定时器速度是否匹配。 这也是为什么定时器会有预装载和更新事件的功能,就是为了准确脉宽调整用的。
通过DMA 实现PWM 的方式有很多经验,网站上也有实战经验分享可以参考。
注意下载下来才能看到全部内容,预览内存空间有限。
LAT0053 STM32L053可控PWM脉冲方法之DMA | STMCU中文官网
谢谢大佬指点!