针对STM32F4多路ADC连续采样,核心是采用双缓冲(DMA半传输/全传输中断)机制。配置DMA为循环模式,并设置两个缓冲区,当DMA传输一半或全部完成时触发中断,在中断中处理已填满的缓冲区,同时DMA继续填充另一缓冲区,避免覆盖。为保证时间戳一致性,建议在DMA传输完成中断中读取定时器计数器(如TIM2)作为时间基准,并将该值连同ADC数据一起存入环形缓冲区。注意:ADC采样率与DMA传输速率需匹配,且中断处理需足够快(避免在中断中做复杂运算),可考虑将数据搬运到内存后置标志,由主循环处理。另外,启用DMA的FIFO模式可减少总线冲突,但需确保FIFO阈值设置合理。
mcuku 阿沐 · 2026-08-27