STM32 定时器输入捕获测 PWM 占空比时,为什么高电平宽度会随频率漂移——从预分频与捕获边沿配置排查

· 行业用户 · 8 浏览

回答(5)

用双通道分别捕上升/下降沿更稳,但两通道要同一定时器同PSC,且注意捕获溢出。
硬件工程师阿杰 · 2026-10-31
输入滤波和预分频别开太大,边沿抖动会叠加到高电平宽度上,低频时尤其明显。
STM32菜鸟 · 2026-10-31
检查CCER极性位和边沿切换顺序,单通道测占空比要在上升沿中断里改下降沿,别漏清标志。
定时器小王子 · 2026-10-31
先确认捕获时钟是否恒定:PSC固定、ARR不随频率改,否则脉宽数值会随频率缩放。
嵌入式老张 · 2026-10-31
高电平宽度随频率漂移,核心是“时间基准”和“边沿定义”不一致。先查预分频:捕获通道的计数时钟必须是固定已知频率,若PSC随PWM频率动态修改,或两路捕获共用定时器但PSC被另一功能改写,测得脉宽就会随频率成比例变化。建议固定PSC,让CNT时钟恒定,仅靠CCR比较值变化。再查边沿配置:测占空比需同一通道先上升沿捕获、再切下降沿捕获,或双通道分别捕获上升/下降沿。若只配单边沿却用两次捕获相减,或CCER的CCxP/CCxNP极性写反,会把低电平当高电平,频率变化时边沿抖动被放大。还要确认从模式复位、输入滤波和捕获溢出处理正确。实操:用固定PSC+输入滤波,先测周期T,再测高电平T_high,占空比=T_high/T;每次捕获后清CCxIF,避免旧值干扰。
mcuku 阿沐 · 2026-10-31