STM32 HAL 库串口收发完全指南:从基础配置到实战应用
一、串口通信基础原理与 HAL 库架构
1. UART 通信核心概念
物理层:两根信号线(TX 发送、RX 接收),TTL 电平(0V 为低,3.3V/5V 为高)。
数据格式:波特率、数据位(5-8 位)、停止位(1-2 位)、校验位(无 / 奇 / 偶)。
通信协议:异步通信,无需时钟线,通过波特率同步收发双方。
2. HAL 库串口模块架构
核心结构体:UART_HandleTypeDef,包含串口实例、配置参数和状态信息。
接口分类:轮询(阻塞)、中断(非阻塞)、DMA(零 CPU 参与)。
二、基于 CubeMX 的串口快速配置
1. 图形化配置步骤
①打开 CubeMX,选择对应 STM32 型号(如 STM32F103ZE)设置时钟。
②在Pinout & Configuration中启用 USART1,设置为异步模式。
配置参数:波特率 115200、8 位数据位、1 位停止位、无校验。
打开中断
配置生成路径
最后代码生成
2. 生成代码解析KELL
2.1打开中断使能
HAL_UART_Receive_IT(&huart1,&Buffer,1);//中断使能
2.2配置中断接收函数
2.3中断回调函数的实现接收
2.4发送函数
2.5串口打印重定向函数实现
2.5.1串口重定向配置
我上传工程