问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

ESP32 GPIO引脚说明

创作时间:
作者:
@小白创作中心

ESP32 GPIO引脚说明

引用
51CTO
1.
https://blog.51cto.com/u_16099303/10713853

ESP32是物联网和嵌入式开发领域的重要芯片,其丰富的GPIO引脚资源和强大的外设功能使其在各种应用场景中都有广泛的应用。本文详细介绍了ESP32的48个引脚的功能、使用注意事项以及各种外设接口的详细说明,内容详尽且专业,适合对物联网和嵌入式开发感兴趣的读者。

前言

ESP32芯片自带48个引脚,并不是所有的ESP32开发板都会露出所有的引脚,有一些引脚是不能使用的。对于如何使用ESP32 GPIO,我在以下详细介绍。

一、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 的所有基本信息,其中参考了很多资料,请大家多多发言讨论。如有缺漏还请大家留言评论。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号