很多人第一次使用 ESP32-S3 时,会遇到一个很容易误判的问题:

设备管理器已经出现了 COM8,说明电脑似乎已经识别开发板;但打开 Arduino IDE 后,却找不到 ESP32-S3 开发板,或者安装开发板支持包时一直失败。

说明:COM8 只是我这台电脑当时分配到的端口号。其他电脑可能显示为 COM3COM5COM12 等,请以自己设备管理器中实际出现的端口为准,不需要特意改成 COM8。

这并不矛盾。COM 口、Arduino 开发板支持包和开发板上的真实芯片,是三个不同层级。

本文从这三个层级入手,完整记录一次 ESP32-S3 从识别串口到成功烧录的排查过程。

一、先理解:有 COM 口不代表 Arduino IDE 已经支持 ESP32-S3

Windows 设备管理器里出现类似下面的信息:

Silicon Labs CP210x USB to UART Bridge (COM8)  // 本文电脑上的示例

它只说明:

  • USB 数据线能够传输数据;
  • CP210x 驱动已经工作;
  • USB 转串口芯片被 Windows 识别;
  • 电脑分配了一个可用串口。

但 Arduino IDE 要编译和烧录 ESP32-S3,还需要另外安装 Espressif 提供的开发板支持包。

可以把它们理解为:

层级负责什么常见表现
USB 串口驱动让 Windows 识别串口设备管理器出现一个 COM 端口,例如本文的 COM8
ESP32 开发板支持包提供编译器、工具链和板型配置Arduino IDE 中出现 ESP32S3 Dev Module
实际芯片型号决定应该选择哪一种板型ESP32、ESP32-S3、ESP32-C3 不能混选

所以,“有 COM 口但没有开发板”通常不是板子坏了,而是第二层还没有配置完成。

二、在 Arduino IDE 中添加 ESP32 开发板地址

打开:

文件 -> 首选项 -> 其他开发板管理器地址

添加 Espressif 官方地址:

https://espressif.github.io/arduino-esp32/package_esp32_index.json

如果访问 GitHub 较慢,也可以尝试国内镜像:

https://jihulab.com/esp-mirror/espressif/arduino-esp32/-/raw/gh-pages/package_esp32_index_cn.json

多个地址之间换行或按 Arduino IDE 当前版本要求分隔即可。

三、安装 esp32 by Espressif Systems

打开:

工具 -> 开发板 -> 开发板管理器

搜索 esp32,安装:

esp32 by Espressif Systems

如果出现下面这类错误:

Download failed
A connection attempt failed

多数情况下是下载链路超时,不是 CP210x 驱动损坏,也不是 ESP32-S3 损坏。可以依次尝试:

  1. 更换网络或手机热点;
  2. 改用镜像地址;
  3. 关闭并重新打开 Arduino IDE;
  4. 删除失败的下载缓存后重试;
  5. 避免同时配置多个失效或互相冲突的地址。

四、通用 ESP32-S3 应该选哪个开发板

如果使用的是常见 ESP32-S3 通用开发板,可以先选择:

工具 -> 开发板 -> esp32 -> ESP32S3 Dev Module

电商页面中的 N16R8Type-C 并不是 Arduino IDE 的板型名称:

  • N16:通常表示 16 MB Flash;
  • R8:通常表示 8 MB PSRAM;
  • Type-C:表示开发板使用 USB Type-C 接口;
  • ESP32-S3:才是最关键的芯片系列。

先选对 ESP32S3 Dev Module,再根据实际板卡设置 Flash 和 PSRAM 参数。

五、不要把经典 ESP32 当成 ESP32-S3

如果烧录时出现:

A fatal error occurred: This chip is ESP32 not ESP32-S3.
Wrong --chip argument?

这句话已经给出了关键信息:电脑读到的是经典 ESP32,而当前工程却按 ESP32-S3 编译和烧录。

如果日志中出现:

Chip is ESP32-D0WD-V3

通常应该选择:

ESP32 Dev Module

而不是 ESP32S3 Dev Module

判断芯片时,优先相信:

  1. 模组金属屏蔽罩上的型号;
  2. esptool 连接后打印的芯片信息;
  3. 开发板原理图或商家参数。

不要只根据板子外形和 USB 接口判断。

六、选择正确的 COM 口

打开:

工具 -> 端口

选择设备管理器中对应的端口。我的电脑显示为 COM8,你的电脑可能是其他编号,以实际显示为准。

如果电脑上有多个串口,最简单的确认方法是:

  1. 拔掉开发板;
  2. 观察哪个 COM 口消失;
  3. 重新插入;
  4. 选择重新出现的端口。

七、先用最小程序验证烧录链路

不要一开始就上传带灯带、舵机和网络功能的大工程。先用最小程序确认板型、端口和上传链路。

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

void loop() {
  Serial.println("ESP32-S3 is running");
  delay(1000);
}

上传成功后,输出中通常会看到:

Hash of data verified.
Leaving...
Hard resetting via RTS pin...

打开串口监视器并设置为 115200,每秒看到一行文字,说明最基本的编译、烧录和串口输出都已经正常。

八、一直卡在 Connecting... 怎么办

可以按下面顺序排查:

  1. 关闭 Arduino IDE 的串口监视器以及其他占用串口的软件;
  2. 按住开发板上的 BOOT
  3. 点击上传;
  4. 出现 Connecting... 后松开 BOOT
  5. 将上传速度从 921600 降到 460800115200
  6. 暂时拔掉灯带、舵机、传感器等外设;
  7. 更换确认支持数据传输的 USB 线和 USB 接口。

外设可能占用启动相关管脚,也可能让供电瞬间下降,所以最小系统测试很重要。

九、最终排查清单

  • 设备管理器能看到 CP210x、CH340 或 USB JTAG/Serial 设备;
  • Arduino IDE 已添加 ESP32 开发板管理器地址;
  • 已安装 esp32 by Espressif Systems
  • ESP32-S3 选择 ESP32S3 Dev Module
  • 经典 ESP32 选择 ESP32 Dev Module
  • 端口与设备管理器中的 COM 号一致;
  • 最小程序可以正常上传并输出串口信息。

总结

遇到“有 COM 口但找不到开发板”时,不要立刻把问题归因于硬件损坏。

更有效的排查顺序是:

USB 串口驱动
    ↓
ESP32 开发板支持包
    ↓
真实芯片型号
    ↓
Arduino IDE 板型
    ↓
COM 端口
    ↓
最小程序烧录

只要把这几个层级拆开,问题通常很快就能定位。

我是阿白,感谢您的观看。

参考资料

更多推荐