STM32H7 串口USART中断通信例程

📅 2026/7/9 11:55:28 👁️ 阅读次数 📝 编程学习
STM32H7 串口USART中断通信例程

一、基础知识
USART是指Universal synchronous asynchronous receiver transmitte,即通用同步异步收发器。同步相比异步需要配置一个时钟的引脚,用于控制串口数据收发的时序问题。一般用的都是异步通讯,也被称为UART。

USART本质上代表的应该是一种通讯协议,标准化数据发送的帧格式、时序逻辑等等。这里主要写stm32h7利用串口协议进行数据的接收。

1.1 串口的工作模式
串口工作模式主要分为

* 阻塞式:CPU轮询式查询收发状态寄存器 ,判断串口收发数据是否完成,整个过程中CPU一直被占用。优点:配置和使用都比较简单;缺点:影响系统的实时性。

* 中断式:外设收发数据产生中断请求,等待CPU响应处理,之后CPU可以进入中断(回调)函数处理数据,更新状态寄存器。一般情况下中断式收发配置不是特别复杂,而且已经可以满足几十字节的数据收发需求。

* DMA:直接内存访问,外设和内存之间的数据搬运由DMA控制器完成,不经过CPU。大部分工作都由DMA控制器完成,主要是为了应对高频和大量数据收发的情况,相应的配置也会更加复杂。

需要明确的是,串口的收发主要工作就是将数据读出和写入寄存器。虽然中断式和DMA都可以产生中断请求CPU访问,但是中断式的主要工作需要CPU完成,而后者直接由DMA控制器完成。DMA产生的中断更多的是为了将接收的数据及时处理。

STM32H7串口.rar
https://pan.baidu.com/s/1gvI9g3xXl35Uv7rHIpkMHw?pwd=wurc