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输入输出备注
0pulled upOK启动时输出PWM信号
1TX PinOK调试输出
2OKOK连接到板载LED
3OKRX Pin启动时为高电平
4OKOK
5OKOK启动时输出PWM信号
6XX连接到集成的SPI闪存
7XX连接到集成的SPI闪存
8XX连接到集成的SPI闪存
9XX连接到集成的SPI闪存
10XX连接到集成的SPI闪存
11XX连接到集成的SPI闪存
12OKOK
13OKOK启动时输出PWM信号
14OKOK启动时输出PWM信号
15OKOK
16OKOK
17OKOK
18OKOK
19OKOK
20OKOK
21OKOK
22OKOK
23OKOK
24OKOK
25OKOK
26OKOK
27OKOK
28OKOK
29OKOK
30OKOK
31OKOK
32OKOK
33OKOK
34OKX仅输入
35OKX仅输入
36OKX仅输入
37OKX仅输入
38OKX仅输入
39OKX仅输入

二、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的引脚映射是:

SPIMOSIMISOCLKCS
VSPIGPIO 23GPIO 19GPIO 18GPIO 5
HSPIGPIO 13GPIO 12GPIO 14GPIO 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 的所有基本信息,其中参考了很多资料,请大家多多发言讨论。如有缺漏还请大家留言评论。

  • 14
    点赞
  • 104
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我不想35岁失业

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值