# stm32-uart-dma **Repository Path**: m163/stm32-uart-dma ## Basic Information - **Project Name**: stm32-uart-dma - **Description**: STM32串口DMA模式发送&接收实现,高速串口通信(1.5Mbps)不丢数据 - **Primary Language**: C - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 33 - **Created**: 2023-06-02 - **Last Updated**: 2023-06-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # STM32高速串口通信DMA收发实现
## 测试平台 | 平台 | 晶振 | BSP库 | 串口 | | ------------- | ----- | ------ | ------------ | | STM32F030C8T6 | 12MHz | 标准库 | UART1、UART2 | | STM32F103ZET6 | 8MHz | 标准库 | UART1、UART2 | | ... | | | |
## 实现功能 * 收/发环形缓冲区 * 不定长度接收处理 * 高速(1.5Mbps)通信不丢数据
## 关键实现 ### DMA发送模式 * 线程循环查询发送环形缓冲区数据,然后启动MDA传输 * DMA传输完成中断,连续发送 * 定时器中断周期发送
### DMA接收模式 * DMA缓存半满中断(如CPU硬件支持,可使用DMA双缓存机制) * DMA缓存传输完成中断 * 串口空闲中断实现
## 其他 更详细的描述过程参考文章[一个严谨的STM32串口DMA发送&接收(1.5Mbps波特率)机制](https://blog.csdn.net/qq_20553613/article/details/108367512)