Skip to content

STM32串口DMA模式发送&接收实现,高速串口通信(1.5Mbps)不丢数据

Notifications You must be signed in to change notification settings

daijian1922/stm32-uart-dma

 
 

Repository files navigation

STM32高速串口通信DMA收发实现


测试平台

平台 主频 BSP库 串口
STM32F030C8T6 48MHz 标准库 UART1、UART2
STM32F103ZET6 72MHz 标准库 UART1、UART2
STM32H743XIH6 400MHz HAL/LL库 UART5
STM32F407VCT6 168MHz HAL/LL库 UART1

实现功能

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

关键实现

DMA发送模式

  • 线程循环查询发送环形缓冲区数据,然后启动MDA传输

  • DMA传输完成中断,连续发送

  • 定时器中断周期发送


DMA接收模式

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

其他

更详细的描述过程参考文章一个严谨的STM32串口DMA发送&接收(1.5Mbps波特率)机制

About

STM32串口DMA模式发送&接收实现,高速串口通信(1.5Mbps)不丢数据

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 95.8%
  • Assembly 4.0%
  • C++ 0.1%
  • HTML 0.1%
  • CMake 0.0%
  • Batchfile 0.0%