ESP32 串口通信代码 (VS Code 开发环境)
<br>#include// 定义使用的串口
#define SERIAL1_RX_PIN 9// 根据您的ESP32开发板调整
#define SERIAL1_TX_PIN 10 // 根据您的ESP32开发板调整
// 全局变量
HardwareSerial Serial1(1); // 使用串口1
String inputString = ""; // 存储接收到的数据
bool stringComplete = false; // 是否接收到完整字符串
void setup() {
// 初始化串口0(用于调试)
Serial.begin(115200);
// 初始化串口1(用于外部通信)
Serial1.begin(115200, SERIAL_8N1, SERIAL1_RX_PIN, SERIAL1_TX_PIN);
// 等待串口初始化完成
delay(1000);
Serial.println("ESP32 Serial Communication Example");
Serial.println("Type a message and press Enter to send via Serial1");
Serial.println("Messages received on Serial1 will be displayed here");
}
void loop() {
// 检查串口0(调试端口)是否有数据输入
if (Serial.available()) {
char inChar = (char)Serial.read();
// 如果收到换行符,则认为输入完成
if (inChar == '\n') {
// 通过串口1发送数据
Serial1.println(inputString);
Serial.print("Sent: ");
Serial.println(inputString);
// 清空输入字符串
inputString = "";
stringComplete = false;
} else {
// 将字符添加到输入字符串
inputString += inChar;
}
}
// 检查串口1是否有数据返回
if (Serial1.available()) {
String response = Serial1.readStringUntil('\n');
Serial.print("Received: ");
Serial.println(response);
}
// 短暂延迟以减少CPU使用率
delay(10);
}
PlatformIO配置文件 (platformio.ini)
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200
使用说明
[*]硬件连接:
[*]根据您的ESP32开发板调整RX和TX引脚
[*]常见的ESP32开发板可以使用默认的GPIO9(RX)和GPIO10(TX)
[*]如果需要与其他设备通信,请正确连接TX到RX,RX到TX
[*]功能说明:
[*]代码初始化了两个串口:Serial(用于调试)和Serial1(用于外部通信)
[*]在Serial输入消息并按回车,消息将通过Serial1发送
[*]从Serial1接收到的任何数据都会显示在Serial监视器上
[*]在VS Code中运行:
[*]安装PlatformIO插件
[*]创建新项目,选择ESP32开发板
[*]将代码复制到src/main.cpp
[*]连接ESP32开发板
[*]点击PlatformIO的Upload and Monitor按钮
注意事项
[*]请根据您的实际硬件调整RX/TX引脚定义
[*]确保通信双方的波特率设置一致(本例中使用115200)
[*]如果需要更复杂的协议,可以扩展此代码实现数据帧解析等功能
这个示例提供了基本的双向串口通信功能,您可以根据实际需求进行扩展和修改
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页:
[1]