ESP32-C3 Super Mini 入门:开发板设置、串口没输出、BOOT 救回与引脚图

Cartoon of a tiny black ESP32-C3 Super Mini board with silver USB-C, two black buttons and a red component, connected to a black USB cable, with a teal data speech bubble and two loose gold-pin header strips beside it

要在 Arduino IDE 里用上 ESP32-C3 Super Mini,先换一条能传数据的 USB-C 线,开发板选 Nologo ESP32C3 Super Mini。如果用的是通用的 ESP32C3 Dev Module,就必须把 USB CDC On Boot 设成 Enabled,否则串口监视器(Serial Monitor)一片空白。端口不见了的板子,按住 BOOT 再按一下 RST 就能救回来。

ESP32-C3 Super Mini 只有 22.5×18mm,却塞进了 2.4GHz Wi-Fi 和低功耗蓝牙(Bluetooth LE),用起来和任何一块 ESP32 DevKit 都不一样。还在 WROOM DevKit、S3 和 C3 之间犹豫?这个问题我们在ESP32 型号怎么选里已经讲过了。

Super Mini 和普通 ESP32 DevKit 有什么不一样?

ESP32-C3 Super Mini 板上没有 USB 转串口芯片。WROOM DevKit 在 USB 接口和 ESP32 之间有一颗 CP2102 或 CH340 桥接芯片,由 USB 线直接供电,所以一插上 COM 口就会出现,而且不管 ESP32 在做什么——死机、睡眠,还是根本没烧程序——它都一直在。Super Mini 把这颗芯片省掉了,因为 C3 芯片本身就内置了 USB Serial/JTAG 控制器:USB-C 接口几乎是直接连到 ESP32-C3 上的。

没有了桥接芯片,串口就变成芯片内部的一个外设,只有在芯片醒着、正常运行时才存在——一进入深度睡眠或者程序一崩溃,端口也跟着消失。而且既然没有桥接芯片来决定串口输出往哪里走,Arduino 核心就得自己决定 Serial 指的是 USB 连接,还是实体的 TX/RX 引脚——这就是下面要讲的 USB CDC On Boot 设置。

双格卡通对比图:左边一块黑色 DevKit 板,USB 信号先经过一颗灰色小桥接芯片,再到达带银色屏蔽罩的 ESP32 模块;右边一块很小的黑色 Super Mini 板,USB-C 信号直接进入裸露的银色芯片
DevKit 的 USB 要先经过一颗独立、始终有电的桥接芯片,所以它的 COM 口从不消失。Super Mini 的 USB 直接进入 C3——更小、更便宜,但端口和芯片同生共死。

入门需要准备哪些零件?

一条 USB 线里有四根线——5V、地线,以及 D+/D− 这一对数据线——而很多充电线根本没有数据线。用这种线,板子会通电、看起来一切正常,却永远不会出现端口。这是「检测不到板子」最常见的原因,所以主清单里放了一条可靠的 USB-A 转 USB-C 数据线。

板子附带两条 8 针公排针,出厂时没有焊上——板边的邮票孔本来就是为了平贴焊到底板 PCB 上而设计的,所以焊不焊排针由你决定。本文直到面包板那一节之前的每一步都不需要烙铁,因为测试用的 LED 就在板上;到了那一步,我们的焊接入门指南会把手法讲清楚。

Arduino IDE 要怎样设置 ESP32-C3 Super Mini?

在 Arduino IDE 里打开 Boards Manager(开发板管理器),搜索 “esp32″,安装 esp32 by Espressif Systems。然后选择 Tools → Board → esp32 → Nologo ESP32C3 Super Mini,插上板子,再到 Tools → Port 里选新出现的端口(Windows 上是 COMx,Mac 上是 /dev/cu.usbmodem…)。如果找不到这个选项,就把 esp32 包更新到最新。不需要安装驱动:C3 的 USB 是 Windows、macOS 和 Linux 本来就支持的标准串口设备,CH340 或 CP2102 驱动在这里派不上用场。

