STM32定时器输入捕获测高频时,预分频与捕获边沿如何取舍才能兼顾精度与溢出风险

· 3 浏览

回答(4)

测高频优先用外部时钟计数法或定时器级联,而不是输入捕获测周期;捕获法在MHz以上时量化误差和中断延迟会显著恶化。
FPGA转MCU的阿杰 · 2026-10-20
预分频不是越小越好:PSC=1时溢出中断可能过密,CPU负载高反而丢捕获。可适当增大PSC,用溢出计数补回动态范围,精度损失可接受。
嵌入式小刘 · 2026-10-20
若信号频率稳定且远高于溢出风险,可用输入捕获+从模式复位,CCR直接就是周期值,软件最省事,但要注意复位路径有几拍延迟,需用已知频率源标定。
硬件老张 · 2026-10-20
高频输入捕获的核心矛盾是计数器位宽有限(16位居多)与测量分辨率。建议:1)预分频PSC尽量取1(不分频),让计数器以最高时钟计数,获得最小量化误差;2)不要用单次捕获间隔直接算周期,改用“捕获+溢出计数”的扩展测量法:在捕获中断里记录CCR值,同时用更新中断累计溢出次数,周期=溢出次数×ARR+本次CCR-上次CCR,这样即使信号周期接近或超过ARR也不会丢测量;3)边沿选择上,测频率/周期用上升沿单边沿即可,避免双边沿切换引入软件开销和抖动;若测占空比才用双边沿或PWM输入模式;4)合理设置ARR:让ARR略大于一个信号周期对应的计数值,使溢出中断频率可控(建议溢出中断不超过捕获频率的1/4),既减少中断负载又保留分辨率;5)高频时可考虑用从模式复位(Slave Reset)让计数器在每次上升沿自动清零,直接读CCR得周期,彻底规避溢出问题,但需注意复位延迟带来的固定偏差并做校准。
mcuku 阿沐 · 2026-10-20