ESP32食用指南——ESP32-S3 DevKitC 引脚排列GPIO 详解
ESP32-S3 DevKitC 是搭载 ESP32-S3 芯片的热门开发板之一。该芯片共有 45 个引脚,其引脚排列与搭载 ESP-WROOM-32 芯片的开发板不同。本文将介绍 ESP32-S3 DevKitC 开发板的引脚排列,并解释其 GPIO 接口的不同功能。

ESP32-S3 外设
ESP32-S3 外设包括:
- 20 个模数转换器 (ADC) 通道
- 4个SPI接口
- 3个UART接口
- 2个I2C接口
- 8个PWM输出通道
- 2个I2S接口
- 14 个电容式感应 GPIO
由于 ESP32 芯片具有复用功能,您可以将几乎任何功能分配给您选择的 GPIO。但是,默认情况下,有些引脚已分配功能。我们将在此引脚排列中对此进行介绍。
ESP32-S3 DevKitC-1 引脚排列
下图展示了 ESP32-S3 DevKitC-1 开发板的引脚排列,该开发板是搭载 S3 芯片的热门开发板之一。同一款开发板有多个版本,引脚排列略有不同。连接任何外设前,请务必仔细检查引脚位置和 GPIO 标签。

SPI 闪存和 PSRAM
GPIO 26 至 32 连接到集成 SPI 闪存和 PSRAM,不建议用于其他用途。本开发板未暴露这些 GPIO,但如果您的开发板暴露了这些 GPIO,请避免使用它们:
- GPIO 26(闪存/PSRAM SPICS1)
- GPIO 27(闪存/PSRAM SPIHD)
- GPIO 28(闪存/PSRAM SPIWP)
- GPIO 29(闪存/PSRAM SPICS0)
- GPIO 30(闪存/PSRAM SPICLK)
- GPIO 31(闪存/PSRAM SPIQ)
- GPIO 32(闪存/PSRAM SPID)
电容式触摸 GPIO
ESP32-S3 拥有 14 个内部电容式触摸 GPIO。这些引脚可以感知任何带电物体(例如人体皮肤)的变化。因此,它们可以检测到手指触摸 GPIO 时引起的变化。这些引脚可以轻松集成到电容式触摸板上,并取代机械按键。电容式触摸引脚还可用于唤醒处于深度睡眠状态的 ESP32。
这些内部触摸传感器连接到以下 GPIO:
- T1(GPIO 1)
- T2(GPIO 2)
- T3(GPIO 3)
- T4(GPIO 4)
- T5(GPIO 5)
- T6(GPIO 6)
- T7(GPIO 7)
- T8(GPIO 8)
- T9(GPIO 9)
- T10(GPIO 10)
- T11(GPIO 11)
- T12(GPIO 12)
- T13(GPIO 13)
- T14(GPIO 14)
模数转换器 (ADC)
ESP32 具有 20 个 12 位 ADC 输入通道。以下是可用作 ADC 的 GPIO 及其相应的通道:
- ADC1_CH0(GPIO 1)
- ADC1_CH1(GPIO 2)
- ADC1_CH2(GPIO 3)
- ADC1_CH3(GPIO 4)
- ADC1_CH4(GPIO 5)
- ADC1_CH5(GPIO 6)
- ADC1_CH6(GPIO 7)
- ADC1_CH7(GPIO 8)
- ADC1_CH8(GPIO 9)
- ADC1_CH9(GPIO 10)
- ADC2_CH0(GPIO 11)
- ADC2_CH1(GPIO 12)
- ADC2_CH2(GPIO 13)
- ADC2_CH3(GPIO 14)
- ADC2_CH4(GPIO 15)
- ADC2_CH5(GPIO 16)
- ADC2_CH6(GPIO 17)
- ADC2_CH7(GPIO 18)
- ADC2_CH8(GPIO 19)
- ADC2_CH9(GPIO 20)
ADC 输入通道具有 12 位分辨率。这意味着您可以获得 0 到 4095 范围内的模拟读数,其中 0 对应 0 V,4095 对应 3.3 V。您还可以根据代码和 ADC 范围设置通道的分辨率。
RTC GPIO
ESP32-S3 支持 RTC GPIO。当 ESP32 处于深度睡眠状态时,可以使用路由到 RTC 低功耗子系统的 GPIO。当超低功耗 (ULP) 协处理器运行时,这些 RTC GPIO 可用于将 ESP32 从深度睡眠状态唤醒。以下 GPIO 可用作外部唤醒源。
- RTC_GPIO0 (GPIO0)
- RTC_GPIO1(GPIO1)
- RTC_GPIO2(GPIO2)
- RTC_GPIO3(GPIO3)
- RTC_GPIO4(GPIO4)
- RTC_GPIO5(GPIO5)
- RTC_GPIO6(GPIO6)
- RTC_GPIO7 (GPIO7)
- RTC_GPIO8(GPIO8)
- RTC_GPIO9(GPIO9)
- RTC_GPIO10(GPIO10)
- RTC_GPIO11(GPIO11)
- RTC_GPIO12(GPIO12)
- RTC_GPIO13(GPIO13)
- RTC_GPIO14(GPIO14)
- RTC_GPIO15(GPIO15)
- RTC_GPIO16(GPIO16)
- RTC_GPIO17(GPIO17)
- RTC_GPIO18(GPIO18)
- RTC_GPIO19(GPIO19)
- RTC_GPIO20(GPIO20)
- RTC_GPIO21(GPIO21)
脉宽调制
ESP32-S3 集成一个 LED PWM 控制器,该控制器拥有 8 个 PWM 通道,可配置为生成不同属性的 PWM 信号。所有可用作输出的引脚均可用作 PWM 引脚。
要设置PWM信号,需要在代码中定义这些参数:
- 信号的频率;
- 占空比;
- PWM通道(可选);
- 您想要输出信号的 GPIO。
I2C
当将 ESP32-S3 与 Arduino IDE 一起使用时,这些是 ESP32 I2C 默认引脚:
- GPIO 8(SDA)
- GPIO 9(SCL)
SPI
ESP32 集成了 4 个 SPI 外设:SPI0、SPI1、SPI2(通常称为 HSPI)、SPI3(通常称为 VSPI)。
SP0 和 SP1 在内部用于与内置闪存进行通信,您不应将它们用于其他任务。
您可以使用HSPI和VSPI与其他设备通信。HSPI 和 VSPI 具有独立的总线信号。
| SPI | 莫西 | 味噌 | 时钟 | CS |
| 高速SPI(SPI 2) | GPIO 11 | GPIO 13 | GPIO 12 | GPIO 10 |
| VSPI(SPI 3) | GPIO 35 | GPIO 37 | GPIO 36 | GPIO 39 |
中断
所有 GPIO 均可配置为中断。
UART 引脚 – 串行通信
ESP32-S3 支持多个 UART(通用异步收发器)接口,可与各种设备进行串行通信。ESP32 最多支持三个 UART 接口:UART0、UART1和UART2,具体取决于您使用的 ESP32 开发板型号。
与 I2C 和 SPI 一样,这些 UART 可以映射到任何 GPIO 引脚,尽管它们在大多数主板型号上都有默认引脚分配。
下表显示了 ESP32-S3 的默认 UART0、UART1 和 UART2 RX 和 TX 引脚:
| UART端口 | 德克萨斯州 | 接收 | 评论 |
| UART0 | GPIO 43 | GPIO 44 | 无法更改 |
| UART1 | GPIO 17 | GPIO 18 | 可以分配给其他GPIO |
| UART2 | — | — | 分配您选择的任何引脚 |
捆扎销
ESP32-S3 芯片具有以下 Strapping 引脚:
- GPIO 0
- GPIO 3
- GPIO 45
- GPIO 46
这些引脚用于将 ESP32 置于引导加载程序或烧写模式。在大多数内置 USB/串口的开发板上,您无需担心这些引脚的状态。开发板会将这些引脚设置为适合烧写或引导模式的状态。但是,您应该避免在项目中使用这些引脚。
启用 (EN/RST)
启用 (EN/RST) 是 3.3V 稳压器的启用引脚。该引脚为上拉状态,因此将其连接至 GND 即可禁用 3.3V 稳压器。这意味着您可以将此引脚连接到按钮,例如重启 ESP32。
浙公网安备 33010602011771号