Tools 菜单里的 USB CDC On Boot 决定 Serial 往哪里送:设成 Enabled,它对应 USB 连接(CDC 是一种表现得像串口的 USB 设备类别);设成 Disabled,它对应 21 和 20 脚上的硬件 UART。设成 Disabled 时,程序照样运行、照样打印——只是打印到两根什么都没接的实体引脚上——所以串口监视器什么也看不到。Nologo ESP32C3 Super Mini 的 USB CDC On Boot 菜单只有 Enabled 一个选项,不可能设错;通用的 ESP32C3 Dev Module 默认却是 Disabled,这正是「ESP32-C3 串口监视器没反应」最常见的原因。设成 Disabled 也照样能上传,因为上传工具对话的是引导 ROM,而不是你的程序,于是板子看起来一切正常,却什么都不打印。

第一个要上传的程序是什么?

// ESP32-C3 Super Mini 首次运行测试:板载 LED + USB 串口
const int LED_PIN = 8;  // 板载 LED = GPIO8(两个开发板选项下都正确)

void setup() {
  Serial.begin(115200);  // 走原生 USB 时这个数字会被忽略——填多少都行
  pinMode(LED_PIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_PIN, LOW);   // 板载 LED 接在 3.3V 上,所以 LOW = 亮
  Serial.println("LED on");
  delay(500);
  digitalWrite(LED_PIN, HIGH);  // HIGH = 灭
  Serial.println("LED off");
  delay(500);
}

点击 Upload(上传)。正常情况下,C3 的 USB 控制器会自己把芯片复位进上传模式——相当于 DevKit 上自动复位三极管做的事——但前提是端口还活着;如果上传失败或端口不见了,就用下面讲的 BOOT 方法。程序跑起来后,打开串口监视器——波特率随便选:原生 USB 没有需要对上的波特率时钟,所以 DevKit 上因波特率不对而出现的乱码,在这里不可能发生。

注意 LED 的逻辑是反过来的。板载 LED 接在 3.3V 电源和 GPIO8 之间,引脚是靠灌入电流来点亮它:写 LOW 才会接通电路——看起来「反着闪」是接法使然,不是故障。复位后最初那一瞬间打印的内容,也可能在电脑重新连接时丢失,所以如果 setup() 里只打印一次的那一行始终没出现,就在前面先加一句 delay(1000);。不要改用 while (!Serial);——在 C3 上它会一直等到有电脑在监听,所以插在手机充电器上时,程序永远不会开始运行。

COM 口为什么会消失?按 BOOT 怎样把它找回来?

Super Mini 的 COM 口用到一半突然消失时,用惯 DevKit 的人第一反应往往是板子坏了。其实几乎从来不是:端口就在 C3 内部,所以任何让芯片无法正常运行的情况——深度睡眠、不断崩溃重启、程序改动了 USB 引脚的配置——都会让端口跟着从电脑上消失。

救回来的办法就在 USB 接口下方那两颗小按键上:按住 BOOT(左边那颗),按一下 RST,再松开 BOOT。BOOT 接在 GPIO9 上,这是一个 Strapping 引脚——引导 ROM 会在复位松开的那一瞬间读取它的电平,以决定用哪种方式启动。如果那一刻 GPIO9 是低电平,芯片就会进入 ROM 的下载模式,而不是运行你的程序;下载模式下 ROM 会保持 USB 端口在线并一直等待,所以不管上一个程序在做什么,你都能得到一个稳定的端口。如果新程序上传后没有自己开始运行,按一下 RST 就好。

一开机就睡眠或崩溃的程序,也不需要额外处理:在下载模式下它根本不会运行,所以上传会把它完整替换掉。普通上传不会清掉的,是已经储存下来的数据——保存过的 Wi-Fi 账号密码、Preferences、文件。如果新程序因为这些残留数据仍然表现异常,就在 Tools 菜单里把 Erase All Flash Before Sketch Upload 打开,只用这一次:新程序写入之前,整个 Flash 会被清空。用完记得改回 Disabled,否则每次上传都会把这些数据再清一遍。

