核心思路:用从模式复位(Reset Mode)让计数器在每次捕获事件时自动清零,使CNT始终只记录相邻两个捕获沿之间的计数值,从根本上避免自由运行计数器的溢出误差。配置步骤:1) 捕获通道(如TIMx_CH1)设为输入捕获,边沿选择与待测信号一致,开启CC1IE;2) 从模式控制寄存器SMCR中SMS=100(复位模式),TS选择触发源(如TI1FP1);3) 这样每次捕获沿到来时硬件自动将CNT清零,同时CCR1锁存上一周期的计数值。中断中读取CCR1即为一个信号周期内的计数N,频率f=fCK/(PSC+1)/N。为提升等精度,可用两个通道:CH1捕获上升沿并触发复位,CH2捕获下降沿测高电平时间,或改用PWM输入模式同时获得周期和占空比。注意:复位模式会丢失溢出信息,若信号频率极低(周期超过计数器满量程),应降低预分频或改用溢出中断累加计数;捕获中断中先读CCR再清标志,防止竞争。