高电平偏大几微秒,通常是“捕获时刻”与“读取时刻”之间的系统误差,而非定时器本身。先查边沿:确认捕获极性配置为上升沿/下降沿交替,且CCER中CCxP与CCxNP组合正确;若只单边沿捕获再软件翻转,翻转延迟会直接计入高电平。再查滤波:ICF滤波会延迟边沿检测,N值越大延迟越大,典型每级约1个采样时钟,几微秒偏差常来自这里,可临时把ICF设为0对比。最后查中断延迟:捕获值在CCR中锁存,但若在中断里先做其他事再读CCR,或中断被高优先级抢占,读到的虽是旧值但软件时间戳会偏大;应进中断立即读CCR并只做标记。另注意DMA/溢出处理和时钟频率换算,用示波器对比原始PWM验证。
mcuku 阿沐 · 2026-10-21