logo icon
Esp32引脚资源详细

创建时间:2023-11-22 01:31:41
![图片](https://upload.ch123.com.cn/news/info/23_09_14/22_0_22192447.png) 注意: ---- #### 1. 在硬件上要注意使用外接模块时不能将GPIO12拉高,否则将导致ESP32启动异常。还有一些GPIO在启动或重置时其状态更改为高或者输出PWM信号,在使用时需要注意。 不建议使用或限制使用的引脚 不建议使用 Strapping引脚 ,SPI flash 引脚 以及 仅输入的引脚 Strapping 引脚 GPIO 0 GPIO 2 GPIO 4 GPIO 5 (启动时必须为高电平) GPIO 12 (启动时必须为低电平) GPIO 15 (启动时必须为高电平) #### 2. 集成在ESP-WROOM-32 的 SPI flash 引脚 GPIO 6 到 GPIO 11 在一些 ESP32 开发板中公开。但是,这些引脚连接到 ESP-WROOM-32 芯片上的集成 SPI 闪存,不推荐用于其他用途。所以,不要在你的项目中使用这些引脚: GPIO 6 (SCK/CLK) GPIO 7 (SDO/SD0) GPIO 8 (SDI/SD1) GPIO 9 (SHD/SD2) GPIO 10 (SWP/SD3) GPIO 11 (CSC/CMD) #### 3. 仅输入引脚 GPIO 34 到 39 是 GPI – 仅输入引脚。这些引脚没有内部上拉或下拉电阻。它们不能用作输出,因此只能将这些引脚用作输入: GPIO 34 GPIO 35 GPIO 36 GPIO 39 这些引脚都是ESP32用于引导加载程序或者烧录模式/在大多数内置USB/Serial的开发板上,不需要担心这些引脚的状态,开发板会把这些引脚设置为正确的状态,以便使用烧录或启动模式。 但是,如果你有外设连接到这些引脚上,当你在尝试上传新代码、用新固件烧写ESP32或重置电路板时可能会遇到麻烦,例如不明原因的错误和失败。可能是因为这些外设阻止ESP32进入正确的模式。 所以以上的引脚 不建议在项目中使用。 ESP32 周边设备: --- 18 个模数转换器 (ADC) 通道 4 组SPI接口 3 组UART接口 1 组I2C接口 16 个PWM输出通道 2 个数模转换器 (DAC) 2 个I2S接口 10 个电容式感应 GPIO 16 个 RTC GPIO ESP32 内置2个霍尔传感器 18 个模数转换器 (ADC) 通道 --- ESP32 有 18 x 12 位 ADC 输入通道(而ESP8266 只有 1x 10 位 ADC)。这些是可用作 ADC 和相应通道的 GPIO: 与某些数字外设(PWM、软件 SPI 和 I2C)不同,ADC 引脚是固定的,即您必须使用具有 ADC 功能的预定义 GPIO 引脚,并且不能在软件中对其进行配置。但是,您必须了解一些限制。 尽管 ESP32 有 18 个通道的 ADC,但并非所有 ADC 引脚都可供用户使用。在 8 个 ADC1 通道中,只有 6 个可用(ACD1_CH0 和 ACD1_CH3 到 ACD1_CH7),而 ADC1_CH1 和 ADC1_CH2 不可用(即使引脚在 ESP32 开发板中没有暴露)。 来到ADC2,就有些复杂了。当您使用 ESP32 的 Wi-Fi 时,Wi-Fi Driver 使用 ADC2 Peripheral。因此,只有在未启动 Wi-Fi 驱动程序时才能使用 ADC2。 即使您正在使用 ADC2(假设未使用 Wi-Fi),所有引脚也并非随时可用,因为与 ADC2 相关的一些引脚用于其他重要目的(引导绑定)。 ADC Channel Pin Name GPIO Pin Notes ACD1_CH0 A0 36 可用 / 内置霍尔传感器 ACD1_CH1 \ 37 不可用 ACD1_CH2 \ 38 不可用 ACD1_CH3 A3 39 可用 / 内置霍尔传感器 ACD1_CH4 A4 32 可用 ACD1_CH5 A5 33 可用 ACD1_CH6 A6 34 可用 ACD1_CH7 A7 35 可用 ACD2_CH0 A10 4 启动WIFI时不可用 ACD2_CH1 A11 0 不可用 / 用于BOOT ACD2_CH2 A12 2 用于BOOT Strapping ACD2_CH3 A13 15 用于BOOT Strapping ACD2_CH4 A14 13 启动WIFI时不可用 ACD2_CH5 A15 12 启动WIFI时不可用 ACD2_CH6 A16 14 启动WIFI时不可用 ACD2_CH7 A17 27 启动WIFI时不可用 ACD2_CH8 A18 25 启动WIFI时不可用 ACD2_CH9 A19 26 启动WIFI时不可用 ADC 输入通道具有 12 位分辨率。这意味着您可以获得范围从 0 到 4095 的模拟读数,其中 0 对应于 0V,4095 对应于 3.3V。您还可以在代码和 ADC 范围上设置通道的分辨率。 ESP32 ADC 引脚没有线性行为。您可能无法区分 0 和 0.1V,或 3.2 和 3.3V。使用 ADC 引脚时需要牢记这一点。您将获得类似于下图所示的行为。 4组SPI接口 --- 默认情况下,可以用的SPI的引脚映射是: SPI MOSI MISO CLK CS VSPI(SPI3) GPIO 23 GPIO 19 GPIO 18 GPIO 5 HSPI(SPI2) GPIO 13 GPIO 12 GPIO 14 GPIO 15 SPI(Serial Peripheral Interface) 协议是由摩托罗拉公司提出的通讯协议,即串行外围设备接口,是一种高速全双工的通信总线。它被广泛地使用在 ADC、LCD 等设备与 MCU 间,要求通讯速率较高的场合。 芯片的管脚上只占用四根线。 MISO: 主器件数据输出,从器件数据输入。 MOSI:主器件数据输入,从器件数据输出。 SCK: 时钟信号,由主设备控制发出。 NSS(CS): 从设备选择信号,由主设备控制。当NSS为低电平则选中从器件。 ESP32集成了4组SPI外设。 SPI0和SPI1在内部用于访问ESP32所连接的闪存。两个控制器共享相同的SPI总线信号,并且有一个仲裁器来确定哪个可以访问该总线。 SPI2和SPI3是通用SPI控制器,有时分别称为HSPI和VSPI。它们向用户开放。SPI2和SPI3具有独立的总线信号,分别具有相同的名称。每条总线具有3条CS线,最多能控制6个SPI从设备。 需要注意的是,HSPI和VSPI并不是网友们认为的high-speed SPI 和Very High-speed SPI,这是SPI和HSPI、VSPI是一样的,只不过是换个名字用于区分,SPI相当于SPI0或SPI1,HSPI相当于SPI2,VSPI相当于SPI3。 ![](https://upload.ch123.com.cn/news/info/23_09_14/22_1_22193342.png) 3V3 - 供电引脚,输出3.3V电压。 EN - 使能引脚,用于控制模块的上电和复位。 GND - 地引脚,接地。 GPIO0 - 通用IO引脚,可用作数字输入/输出。 GPIO1 - 通用IO引脚,可用作数字输入/输出。 GPIO2 - 通用IO引脚,可用作数字输入/输出。 GPIO3 - 通用IO引脚,可用作数字输入/输出。 GPIO4 - 通用IO引脚,可用作数字输入/输出。 GPIO5 - 通用IO引脚,可用作数字输入/输出。 GPIO6 - 通用IO引脚,可用作数字输入/输出。 GPIO7 - 通用IO引脚,可用作数字输入/输出。 GPIO8 - 通用IO引脚,可用作数字输入/输出。 GPIO9 - 通用IO引脚,可用作数字输入/输出。 GPIO10 - 通用IO引脚,可用作数字输入/输出。 GPIO11 - 通用IO引脚,可用作数字输入/输出。 GPIO12 - 通用IO引脚,可用作数字输入/输出。 GPIO13 - 通用IO引脚,可用作数字输入/输出。 GPIO14 - 通用IO引脚,可用作数字输入/输出。 GPIO15 - 通用IO引脚,可用作数字输入/输出。 GPIO16 - 通用IO引脚,可用作数字输入/输出。 GPIO17 - 通用IO引脚,可用作数字输入/输出。 GPIO18 - 通用IO引脚,可用作数字输入/输出。 GPIO19 - 通用IO引脚,可用作数字输入/输出。 GPIO21 - 通用IO引脚,可用作数字输入/输出。 SDA GPIO22 - 通用IO引脚,可用作数字输入/输出。 SCL GPIO23 - 通用IO引脚,可用作数字输入/输出。 GPIO25 - 通用IO引脚,可用作数字输入/输出。 U0RXD - UART0接收引脚。 U0TXD - UART0发送引脚。 SD2 - SPI2数据引脚。 SD3 - SPI2数据引脚。 CMD - SPI命令引脚。 SD0 - SPI数据引脚。 SD1 - SPI数据引脚。 CLK - SPI时钟引脚。 ADC1_CH0 - ADC1通道0引脚。 ADC1_CH1 - ADC1通道1引脚。 ADC1_CH2 - ADC1通道2引脚。 ADC1_CH3 - ADC1通道3引脚。 ADC1_CH4 - ADC1通道4引脚。 ADC1_CH5 - ADC1通道5引脚。 ADC1_CH6 - ADC1通道6引脚。 ADC1_CH7 - ADC1通道7引脚。 BOOT - 启动引脚,用于模块的启动。 VDD_SDIO - SD卡电源引脚。 U1TXD - UART1发送引脚。 U1RXD - UART1接收引脚。 GPIO33 - 通用IO引脚,可用作数字输入/输出。 GPIO32 - 通用IO引脚,可用作数字输入/输出。 GPIO35 - 通用IO引脚,可用作数字输入/输出。 GPIO34 - 通用IO引脚,可用作数字输入/输出。 GPIO39 - 通用IO引脚,可用作数字输入/输出。 GPIO36 - 通用IO引脚,可用作数字输入/输出。 GPIO37 - 通用IO引脚,可用作数字输入/输出。 GPIO38 - 通用IO引脚,可用作数字输入/输出。