You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ESP32硬件串口接收乱码问题:原因排查与分析

ESP32硬件串口初始化前输出乱码问题探究

测试环境与配置

  • 两块ESP32开发板通过串口线背对背连接,使用引脚16作为Serial2的Rx、引脚17作为Serial2的Tx
  • 接收端通过Serial0(USB串口)回显Serial2收到的消息,便于PC端监控
  • 无其他外接线路,仅保留Rx/Tx引脚连接及USB供电线
  • 测试为后续项目做准备:一块板通过Serial2发送命令,另一块执行命令

测试程序

接收端程序

String str;
void setup() {
  Serial.begin(115200);
  Serial2.begin(115200);
}

void loop(){
  while(Serial2.available()) {  
    str = Serial2.readStringUntil('\n');
    Serial.println(str);
    Serial2.println("OK");
  }
}

初始发送端程序

void setup() {
  Serial2.begin(115200);
}

void loop(){
  Serial2.println("Hello world");
  delay(4000);
}

延迟初始化版本发送端程序

void setup() {
  delay(10000);
  Serial2.begin(115200);
}

void loop(){
  Serial2.println("Hello world");
  delay(4000);
}

问题现象

  • 程序正常运行后,消息收发准确,无异常
  • 当其中一块板未完成初始化时,接收端Serial0会输出大量随机乱码,例如K⸮}⸮⸮⸮KK⸮-mo⸮⸮m⸮⸮[K⸮⸮⸮⸮⸮
  • 发送端完成初始化并开始发送常规消息后,乱码消失
  • 尝试过降低波特率至9600、连接两块板的GND引脚,均无法解决乱码问题
  • 发送端在初始化Serial2前添加10秒延迟时,接收端在这10秒内持续输出乱码

补充说明

已通过简单纠错技术解决临时问题,并非寻求解决方案,而是作为串口使用警示分享,核心需求是探究ESP32出现该异常行为的根本原因,已在ESP32 Git仓库提交bug报告。

内容的提问来源于stack exchange,提问作者Raja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 14:05:01