ESP32-C3-mini-1无法通过Serial.print()在串口监视器输出求助
ESP32-C3-mini-1 Serial.print()无输出问题排查方案
问题描述
两块ESP32-C3-mini-1 v1.1开发板均可正常上传代码,带LCD的板子能按预期在屏幕输出内容;Arduino IDE已开启CRC选项,波特率、端口设置正确,线缆可正常传输数据。但两块板的Serial.print()/Serial.println()均无法在串口监视器输出内容,仅按下RST按键时能看到ESP32的重启日志。
测试代码:
#include <WiFi.h> void setup() { Serial.begin(115200); delay(1000); // 预留串口监视器打开时间 Serial.print("MAC Address: "); Serial.println(WiFi.macAddress()); // 获取并打印MAC地址 } void loop() {}
预期输出:MAC Address: [开发板MAC地址]
排查与解决步骤
- 调整串口初始化延迟时间:将
delay(1000)改为delay(2000)或更长,部分电脑的USB串口枚举速度较慢,1秒可能不足以让串口监视器完成连接。 - 禁用USB CDC模式:打开Arduino IDE的「工具」菜单,找到「USB CDC On Boot」选项,设置为「Disabled」,重新上传代码。ESP32-C3默认开启的USB CDC可能会占用串口资源,导致Serial输出异常。
- 检查串口监视器换行符设置:在串口监视器右下角,将换行符选项设为「Both NL & CR」,
Serial.println()会输出换行+回车,若监视器设置不匹配,可能无法正常显示内容。 - 简化测试代码排查WiFi影响:暂时去掉WiFi相关代码,用最基础的串口测试代码验证:
如果这段代码能正常输出,说明原代码中void setup() { Serial.begin(115200); delay(2000); Serial.println("Hello World!"); } void loop() { Serial.print("运行时长: "); Serial.println(millis()); delay(1000); }WiFi.macAddress()可能存在问题,可尝试在获取MAC前添加WiFi.mode(WIFI_STA);初始化WiFi模式。 - 更新ESP32 Arduino核心库:打开Arduino IDE的库管理器,搜索「ESP32」,找到「ESP32 by Espressif Systems」并更新到最新版本,旧版本库可能存在串口相关的兼容性bug。
- 确认串口引脚映射:若开发板未使用默认USB转串口引脚,需在
Serial.begin()中指定引脚,例如:Serial.begin(115200, SERIAL_8N1, GPIO1, GPIO0);(根据实际硬件连接调整引脚号)
内容的提问来源于stack exchange,提问作者GrayFox
相关产品推荐
相关产品推荐

