找回密码
 立即注册
首页 业界区 业界 ESP32 串口通信代码 (VS Code 开发环境)

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

诈知 6 天前
  1. <br>#include
  2. // 定义使用的串口
  3. #define SERIAL1_RX_PIN 9  // 根据您的ESP32开发板调整
  4. #define SERIAL1_TX_PIN 10 // 根据您的ESP32开发板调整
  5. // 全局变量
  6. HardwareSerial Serial1(1); // 使用串口1
  7. String inputString = "";   // 存储接收到的数据
  8. bool stringComplete = false; // 是否接收到完整字符串
  9. void setup() {
  10.   // 初始化串口0(用于调试)
  11.   Serial.begin(115200);
  12.   
  13.   // 初始化串口1(用于外部通信)
  14.   Serial1.begin(115200, SERIAL_8N1, SERIAL1_RX_PIN, SERIAL1_TX_PIN);
  15.   
  16.   // 等待串口初始化完成
  17.   delay(1000);
  18.   
  19.   Serial.println("ESP32 Serial Communication Example");
  20.   Serial.println("Type a message and press Enter to send via Serial1");
  21.   Serial.println("Messages received on Serial1 will be displayed here");
  22. }
  23. void loop() {
  24.   // 检查串口0(调试端口)是否有数据输入
  25.   if (Serial.available()) {
  26.     char inChar = (char)Serial.read();
  27.    
  28.     // 如果收到换行符,则认为输入完成
  29.     if (inChar == '\n') {
  30.       // 通过串口1发送数据
  31.       Serial1.println(inputString);
  32.       Serial.print("Sent: ");
  33.       Serial.println(inputString);
  34.       
  35.       // 清空输入字符串
  36.       inputString = "";
  37.       stringComplete = false;
  38.     } else {
  39.       // 将字符添加到输入字符串
  40.       inputString += inChar;
  41.     }
  42.   }
  43.   
  44.   // 检查串口1是否有数据返回
  45.   if (Serial1.available()) {
  46.     String response = Serial1.readStringUntil('\n');
  47.     Serial.print("Received: ");
  48.     Serial.println(response);
  49.   }
  50.   
  51.   // 短暂延迟以减少CPU使用率
  52.   delay(10);
  53. }
复制代码
  
PlatformIO配置文件 (platformio.ini)
  1. [env:esp32dev]
  2. platform = espressif32
  3. board = esp32dev
  4. framework = arduino
  5. 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)
  • 如果需要更复杂的协议,可以扩展此代码实现数据帧解析等功能
这个示例提供了基本的双向串口通信功能,您可以根据实际需求进行扩展和修改
 

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册