ESP32的引脚是其最大优势之一,也是最常见的混淆来源之一。由于重度复用、严格的启动模式依赖和敏感的模拟行为,正确的引脚选择对于稳定运行至关重要。本文清晰地组织了每个主要引脚组,帮助您避免冲突、防止启动失败,并设计可靠的ESP32硬件。

理解ESP32引脚
ESP32是一款功能强大且灵活的微控制器,广泛应用于物联网、自动化和智能设备。其高级能力来自高度复用的引脚系统,许多功能共享相同的物理引脚。这些包括数字输入输出、ADC通道、电容触摸传感器、通信总线、RTC域引脚以及用于SPI闪存和启动配置的内部连接。由于许多功能共用引脚,接线不当可能导致启动失败、ADC读数嘈杂或外设失效。
ESP32 DevKit 引脚布局

ESP32开发板通常有30针和38针两种版本,两者核心功能相同,但在可用的GPIO上存在细微差别。
ESP32开发板上的针脚组
| 组 | 描述 |
|---|---|
| 电源销 | VIN(5 V),3.3 V 输出,GND |
| 控制针 | EN(重置),IO0(启动模式) |
| GPIO引脚 | 带复用的数字I/O |
| 模拟引脚 | ADC1 和 ADC2 信道 |
| 通信针 | SPI、I2C、UART、I2S |
| 仅输入引脚 | GPIO34–GPIO39 |
| 闪存保留的针 | GPIO6–GPIO11 |
通用头部排列
左页首
• 英语,GPIO36–39,GPIO34–35
• GPIO32–33,25–27
• VIN,GND,3.3伏
右页
• GPIO0–23
• 引导销(0、2、5、12、15)
了解物理布局有助于避免错误,高效规划布线。
ESP32 GPIO 概述

ESP32 GPIO 由于内部 I/O 矩阵的特性,使得 UART、SPI、I2C 和 PWM 等外设几乎可以映射到任何地方。GPIO 支持数字输入输出,内置上拉/下拉电阻、边缘触发中断以及高速下的可靠切换。典型的连续驱动电流为12–16毫安(峰值最高可达~20–40毫安),因此电机或继电器需要外部驱动器。
仅输入引脚
这些引脚无法驱动输出,非常适合传感器和模拟输入:
| 钉 | 类型 | 推荐用途 |
|---|---|---|
| GPIO34 | 仅输入 | ADC1 / 传感器 |
| GPIO35 | 仅输入 | ADC1 |
| GPIO36 (VP) | 仅输入 | ADC1 / 霍尔传感器 |
| GPIO39(VN) | 仅输入 | ADC1 |
安全的ESP32引脚使用与应避免的引脚

并非所有ESP32引脚的表现都一样。有些是安全的,而有些则影响启动模式或与内部闪存绑定。
安全销(推荐所有用户使用)
| GPIOs | 注释 |
|---|---|
| 4,13–19,21–27,32,33 | 无靴子冲击,非常适合大多数外设 |
注意针脚(影响启动模式)
| GPIO | 启动功能 | 启动时避免使用 |
|---|---|---|
| GPIO0 | 闪存/启动模式 | 正常启动时保持高电平(输入) |
| GPIO2 | 启动电压 | 一定是高 |
| GPIO5 | 可选启动模式 | 避免拉低 |
| GPIO12 | 闪光电压模式 | 必须保持低调 |
| GPIO15 | SPI 模式 | 必须保持低调 |
这些引脚在正常运行中是安全的,但外部元件在复位时不得将其拉到无效逻辑电平。它们的详细“靴子”角色在第9节中有详细说明。
限制销钉(禁止使用)
| GPIO | 原因 |
|---|---|
| GPIO6–11 | 连接SPI闪存 |
使用这些可能会让ESP32死机或崩溃。
ESP32 ADC 引脚

ESP32集成了两个具有不同作战行为的SAR自动防御单位:
• ADC1 — 始终可用,推荐用于所有传感器输入
• ADC2 — 与Wi-Fi子系统共享,Wi-Fi激活时无法使用。
这是ESP32的主要局限性之一,使得ADC1成为无线应用测量的可靠选择。
| ADC单元 | 频道 | GPIOs | 注释 |
|---|---|---|---|
| ADC1 | 第0章–第7章 | GPIO32–39 | 传感器的最佳选择 |
| ADC2 | 第0章–第9章 | 0,2,4,12–15,25–27 | Wi-Fi 期间无法使用 |
电压范围与精度
ADC默认支持0–1.1 V输入范围,可通过衰减扩展至约3.3 V。两台ADC单元均为非线性,且可通过校准获得益处。模拟性能可能受到内部射频活动的影响,因此将传感器线路由远离天线并添加简单的RC滤波器,可以大大提升稳定性。对于支持Wi-Fi的项目,始终在ADC1上安装模拟传感器,以确保连续且无噪声的运行。
ESP32 DAC、PWM和触控引脚
ESP32 集成了板载模拟式输出和触控传感器,简化了波形生成、调光、电机控制和用户界面。
DAC 概述

