常见ESP32开发版
市面上大部分开发版是基于 ESP32-S 和 ESP32-WROOM模组制造而成,本专栏都适用
- 自己画的
芯片规格
- 双核32位MCU
- 集成WIFI 和蓝牙
- 时钟频率高达240MHz,512K的RAM
- 丰富的外设:ADC,DAC,UART,SPI,IIC,I2S,电容式触摸…
- 内置霍尔传感器和温度传感器
- 根据不同厂商制作的开发版一般引出来的IO口有30个或其他数量
引脚介绍
ESP32 芯片有 48 个引脚,绝大多数引脚具有多种功能。但并不是所有的开发版引脚都留出来,有些引脚是不能使用的,在发开的过程中需要注意。下图是引脚功能展示图 *需要注意复位时输出PWM信号的引脚,避免这些引脚连接到舵机等通过PWM信号驱动的元件。
GPIO | 输入 | 输出 | 备注 |
---|
0 | √ | √ | 上拉,复位时输出PWM信号 | 1 | X | √ | 串口TX ,复位时输出调试信息 | 2 | √ | √ | 大部分开发版连接到板载LED | 3 | √ | X | 串口RX,复位时为高电平 | 4 | √ | √ | - | 5 | √ | √ | 复位时输出PWM信号 | 6 | x | x | 连接SPI闪存,不可使用 | 7 | x | x | 连接SPI闪存,不可使用 | 8 | x | x | 连接SPI闪存,不可使用 | 9 | x | x | 连接SPI闪存,不可使用 | 10 | x | x | 连接SPI闪存,不可使用 | 11 | x | x | 连接SPI闪存,不可使用 | 12 | √ | √ | 如果在通电、复位时为高电平可能会启动失败 | 13 | √ | √ | - | 14 | √ | √ | 复位时输出PWM信号 | 15 | √ | √ | 复位时输出PWM信号 | 16 | √ | √ | - | 17 | √ | √ | - | 18 | √ | √ | - | 19 | √ | √ | - | 21 | √ | √ | - | 22 | √ | √ | - | 23 | √ | √ | - | 25 | √ | √ | - | 26 | √ | √ | - | 27 | √ | √ | - | 32 | √ | √ | - | 33 | √ | √ | - | 34 | √ | x | 只能为输入 | 35 | √ | x | 只能为输入 | 36 | √ | x | 只能为输入 | 39 | √ | x | 只能为输入 |
电容式触摸 GPIO
ESP32 有 10 个内部电容式触摸传感器。这些可以感知任何带有电荷的东西的变化,比如人类皮肤。因此,他们可以检测用手指触摸 GPIO 时引起的变化。 相关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 输入通道,相对应的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 引脚!!,ESP32的ADC是12位的分辨率,也可以通过程序设置,具体使用在后面介绍
数模转换器 (DAC)
ESP32 上有 2 个 8 位 DAC 通道,用于将数字信号转换为模拟电压信号输出。具体使用在后面介绍
- DAC1 (GPIO25)
- DAC2 (GPIO26)
RTC GPIO
ESP32 支持 RTC GPIO。当 ESP32 处于深度睡眠状态时,这些 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)
PWM
除了IO34、IO35、IO36、IO39,其他GPIO均可作为PWM引脚,具体使用在以后介绍
I2C
ESP32 有两个 I2C 通道,任何引脚都可以设置为 SDA 或 SCL。在 Arduino IDE 中使用 ESP32 时,具体使用在后面介绍,默认的 I2C 引脚为:
SPI
默认情况下,具体使用在后面介绍,SPI 的引脚映射为:
SPI | MOSI | MISO | CLK | CS |
---|
VSPI | GPIO23 | GPIO19 | GPIO18 | GPIO5 | HSPI | GPIO13 | GPIO12 | GPIO14 | GPIO15 |
中断
所有GPIO均可设置为中断,具体使用在后面介绍
GPIO电流
根据 ESP32 数据手册中的“推荐工作条件”说明,每个 GPIO 消耗的绝对最大电流为 40mA。
复位
EN 引脚,正常通过电阻上拉,如果EN为低则芯片被禁用。
|