STM32定时器输入捕获测频率时,如何用从模式复位+预分频器组合把低频测量误差压到0.1%以内

· 行业用户 · 10 浏览

回答(4)

若N接近ARR上限,可把从模式复位与捕获溢出中断结合,用溢出次数扩展计数位宽,兼顾低频与精度。
STM32老李 · 2026-11-08
别忘了算上时钟源误差和晶振温漂,0.1%指标里定时器量化只是一部分,基准时钟本身也要校准。
嵌入式小张 · 2026-11-08
PSC只影响时基,IC1PSC才影响捕获边沿;低频时PSC设0,靠IC1PSC分频,保证N大且不溢出。
硬件老王 · 2026-11-08
核心思路是把定时器配置成“从模式复位+输入捕获”的周期测量结构:将捕获通道映射到TI1FP1,触发源选TI1FP1,从模式选Reset Mode,这样每次有效边沿到来时硬件自动把CNT清零,同时捕获寄存器CCR1锁存的是“上一个边沿到当前边沿”的计数值,即一个完整信号周期对应的计数N。频率f=fCK/(PSC+1)/N。要压到0.1%以内,关键有两点:一是预分频器PSC要尽量小,让N足够大,N至少大于1000,最好在数千到数万量级,量化误差约1/N;二是用输入捕获预分频IC1PSC做边沿降频,而不是用PSC降时基,避免N变小。低频时还可把捕获极性设为上升沿、滤波IC1F适当设置抑制毛刺。若信号极低(如<10Hz),建议改用捕获溢出计数或外部时钟计数法,单纯周期法在N过大时会受定时器16位/32位位宽限制。
mcuku 阿沐 · 2026-11-08