跳到主要内容

【UART 串口】 收发数据

下载例程代码下载代码

串口通信是什么?

  • 串口通信是一种用于计算机之间的数据传输方式,它使用两条物理线路(通常是TX和RX)来传输数据
  • 串口通信通常用于将计算机与其他设备(如打印机、传感器、控制器等)连接起来
  • 串口通信的速度通常是9600bps,即每秒传输9600个数据位
  • 串口通信的优点是简单易用,缺点是传输速度较慢

串口通信工作原理

串口通信的工作原理是通过将数据转换为二进制码来传输数据。串口通信的工作原理如下:

  • 发送方将数据转换为二进制码,并将其发送到串口的TX引脚上。
  • 接收方将数据从串口的RX引脚上接收,并将其转换为二进制码。
UART config
信息

串口通信关键参数:

  • 波特率(Baud Rate):表示数据传输速率,单位为每秒传输的位数,通常是9600bps。
  • 数据位(Data Bits):表示每一位数据所占的位数,通常为8位。
  • 校验位(Parity Bit):表示数据传输过程中是否进行奇偶校验,通常为无校验。
  • 停止位(Stop Bit):表示数据传输过程中每一帧数据结束的标识,通常为1位。

ESP32串口

  • ESP32 有 3 个 UART 接口,分别是串口0,串口1,以及串口2。
  • 串口0一般作为下载程序,或者是调试使用,我们下载程序使用的就是串口0.
uart接收引脚(RX)发送引脚(TX)
uart031
uart1910
uart21617

关键函数:

Serial.begin():初始化串口
Serial.print():打印数据到串口
Serial.println():打印数据到串口,并换行
Serial.read():从串口读取数据
Serial.available():检查串口是否有数据可读
Serial.flush():清空串口缓冲区
Serial.end():关闭串口

代码

1、发送数据代码

void setup() {
Serial.begin(9600); // 设置串口通信的波特率为9600bps

}

void loop() {
Serial.println("Hello, World"); // 发送数据到串口
delay(100); // 延时100ms
}
UART config
提示

Arduino IDE -> 工具 -> 串口监视器,即可查看发送的数据。

2、接收数据代码

void setup() {
Serial.begin(9600); // 设置串口通信的波特率为9600bps

}

void loop() {
if(Serial.available()){ // 检查串口是否有数据可读
char data = Serial.read(); // 从串口读取数据
Serial.println(data); // 打印数据到串口
}
}
UART config
提示

在发送框输入要发送的数据 -> 点击发送按钮,即可接收到数据。