战舰V3 USART1,USART2,UASRT3,UART4,UART5的串口配置。

STM32中的UART和USART是不同的。在官方文档中,大部分配置的是USART2和UASRT3,很少有人配置UART4和UART5。因为最近的集成项目,需要多种串口,所以简单配置UART4和UART5。

例如:

同步和异步之间的简单区别意味着在考虑通信时不需要提供外部时钟输出。我们平时用的串口通讯基本都是UART。

USART支持同步模式,所以USART需要同步时钟信号USART_CK(如STM32单片机)。通常很少使用同步信号,所以一般单片机UART和USART的使用方法是一样的,都是使用异步模式。

UART需要固定的波特率,这意味着两位数据之间的间隔应该相等。UART总线是异步串口,一般由一个波特率发生器(产生的波特率等于传输波特率的16倍)、一个UART接收器和一个UART发送器组成。硬件中有两根线,一根用于发送,另一根用于接收。显然,如果用通用IO口来模拟UART总线,就需要一个输入口和一个输出口。

UART是并行输入串行输出的芯片,通常集成在主板上,大部分是16550AFN芯片。因为计算机使用的是并行数据,所以不能直接将数据发送到调制解调器,必须经过UART排序后才能异步传输。过程如下:CPU先把要写入的数据放入UART寄存器(暂存区),然后通过FIFO(先入先出队列)传输到串行设备。没有FIFO,信息会变得混乱,无法传输到调制解调器。

作为接口的一部分,UART还提供以下功能:将计算机内部传输的并行数据转换为输出串行数据流。将来自计算机外部的串行数据转换为字节,供计算机内部使用并行数据的设备使用。向输出串行数据流添加奇偶校验位,并检查从外部接收的数据流的奇偶校验。向输出数据流添加起止标记,并从接收的数据流中删除起止标记。处理键盘或鼠标发送的中断信号(键盘和鼠标也是串行设备)。可以处理计算机和外部串行设备之间的同步管理问题。

USART收发模块一般分为三部分:时钟发生器、数据发送器和接收器。控制寄存器由所有模块共享。时钟发生器由同步逻辑电路(在同步从机模式下由外部时钟输入驱动)和波特率发生器组成。传输时钟引脚XCK仅用于同步传输模式,发送器部分由单独的写缓冲器(传输UDR)、串行移位寄存器、奇偶校验位发生器和处理不同结构的控制逻辑电路组成。通过使用写缓冲器,实现了无延迟地连续发送多个数据的通信。接收器是USART模块中最复杂的部分,最重要的部分是时钟和数据接收单元。数据接收单元用于接收异步数据。除了接收单元,接收器还包括奇偶校验器、控制逻辑、移位寄存器和两级接收缓冲器(接收UDR)。接收机支持与发射机相同的帧结构,还支持帧错误、数据溢出和校验错误的检测。USART是全双工通用同步/异步串行收发器模块,接口是高度灵活的串行通信设备。

综上所述,USART与UART相比,在异步通信的基础上具有同步功能,USART可以提供活动时钟。

我们先来看看引脚图。

[图像上传失败...(图片-5879 a4-154558491497)]

您可以看到对应于USART1、USART2、UASRT3、UART4和UART5的引脚。我们来配置一下吧!

初始化程序:

初始化程序:

初始化程序:

初始化程序:

初始化程序:

通过对比不难发现,UASRT的初始化和UART几乎是一样的!!!!!