GPIO35、GPIO36、GPIO37 能用吗?
适用范围: ESP32-S3-DevKitC-1 官方板卡。
问题
“引脚表里有 GPIO35/36/37。我到底能不能用?还是说它们被禁用了?”
都不是。官方答案是一个以模组为条件的限制,指南原文如下:
For boards with Octal SPI flash/PSRAM memory embedded ESP32-S3-WROOM-1/1U modules, and boards with ESP32-S3-WROOM-2 modules, the pins GPIO35, GPIO36 and GPIO37 are used for the internal communication between ESP32-S3 and SPI flash/PSRAM memory, thus not available for external use. (对内置 Octal SPI flash/PSRAM 的 ESP32-S3-WROOM-1/1U 模组板,以及装配 ESP32-S3-WROOM-2 模组的板,GPIO35、GPIO36、GPIO37 用于 ESP32-S3 与 SPI flash/PSRAM 之间的内部通信,因此不可用于外部用途。)
也就是说,同样的三根排针在一块板上是普通 GPIO,在另一块板上却接着内部存储。“永远别用 35–37"的教程只描述了两种情况中的一种。
判定表
| 你的板装配 | 内部存储占用 35–37? | GPIO35/36/37 |
|---|---|---|
| WROOM-1 或 WROOM-1U,不带 Octal SPI flash/PSRAM(如 N8、N8R2 模组) | 否 | 可用,普通 GPIO |
| WROOM-1 或 WROOM-1U,带 Octal SPI flash/PSRAM | 是 | 不可用——内部通信占用 |
| 任意 WROOM-2(DevKitC-1-N32R16V) | 是(该模组系列全程使用 Octal) | 不可用 |
排针位置:GPIO37 = J3 触点 11、GPIO36 = J3 触点 12、GPIO35 = J3 触点 13(v1.1 J3 表)。
如何核对你的板
- 从屏蔽罩丝印读出模组系列(WROOM-1 / WROOM-1U / WROOM-2)——见我手上的是哪个 ESP32-S3-DevKitC-1?。
- 若是 WROOM-2:这三针为内部使用,到此为止。
- 若是 WROOM-1/1U:拿屏蔽罩上的模组后缀(如
N8R2与R8V类变体)对照 WROOM-1/1U 数据手册的订购表。Octal flash/PSRAM 变体占用这三针;Quad SPI 或无 PSRAM 变体则留空可用。 - 再与订购表中的板卡 SKU 交叉核对:EOL 的
N8/N8R2板对应"可用"行;R8与N32R16V板出厂带 Octal PSRAM,对应"不可用"行。
强行使用会怎样
在三轮为内部存储服务的板上,向 J3-11/12/13 外接电路会干扰 ESP32-S3 与其 flash/PSRAM 之间的 SPI 线——模组可能无法启动或随机崩溃,外接电路也会被 SPI 流量驱动。如果一个只翻转"无害"引脚的 sketch 行为诡异,先查 35–37 上接了什么。
本页不能告诉你的
- 固定版本的指南没有记载任何软件侧查询能直接报出模组的存储拓扑。可靠的核查就是上面的丝印+数据手册路径。
- R8 板每个 SKU 对应的模组后缀在板卡订购表里没有写明(只列为普通 WROOM-1/1U)——所以第 3 步要查数据手册。
来源
- ESP32-S3-DevKitC-1 v1.1 用户指南——GPIO35/36/37 注记、J3 排针表(commit
5c06bf18) - 订购信息(commit
5c06bf18) - MCUID 数据记录:ESP32-S3-DevKitC-1——
gpio.occupied_by_internal_storage字段及其模组条件