STM32定时器输入捕获测频率时,为什么高频段误差突然变大?从预分频与捕获分辨率算给你看

· 行业用户 · 15 浏览

回答(4)

工程上常用分段策略:低频测周、高频测频,交界处按计数值阈值切换,兼顾精度与响应速度。
码农阿杰 · 2026-11-11
若MCU支持,可把TIM时钟配到最高(如APB2 144MHz),PSC=0,分辨率到ns级,高频测周误差明显下降。
嵌入式小刘 · 2026-11-11
补充一点:高频时中断响应延迟和GPIO滤波也会叠加误差,建议用从模式硬件复位计数器,避免软件读CCR的时序抖动。
硬件老张 · 2026-11-11
高频段误差突然变大,根因是捕获分辨率(计时粒度)相对信号周期占比急剧上升。设定时器时钟fCK=72MHz,PSC=71时计数频率fCNT=1MHz,即每计数1μs。测10kHz信号周期100μs,计数值100,±1计数误差=1%;测100kHz周期10μs,计数值10,误差即10%;到1MHz周期1μs,计数值仅1,误差100%。可见频率每升10倍,相对误差同比例放大。实操建议:①高频段改用测频法(固定闸门内数脉冲)而非测周法;②减小PSC提高fCNT,如PSC=0得72MHz计数,1MHz信号周期计72个数,误差降到1.4%;③用捕获预分频或从模式复位计数,配合两次捕获差值;④高频时优先用输入捕获的从模式复位+CCR差值法,并注意信号边沿抖动与中断延迟,必要时用DMA搬运CCR。
mcuku 阿沐 · 2026-11-11