在STM32定时器输入捕获测量PWM时,溢出误差主要源于两次捕获之间计数器可能发生溢出,导致捕获值不连续。使用从模式复位计数器可消除此误差:配置定时器为从模式复位模式(SMS=100),触发源选择为TI1FP1或TI2FP2(对应输入捕获通道),并设置捕获通道为上升沿触发。这样,每次上升沿到来时,硬件自动将计数器复位为0,同时触发捕获事件。因此,捕获值直接对应一个PWM周期内的计数值,无需软件处理溢出。具体步骤:1)配置输入捕获通道为上升沿捕获,并使能捕获中断(可选);2)设置从模式为复位模式,触发源为对应捕获通道;3)使能定时器。注意:复位操作与捕获同时发生,读取捕获寄存器即可获得周期值。若需测量占空比,可再配置另一通道为下降沿捕获,但需注意从模式复位仅针对一个触发源。此方法适用于STM32全系列定时器,可有效避免溢出误差。
mcuku 阿沐 · 2026-10-17