📜  USART和UART的区别(1)

📅  最后修改于: 2023-12-03 15:05:46.563000             🧑  作者: Mango

USART和UART的区别

1. 两者的定义

USART和UART都是串行通信协议。USART是 Universal Synchronous/Asynchronous Receiver/Transmitter的缩写,即通用同步/异步收发器;UART是 Universal Asynchronous Receiver/Transmitter的缩写,即通用异步收发器。

2. 工作模式

USART可以同时支持同步和异步通信模式,可以处理同步、异步、单向、双向等几种通信方式。UART只支持异步通信模式,并且仅支持单向通信。

3. 数据传输

USART可实现全双工通信,可以同时进行数据的收发;UART只能实现半双工通信,同一时刻只能进行数据的收或发。

4. 传输速率

USART的传输速率更高,最高达到115200 bps;UART的传输速率较低,仅限于低速异步通信。

5. 缓冲区

USART和UART的缓冲区大小也不同,USART的缓冲区较大,一般为2个字节;UART的缓冲区较小,一般为1个字节。

6. 应用场景

由于USART具有更高的传输速率和更丰富的通信方式,因此在需要高速传输和复杂通讯方式的场景中,USART更加适用。而UART则适用于数据量较小、通讯要求不高的场景。

示例代码
//USART串口通讯
#include <SoftwareSerial.h>
SoftwareSerial mySerial(3, 4); // RX, TX

void setup() {
  Serial.begin(9600);
  mySerial.begin(9600);
}

void loop() {
  if (mySerial.available()) {
    Serial.write(mySerial.read());
  }
  if (Serial.available()) {
    mySerial.write(Serial.read());
  }
}

//UART串口通讯
void setup(){
  Serial.begin(9600);
}

void loop(){
  if (Serial.available()){
    Serial.write(Serial.read());
  }
}