📅  最后修改于: 2023-12-03 15:05:46.563000             🧑  作者: Mango
USART和UART都是串行通信协议。USART是 Universal Synchronous/Asynchronous Receiver/Transmitter的缩写,即通用同步/异步收发器;UART是 Universal Asynchronous Receiver/Transmitter的缩写,即通用异步收发器。
USART可以同时支持同步和异步通信模式,可以处理同步、异步、单向、双向等几种通信方式。UART只支持异步通信模式,并且仅支持单向通信。
USART可实现全双工通信,可以同时进行数据的收发;UART只能实现半双工通信,同一时刻只能进行数据的收或发。
USART的传输速率更高,最高达到115200 bps;UART的传输速率较低,仅限于低速异步通信。
USART和UART的缓冲区大小也不同,USART的缓冲区较大,一般为2个字节;UART的缓冲区较小,一般为1个字节。
由于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());
}
}