stm32-USART通信

什么是usart?和其他通信又有什么区别?

如下图:

USART是一种用于串行通信的设备,可以在同步和异步模式下工作。

usart有两根数据线,一根发送线(tx)一根接收线(rx),它可以实现同时的双向通信,因此是一种全双工串行通信,但是其缺陷是支持点对点,不支持多设备

常用设备:比如usb转ttl,蓝牙模块等

异步模式

在异步模式下,USART不使用时钟信号来同步发送和接收的数据,而是依赖于双方设置的相同波特率。数据传输通过起始位、数据位、奇偶校验位(可选)和停止位来实现同步。

  • 起始位:表示数据传输的开始,通常为低电平。
  • 数据位:实际传输的数据位,可以是5到9位。
  • 奇偶校验位:用于检测传输错误(可选)。
  • 停止位:表示数据传输的结束,通常为高电平。
同步模式

在同步模式下,USART使用一个额外的时钟信号(SCLK)来同步发送和接收的数据。发送方和接收方共享这个时钟信号,确保数据传输的同步和准确性。

  • 数据位:与异步模式相同,可以是5到9位。
  • 时钟信号(SCLK):用于同步发送和接收的数据。
  • 同步数据帧:数据帧的结构与异步模式相似,但在时钟信号的同步下进行传输。

但是在一般不加时钟的多,一般用异步。

数据传输过程
  1. 初始化:在使用USART进行通信前,需要配置USART的波特率、数据位、奇偶校验位、停止位和工作模式(同步或异步)。
  2. 发送数据:将数据写入发送数据寄存器,USART会根据配置的波特率和其他参数自动发送数据。
  3. 接收数据:当USART接收到数据后,会将其存储在接收数据寄存器中,可以通过中断或轮询的方式读取数据。
双工模式介绍:
  1. 全双工(Full Duplex):USART在全双工模式下,可以同时发送和接收数据。它通常使用两个独立的数据线:TX(发送)和RX(接收)。全双工通信提高了数据传输的效率,因为发送和接收操作不会互相阻塞。

  2. 半双工(Half Duplex):虽然USART的硬件设计支持全双工,但它也可以配置为半双工模式。在半双工模式下,同一时间只能发送或接收数据,而不能同时进行。这种模式通常使用一根数据线(通常是TX/RX共用一根线),需要切换方向来发送或接收数据。

  3. 单工(Simplex):单工通信是指数据只能单向传输,即只能发送或只能接收,不能同时进行。虽然USART硬件一般不用于单工通信,但在某些特定应用场景中,可以将其配置为单工模式

接线:

在这我们一般取用异步接线,

TX与RX要交叉连接,因为对于设备2来说,设备1的发送(tx)就是它的接收(rx),对方同理。

电平标准:

电平标准是数据1和数据0的表达方式,是传输线缆中人为规定的电压与数据的对应关系,串口常用的电平标准有如下三种:

TTL电平:+3.3V或+5V表示1,0V表示0

RS232电平:-3~-15V表示1,+3~+15V表示0

RS485电平:两线压差+2~+6V表示1,-2~-6V表示0(差分信号)

串口参数时序:

波特率:串口通信的速率

起始位:标志一个数据帧的开始,固定为低电平

数据位:数据帧的有效载荷,1为高电平,0为低电平,低位先行

校验位:用于数据验证,根据数据位计算得来

停止位:用于数据帧间隔,固定为高电平

数据包:

HEX:

文本:

疑问解答:

看到这是不是有了一些疑问?

1.既然大部分是利用异步通信,那么他们是如何保证数据发送和接收不会错误?

2.usart和uart是一个吗?有区别吗?

3.usart和iic、rs485、can等又有什么区别?

1.

既然双设备利用串行双向发送,那么发送和接收肯定要约定好一个频率,主机按照一定频率发送,从机按照一定频率接收,这样子才不会出现丢包、空包。因此,在这里面,就出现了一种通信参数,叫做波特率。

发送端和接收端必须配置相同的波特率,即每秒钟传输的比特数。以此保证串口每发送的一位数据,其都能接收到,常见波特率:9600、115200、19200。

2.

  • USART:支持同步和异步两种模式。在同步模式下,USART使用时钟信号进行数据同步传输,这意味着发送和接收需要共享一个时钟信号。在异步模式下,USART的工作方式与UART相同,不需要共享时钟信号。
  • UART:只支持异步模式,不需要共享时钟信号,发送和接收数据通过串行数据线进行。

主要的区别在于 USART 具有同步传输的能力,可以通过外部时钟源进行精确的时钟同步,而 UART 只能支持异步传输。USART 在物理层面的连接和电信号处理方面也稍有区别。

因此,选择使用 UART 还是 USART 取决于具体的应用需求。如果只需要基本的异步传输功能,可以选择 UART。如果需要同步传输或更高级的功能,如多主机通信、同步通信等,可以选择 USART。

3.

相关推荐
没有钱的钱仔2 分钟前
STM32低功耗模式全面指南
css·stm32·css3
牵牛老人2 小时前
Qt处理USB摄像头开发说明与QtMultimedia与V4L2融合应用
stm32·单片机·qt
宇钶宇夕3 小时前
针对工业触摸屏维修的系统指南和资源获取途径
单片机·嵌入式硬件·自动化
和风化雨3 小时前
stm32的三种开发方式
stm32·单片机·嵌入式硬件
kanhao1004 小时前
三态逻辑详解:单片机GPIO、计算机总线系统举例
单片机·嵌入式硬件
小眼睛FPGA5 小时前
【RK3568+PG2L50H开发板实验例程】FPGA部分/紫光同创 IP core 的使用及添加
科技·嵌入式硬件·ai·fpga开发·gpu算力
竹照煜_ysn6 小时前
STM32
stm32·单片机·嵌入式硬件
蓬荜生灰8 小时前
永磁无刷电机旋转原理
单片机·嵌入式硬件
金色光环9 小时前
【Modbus学习笔记】stm32实现Modbus
笔记·stm32·学习
Ronin-Lotus12 小时前
嵌入式硬件与应用篇---寄存器GPIO控制
stm32·单片机·嵌入式硬件·微处理器原理与应用