文章目录[隐藏]
MicroPython ESP32 开发
1.ESP32刷入MicroPython以及连接WiFi
2.ESP32 GPIO(本文)
3.ESP32 GPIO 的高低电平与PWM
4.ESP32 控制继电器与读取DHT22温湿度数据
5.socket 通信
更新中……
前言
ESP32芯片自带48个引脚,并不是所有的ESP32开发板都会露出所有的引脚,有一些引脚是不能使用的。对于如何使用ESP32 GPIO,我在以下详细介绍ESP-WROOM-32 30 PIN
开发板 。
提示:以下是本篇文章正文内容,下面案例可供参考
一、ESP32 GPIO简介
1.ESP-WROOM-32 30 PIN 开发板 PINOUT
如果您跟我一样使用的是ESP32 30针开发板,您可以使用下面的GPIO图作为参考。ESP32 30针开发板GPIO引脚图
注:有几种开发板,如36针开发板和ESP32-Pico-Kit以及其他几种。我不在这里全部列出,但你可以使用这里的引脚定义作为参考。
2.ESP32的基本引脚
此外,有些引脚具有特定的功能,使得它们适合或不适合特定的项目。下表显示了哪些引脚最好作为输入、输出,哪些引脚需要谨慎使用。
绿色高亮显示的针脚可以使用,黄色高亮显示的针脚可以使用,但需要注意,因为它们主要在启动时可能会产生某些意外的行为。红色标记的引脚不建议用作输入或输出。
GPIO | 输入 | 输出 | 备注 |
---|---|---|---|
0 | pulled up | OK | 启动时输出PWM信号 |
1 | TX Pin | OK | 调试输出 |
2 | OK | OK | 连接到板载LED |
3 | OK | RX Pin | 启动时为高电平 |
4 | OK | OK | |
5 | OK | OK | 启动时输出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 | OK | OK | |
13 | OK | OK | 启动时输出PWM信号 |
14 | OK | OK | 启动时输出PWM信号 |
15 | OK | OK | |
16 | OK | OK | |
17 | OK | OK | |
18 | OK | OK | |
19 | OK | OK | |
20 | OK | OK | |
21 | OK | OK | |
22 | OK | OK | |
23 | OK | OK | |
24 | OK | OK | |
25 | OK | OK | |
26 | OK | OK | |
27 | OK | OK | |
28 | OK | OK | |
29 | OK | OK | |
30 | OK | OK | |
31 | OK | OK | |
32 | OK | OK | |
33 | OK | OK | |
34 | OK | X | 仅输入 |
35 | OK | X | 仅输入 |
36 | OK | X | 仅输入 |
37 | OK | X | 仅输入 |
38 | OK | X | 仅输入 |
39 | OK | X | 仅输入 |
二、ESP32 GPIO 详细介绍
1.仅输入引脚
GPIO 34-39是GPIO仅输入引脚。这些引脚没有内部上拉或下拉电阻。它们不能用作输出,因此只能将这些引脚用作输入
- GPIO 34
- GPIO 35
- GPIO 36
- GPIO 37
- GPIO 38
- GPIO 39
2.集成在ESP-WROOM-32上的SPI闪存
在一些ESP32开发板中,GPIO 6-GPIO 11是暴露的。但是,这些引脚连接到ESP-WROOM-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)
3.电容式触摸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)
4.模数转换器(ADC)
ESP32有18个12位ADC输入通道(而ESP8266只有1个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)
4.1 如何使用ESP32 ADC引脚
注意:当使用Wi-Fi时,不能使用ADC2引脚。因此,如果您使用Wi-Fi,而您又无法从ADC2 GPIO获取值,您可以考虑使用ADC1 GPIO来代替。
ADC输入通道的分辨率为12位。这意味着您可以获得0到4095的模拟读数,其中0对应0V,4095对应3.3V。您还可以在代码上设置通道的分辨率,以及ADC的范围。
代码暂不展示,更新中……
4.2 注意
ESP32的ADC引脚没有线性行为。你可能无法区分0和0.1V,或者3.2和3.3V。您在使用ADC引脚时需要记住这一点。
5.数字模拟转换器(DAC)
ESP32上有2个8位DAC通道,用于将数字信号转换为模拟电压信号输出。
- DAC1 (GPIO25)
- DAC2 (GPIO26)
6.RTC GPIOs
ESP32上有RTC GPIO支持。当ESP32处于深度睡眠状态时,可以使用路由到RTC低功耗子系统的GPIO。当超低功耗(ULP)协处理器运行时,这些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)
7.PWM
ESP32 LED PWM控制器有16个独立的通道,可以配置成产生不同属性的PWM信号。所有可以作为输出的引脚都可以作为PWM引脚(GPIO34到39不能用于PWM)。
要设置一个PWM信号,你需要在代码中定义这些参数。
- 信号的频率
- 占空比
- PWM通道
- 要输出信号的GPIO
8.I2C
ESP32有两个I2C通道,任何引脚都可以设置为SDA或SCL。默认的I2C引脚是
- GPIO 21 (SDA)
- GPIO 22 (SCL)
9.SPI
默认情况下,SPI的引脚映射是:
SPI | MOSI | MISO | CLK | CS |
---|---|---|---|---|
VSPI | GPIO 23 | GPIO 19 | GPIO 18 | GPIO 5 |
HSPI | GPIO 13 | GPIO 12 | GPIO 14 | GPIO 15 |
三、其他
1.中断
所有的GPIO都可以配置为中断
2.Strapping Pins
ESP32芯片有如下的Strapping Pins:
- GPIO 0
- GPIO 2
- GPIO 4
- GPIO 5 (开机时必须为高电平)
- GPIO 12 (开机时必须为低电平)
- GPIO 15 (开机时必须为高电平)
3.Pins HIGH at Boot
有些GPIO在启动或复位时,会将其状态变为HIGH或输出PWM信号。这意味着,如果您的输出连接到这些GPIO上,当ESP32复位或启动时,您可能会得到意想不到的结果。
GPIO 1
GPIO 3
GPIO 5
GPIO 6-11(连接到ESP32集成的SPI闪存——不建议使用)
GPIO 14
GPIO 15
4.EN
EN是3.3V调节器的使能引脚。它是被拉起的,因此连接到GND以禁用3.3V调节器。例如,这意味着您可以使用这个连接到按钮的引脚来重启您的ESP32。
5.GPIO的电流
根据ESP32数据表中的 **"Recommended Operating Conditions "**部分,每个GPIO的绝对最大电流为40mA
6.ESP32内置霍尔效应传感器
ESP32还内置了霍尔效应传感器,可以检测周围环境的磁场变化
其他
1.ESP32-38Pin-devboard
2.ESP32-VROOM-32D
总结
以上涵盖了esp32 GPIO 的所有基本信息,其中参考了很多资料,请大家多多发言讨论。如有缺漏还请大家留言评论。
版权声明:本文为CSDN博主「我不想35岁失业」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_43454310/article/details/114824338
暂无评论