认识板子与开发环境 / 引脚核对发布 内容更新

ESP32 引脚怎么查?GPIO、板上编号和保留引脚一次分清

以 DevKitC-1 v1.1 N8R8 为唯一参考板,从 J1/J3 排针追到 GPIO 与程序参数,排除 PSRAM、USB、启动和板载器件冲突。

读完能做什么
为自己的项目建立逐线引脚表,能解释 GPIO4、J1 No.4 和 Arduino 别名之间的关系。
开始之前
已辨认芯片、模组后缀和板修订;暂不接外设。
所需器材
ESP32-S3-DevKitC-1 v1.1 / ESP32-S3-WROOM-1-N8R8、官方 v1.1 用户指南与原理图、纸笔或逐线记录表
版本组合
开发板:ESP32-S3-DevKitC-1 v1.1 / ESP32-S3-WROOM-1-N8R8Arduino 引脚别名:core 3.3.12 / variant esp32s3
适用范围

仅 ESP32-S3-DevKitC-1 v1.1 / ESP32-S3-WROOM-1-N8R8;板载 RGB 为 GPIO38,R8 的存储相关引脚不可按普通 GPIO 使用。

这篇验证到了哪一步

资料核对已通过
docs/esp32-evidence/foundations.md;逐篇列出实际阅读章节、固定版本及限制。验证日期:
构建 / 配置不适用
本篇为资料判断或无程序接线任务,无可编译代码。
仿真不适用
本篇未使用仿真;不以概念图代表器件仿真。
本站实板不适用
本篇以来源核对和决策记录验收,没有物理实验结论。

构建通过只说明指定环境中的代码或配置通过检查;实物功能、功耗和稳定性以对应的实板记录为准。

01 / 引脚核对

先固定板型和方向,数字才有意义

先看开发板修订和模组完整印字,再打开 v1.1 对应的正面图、Header Block 与原理图。官方把两侧连接器称为 J1 和 J3;表中的 No. 是连接器内部的物理编号,Name 是板上的信号名称。不要凭网页照片的左边或右边猜排针,也不要把面包板行号当 GPIO。

本文固定 N8R8,是因为同一块 PCB 装上不同模组后,可用引脚也可能不同。N8R8 的 Octal PSRAM 已经使用内部信号,即使排针上印着 35、36、37,也不应接外设。先把板型记录写在接线表第一行,之后每条线才可追溯。

参考:[1] 乐鑫 DevKitC-1 v1.1 用户指南:固定文档提交 927ed7e[2] DevKitC-1 v1.1 原理图,2022-11-30,第 2 页[3] ESP-IDF v5.5.5 / S3:GPIO Summary 与保留引脚

02 / 引脚核对

追一条线:位置编号 → 网络名 → GPIO → 代码

以外接 LED 计划使用的 GPIO4 为例:用户指南 J1 的 No.4 写着 Name 4,原理图连接到 GPIO4 网络,再进入模组 IO4;Arduino 的 pinMode(4, OUTPUT) 中数字 4 指 GPIO4。这个例子中的位置与 GPIO 恰好相同,不是通用规则。

再看 J1 No.12,它的 Name 是 8,对应 GPIO8;程序写 12 会操作 GPIO12,和你接到 J1 第十二个针脚完全不是一回事。对于供电脚,3V3、5V 和 GND 是电源网络,不是可以传给 digitalWrite 的编号。RST 对应 EN,也不能按普通 GPIO 使用。

v1.1 物理位置丝印 / GPIO本文用途
J1 No.44 / GPIO4后续外接 LED 候选
J1 No.55 / GPIO5后续按钮候选
J1 No.128 / GPIO8I2C SDA 候选
J1 No.159 / GPIO9I2C SCL 候选
J1 No.1 / No.23V3本系列低压模块电源;不是信号脚
J1 No.22 / J3 多个 GG / GND电源与信号的公共参考
做到这里,你应该看到
任一计划信号都能在排针表、原理图和代码中找到同一个 GPIO 网络。

参考:[1] 乐鑫 DevKitC-1 v1.1 用户指南:固定文档提交 927ed7e[2] DevKitC-1 v1.1 原理图,2022-11-30,第 2 页[4] Arduino-ESP32 3.3.12:通用 S3 引脚别名