卡通特写:Super Mini 银色 USB-C 接口下方的两颗黑色按键,左边那颗被深蓝色箭头按住、周围有青色光圈,右边那颗被轻按一下,旁边一个青色徽章表示 USB 连接已恢复
救援动作:按住 BOOT(左键),按一下 RST(右键),再松开 BOOT——ROM 引导程序接管,端口重新出现。

ESP32-C3 Super Mini 引脚图:哪些 GPIO 可以放心用?

ESP32-C3 Super Mini 引出了十三个 GPIO——0 到 10、20 和 21——另外还有 5V、3.3V 和 G。5V 引脚连着 USB 电源,并给板载稳压器供电,所以插着 USB 的时候,千万不要再从另一个电源往这个引脚供电:两个电源会互相倒灌电流。所有 GPIO 都是严格的 3.3V 逻辑,5V 传感器的输出直接接到引脚上可能会损坏芯片;请用 3.3V 给传感器供电,或者给它的输出加一个分压:串联 10kΩ,再从引脚接 20kΩ 到 G(5V 就变成 3.3V)。

引脚 在这块板上的作用 注意事项
0, 1, 3, 4 模拟输入 A0/A1/A3/A4(ADC1)+ 通用 I/O 模拟输入和一般用途的首选
2 模拟输入 A2(ADC1)+ 通用 I/O Strapping 引脚——复位时要保持高电平(Espressif 建议加上拉电阻)
5 通用 I/O(核心里仍标为 A5) 属于 ADC2,Arduino 核心在 C3 上把它禁用了(芯片勘误)——analogRead(5) 只会返回 0;模拟输入请用 0–4
6, 7, 10 通用 I/O(6/7 是默认的 SPI MOSI/SS;SCK/MISO 是 4/5) 干净的数字引脚
8 板载 LED,默认 I2C SDA Strapping 引脚;与 LED 共用
9 BOOT 按键,默认 I2C SCL Strapping 引脚;复位时为 LOW = 进入引导程序
20, 21 UART0 RX/TX 关闭 USB CDC 时它们就是 Serial;开启时,接在这里的 UART 模块要用 Serial0

ESP32-C3 的 Strapping 引脚是 GPIO2、8 和 9。启动之后它们就是普通引脚——风险只在复位那一刻:如果有模块把其中一个往错误的方向拉,板子可能启动不了,或者直接掉进引导程序——所以不要在 2、8、9 上接任何上电时会强行拉高或拉低电平的东西。

有一个冲突一定要知道:默认的 I2C 引脚是 SDA = 8、SCL = 9——正好是 LED 引脚和 BOOT 按键。如果不改,LED 会随着总线通信闪烁,按下 BOOT 还会把时钟线拉到地。解决只需要一行,因为 ESP32 核心允许 I2C 使用任意引脚:在任何 I2C 库运行之前写上 Wire.begin(6, 7);,把 SDA 移到 6、SCL 移到 7,这是两个干净的引脚。如果同时还要用 SPI(默认引脚 4 到 7),就改用 Wire.begin(0, 1);。

怎样在面包板上让外接 LED 闪起来?

焊排针时长脚朝下、按键那一面朝上,先把两条排针都插进面包板固定住,就能焊得笔直。焊好之后,Super Mini 的公排针可以直接插进 400 孔面包板,让板子横跨中间的凹槽(面包板怎么用讲解了那些看不见的内部连接)。经典的第一个电路,就是在一个安全引脚上接一颗红色 LED 和一颗电阻包里的电阻——GPIO3:它没有 Strapping 功能,也不是任何总线的默认引脚。数着孔找它:从 5V、G、3.3 开头的那一侧往下数,第五个孔就是 GPIO3。第三个孔是 3.3V;电阻插在那里的话,不管程序怎么写,LED 都会一直亮着。

