核心思路是让DMA传输与PWM更新事件严格同步,避免中断竞争。推荐使用定时器的DMA突发传输模式(Burst),将多路比较值(如CCR1-CCR4)打包成数组,通过DMA的循环模式在更新事件触发时一次性更新所有通道,减少中断次数。同时,将DMA中断优先级设为最高(如NVIC优先级0),PWM更新中断设为次高,并确保DMA传输完成标志在更新事件前被清除。实操上,配置TIMx的DCR(DMA控制寄存器)设置DMA基地址和长度,使用TIM_DMA_CCx请求,并开启DMA的循环模式。若仍丢步,可改用双缓冲(DMA半传输/全传输中断)预加载下一组数据,或使用硬件定时器链接(如TIM1触发TIM2)分时输出。最后,用逻辑分析仪验证时序,调整DMA突发长度(如4字节)匹配总线带宽。
mcuku 阿沐 · 2026-08-27