Arduino for ESP32 ---ESP32的硬件介绍
常见ESP32开发版市面上大部分开发版是基于 ESP32-S 和 ESP32-WROOM模组制造而成,本专栏都适用NodeMCU-32SESP32-DevKitC自己画的芯片规格双核32位MCU集成WIFI 和蓝牙时钟频率高达240MHz,512K的RAM丰富的外设:ADC,DAC,UART,SPI,IIC,I2S,电容式触摸…内置霍尔传感器和温度传感器根据不同厂商制作的开发版一般引出来的IO口有
常见ESP32开发版
市面上大部分开发版是基于 ESP32-S 和 ESP32-WROOM模组制造而成,本专栏都适用
- NodeMCU-32S
- ESP32-DevKitC
- 自己画的
芯片规格
- 双核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 引脚为:
- GPIO21 (SDA)
- GPIO22 (SCL)
SPI
默认情况下,具体使用在后面介绍,SPI 的引脚映射为:
SPI | MOSI | MISO | CLK | CS |
---|---|---|---|---|
VSPI | GPIO23 | GPIO19 | GPIO18 | GPIO5 |
HSPI | GPIO13 | GPIO12 | GPIO14 | GPIO15 |
中断
所有GPIO均可设置为中断,具体使用在后面介绍
GPIO电流
根据 ESP32 数据手册中的“推荐工作条件”说明,每个 GPIO 消耗的绝对最大电流为 40mA。
复位
EN 引脚,正常通过电阻上拉,如果EN为低则芯片被禁用。
更多推荐
所有评论(0)