#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)

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

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

ESP32 串口通信代码 (VS Code 开发环境)的更多相关文章

  1. 打造TypeScript的Visual Studio Code开发环境

    打造TypeScript的Visual Studio Code开发环境 本文转自:https://zhuanlan.zhihu.com/p/21611724 作者: 2gua TypeScript是由 ...

  2. 搭建Spark源码研读和代码调试的开发环境

    转载自https://github.com/linbojin/spark-notes/blob/master/ide-setup.md 搭建Spark源码研读和代码调试的开发环境 工欲善其事,必先利其 ...

  3. ESP32与MicroPython入门-01 搭建开发环境

    ESP32简介 ESP32 是上海乐鑫公司开发的一款比较新的32位微控制器,它集成了WiFi及蓝牙等功能,有着性能稳定.功耗低.价格低廉等特点,非常适用于物联网开发,但也可以作为普通的MCU使用. E ...

  4. java 串口通信 代码

    下面是我自己实现的串口接收的类,串口发送比较简单,就直接发送就可以了.下面的这个类可以直接使用. package com.boomdts.weather_monitor.util; import ja ...

  5. Socket通信(1):搭建开发环境

    一. 准备工具 1. mac环境下的VMware Fusion, 下载地址:https://www.newasp.net/soft/462096.html 2. ubuntu 14.04 LTS, 不 ...

  6. 使用Visual Studio Code搭建TypeScript开发环境

    使用Visual Studio Code搭建TypeScript开发环境 1.TypeScript是干什么的 ? TypeScript是由微软Anders Hejlsberg(安德斯·海尔斯伯格,也是 ...

  7. Qt串口通信专题教程

    查看以前的教程:Qt编写串口通信程序全程图文讲解 查看Wincom和Lincom介绍:Qt跨平台串口通信软件Wincom与Lincom 下载软件,文档和源码:资源下载 ——————————————20 ...

  8. Windows下的Objective-C集成开发环境(IDE)(转)

    Objective-C是苹果软件的编程语言,想要上机学习.调试,有一个集成开发环境(IDE)方便很多.有三类方法搭建Objective-C的集成开发环境: 1)   使用苹果的平台,集成开发环境使用X ...

  9. 【软件使用】Windows下的Objective-C集成开发环境搭建(IDE)

    Objective-C是苹果软件的编程语言,想要上机学习.调试,有一个集成开发环境(IDE)方便很多.有三类方法搭建Objective-C的集成开发环境: 1)   使用苹果的平台,集成开发环境使用X ...

  10. Windows下的Objective-C集成开发环境(IDE)

    Windows下的Objective-C集成开发环境(IDE) 分类: Objective-C2012-04-20 21:54 26631人阅读 评论(42) 收藏 举报 windowside编译器c ...

随机推荐

  1. A2A Java 示例

    克隆代码 git clone https://github.com/google-a2a/a2a-samples cd a2a-samples/samples/java 本项目是 Agent-to-A ...

  2. 关于MUI框架混合AS开发app项目中遇到的百度地图闪退,不显示地图问题的一次记录

    才进入公司就让我解决MUI混合app出现的BUG,让只会纯纯原生的我有点崩溃,三天就要结果,不过幸不辱命,今天我把这个问题解决了. 这个BUG是:百度地图崩溃导致应用闪退 上图是H5+androidS ...

  3. Golang基础笔记四之map

    本文首发于公众号:Hunter后端 原文链接:Golang基础笔记四之map 这一篇笔记介绍 Golang 里 map 相关的内容,以下是本篇笔记目录: map 的概念及其声明与初始化 map 的增删 ...

  4. UFT 执行cmd command & kill task

    1. execute cmd command 2. kill task

  5. 故障处理:ORA-04031真实案例分享

    我们的文章会在微信公众号IT民工的龙马人生和博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢! 由于博客中有大量代码,通过页面浏览效 ...

  6. C# 列表项下拉窗口宽度自适应

    /// <summary> /// 列表项下拉窗口宽度自适应 /// </summary> /// <param name="comboBox"> ...

  7. Codeforces Round #697 (Div. 3) ABCDE 题解

    久违的cf服务器爆炸场 A. Odd Divisor 思路:任何一个数都可以写成\(n = k2^m,其中k是一个奇数\),若k=1,那么n就一定是一个2的幂. view code #include& ...

  8. 模拟退火 python 实现

    简介 一直以为是一个高深的算法,好像据说在量子计算机中可以应用.发现原理并不难 参考链接 https://blog.csdn.net/google19890102/article/details/45 ...

  9. 程序员Git工作必备命令

    1.基础配置 #设置用户名 git config --global user.name"你的名字" #设置邮箱 git config --global user.email &qu ...

  10. “造芯”之 Proprietary闭源 与 Open Source开源(RISC-V) 对比

    一.造芯的RISC-V(Open Source) 与 Proprietary 历史鉴证: 共和的Top-Down 与 Bottom-Up的民主 是统一的. Open Source开源 与 Propri ...