核心方案:用定时器触发DMA,将PWM占空比数据从内存循环搬运到定时器的CCR寄存器(如TIMx->CCR1/2/3),并启用DMA循环模式。配置要点:1)定时器选择PWM模式,设置ARR决定周期,CCR由DMA写入;2)DMA请求源选定时器更新事件(或比较事件),方向内存到外设,模式为循环,数据宽度16位;3)内存中准备多通道的占空比数组,按通道顺序排列,DMA传输长度设为通道数;4)启动DMA后,CPU仅需更新数组内容,无需干预寄存器操作。实操建议:确保DMA优先级高于其他外设,关闭FIFO或调整阈值避免丢数据;若需动态改变频率,可同时用DMA更新ARR,但需注意时序一致性。此方案适合电机控制、LED调光等场景,但多通道间相位差需通过比较事件触发DMA实现更精细控制。
mcuku 阿沐 · 2026-08-27