文章目录
ESP32 各个引脚参考
GPIO | INPUT | OUTPUT | Notes |
0 | pulled up | OK | outputs PWM signal at boot |
1 | TX | OK | debug output at boot |
2 | OK | OK | connected to on-board LED |
3 | OK | RX | High at boot |
4 | OK | OK | |
5 | OK | OK | outputs PWM signal at boot |
6 | X | X | connected to the integrated SPI flash |
7 | X | X | connected to the integrated SPI flash |
8 | X | X | connected to the integrated SPI flash |
9 | X | X | connected to the integrated SPI flash |
10 | X | X | connected to the integrated SPI flash |
11 | X | X | connected to the integrated SPI flash |
12 | OK | OK | boot fail if pulled high |
13 | OK | OK | |
14 | OK | OK | outputs PWM signal at boot |
15 | OK | OK | outputs PWM signal at boot |
16 | OK | OK | |
17 | OK | OK | |
18 | OK | OK | |
19 | OK | OK | |
21 | OK | OK | |
22 | OK | OK | |
23 | OK | OK | |
25 | OK | OK | |
26 | OK | OK | |
27 | OK | OK | |
32 | OK | OK | |
33 | OK | OK | |
34 | OK | input only | |
35 | OK | input only | |
36 | OK | input only | |
39 | OK | input only |
ESP32 外围设备
ESP32具备丰富的外围设备,分别如下:
- 18个模数转换器ADC通道
- 3个SPI接口
- 3个UART接口
- 2个I2C接口
- 16个PWM输出通道
- 2个数模转换器DAC通道
- 2个I2S接口
- 10个电容传感器GPIO
仅用于输入的引脚
GPIO34-39是仅用于输入的引脚,这些引脚内部没有上啦或者下拉电阻,不能用作输出:GPIO34, 35, 36, 39
集成内部的flash
GPIO6, 7, 8, 9, 10, 11继承了内部的SPI闪存,不建议用于其他用途
电容触摸GPIO
ESP32有10个内部电容式触摸传感器,他们能感应到任何带点物质的变化,比如人类皮肤等,可以集成到电容垫并取代机械按钮,也可以唤醒ESP32的深度睡眠
GPIO4(T0), 0(T1), 2(T2), 15(T3), 13(T4), 12(T5), 14(T6), 27(T7), 33(T8), 32(T9)
模数转换器ADC
ESP32有18个12位的ADC通道
GPIO36(ADC1_0),
GPIO37(ADC1_1),
GPIO38(ADC1_2),
GPIO39(ADC1_3),
GPIO32(ADC1_4),
GPIO33(ADC1_5),
GPIO34(ADC1_6),
GPIO35(ADC1_7),
GPIO4(ADC2_0),
GPIO0(ADC2_1),
GPIO2(ADC2_2),
GPIO15(ADC2_3),
GPIO13(ADC2_4),
GPIO12(ADC2_5),
GPIO14(ADC2_6),
GPIO27(ADC2_7),
GPIO25(ADC2_8),
GPIO26(ADC2_9)
注意:使用WIFI的时候不能使用ADC2引脚
数模转换器DAC
ESP32上有2x8位的DAC通道:GPIO25(DAC1), GPIO26(DAC2)
RTC引脚
ESP32支持RTC功能,当出于深度睡眠的时候,可以使用路由到RTC低功耗子系统的GPIO,这些引脚可用于在超低功耗协处理器运行时将ESP32从深度睡眠中唤醒:
RTC_0 (GPIO36),
RTC_3 (GPIO39),
RTC_4 (GPIO34),
RTC_5 (GPIO35),
RTC_6 (GPIO25),
RTC_7 (GPIO26),
RTC_8 (GPIO33),
RTC_9 (GPIO32),
RTC_10 (GPIO4),
RTC_11 (GPIO0),
RTC_12 (GPIO2),
RTC_13 (GPIO15),
RTC_14 (GPIO13),
RTC_15 (GPIO12),
RTC_16 (GPIO14),
RTC_17 (GPIO27)
PWM脉冲宽度调制
ESP32的PWM控制器有16个独立通道,可以配置生成不同特性的PWM信号,所有的输出引脚都可以用来生成PWM
I2C接口
ESP32有两个I2C通道,任何引脚都可以设置为SDA/SCL,将ESP32和Arduino一起使用的时候,默认的I2C引脚为:SDA(GPIO21), SCL(GPIO22)
SPI接口
默认情况下,ESP32的SPI映射引脚:
SPI | MOSI | MISO | CLK | CS |
VSPI | GPIO23 | GPIO19 | GPIO18 | GPIO5 |
HSPI | GPIO13 | GPIO12 | GPIO14 | GPIO15 |
中断
ESP32所有的GPIO都可以配置为中断