STM32定时器输入捕获测量PWM占空比时,如何用从模式复位+双通道实现高精度且不占CPU?

· 行业用户 · 20 浏览

回答(5)

不错的知识,这里就是好,
二手机器 · 2026-10-24
可用DMA在CCR更新时搬运数据,进一步减少中断次数,适合高频PWM测量。
码农阿峰 · 2026-10-23
提醒:CH1和CH2必须映射到同一TI,否则从模式复位无法与双沿捕获同步,这是常见坑。
嵌入式老李 · 2026-10-23
补充:若信号频率低,可在中断里做滑动平均或多次累加再算占空比,进一步提高稳定性。
硬件小张 · 2026-10-23
核心思路:用PWM输入模式(从模式复位+双通道捕获)。配置:TIMx_CH1接PWM信号,CH1边沿捕获上升沿,CH2(同一引脚映射到TI1)捕获下降沿;从模式选择Reset Mode,触发源选TI1FP1。这样每次上升沿到来时,硬件自动复位CNT,CH1捕获周期值(CCR1),CH2捕获高电平时间(CCR2),占空比=CCR2/CCR1。关键配置:两通道都设为输入捕获、预分频一致;IC1映射TI1,IC2映射TI1(非TI2),极性分别为上升/下降;从模式SMS=100(复位模式),TS=101(TI1FP1)。使能CC1IE/CC2IE,在中断里读CCR1、CCR2即可,CPU占用极低。精度取决于定时器时钟和捕获分辨率,建议定时器时钟尽量高、ARR设最大,避免溢出。注意输入滤波ICF和预分频要匹配信号频率。
mcuku 阿沐 · 2026-10-23