工具

ESP32 GPIO 选脚检查器

选芯片、填引脚号,立刻知道这根脚能不能用、有哪些坑。ESP32-S3 与原始 ESP32 数据分开核对,依据乐鑫官方 datasheet。

输入你打算用的 GPIO 编号,工具会告诉你它是否物理存在、能不能随手用,以及有没有 strapping / flash / USB / 仅输入这些「雷区」。数据依据乐鑫官方 datasheet 整理。

GPIO4可用(通用 IO)
ADC 可用
物理是否存在
能否随手做常规 IO

GPIO4 是一个干净的通用 IO,输入输出、PWM 都能用,同时还带 ADC,可做模拟量采样。放心接外设。

选脚犯难时,ESP32-S3 上这些是相对干净、可闭眼用的通用脚:4、5、6、7、15、16、17、18、8。具体仍以你手上模组的 datasheet 为准。

怎么用

先在下拉里选你的芯片——ESP32-S3 还是 原始 ESP32,两者的引脚布局差别不小,别混着看。 再把你打算用的 GPIO 编号填进去,工具立刻给出三件事:这根脚物理上存不存在能不能随手拿来做常规输入输出,以及它带着哪些「雷区」标记(strapping、flash/PSRAM 占用、USB-JTAG、仅输入、ADC)。 下面还会跟一句人话建议和一组「闭眼可用」的推荐脚,供你快速选。

全部计算在你浏览器本地完成,不上传任何数据。结果依据乐鑫官方 datasheet 整理,但 flash/PSRAM 的具体占用范围会随模组封装(Quad / Octal)变化,最终仍以你手上模组的手册为准。

为什么选错脚会翻车

新手接线最常见的三类「玄学不工作」,几乎都能归到选脚上:

  • 接了不存在的脚:ESP32-S3 的编号排到 48,但 22/23/24/25 是缺号的空脚。代码写了编译也不报错,烧进去毫无反应——因为它物理上就不在。
  • 占了 flash/PSRAM 的脚:这些脚上电时要跟片上/在板存储通信把固件读出来跑,你接了别的外设,芯片就读不到程序,表现为「一接就起不来 / 反复重启」。
  • 踩了 strapping 脚:复位瞬间它的电平决定启动模式,外接强上下拉会让板子进不了下载模式或启动异常——偏偏平时又看着能用,最难排查。
  • 拿仅输入脚做输出:原始 ESP32 的 34–39 不能输出、也没内部上下拉,接 LED 不亮、接按钮读不稳,很多人卡半天才反应过来。
  • 误占 USB-JTAG:ESP32-S3 的 19/20 默认走 USB-Serial-JTAG,占了它虽然板子还能跑,但会丢掉免串口芯片的下载和调试通道。

这些坑写代码时一点都看不出来,只有上电后用现象倒推,特别耗时间。选脚前花两秒查一下,比接完线再排障划算得多。

常见问题

ESP32-S3 的 GPIO22、23、24、25 去哪了?
ESP32-S3 的 GPIO 编号是 0 到 48,但并不是每个数字都对应一根真管脚——22、23、24、25 这四个号在芯片上根本没引出,datasheet 里直接缺号。你在代码里写 GPIO22 编译能过,烧进去却什么都不会发生,因为它压根不存在。很多人对着 ESP32(原始版)的老资料在 S3 上接线,就会栽在这里。选脚前先在这个工具里点一下确认,比对着别人的接线图照抄靠谱。
strapping 脚到底能不能用?
能用,但要小心。strapping(上电采样)脚在芯片复位那一瞬间会被读取电平,用来决定启动模式(比如进不进下载模式)。平时它就是普通 IO,麻烦出在「上电那一刻」:如果你在这脚上外接了强上拉/下拉,或者接了个开机就会把电平拉走的负载,芯片可能烧录失败或者根本起不来。所以原则是——能用普通 IO 就别占 strapping 脚;非用不可时,保证复位瞬间电平是对的,必要时串个电阻缓冲。ESP32-S3 的 strapping 脚是 0/3/45/46,原始 ESP32 是 0/2/5/12/15。
为什么有些脚一接外设板子就启动不了?
大概率是你占用了连接片上/在板 SPI flash 或 PSRAM 的脚。这些脚在上电时要跟 flash 通信把固件读出来运行,你把它接到别的外设上,等于掐断了芯片的「记忆」,自然起不来。ESP32-S3 上这段大致是 GPIO26–37(Quad 型号少一些,Octal PSRAM 型号占得更多,随模组封装变化);原始 ESP32 是 GPIO6–11。这些脚工具里会标红「flash/PSRAM 占用」,看到就绕开。
GPIO34–39 接了按钮为什么读不到、接 LED 也不亮?
因为原始 ESP32 的 GPIO34–39 是「仅输入」脚:它们没有内部上下拉电阻,也完全不能做输出。接 LED 不亮,是因为它根本输出不了高低电平;接按钮读不稳,是因为你没给外部上下拉、脚是悬空的。这几个脚只适合纯读取场景——接 ADC 采样、或接带外部上下拉的按钮。要驱动任何东西(LED、继电器、蜂鸣器),请换一个能输出的普通脚。ESP32-S3 没有这个限制,所有存在的脚都能输入输出。

延伸阅读

想从头搞懂引脚是怎么回事,先读 点亮第一个 LED,把「一根线为什么能控制硬件」讲透; 再看 ESP32-S3 vs STM32 vs 树莓派怎么选板 决定主控。 按钮相关的 strapping 坑,读按钮与去抖 里有实战演示。 当你把选脚这类基本功攒齐,就可以往 机器人与具身智能专题 这样的前沿方向走了。