ESP32 串口通信代码 (VS Code 开发环境)


#include <Arduino.h> // 定义使用的串口 #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)

[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200

  

使用说明

  1. 硬件连接:

    • 根据您的ESP32开发板调整RX和TX引脚

    • 常见的ESP32开发板可以使用默认的GPIO9(RX)和GPIO10(TX)

    • 如果需要与其他设备通信,请正确连接TX到RX,RX到TX

  2. 功能说明:

    • 代码初始化了两个串口:Serial(用于调试)和Serial1(用于外部通信)

    • 在Serial输入消息并按回车,消息将通过Serial1发送

    • 从Serial1接收到的任何数据都会显示在Serial监视器上

  3. 在VS Code中运行:

    • 安装PlatformIO插件

    • 创建新项目,选择ESP32开发板

    • 将代码复制到src/main.cpp

    • 连接ESP32开发板

    • 点击PlatformIO的Upload and Monitor按钮

注意事项

  • 请根据您的实际硬件调整RX/TX引脚定义

  • 确保通信双方的波特率设置一致(本例中使用115200)

  • 如果需要更复杂的协议,可以扩展此代码实现数据帧解析等功能

这个示例提供了基本的双向串口通信功能,您可以根据实际需求进行扩展和修改

 

posted @ 2025-08-20 22:26  Janus2003  阅读(338)  评论(0)    收藏  举报