ESP32芯片IO解读

我们使用一个开发板最重要得就是知道引脚得定义.所以我们有必要查到精确的资料,这篇文章很有用.也是我日后要查找得文章.

首先我们要明确一点,其实板子那么大,有用的就是这个核心的芯片

这个芯片上面的引脚引出来做相应的功能.

ESP32芯片具有48个功能齐全的引脚。并非所有ESP32开发板上的所有引脚都裸露,并且有些引脚无法使用。

ESP32外设包括:

18个模数转换器(ADC)通道

3个SPI接口

3个UART接口

2个I2C接口

16个PWM输出通道

2个数模转换器(DAC)

2个I2S接口

10个电容式感应GPIO

ADC(模拟到数字转换器)和DAC(数字到模拟转换器)功能分配给特定的静态引脚。但是,你可以确定哪些引脚是UART,I2C,SPI,PWM等–只需要在代码中分配它们即可。由于ESP32芯片具有多路复用功能,因此这是可能的。

这个是36脚的,国外卖的是这个板子.'

国内是30脚的

此外,还有具有特定功能的引脚,这些引脚使它们不适用于特定项目。下表显示了哪些引脚最适合用作输入,输出以及需要谨慎使用的引脚。

以绿色突出显示的引脚可以使用。黄色突出显示的选项可以使用,但是你需要注意,因为它们可能主要在启动时具有意外行为。不建议将红色突出显示的引脚用作输入或输出。

ok是好

红的

绿色的

黄色就是疯狂暗示的引脚,懂了吧

仅输入引脚

GPIO 34至39是GPI –仅输入引脚。这些引脚没有内部上拉或下拉电阻。它们不能用作输出,因此只能将这些引脚用作输入:

GPIO 34

GPIO 35

GPIO 36

GPIO 39

ESP-WROOM-32上集成了SPI闪存

某些ESP32开发板公开了GPIO 6至GPIO 11。但是,这些引脚连接到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)

电容式触摸GPIO

ESP32具有10个内部电容式触摸传感器。它们可以感应任何带有电荷的东西的变化,例如人体皮肤。因此,他们可以检测到用手指触摸GPIO时引起的变化。这些引脚可以轻松集成到电容性焊盘中,并取代机械按钮。电容式触摸引脚还可以用于将ESP32从深度睡眠中唤醒。

这些内部触摸传感器连接到以下GPIO:

T0(GPIO 4)

T1(GPIO 0)

T2(GPIO 2)

T3(GPIO 15)

T4(GPIO 13)

T5(GPIO 12)

T6(GPIO 14)

T7(GPIO 27)

T8(GPIO 33)

T9(GPIO 32)

模数转换器(ADC)

ESP32具有18个12位ADC输入通道(而ESP8266仅具有1个10位ADC)。这些是可用作ADC和相应通道的GPIO:

ADC1_CH0(GPIO 36)

ADC1_CH1(GPIO 37)

ADC1_CH2(GPIO 38)

ADC1_CH3(GPIO 39)

ADC1_CH4(GPIO 32)

ADC1_CH5(GPIO 33)

ADC1_CH6(GPIO 34)

ADC1_CH7(GPIO 35)

ADC2_CH0(GPIO 4)

ADC2_CH1(GPIO 0)

ADC2_CH2(GPIO 2)

ADC2_CH3(GPIO 15)

ADC2_CH4(GPIO 13)

ADC2_CH5(GPIO 12)

ADC2_CH6(GPIO 14)

ADC2_CH7(GPIO 27)

ADC2_CH8(GPIO 25)

ADC2_CH9(GPIO 26)

注意:使用Wi-Fi时不能使用ADC2引脚。因此,如果使用的是Wi-Fi,并且无法从ADC2 GPIO获取值,则可以考虑改用ADC1 GPIO,这样可以解决问题。

ADC输入通道具有12位分辨率。这意味着您可以获得的模拟读数范围为0至4095,其中0对应于0V,4095至3.3V。您还可以在代码上设置通道的分辨率以及ADC范围。

ESP32 ADC引脚没有线性行为。您可能将无法区分0和0.1V,或3.2和3.3V。使用ADC引脚时,请记住这一点。您将获得类似于下图所示的行为。

https://github.com/espressif/arduino-esp32/issues/92

数模转换器(DAC)

ESP32上有2 x 8位DAC通道,可将数字信号转换为模拟电压信号输出。这些是DAC通道:

DAC1(GPIO25)

DAC2(GPIO26)

脉宽调制

ESP32 LED PWM控制器具有16个独立通道,可配置为生成具有不同属性的PWM信号。所有可用作输出的引脚都可以用作PWM引脚(GPIO 34至39无法生成PWM)。

要设置PWM信号,您需要在代码中定义以下参数:

信号频率

占空比;

PWM通道

您要在其中输出信号的GPIO。

I2C

ESP32有两个I2C通道,任何引脚都可以设置为SDA或SCL。当将ESP32与Arduino IDE结合使用时,默认的I2C引脚为:

GPIO 21(SDA)

GPIO 22(SCL)

如果要使用其他引脚,则在使用线库时,只需调用:Wire.begin(SDA, SCL);

SPI

默认情况下,SPI的引脚映射为:

SPI

MOSI

MISO

CLK

CS

VSPI

GPIO 23

GPIO 19

GPIO 18

GPIO 5

HSPI

GPIO 13

GPIO 12

GPIO 14

GPIO 15

中断

所有GPIO都可以配置为中断。

Strapping Pins

ESP32芯片具有以下strapping pins:

GPIO 0

GPIO 2

GPIO 4

GPIO 5(启动期间必须为高电平)

GPIO 12(启动期间必须为LOW)

GPIO 15(引导期间必须为高电平

我实在不会翻译这个了....

RTC GPIO

ESP32上有RTC GPIO支持。当ESP32处于深度睡眠状态时,可以使用路由到RTC低功耗子系统的GPIO。当超低功耗(ULP)协处理器运行时,这些RTC GPIO可用于将ESP32从深度睡眠中唤醒。以下GPIO可用作外部唤醒源。

RTC_GPIO0(GPIO36)

RTC_GPIO3(GPIO39)

RTC_GPIO4(GPIO34)

RTC_GPIO5(GPIO35)

RTC_GPIO6(GPIO25)

RTC_GPIO7(GPIO26)

RTC_GPIO8(GPIO33)

RTC_GPIO9(GPIO32)

RTC_GPIO10(GPIO4)

RTC_GPIO11(GPIO0)

RTC_GPIO12(GPIO2)

RTC_GPIO13(GPIO15)

RTC_GPIO14(GPIO13)

RTC_GPIO15(GPIO12)

RTC_GPIO16(GPIO14)

RTC_GPIO17(GPIO27)

开机时为高电平

一些GPIO在引导或复位时将其状态更改为HIGH或输出PWM信号。这意味着如果您有连接到这些GPIO的输出,则在ESP32复位或启动时,可能会得到意想不到的结果。

GPIO 1

GPIO 3

GPIO 5

GPIO 6至GPIO 11(连接到ESP32集成SPI闪存–不建议使用)。

GPIO 14

GPIO 15

启用(EN)

使能(EN)是3.3V稳压器的使能引脚。它已上拉,因此接地需要禁用3.3V稳压器。例如,这意味着您可以使用连接到按钮的此引脚来重启ESP32。

GPIO电流消耗

根据ESP32数据手册中的“推荐工作条件”部分,每个GPIO消耗的绝对最大电流为40mA。

ESP32内置霍尔效应传感器

ESP32还具有内置霍尔效应传感器,可检测其周围磁场的变化。

(0)

相关推荐