两个8位DAC通道输出真正的模拟电压:
| DAC | GPIO |
|---|---|
| DAC1 | GPIO25 |
| DAC2 | GPIO26 |
常见用途包括简单音频、模拟波形、LED衰落和偏置电压。输出范围通常为0–3.3伏。
PWM(LEDC)

LEDC模块提供高分辨率、灵活的PWM:
• 16个频道
• 最高40 MHz定时器基准
• 最高20位分辨率
• 完全可重新映射的GPIO
用于LED调光、电机控制、伺服信号、音频音调和一般调制。任何GPIO都可以通过GPIO矩阵承载PWM输出。
触控传感器引脚

ESP32的10个电容式触控板可检测手指接近度,对触摸按钮、滑块和唤醒扳机非常有用。
| 触摸板 | GPIO |
|---|---|
| T0–T9 | GPIO4, 0, 2, 15, 13, 12, 14, 27, 33, 32 |
这些传感器包含噪声过滤功能,非常适合低功耗尾迹事件。
ESP32 通信插脚
ESP32 包含丰富的通信外设,每个外设都可以通过灵活的 GPIO 矩阵路由到多个引脚。这使得 I2C、SPI 和 UART 等接口几乎可以被分配到任何地方,从而实现高度自定义的电路板布局和外设组合。
I2C(默认和自定义引脚)

ESP32 包含两个 I2C 控制器,提供完全的针脚选择灵活性。虽然大多数开发板使用默认引脚,但SDA和SCL几乎可以重新分配到任何GPIO。
| 信号 | 默认GPIO | 注释 |
|---|---|---|
| 基督复临者协会 | GPIO21 | 完全可重新映射 |
| SCL | GPIO22 | 完全可重新映射 |
任意两个数字GPIO都可以作为SDA和SCL使用。支持标准模式(100 kHz)、快速模式(400 kHz)和快速模式加频(视主板而定为1 MHz)。部分板子支持内置上拉,但建议使用外部4.7 kΩ电阻以实现稳定通信。这种灵活性使ESP32非常适合需要多传感器或非常规引脚布线的系统。
ESP32 包含多条 SPI 总线,用户设备可支持 HSPI 和 VSPI。两者都支持通过GPIO矩阵进行重映射,但大多数板卡和库采用以下默认VSPI配置,以避免与内部闪存连接发生冲突:
默认 VSPI 映射
• SCK → GPIO18
• MISO → GPIO19
• MOSI → GPIO23
• 计算机科学 → GPIO5
VSPI通常被推荐用于显示器、SD卡和高速外设。虽然引脚可重新映射,但使用默认配置能确保最大兼容性,减少时序问题,避免重复前述部分已涵盖的限制。
UART(串行)

ESP32 包含三个 UART 控制器,具有灵活的路由方式,允许任何 UART 引脚移动到几乎任何 GPIO。
| UART | TX针 | RX针 | 主要目的 |
|---|---|---|---|
| UART0 | GPIO1 | GPIO3 | 刷机、启动消息、串行日志 |
| UART1 | GPIO10 | GPIO9 | 面向用户应用 |
| UART2 | GPIO17 | GPIO16 | 面向用户应用 |
ESP32 深度睡眠与RTC引脚
ESP32 包含超低功耗(ULP)子系统和专用的实时时钟(RTC)域,即使主 CPU 和外设关闭,这些域仍保持供电。该架构实现了极低的功耗,通常在微安级范围内,使ESP32适合长期电池供电应用。
深度睡眠允许芯片关闭主核心、大部分内部时钟以及Wi-Fi/蓝牙无线电,同时仍通过RTC外设监控选定的引脚和传感器。

