我们使用一个开发板最重要得就是知道引脚得定义.所以我们有必要查到精确的资料,这篇文章很有用.也是我日后要查找得文章.
首先我们要明确一点,其实板子那么大,有用的就是这个核心的芯片
这个芯片上面的引脚引出来做相应的功能.
ESP32芯片具有48个功能齐全的引脚。并非所有ESP32开发板上的所有引脚都裸露,并且有些引脚无法使用。
ESP32外设包括:
ADC(模拟到数字转换器)和DAC(数字到模拟转换器)功能分配给特定的静态引脚。但是,你可以确定哪些引脚是UART,I2C,SPI,PWM等–只需要在代码中分配它们即可。由于ESP32芯片具有多路复用功能,因此这是可能的。
这个是36脚的,国外卖的是这个板子.'
国内是30脚的
此外,还有具有特定功能的引脚,这些引脚使它们不适用于特定项目。下表显示了哪些引脚最适合用作输入,输出以及需要谨慎使用的引脚。
以绿色突出显示的引脚可以使用。黄色突出显示的选项可以使用,但是你需要注意,因为它们可能主要在启动时具有意外行为。不建议将红色突出显示的引脚用作输入或输出。
ok是好
红的
绿色的
黄色就是疯狂暗示的引脚,懂了吧
GPIO 34至39是GPI –仅输入引脚。这些引脚没有内部上拉或下拉电阻。它们不能用作输出,因此只能将这些引脚用作输入:
某些ESP32开发板公开了GPIO 6至GPIO 11。但是,这些引脚连接到ESP-WROOM-32芯片上的集成SPI闪存,不建议用于其他用途。因此,请勿在您的项目中使用这些引脚:
ESP32具有10个内部电容式触摸传感器。它们可以感应任何带有电荷的东西的变化,例如人体皮肤。因此,他们可以检测到用手指触摸GPIO时引起的变化。这些引脚可以轻松集成到电容性焊盘中,并取代机械按钮。电容式触摸引脚还可以用于将ESP32从深度睡眠中唤醒。
这些内部触摸传感器连接到以下GPIO:
ESP32具有18个12位ADC输入通道(而ESP8266仅具有1个10位ADC)。这些是可用作ADC和相应通道的GPIO:
注意:使用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
ESP32上有2 x 8位DAC通道,可将数字信号转换为模拟电压信号输出。这些是DAC通道:
ESP32 LED PWM控制器具有16个独立通道,可配置为生成具有不同属性的PWM信号。所有可用作输出的引脚都可以用作PWM引脚(GPIO 34至39无法生成PWM)。
要设置PWM信号,您需要在代码中定义以下参数:
ESP32有两个I2C通道,任何引脚都可以设置为SDA或SCL。当将ESP32与Arduino IDE结合使用时,默认的I2C引脚为:
如果要使用其他引脚,则在使用线库时,只需调用:
Wire.begin(SDA, SCL);
默认情况下,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都可以配置为中断。
ESP32芯片具有以下strapping pins:
我实在不会翻译这个了....
ESP32上有RTC GPIO支持。当ESP32处于深度睡眠状态时,可以使用路由到RTC低功耗子系统的GPIO。当超低功耗(ULP)协处理器运行时,这些RTC GPIO可用于将ESP32从深度睡眠中唤醒。以下GPIO可用作外部唤醒源。
一些GPIO在引导或复位时将其状态更改为HIGH或输出PWM信号。这意味着如果您有连接到这些GPIO的输出,则在ESP32复位或启动时,可能会得到意想不到的结果。
使能(EN)是3.3V稳压器的使能引脚。它已上拉,因此接地需要禁用3.3V稳压器。例如,这意味着您可以使用连接到按钮的此引脚来重启ESP32。
根据ESP32数据手册中的“推荐工作条件”部分,每个GPIO消耗的绝对最大电流为40mA。
ESP32还具有内置霍尔效应传感器,可检测其周围磁场的变化。