STM32HAL开发中的UART和USART的联系与差异及使用(一)

前言:博主在实际的串口通信使用中发现,使用STM32CubeMX进行USART的配置时,发现软件生产代码所使用的相关配置句柄是UART开头(如下图所示),这不禁让我产生疑惑,USART和UART是否有严格的区别和界限呢,亦或是在相同的联系中带有差异呢,因此带着问题去学习了相关理论知识。


从功能特性上看区别:

通用异步收发器(Universal Asynchronous Receiver/Transmitter),通常称作UART,是一种串行、异步、全双工的通信协议

通用同步异步收发器(Universal Synchronous/Asynchronous),通常称作USART,是一种串行,可同步可异步,全双工的通信协议

UART(通用异步收发传输器):

  1. 异步通信: UART通常用于异步串口通信,其中数据通过固定的波特率进行传输,而无需外部时钟信号。

  2. 简单性: UART通常比USART更简单,因为它不支持同步模式和其他高级特性。

  3. 通信模式: UART通常只能工作在异步模式下,不支持同步模式。

USART(通用同步/异步收发传输器):

  1. 同步和异步通信: USART具有UART的所有功能,同时还支持同步通信模式,这意味着数据可以通过外部时钟信号进行同步传输。

  2. 高级特性: USART相对于UART来说更加灵活,支持更多的功能,例如硬件流控制、多主机通信等。

  3. 通信模式: USART可以工作在同步或异步模式下,提供了更多的通信选项。

联系:

  1. 共同点: USART和UART都是用于串口通信的模块,可以实现设备之间的数据传输。

  2. 使用方式: 在STM32中,USART和UART都可以通过配置寄存器来实现串口通信,而且通常会使用相似的接口和函数来进行初始化和数据传输。

  3. 硬件资源: 通常情况下,USART和UART会共享相同的硬件资源,例如引脚和时钟资源,因此在使用时需要注意资源的共享情况。

总的来说,UART是USART的一种简化版本,通常用于异步串口通信,而USART除了支持UART的所有功能外,还额外支持同步通信模式和其他高级特性,也就是说USART是UART的加强版。


从硬件方面初步认识UART和USART之后,再从HAL的角度去看这两者的区别:首先解答前言的问题,为什么USART的配置能使用UART的相关句柄呢?在STM32的HAL库中,通常使用UART_InitTypeDef结构体来配置USART模块的初始化参数。虽然结构体的名为UART_InitTypeDef,但实际上它用于配置USART模块,因为STM32的HAL库将UART和USART功能整合到了同一个模块中。UART_InitTypeDef结构体中包含了USART模块的各种配置参数,例如波特率、数据位、停止位、校验位等。通过填充这个结构体并传递给HAL库中的初始化函数,可以对USART模块进行配置。也就是当我们想要把

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值