ESP32-C3 GPIO 速查
共 22 个 GPIO(0–21),模组实际引出 15 个,其中完全自由的 8 个(绿点),其余带前提。点击引脚看说明,用筛选按钮找可用脚。
ESP32-C3RISC-V · QFN32
点击任意引脚查看说明 —— 绿点自由使用,橙点有前提,红点勿用。
SPI 跑满 80MHz
SPI2 最高能跑 80MHz,前提是走 IO_MUX 直连:ESP-IDF 驱动只有在 bus 引脚(SCLK / MOSI / MISO 中实际用到的)全部落在 IO_MUX 位置时才走直连;任何一个不匹配,整条总线就静默改走 GPIO 矩阵,没有任何报错或日志。矩阵路径官方只保证 40MHz 及以下的行为与直连一致 [3],而分频不看路由,配 80MHz 引脚上照样输出 80MHz——超规格带病跑,可能点得亮,也可能间歇花屏。
| 信号 | IO_MUX 引脚 |
|---|---|
| SCLK (FSPICLK) | GPIO6 |
| MOSI (FSPID) | GPIO7 |
| MISO (FSPIQ) | GPIO2 |
| CS0 (FSPICS0) | GPIO10 |
CS 不算 bus 引脚,走 GPIO 矩阵也不影响直连,但 GPIO10 空着就直接用。注意 Arduino 核的默认 SPI 引脚(SCK=4 / MOSI=6 / MISO=5 / SS=7 [7])与 IO_MUX 位置不重合,走的是矩阵,只在 40MHz 内可靠——像 TFT_eSPI 这样自己指定引脚的库,按上表填即可。
接线示例(以 ST7789 屏为例,只写不读,MISO 不接):
| SCLK | MOSI | CS | DC | RST | BLK |
|---|---|---|---|---|---|
| GPIO6 | GPIO7 | GPIO10 | GPIO4 | GPIO5 | GPIO3 |
c
// bus 引脚匹配 IO_MUX 后,驱动自动走直连
spi_bus_config_t buscfg = {
.sclk_io_num = 6,
.mosi_io_num = 7,
.miso_io_num = -1, // 只写不读
.quadwp_io_num = -1,
.quadhd_io_num = -1,
};
spi_device_interface_config_t devcfg = {
.clock_speed_hz = SPI_MASTER_FREQ_80M,
.spics_io_num = 10,
// ...
};c
// User_Setup.h
#define TFT_SCLK 6
#define TFT_MOSI 7
#define TFT_CS 10
#define TFT_DC 4
#define TFT_RST 5
#define TFT_BL 3
#define TFT_BACKLIGHT_ON HIGH
#define SPI_FREQUENCY 80000000选引脚决策
- 高速 SPI(屏幕 / 外部 flash)→ 固定
6 / 7,要读再加2;CS 不挑脚,10空着就直接用 - I2C / UART1 / PWM / WS2812 / CAN / I2S → 都走 GPIO 矩阵,没有固定引脚,任意自由脚都行
- I2C 记得上拉。Arduino 核默认
SDA=8/SCL=9[7]——I2C 的上拉正好满足这两个 strapping 脚的要求,把它们让给 I2C 等于省出两个自由脚 - ADC → 只用
GPIO0–4(ADC1);GPIO5的 ADC2 有硬件缺陷,官方已放弃支持 - 深度睡眠唤醒 → 只有
GPIO0–5(RTC 域) - 上电敏感负载(继电器 / MOS 驱动)→ 避开
2 / 8 / 9(strapping)、18 / 19(USB)和21(复位后输出 ROM 日志),首选3 / 4 / 5 / 6 / 7 / 10 - 模组上
GPIO11–17当作不存在;裸片画板时12–17接自己的 flash,11(VDD_SPI)在 flash 由 3.3V 直供时还能当普通 GPIO 用 [8]
数据来源
核验于 2026-08-31。文中及引脚说明里的 [n] 编号对应以下来源:
- ESP32-C3 Datasheet — Strapping Pins(表 3-1 / 3-3 / 3-4)
- ESP-IDF — GPIO & RTC GPIO (ESP32-C3)
- ESP-IDF — SPI Master Driver (ESP32-C3)
- ESP-IDF — ADC Oneshot:ADC2 errata
- esptool — Boot Mode Selection (ESP32-C3)
- ESP32-C3-DevKitM-1 User Guide
- arduino-esp32 — variants/esp32c3/pins_arduino.h
- ESP Hardware Design Guidelines — ESP32-C3 Schematic Checklist:VDD_SPI 作 GPIO 与 flash 走线