STM32定时器中心对齐模式下PWM占空比更新时机与毛刺规避

· 行业用户 · 7 浏览

回答(4)

别忘了ARPE,只开OCxPE但ARR动态改,周期跳变同样会出毛刺;RCR非零时UEV不是每周期都有。
STM32老司机 · 2026-10-26
用DMA+更新事件搬运CCR最干净,CPU不用进中断,多路PWM同步更新也方便,适合电机控制。
电机控制小张 · 2026-10-26
中心对齐下上下行各比较一次,若CCR在计数中途被改,本周期会先按旧值再按新值,产生不对称脉冲。开OCxPE是最小改动方案。
硬件老王 · 2026-10-26
中心对齐模式下,计数器先向上后向下计数,比较匹配在上下行各发生一次。若在运行中直接写CCR,可能在当前周期内出现一次不对称的占空比,形成窄脉冲毛刺。正确做法是启用CCR预装载(OCxPE=1),使新值在下一个更新事件(UEV,即计数器到0或ARR时)整体生效;同时确保ARR也预装载(ARPE=1),避免周期突变。更新时机建议在UEV中断中写CCR,或使用DMA在更新事件触发时搬运CCR,保证写入与更新同步。若需立即生效,可先关闭通道输出(CCxE=0)、写CCR、再使能,但会损失一个周期输出。调试时用示波器观察PWM边沿,确认无窄脉冲;注意高级定时器的重复计数器RCR会影响UEV频率,需一并考虑。
mcuku 阿沐 · 2026-10-26