配置串口参数
在编写代码之前,你需要确定要使用的 UART 端口号和配置参数(波特率、数据位、停止位等)。
// 定义 UART 端口
#define TX_PIN 1 // TX 管脚
#define RX_PIN 3 // RX 管脚
// 定义串口配置参数
#define UART_BAUDRATE 115200 // 波特率
#define UART_TX_BUFFER_SIZE 1024 // 发送缓冲区大小
#define UART_RX_BUFFER_SIZE 1024 // 接收缓冲区大小
初始化 UART
在 setup()
函数中初始化 UART。
void setup() {
// 初始化串口
Serial.begin(UART_BAUDRATE);
// 如果使用的是其他 UART(例如 UART1 或 UART2),可以这样初始化:
// Serial1.begin(UART_BAUDRATE, SERIAL_8N1, RX_PIN, TX_PIN);
}
编写 UART 通信代码
在 loop()
函数或其他地方编写代码以发送和接收数据。
void loop() {
// 检查是否有数据可读
if (Serial.available()) {
// 读取数据
String data = Serial.readString();
// 打印接收到的数据
Serial.println("Received: " + data);
}
// 定时发送数据
static unsigned long lastTime = 0;
if (millis() - lastTime > 1000) { // 每1000毫秒发送一次
Serial.println("Hello, World!");
lastTime = millis();
}
}
上传代码到 ESP32-C3
完整源码(uart接收到的数据发送出去)
#include <Arduino.h>
// 定义 UART 配置
#define UART_BAUD 115200 //波特率
void setup() {
// 初始化串行通信
Serial.begin(UART_BAUD);//uart0
// 等待串行通信准备就绪
while (!Serial) {
delay(100);
}
Serial.println("UART0 设置成功");//
}
void loop() {
Serial.println("b: ");
if (Serial.available() > 0) { // 判断是否有数据
String input=Serial.readString();//接收数据
Serial.println(input);//发送数据
}
// 等待一段时间
delay(500);
}