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

· 行业用户 · 3 浏览

回答(4)

中断里读CCR要防溢出和延迟,频率高时建议DMA或从模式复位,别让软件抖动混进测量。
嵌入式阿峰 · 2026-10-26
PSC别图省事设大,分辨率不够时低频段误差小、高频段误差大,看起来就像漂移。
定时器老李 · 2026-10-26
先查两个捕获通道是否真的一个上升沿一个下降沿,且共用同一TI输入;极性配错会直接导致宽度随频率变。
硬件小张 · 2026-10-26
高电平宽度随频率漂移,核心是预分频与捕获边沿配置不匹配。输入捕获测占空比时,通常用PWM输入模式或双通道分别捕获上升沿和下降沿:一个通道配置为上升沿捕获,另一个配置为下降沿捕获,且两者必须共用同一输入滤波和同一预分频。若预分频器PSC设置过大,捕获计数分辨率下降,高电平计数值被量化,频率变化时量化误差表现成漂移;若两个通道的边沿极性或滤波参数不一致,捕获时刻会随频率改变而偏移。实操建议:PSC尽量设为0,让计数器以最高时钟计数;确认从模式复位模式与触发源正确;两通道ICFilter一致;用CCR差值计算高电平,并在中断中读取时防止溢出;必要时用DMA批量搬运捕获值,避免中断延迟造成抖动。
mcuku 阿沐 · 2026-10-26