03 / 引脚核对

先划掉存储、启动和正在使用的板上信号

GPIO Matrix 允许很多外设信号路由到不同 GPIO,但它不能消除物理占用,也不保证每个脚都有 ADC、输入、输出等所有功能。S3 的 GPIO0、3、45、46 是启动配置脚。初级实验避开它们,避免外部上拉、下拉或模块输出改变复位时的启动条件。

S3 的 GPIO26–32 通常用于 Flash/PSRAM;Octal 存储还涉及 GPIO33–37。对本文 N8R8,官方板手册特别指出引出的 GPIO35/36/37 不可供外设使用。不要把“软件禁用 PSRAM”当作解除模组内部连线的方法。

GPIO19/20 是原生 USB D−/D+,GPIO43/44 在本板用于 UART0 桥接。GPIO38 接 v1.1 可寻址 RGB 灯。保留这些信号,可以减少上传、监视与第一次外接实验互相干扰;有明确任务需要复用时,应另读该接口的配置与电气限制。

参考:[1] 乐鑫 DevKitC-1 v1.1 用户指南:固定文档提交 927ed7e[2] DevKitC-1 v1.1 原理图,2022-11-30,第 2 页[3] ESP-IDF v5.5.5 / S3:GPIO Summary 与保留引脚

04 / 引脚核对

Arduino 的 SDA、A0 和 LED_BUILTIN 还要再查一层

Arduino 别名来自所选 board variant。core 3.3.12 的 generic esp32s3 将 SDA/SCL 设为 8/9,A0 是 GPIO1,而不是排针第零脚;换到另一个开发板目标,别名可能改变。涉及接线时,正文和程序应优先写出已核对的具体 GPIO。

尤其要小心板载灯:generic esp32s3 的 PIN_RGB_LED 仍定义为 48,并用虚拟 LED 编号支持相应 API;本文 v1.1 实物电路的 RGB 控制线却在 GPIO38。不要据此把 LED_BUILTIN 当作普通外接 LED,也不要把“板载灯不亮”直接判成上传失败。本系列首次上传用串口日志验收,首次灯实验用明确的外接 GPIO。

如果卡住了
程序没有控制到目标时,先核对 FQBN 的 variant 和实际 GPIO,再检查电路;不要同时更换引脚、框架和供电。

参考:[1] 乐鑫 DevKitC-1 v1.1 用户指南:固定文档提交 927ed7e[4] Arduino-ESP32 3.3.12:通用 S3 引脚别名

05 / 引脚核对

做一张项目级表,而不是抄一张“安全引脚大全”

为每条线填写:主控物理位置、GPIO、模块端标识、方向、电平、共享用途和依据。第一版可计划 LED=GPIO4,按钮=GPIO5,I2C=GPIO8/9;“候选”表示没有与本系列保留信号冲突,仍需检查你的完整项目。一个项目里两段程序都把 GPIO4 配成不同用途,同样会冲突。

接线前按表逐项从板端指到模块端,断电确认;表和代码不同就先统一。之后加外设或换板,更新这张表,而不是只改一个宏后继续试。本文没有在本站实板量过这些排针或运行 GPIO 程序;依据是指定修订的手册、原理图和固定版本源码。

做到这里,你应该看到
能回答每条线为什么接这里,以及哪些信号被预留;无法说明的线暂不接。

参考:[1] 乐鑫 DevKitC-1 v1.1 用户指南:固定文档提交 927ed7e[2] DevKitC-1 v1.1 原理图,2022-11-30,第 2 页[3] ESP-IDF v5.5.5 / S3:GPIO Summary 与保留引脚[4] Arduino-ESP32 3.3.12:通用 S3 引脚别名

BACK TO THE SOURCE

资料来源与版本说明

本文依据下列官方文档与上游资料独立整理,适用范围与版本以本文所列组合为准。资料核对日期:。资料核对、程序构建与实板测试分别记录,不互相替代。

  1. 乐鑫 DevKitC-1 v1.1 用户指南:固定文档提交 927ed7e
  2. DevKitC-1 v1.1 原理图,2022-11-30,第 2 页
  3. ESP-IDF v5.5.5 / S3:GPIO Summary 与保留引脚
  4. Arduino-ESP32 3.3.12:通用 S3 引脚别名