ESP32开发记0(开发板及资源配置)
引脚及功能图如图:

淘宝店铺为“明武电子”,该板针脚为向下焊接,丝印在下面,上表面无丝印,使用起来稍有不便。串口驱动为CP2102,Arduino2.3.2通过手动安装开发板支持包实现支持与点灯成功。
1、ESP32外设资源(可实现的功能)
- 18路模数转换(ADC)通道;
- 3组SPI接口;
- 3组UART接口;
- 2组IIC接口;
- 16路PWM输出;
- 2路数模转换(DAC)通道;
- 10路电容式感应GPIO。
以上具体功能的实现除了需要引脚硬件支持以外,通常还需要在使用功能前通过程序进行对应设置。引脚支持的功能详见下图:
![]()
有些引脚限定了功能或不适用于某些用法,使用时需要额外注意,如:
1、仅能用作输入的引脚
- GPIO 34;
- GPIO 35;
- GPIO 36;
- GPIO 39。
上述引脚仅能用作输入功能。这些引脚内部未设置上拉或下拉电阻,不能用作输出。
2、集成SPI闪存的引脚
ESP32开发板引出了GPIO 6到GPIO 11,这些引脚连接到了芯片上的集成SPI闪存,用户应当避免使用这些引脚,以免程序出错。 - GPIO 6(SCK/时钟);
- GPIO 7(SDO/SD0);
- GPIO 8(SDI/SD1);
- GPIO 9(SHD/SD2);
- GPIO 10(SWP/SD3);
- GPIO 11(CSC/CMD)。
3、电容式触摸GPIO引脚
ESP32内部集成了10个电容式触摸传感器,分别连接至10个GPIO。通过这些引脚,允许单片机感知电荷变化,因此可以用于检测手指接触引脚所带来的电荷转移,从而实现触摸感知。该功能也可以用于将ESP32从深度睡眠模式中唤醒。 - GPIO 4(T0);
- GPIO 0(T1);
- GPIO 2(T2);
- GPIO 15(T3);
- GPIO 13(T4);
- GPIO 12(T5);
- GPIO 14(T6);
- GPIO 27(T7);
- GPIO 33(T8);
- GPIO 32(T9)。
4、模数转换(ADC)引脚
ESP32具有18路12bit精度的ADC输入通道(ESP8266仅支持1路10bit的ADC),它们是: - GPIO 36(ADC1_CH0);
- GPIO 37(ADC1_CH1);
- GPIO 38(ADC1_CH2);
- GPIO 39(ADC1_CH3);
- GPIO 32(ADC1_CH4);
- GPIO 33(ADC1_CH5);
- GPIO 34(ADC1_CH6);
- GPIO 35(ADC1_CH7);
- GPIO 4(ADC2_CH0);
- GPIO 0(ADC2_CH1);
- GPIO 2(ADC2_CH2);
- GPIO 15(ADC2_CH3);
- GPIO 13(ADC2_CH4);
- GPIO 12(ADC2_CH5);
- GPIO 14(ADC2_CH6);
- GPIO 27(ADC2_CH7);
- GPIO 25(ADC2_CH8);
- GPIO 26(ADC2_CH9)。
注意,启用WIFI功能时,它将与ADC2发生冲突。此时,可使用ADC1相关引脚及通道。
ADC输入通道具有12bit精度,即0~4096。其中,0对应0V,4095对应最高允许输入的模拟电压3.3V。
5、数模转换(DAC)引脚
ESP32具有2路8bit的DAC输出通道,它们是: - GPIO 25(DAC1);
- GPIO 26(DAC2)。
6、RTC GPIO
ESP32支持RTC GPIO。当ESP牌深度睡眠时,可以使用路由到RTC低功耗子系统的GPIO。当超低功耗(ULP)协处理器运行时,这些RTC GPIO可用于将ESP32从深度睡眠中唤醒。以下的GPIO引脚可连接至外部唤醒源: - GPIO 36(RTC_GPIO0);
- GPIO 39(RTC_GPIO3);
- GPIO 34(RTC_GPIO4);
- GPIO 35(RTC_GPIO5);
- GPIO 25(RTC_GPIO6);
- GPIO 26(RTC_GPIO7);
- GPIO 33(RTC_GPIO8);
- GPIO 32(RTC_GPIO9);
- GPIO 4(RTC_GPIO10);
- GPIO 0(RTC_GPIO11);
- GPIO 2(RTC_GPIO12);
- GPIO 15(RTC_GPIO13);
- GPIO 13(RTC_GPIO14);
- GPIO 12(RTC_GPIO15);
- GPIO 14(RTC_GPIO16);
- GPIO 27(RTC_GPIO17)。
7、PWM输出
ESP32具有16路PWM输出通道,可以配置产生不同频率、占空比的PWM信号。除GPIO 34~39以外,所有可以作为输出的功能都可以用作PWM输出。输出PWM信号时,需要设置有参数有:
信号频率;
占空比;
输出PWM的通道;
输出PWM的GPIO引脚。
8、IIC接口
ESP具有2个IIC通道,且任何引脚都可以设置为SCL和SDA。在使用Arduino IDE开发时,默认的IIC引脚为: - SCL(GPIO 22);
- SDA(GPIO 21)。
如果在使用Wire.h库时还想使用其它引脚实现IIC功能,需要调用的语句是:
Wire.begin(SDA,SCL);
9、SPI接口
默认情况下,SPI的引脚与功能对应关系为:
SPI--------VSPI--------HSPI
MOSI-------GPIO 23-----GPIO 13
MISO-------GPIO 19-----GPIO 12
CLK--------GPIO 18-----GPIO 14
CS---------GPIO 5------GPIO 15
10、中断功能引脚
ESP32的所有GPIO引脚都可以配置为中断功能引脚。
11、开机时引脚为高电平状态问题
一些GPIO在启动或复位后,可能输出高电平或PWM信号。请确认这些情况对电路或控制系统可能产生的影响。这些引脚是: - GPIO 1;
- GPIO 3;
- GPIO 5;
- GPIO 6到GPIO 11(连接到ESP32集成SPI闪存,建议用户避免使用);
- GPIO 14;
- GPIO 15;
12、单片机复位
EN引脚是板载3.3V稳压器的使能引脚,内部已默认接高电平。用户可以通过令EN引脚接低电平,实现芯片的“断电”重启,即系统复位。
13、GPIO引脚电流问题
根据ESP32 datasheet所列,单路GPIO允许最大电流为40mA。实测,以学生电源3.3V电压直接驱动普通红色LED时会烧坏LED,烧坏后LED为短路状态。因此,不能用ESP32引脚输出高电平(3.3V)直接驱动普通LED,LED在40mA足以烧坏,短路后可能进一步损坏单片机。使用中请增加限流电阻,以LED压降2V、工作在10到20mA计,建议限流电阻选取68欧到130欧。事实上,100到200欧应当都是合适的。
14、ESP32内置霍尔效应传感器
ESP32还内置了霍尔效应传感器,可以用于检测周围磁场变化。
更多详细内容,请参阅ESP32 datasheet。
参考文献:
【1】https://blog.csdn.net/m0_46509684/article/details/129105888
【2】https://blog.csdn.net/Naiva/article/details/124167337
【3】https://docs.espressif.com/projects/esp-idf/en/latest/esp32/hw-reference/index.html

浙公网安备 33010602011771号