这里以stm32f4系列的标准库为应用案例解释
1 串口介绍
1.1 初步介绍
STM32F407系列包含最多6个USART/UART接口。 4个通用同步/异步收发器(USART),2个通用异步收发器(UART)。
具体型号的可用串口数量可能不同,需参考具体型号的数据手册。
1.2 主要特性
1.2.1 USART特性
全双工异步通信
单线半双工通信
同步通信(需要时钟线)
支持LIN协议
支持智能卡协议(ISO7816)
支持IrDA SIR ENDEC规范
支持调制解调器操作(CTS/RTS)
1.2.2 UART特性
全双工异步通信
单线半双工通信
支持LIN协议
支持IrDA SIR ENDEC规范
支持调制解调器操作(CTS/RTS)
1.3 主要寄存器
每个USART/UART包含以下主要寄存器:
USART_SR - 状态寄存器
USART_DR - 数据寄存器
USART_BRR - 波特率寄存器
USART_CR1/CR2/CR3 - 控制寄存器
1.4 波特率计算
波特率计算公式:
波特率 = fCK / (16 * USARTDIV)
其中:
fCK是USART时钟频率(APB1或APB2总线)
USARTDIV是写入USART_BRR寄存器的值
1.5 常用工作模式
1.5.1 轮询模式:
-
简单直接
-
占用CPU资源
-
适合低速率或简单应用
1.5.2 中断模式:
-
数据收发通过中断处理
-
提高CPU利用率
-
需要配置NVIC
1.5.3 DMA模式:
-
高效数据传输
-
适合大数据量传输
-
需要配置DMA控制器
1.6 常见应用
- 与PC通信(通过USB转串口)
- 与GPS模块通信
- 与无线模块(如蓝牙、WiFi)通信
- 工业设备间的RS232/RS485通信
- 调试信息输出
1.7 注意事项
-
确保时钟配置正确(USART时钟使能)
-
注意GPIO复用功能配置
-
不同USART挂载在不同APB总线上,时钟频率可能不同
-
使用DMA时注意缓冲区管理
-
在低功耗应用中注意唤醒源配置
2 软件层面协议
2.1 基本概念
串口通