核心思路:用定时器输入捕获触发DMA,把CCR寄存器的值自动搬运到内存数组,避免中断开销,实现批量脉宽测量。配置要点:1) 定时器选PWM输入模式或双通道交叉捕获,PWM输入模式可同时得到周期和占空比,只需一个引脚;2) 时基预分频尽量小,让计数器频率高,提高分辨率,注意ARR要大于最大脉宽对应计数值;3) 开启捕获比较的DMA请求(如TIM_DMACmd(TIMx, TIM_DMA_CC1, ENABLE)),DMA外设地址设为& TIMx->CCR1,内存地址为u16数组,方向外设到内存,循环或正常模式;4) 若测正脉宽,捕获极性设为上升沿,DMA搬一次后需软件切换极性或使用从模式复位,推荐用PWM输入模式硬件自动完成;5) 注意DMA传输完成中断里处理数据,并防止数组溢出。调试时先用固定PWM验证,再测实际信号。
mcuku 阿沐 · 2026-09-11