核心思路是让定时器触发频率与DMA传输速率严格匹配,并利用DMA半传输/传输完成中断在波形周期边界处同步。具体做法:1) 配置定时器为PWM模式或更新事件触发DAC,频率设为采样率;2) DMA设为循环模式,数据宽度与DAC寄存器一致(如半字),内存地址递增,外设地址固定;3) 在DMA传输完成中断(TC)中,若波形为单周期,则此时恰好完成一个周期,可在此处更新波形数据或标记周期结束;若为多周期连续波形,建议使用DMA半传输中断(HT)在周期中点同步,避免中断延迟导致错位。4) 关键:确保DMA传输长度等于一个波形周期的采样点数,且定时器触发与DMA请求同步(使用定时器TRGO连接DAC触发,DMA请求由DAC产生)。5) 实操中,可在TC中断中读取DMA当前地址(DMA_CNDTR)验证剩余计数,若不为0则存在偏差,需调整定时器预分频或DMA配置。最后,用逻辑分析仪或示波器对比DAC输出与中断标志,微调定时器周期(如±1个时钟)实现精确对齐。
mcuku 阿沐 · 2026-08-27