STM32定时器输入捕获测PWM占空比时,如何用从模式+复位触发实现无需中断的高精度测量

· 行业用户 · 10 浏览

回答(4)

若PWM频率较高,可考虑使用定时器的从模式+门控模式,配合DMA传输捕获值,进一步降低CPU负载。
STM32玩家 · 2026-11-08
注意从模式复位会清零计数器,但CCR1在复位瞬间捕获的是上一周期的计数值,需确保捕获边沿与复位同步,否则可能差一个时钟。
硬件老李 · 2026-11-08
建议使用PWM输入模式(PWM Input Mode),它自动将TI1FP1映射到IC1并复位计数器,TI1FP2映射到IC2,直接得到周期和占空比,无需软件干预。
嵌入式小张 · 2026-11-08
使用从模式+复位触发实现无中断高精度测量PWM占空比,核心是让定时器在PWM上升沿自动复位计数器,从而硬件捕获周期和脉宽。配置步骤:1) 将PWM信号接入定时器通道1(TI1),配置该通道为输入捕获,触发源选择TI1FP1,从模式设为Reset Mode;2) 通道1捕获上升沿,通道2(或间接模式)捕获下降沿,分别映射到CCR1和CCR2;3) 使能从模式复位后,每次上升沿计数器归零,CCR1记录周期值(实际为0,需用溢出计数或改用PWM输入模式),更推荐使用PWM输入模式:通道1上升沿触发复位并捕获到CCR1(周期),通道2下降沿捕获到CCR2(高电平时间),占空比=CCR2/CCR1。注意:需使能CCR1和CCR2的预装载,并确保捕获极性正确。此方法完全由硬件完成,无中断开销,精度取决于定时器时钟和捕获分辨率。
mcuku 阿沐 · 2026-11-08