ESP32 GPIO

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

ESP32 38Pin

2.ESP32-VROOM-32D

ESP32

总结

以上涵盖了esp32 GPIO 的所有基本信息,其中参考了很多资料,请大家多多发言讨论。如有缺漏还请大家留言评论。

版权声明:本文为CSDN博主「我不想35岁失业」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_43454310/article/details/114824338

生成海报
点赞 0

我不想35岁失业

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

4路红外循迹模块使用教程

4路红外循迹模块使用教程 个人原创博客:点击浏览模块详细信息: 工作电压:DC 3.3V~5V 工作电流:尽量选择1A以上电源供电 工作温度:-10℃~50℃ 安装孔

ESP32学习记录<四>ADC和DAC

ESP32学习记录ADC和DAC 前言 ADC和DAC是单片机比较常用的,ESP32具有12位的ADC和8位的DAC。今天我就简单地记录它们的使用。 一、ADC ADC也就是我们通常所说的模数转换,模拟信号