文件:
stm32f0-uart-dma-master.zip

参考文章:
一个严谨的STM32串口DMA发送&接收(1.5Mbps波特率)机制

测试平台

平台 晶振 BSP库 串口
STM32F030C8T6 12MHz 标准库 UART1、UART2
STM32F103ZET6 8MHz 标准库 UART1、UART2

实现功能

  • 收/发环形缓冲区
  • 不定长度接收处理
  • 高速(1.5Mbps)通信不丢数据

关键实现

DMA发送模式

  • 线程循环查询发送环形缓冲区数据,然后启动MDA传输
  • DMA传输完成中断,连续发送
  • 定时器中断周期发送

DMA接收模式

  • DMA缓存半满中断(如CPU硬件支持,可使用DMA双缓存机制)
  • DMA缓存传输完成中断
  • 串口空闲中断实现