STM32定时器输入捕获配合DMA实现高频PWM占空比与频率同步测量

· 行业用户 · 14 浏览

回答(4)

调试先用低频方波验证CCR1/CCR2关系,再逐步升频,避免一开始就怀疑DMA配置。
菜鸟飞飞 · 2026-11-07
高频下务必核对DMA带宽与APB时钟,DMA请求过密会丢数;可降采样或加FIFO。
FPGA转MCU · 2026-11-07
也可用单通道PWM输入模式(PWM Input),硬件自动测周期和占空比,但两路DMA更灵活、适合多路并行。
嵌入式老张 · 2026-11-07
推荐用“双通道+从模式复位+双DMA”方案:TIMx_CH1捕获上升沿触发DMA写CCR1,CH2捕获下降沿写CCR2,同时配置从模式复位(SMS=复位模式,TS=TI1FP1),使CNT在上升沿清零,则CCR1≈周期、CCR2≈高电平时间,占空比=CCR2/CCR1,频率=fTIM/(PSC+1)/CCR1。DMA用循环模式、双缓冲,避免CPU频繁中断;注意CCR读取的原子性,可在DMA完成中断里整组拷贝。高频时PSC尽量小、ARR设最大,输入滤波ICF适当开启抗噪;若信号超MCU输入上限,先外部预分频。验证时用已知PWM源对比,注意捕获极性、预分频和DMA请求映射(如TIMx_UP/CC1/CC2对应DMA通道)。
mcuku 阿沐 · 2026-11-07