ESP32可以通过多个独立触发器从深度睡眠中唤醒。每个尾波源都运行在RTC域内,该域旨在以最小功耗保持活跃。
| 尾迹类型 | GPIO / 注释 | |
|---|---|---|
| 外部RTC GPIO | GPIO32、GPIO33、GPIO25、GPIO26、GPIO27 — 支持边缘或电平唤醒 | |
| 电容式触控板 | T0–T9 — 在深度睡眠时检测手指接近或触碰 | |
| 计时器唤醒 | RTC定时器可以在设定的间隔后唤醒设备 | |
| ULP 协处理器 | (可选)自定义低功耗代码可以在唤醒主CPU前运行传感器检查。 | |
| 这些引脚属于RTC域,即使CPU和普通GPIO关闭,它们依然保持活跃。它们支持通过升降边缘唤醒或简单的电平检测。常用于唤醒运动、磁性开关和低功耗触发器。 | ||
![]() | ||
| ESP32 使用多个绑带针脚,在重置或开机时决定关键系统配置。这些引脚仅在启动时采样,然后恢复正常GPIO功能。确保复位时不会被驱动到无效水平,有助于启动行为的一致性。 | ||
| 绑针桌 | ||
| 钉 | 启动角色 | 入门时必须具备州份 |
| GPIO0 | 选择引导加载程序 / 闪存模式 | LOW = 进入闪光灯模式;HIGH = 正常启动 |
| GPIO2 | 定义内部启动电压电平 | 必须保持高 |
| GPIO5 | SPI 启动配置 | 必须保持高 |
| GPIO12 | 选择闪光电压(3.3 V / 1.8 V) | 必须保持低电平以保证3.3伏闪光灯 |
| GPIO15 | 启动时设置SPI通信模式 | 必须保持低 |
本节提供了绑带行为的权威参考。前几节仅总结了实际效果;在为自定义PCB分配引脚或集成按钮和传感器时,请使用此表。
EN 引脚(启用/复位)
EN(启用)引脚作为ESP32的主复位输入。
EN销钉行为:
• 拉取EN LOW会立即重置芯片。
• 将它放回高电平,内部电路通电并重新启动启动序列。
• 在开发板(如ESP32-DevKitC、NodeMCU-ESP32)上,EN与USB转串口接口绑定,以支持刷机时的自动重置。
ESP32电源针

ESP32对电源质量非常敏感,因为它的Wi-Fi和蓝牙无线电会消耗短而高幅度的电流脉冲。稳定的供电确保了启动的可靠性、减少电压重置和稳定的无线性能。
电源销总结
| 钉 | 电压 | 使用 |
|---|---|---|
| 车辆识别码 | 5 V 输入 | 将电压输送到车载稳压器(通常为AMS1117或ME6211)以产生3.3 V |
| 3对3 | 3.3 V 输出 | 来自机载LDO的稳压输出;用于驱动外部低电流逻辑和传感器 |
| GND | — | 所有子系统的电气参考和返回路径 |
推荐的ESP32引脚及布线示例
选择正确的ESP32引脚对于稳定运行、清晰的信号路由以及避免与引导或内部闪存连接冲突至关重要。以下推荐重点介绍了最可靠、无冲突的常见功能引脚。
旗帜选择
| 功能 | 最佳徽章 | 注释 |
|---|---|---|
| I2C | 21(SDA),22(SCL) | 默认硬件测试组合;大多数板子都能用。 |
| SPI | 18(SCK),19(MISO),23(MOSI),5(CS) | 这些引脚可以干净地映射到VSPI,避免使用闪存连接的引脚。 |
| UART | 16(罗伯特州),17(德州) | 专用的UART2引脚,安全启动和调试。 |
| PWM(LEDC) | 4,16–19,21–27,32–33 | 高柔韧性范围;PWM几乎可以路由到任何GPIO。 |
| ADC | 32–39(ADC1) | 即使Wi-Fi开启,ADC1频道依然可用。 |
结论
掌握ESP32的引脚配置可以消除猜测,避免了实际组装中出现的许多问题,从嘈杂的ADC读数到无休止的启动循环。通过理解安全引脚、绑带行为、电力完整性和深度休眠路由,你可以设计出保持稳定、可预测且无线连接的电路。请以上述引脚映射和指南为基础,顺利完成ESP32项目。
常见问题解答 [常见问题解答]
如何为Freenove ESP32-S3分砖板配置PlatformIO?
使用标准的ESP32-S3开发模块设置。在你的platformio.ini中,补充:
[环境:ESP32S3]
Platform = espressif32
板 = ESP32-S3-DevKitc-1
Framework = Arduino
这与Freenove的针脚排列一致,允许正常编译并通过USB上传。
ESP32 同时能运行多少个外设?
由于GPIO矩阵,ESP32可以同时运行多个I²C、SPI、UART、PWM和ADC功能,只要避免使用受限引脚,并控制在CPU和时序限制内。主要瓶颈是Wi-Fi时的ADC2和电源质量,而不是引脚数。
为什么连接传感器或模块时我的ESP32会重启?
意外复位通常由Wi-Fi突发、电机或电源调节不当引起的电压下降引起。使用1安培或更高的5伏电源,添加10–100微法的体积电容,并隔离噪声负载,可以防止电压下降。
我可以用ESP32的3.3 V引脚给外部模块供电吗?
可以,但仅限于低电流器件(通常在300–500毫安以下,具体取决于板载的LDO)。高耗电的外设如电机、伺服机和大型LED灯条必须使用独立电源,以避免重置和过热。
在使用多个外设时,我该如何选择最好的ESP32引脚?
优先使用非绑带引脚,避免使用GPIO6–11,在ADC1上放置模拟传感器,并尽可能使用默认的VSPI/I²C/UART引脚。这减少了冲突,确保所有外设能够协同工作,不会出现重映射问题。
