ESP32引脚笔记
ESP32引脚笔记
ESP32建议使用的引脚
可参考下图Euno开发板引脚
模拟输入可采用: 32、33、34、35、36、39
数字输出可采用: 上图右侧引脚
SPI : mosi-23, miso-19, clk-18, cs-5
IIC: scl-22, sda-21
仅输入引脚
GPIO34~39是GPIs–仅输入的管脚。这些引脚没有内部上拉或下拉电阻。它们不能用作输出,因此只能将这些管脚用作输入:GPIO 34、GPIO 35、GPIO 36、GPIO 39
SPI闪存
GPIO 6~GPIO 11在一些ESP32开发板中是公开的。但是,这些引脚连接到ESP-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 x 12位ADC输入通道(而ESP8266只有1 x 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,这应该可以解决您的问题。
数模转换器(DAC)
ESP32上有2 x 8位DAC通道,用于将数字信号转换为模拟电压信号输出。这些是DAC通道:
DAC1 (GPIO25)、DAC2 (GPIO26)
RTC GPIOs
ESP32支持RTC GPIO。当ESP32处于深度睡眠状态时,可以使用路由到RTC低功耗子系统的GPIO。这些RTC gpio可用于在超低功耗(ULP)协处理器运行时将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)
脉冲宽度调制
ESP32 LED PWM控制器有16个独立通道,可以配置为生成具有不同特性的PWM信号。所有可以作为输出的管脚都可以用作PWM管脚(GPIOs 34到39不能产生PWM)。
要设置脉冲宽度调制信号,需要在代码中定义这些参数:信号频率、占空比、脉宽调制通道、输出信号的GPIO。
I2C引脚
ESP32有两个I2C通道,任何管脚都可以设置为SDA或SCL。将ESP32与Arduino IDE一起使用时,默认I2C引脚为:
GPIO 21(SDA)、GPIO 22(SCL)
如果要使用其他管脚,在使库函数时,只需调用:Wire.begin(SDA, SCL);
SPI引脚
默认情况下,SPI的pin映射为:
中断
Esp32-s的所有GPIO都可以配置为中断
常见开发板引脚
NodeMCU-32S
价格14元 C口
pins_arduino
文件位置:
C:\Users\Da\.platformio\packages\framework-arduinoespressif32\variants\esp32\pins_arduino.h
点击查看代码
#ifndef Pins_Arduino_h
#define Pins_Arduino_h
#include <stdint.h>
static const uint8_t TX = 1;
static const uint8_t RX = 3;
static const uint8_t SDA = 21;
static const uint8_t SCL = 22;
static const uint8_t SS = 5;
static const uint8_t MOSI = 23;
static const uint8_t MISO = 19;
static const uint8_t SCK = 18;
static const uint8_t A0 = 36;
static const uint8_t A3 = 39;
static const uint8_t A4 = 32;
static const uint8_t A5 = 33;
static const uint8_t A6 = 34;
static const uint8_t A7 = 35;
static const uint8_t A10 = 4;
static const uint8_t A11 = 0;
static const uint8_t A12 = 2;
static const uint8_t A13 = 15;
static const uint8_t A14 = 13;
static const uint8_t A15 = 12;
static const uint8_t A16 = 14;
static const uint8_t A17 = 27;
static const uint8_t A18 = 25;
static const uint8_t A19 = 26;
static const uint8_t T0 = 4;
static const uint8_t T1 = 0;
static const uint8_t T2 = 2;
static const uint8_t T3 = 15;
static const uint8_t T4 = 13;
static const uint8_t T5 = 12;
static const uint8_t T6 = 14;
static const uint8_t T7 = 27;
static const uint8_t T8 = 33;
static const uint8_t T9 = 32;
static const uint8_t DAC1 = 25;
static const uint8_t DAC2 = 26;
#endif /* Pins_Arduino_h */