用Arduino玩ESP32(05):GPIO使用

1. Strapping引脚

ESP32 共有5 个Strapping 管脚。

  • MTDI/GPIO12:内部下拉
  • GPIO0:内部上拉
  • GPIO2:内部下拉
  • MTDO/GPIO15:内部上拉
  • GPIO5:内部上拉

2. 专用spi flash引脚

  • GPIO6
  • GPIO7
  • GPIO8
  • GPIO9
  • GPIO10
  • GPIO11
    一般在模组内部用于外接SPI flash。

3. 只具有输入功能的引脚

  • GPIO34
  • GPIO35
  • GPIO36
  • GPIO37
  • GPIO38
  • GPIO39
    以上管脚只具有输入功能,没有上拉下拉选项

待定(nodemcu-32s中可以用)

  • GPIO16
  • GPIO17
//实际剩余引脚:
日常可用
32  ADC4    TOUCH9
33  ADC5    TOUCH8
25  ADC18  DAC1
26  ADC19  DAC2
27  ADC17  TOUCH7
14  ADC16  TOUCH6
13  ADC14  TOUCH4
04  ADC10  TOUCH0
左侧(专用)
23   VSPI     MOSI
22   SCL
21   SDA
19   VSPI     MISO
18   VSPI     SCK

以下内容转自ESP32芯片IO解读
相关阅读

我们使用一个开发板最重要得就是知道引脚得定义.所以我们有必要查到精确的资料,这篇文章很有用.也是我日后要查找得文章.

首先我们要明确一点,其实板子那么大,有用的就是这个核心的芯片

这个芯片上面的引脚引出来做相应的功能.

ESP32芯片具有48个功能齐全的引脚。并非所有ESP32开发板上的所有引脚都裸露,并且有些引脚无法使用。

ESP32外设包括:

  • 18个模数转换器(ADC)通道

  • 3个SPI接口

  • 3个UART接口

  • 2个I2C接口

  • 16个PWM输出通道

  • 2个数模转换器(DAC)

  • 2个I2S接口

  • 10个电容式感应GPIO

ADC(模拟到数字转换器)和DAC(数字到模拟转换器)功能分配给特定的静态引脚。但是,你可以确定哪些引脚是UART,I2C,SPI,PWM等–只需要在代码中分配它们即可。由于ESP32芯片具有多路复用功能,因此这是可能的。

图片

这个是36脚的,国外卖的是这个板子.'

国内是30脚的

此外,还有具有特定功能的引脚,这些引脚使它们不适用于特定项目。下表显示了哪些引脚最适合用作输入,输出以及需要谨慎使用的引脚。

以绿色突出显示的引脚可以使用。黄色突出显示的选项可以使用,但是你需要注意,因为它们可能主要在启动时具有意外行为。不建议将红色突出显示的引脚用作输入或输出。

ok是好
红的
绿色的
黄色就是疯狂暗示的引脚,懂了吧

仅输入引脚

GPIO 34至39是GPI –仅输入引脚。这些引脚没有内部上拉或下拉电阻。它们不能用作输出,因此只能将这些引脚用作输入:

  • GPIO 34

  • GPIO 35

  • GPIO 36

  • GPIO 39

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)

电容式触摸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)

模数转换器(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)

注意:使用Wi-Fi时不能使用ADC2引脚。因此,如果使用的是Wi-Fi,并且无法从ADC2 GPIO获取值,则可以考虑改用ADC1 GPIO,这样可以解决问题。

ADC输入通道具有12位分辨率。这意味着您可以获得的模拟读数范围为0至4095,其中0对应于0V,4095至3.3V。您还可以在代码上设置通道的分辨率以及ADC范围。

ESP32 ADC引脚没有线性行为。您可能将无法区分0和0.1V,或3.2和3.3V。使用ADC引脚时,请记住这一点。您将获得类似于下图所示的行为。

https://github.com/espressif/arduino-esp32/issues/92

数模转换器(DAC)

ESP32上有2 x 8位DAC通道,可将数字信号转换为模拟电压信号输出。这些是DAC通道:

  • DAC1(GPIO25)

  • DAC2(GPIO26)

脉宽调制

ESP32 LED PWM控制器具有16个独立通道,可配置为生成具有不同属性的PWM信号。所有可用作输出的引脚都可以用作PWM引脚(GPIO 34至39无法生成PWM)。

要设置PWM信号,您需要在代码中定义以下参数:

  • 信号频率

  • 占空比;

  • PWM通道

  • 您要在其中输出信号的GPIO。

I2C

ESP32有两个I2C通道,任何引脚都可以设置为SDA或SCL。当将ESP32与Arduino IDE结合使用时,默认的I2C引脚为:

  • GPIO 21(SDA)

  • GPIO 22(SCL)

如果要使用其他引脚,则在使用线库时,只需调用:

Wire.begin(SDA, SCL);

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 |

中断

所有GPIO都可以配置为中断。

Strapping Pins

ESP32芯片具有以下strapping pins:

  • GPIO 0

  • GPIO 2

  • GPIO 4

  • GPIO 5(启动期间必须为高电平)

  • GPIO 12(启动期间必须为LOW)

  • GPIO 15(引导期间必须为高电平

我实在不会翻译这个了....

RTC GPIO

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)

开机时为高电平

一些GPIO在引导或复位时将其状态更改为HIGH或输出PWM信号。这意味着如果您有连接到这些GPIO的输出,则在ESP32复位或启动时,可能会得到意想不到的结果。

  • GPIO 1

  • GPIO 3

  • GPIO 5

  • GPIO 6至GPIO 11(连接到ESP32集成SPI闪存–不建议使用)。

  • GPIO 14

  • GPIO 15

启用(EN)

使能(EN)是3.3V稳压器的使能引脚。它已上拉,因此接地需要禁用3.3V稳压器。例如,这意味着您可以使用连接到按钮的此引脚来重启ESP32。

GPIO电流消耗

根据ESP32数据手册中的“推荐工作条件”部分,每个GPIO消耗的绝对最大电流为40mA。

ESP32内置霍尔效应传感器

ESP32还具有内置霍尔效应传感器,可检测其周围磁场的变化。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,670评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,928评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,926评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,238评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,112评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,138评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,545评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,232评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,496评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,596评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,369评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,226评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,600评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,906评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,185评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,516评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,721评论 2 335

推荐阅读更多精彩内容