红色 LED 的压降约为 2V,电阻上剩下 3.3 − 2 = 1.3V,所以用 330Ω 时电流是 1.3 ÷ 330 ≈ 4mA——亮度清楚可见,又远低于引脚能安全输出的电流。电阻包里 220Ω(≈6mA)到 330Ω 之间的任何一颗都可以;这种蓝色五环电阻上,330Ω 的色环是橙橙黑黑棕,220Ω 是红红黑黑棕。

从 到 说明
Super Mini 第 3 脚 电阻第 1 只脚(面包板同一行) 220–330Ω,不分方向
电阻第 2 只脚 LED 长脚(正极),两者共用一行 长脚 = 正极
LED 短脚 蓝色 − 电源轨,再用一根公对公杜邦线从 − 电源轨接到板子的 G 脚 短脚 = 负极

只要把程序里的一行改成 const int LED_PIN = 3;,再上传一次。现在外接 LED 闪烁的节奏和打印出来的信息正好相反,而这正是这一课的重点:这颗 LED 是从引脚经过它接到地,所以 HIGH 才点亮;板载 LED 则挂在 3.3V 上,所以要 LOW 才亮。

WROOM DevKit 能做、Super Mini 做不到的有哪些?

ESP32-C3 Super Mini 的真实局限:C3 是单核 RISC-V 芯片,主频 160MHz,配 4MB Flash,而 WROOM 是双核 240MHz;GPIO 也只有十三个,WROOM 则有二十五个以上。它没有经典蓝牙:C3 只有 BLE 5.0 射频,所以 BLE 传感器和手机 App 都能用,但把音频串流到音箱(A2DP)或旧式的蓝牙串口就做不到——芯片上根本没有那部分硬件。它也没有 DAC 和触摸引脚:调用了 touchRead() 的 WROOM 程序连编译都过不了。对 Wi-Fi 传感器节点和大多数 IoT 项目点子来说,这些都无关紧要,小巧的体积反而占优;真有影响的话,ESP32 型号怎么选会带你一步步做决定。

我们常见的几种错误

端口没出现就怪板子。几乎都是那种没有数据线的充电线;先换一条确定能传数据的线再说。

选了 ESP32C3 Dev Module,串口监视器却一片安静。这个选项默认把 USB CDC On Boot 设为 Disabled,打印内容跑去了 21/20 脚,而不是 USB。改选 Nologo ESP32C3 Super Mini,或者把 CDC 打开。

把进入深度睡眠的板子当成坏了。上传深度睡眠程序之后端口消失,说明程序正在正常工作。按住 BOOT,按一下 RST,端口就回来了。

FAQ

为什么我的 ESP32-C3 Super Mini 串口监视器什么都不显示?

几乎都是 USB CDC On Boot 这个设置造成的。设成 Disabled 时,Serial 的输出会送到硬件 UART 引脚(21/20),而不是 USB。开发板选 Nologo ESP32C3 Super Mini(这个选项的 CDC 始终开启),或者设置 Tools → USB CDC On Boot → Enabled,重新上传,再重新打开串口监视器。

为什么插上板子后没有出现 COM 口?

通常是线的问题:只能充电的 USB-C 线没有数据线,板子能通电,却永远无法被电脑识别。如果换了确定能传数据的线还是没有端口,就按住 BOOT 再按一下 RST——崩溃或睡眠中的芯片会把端口一起带走,而 ROM 引导程序能把它找回来。

怎样手动让 ESP32-C3 Super Mini 进入上传模式?

按住 BOOT 键(GPIO9),按一下 RST,再松开 BOOT。引导 ROM 在复位时读到 GPIO9 为低电平,就会进入下载模式;在这个模式下 USB 端口保持在线,上传一定能成功。

ESP32-C3 Super Mini 支持经典蓝牙吗?

不支持。C3 只有 Bluetooth LE 5.0 射频——BLE App 和传感器都能用,但音频串流(A2DP)或旧式串口(SPP)这类经典蓝牙的工作,需要原版 ESP32,比如 WROOM-32 DevKit——ESP32-S3 也一样只有 BLE。

最后更新:2026年11月。有问题?WhatsApp 联系我们。

Leave a Reply

Your email address will not be published. Required fields are marked *