概述
今天研究一下USART模块,USART模块最常用的功能之一就是输出log,下面就研究一下利用USART模块来输出log的实验代码。
USART,Universal Synchronous/Asynchronous Receiver/Transmitter,通用同步/异步接收/发送器;通过名字可以看出来,USART模块支持同步和异步模式,支持接收和发送操作。
那么什么是同步/异步呢?
同步通信:是指通信双方共享一个时钟节拍,一般情况需要发送方向接收方发送数据同时还要提供时钟;接收方根据发送方提供的时钟的节拍来安排接收节奏;比如SPI,IIC都是同步通信;适用于通信网络有大量数据需要传输的场景;
异步通信:双方可以按照自己的时钟节拍来进行数据的发送和接收;一般需要发送方首先发送消息通知接收方准备接受,接收方接收到之后,就会认为该消息之后的消息就是正式的数据,这个和网络传输比较类似;UART,RS485,CAN都是异步通信。适用于短距离,速率要求不高的场景;
同步通信效率高,但是通信实现复杂,双方时钟误差只允许很小;异步通信实现简单,允许双方有一定的误差。
如下图所示,可以看到异步通信,发送器和接收器有自己独立的时钟(频率/节拍),然后是通过沿边信息来判断数据的开始和停止;
而同步通信两端共享一个时钟,在数据规则上是通过找周期/节拍开控制开始和结束。
本文详细介绍了STM32的USART模块,包括USART的同步/异步模式,初始化过程,如GPIO配置、波特率设定、硬件流控等,并探讨了同步通信与异步通信的区别。通过代码实例展示了如何进行USART初始化,使能中断和NVIC配置,以及中断处理函数的实现。
订阅专栏 解锁全文
:USART&spm=1001.2101.3001.5002&articleId=122887015&d=1&t=3&u=75da8020afc7408ebb32745c9d3847cd)
2万+

被折叠的 条评论
为什么被折叠?



