STM32外设介绍3:(UART 和 USART 通信详解<含重定向与 DMA>)
STM32外设介绍3:(UART 和 USART 通信详解<含重定向与 DMA>)
串口通信(UART/USART)是 STM32 最常用的外设之一,适用于打印调试、模块通信、传感器数据读取等。STM32 的 USART 支持异步(UART)和同步通信,配置灵活,功能强大。
本文将介绍:
- UART/USART 基础概念与区别
- 常用 HAL 串口收发方法
printf
串口重定向方法- 串口 DMA 发送/接收配置与代码
📌 一、UART 与 USART 的区别
项目 | UART | USART |
---|---|---|
全称 | Universal Asynchronous Receiver/Transmitter | Universal Synchronous/Asynchronous Receiver/Transmitter |
是否支持同步通信 | 否 | 是 |
支持异步通信 | 是 | 是 |
STM32 中表现 | 通过配置 USART 实现 UART 功能 | 更强大,支持 SPI 风格同步通信 |
💡 在 STM32F1 中,USART1/2/3 均可配置为 UART(异步模式)。
⚙️ 二、CubeMX 串口配置(USART1 为例)
- 选择
USART1
,模式设为Asynchronous
- 设置 TX(如 PA9),RX(如 PA10)
- 设置波特率为 115200
- 开启
USART1 Global Interrupt
(如需中断) - 可勾选
Enable DMA
(如需 DMA 传输) - 生成代码后,得到
MX_USART1_UART_Init()
和huart1
句柄
🧩 三、常用串口通信方法(HAL)
1. 发送字符串(阻塞模式)
char msg[