如何在 ESP8266 上选用合适的引脚

本文旨在介绍 ESP8266 的引脚定义、引脚功能及如何使用它们。

ESP-12E 模块拥有 17 个 GPIO 引脚。但在各个开发板上,ESP8266 芯片的 GPIO 引脚并不一定全部引出,而且某些引脚不建议使用,某些引脚有非常特殊的功能。

本文将指导你如何正确使用 ESP8266 的各个 GPIO,避免用错引脚而浪费时间。

ESP12-E 模块引脚定义

下图阐述了 ESP-12E 模块的引脚定义。当你的项目使用裸 ESP-12E/F 模块的时候,可以参考此图。

注意:某些开发板可能不能使用全部的引脚,但相同的引脚在不同的开发板上,功能肯定是一样的。

当前市场上有很多不同的 ESP8266 模块/开发板,它们的形状、大小、可用 GPIO 数目各不相同。但最常用的是 ESP-01(S)、ESP-12E/F、NodeMCU 开发板以及 Wemos D1 Mini 开发板。你可以自己搜索这些开发板模块的区别。

ESP-01(S) 引脚定义

如果你在用 ESP-01(S) 的板子,可以参考下图的 GPIO 引脚定义。

ESP-12E NodeMCU 开发板

ESP-12E NodeMCU 开发板的引脚定义如下图所示。

Wemos D1 Mini 开发板

Wemos D1 Mini 开发板的引脚定义如下图所示。

ESP8266 的外设

ESP8266 的外设包括:

17 个 GPIO

SPI

I2C(软件实现)

I2S(支持 DMA)

UART

10 位 ADC

推荐使用的引脚

需要注意的一点是,ESP8266 开发板上丝印的引脚号,并不是芯片真正的 GPIO 编号。比如,D0 是 GPIO16,D1 是 GPIO5。

下表说明了 ESP8266 开发板上丝印的引脚号与实际 GPIO 编号的对应关系,并提醒你哪些引脚在使用时需要注意。

绿色标记的引脚可以随意使用;黄色标记的引脚可以使用,但需要注意它们在芯片启动时的影响,可能带来意外的问题。红色标记的引脚不建议用作输入或输出功能。

丝印标签

GPIO

可作为输入

可作为输出

备注

D0

GPIO16

不可用于中断

不可用于 PWM 或 I2C

启动时为高电平

用于从深度睡眠中唤醒

D1

GPIO5

通常用作 SCL (I2C)

D2

GPIO4

通常用作 SDA (I2C)

D3

GPIO0

已被上拉

与 FLASH 按键连接,如果拉低则会启动失败

D4

GPIO2

已被上拉

启动时为高电平

连接板载 LED,如果拉低则会启动失败

D5

GPIO14

SPI (SCLK)

D6

GPIO12

SPI (MISO)

D7

GPIO13

SPI (MOSI)

D8

GPIO15

已被下拉至 GND

SPI (CS)

如果拉高则会启动失败

RX

GPIO3

RX 引脚

启动时为高电平

TX

GPIO1

TX 引脚

启动时为高电平

启动时的调试输出引脚,如果拉低会启动失败

A0

ADC0

模拟输入

禁用

接下来的篇幅将更详细地介绍 ESP8266 GPIO 引脚的功能。

连接 FLASH 芯片的引脚

GPIO6 到 GPIO11 通常用于连接 FLASH 芯片,所以,不推荐使用这几个引脚。

启动过程中用到的引脚

如果某些引脚被拉高或者拉低,ESP8266 可能会启动失败。下表是部分引脚在启动时的状态:

GPIO16:启动时为高电平

GPIO0:如果被拉低,则启动失败

GPIO2:启动时为高电平,如果被拉低,则启动失败

GPIO15:如果被拉高,则启动失败

GPIO3:启动时为高电平

GPIO1:启动时为高电平,如果被拉低,则启动失败

GPIO10:启动时为高电平

GPIO9:启动时为高电平

启动时为高电平的引脚

以下引脚在启动时会输出 3.3V 的高电平。如果你在这些引脚上接了继电器之类的外设,可能会带来一些问题:

GPIO16

GPIO3

GPIO1

GPIO10

GPIO9

此外,其他引脚(除了 GPIO5 和 GPIO4),在启动时会输出低电平信号,同样可能带来问题。你可以阅读 此文章 以详细了解各个 GPIO 在启动时的状态。

如果需要控制继电器或功率管,GPIO4 和 GPIO5 是最安全的引脚。

模拟输入引脚

ESP8266 只有一个引脚支持模拟输入,此引脚叫 ADC0,丝印上常标记为 A0。

如果使用 ESP8266 裸芯片(ESP-12E/F)的话,此引脚的电压输入范围为 0-1V。如果使用了 NodeMCU 之类的开发板,那么电压输入范围就是 0-3.3V,因为开发板上已经集成了分压器。

板载 LED

大多数 ESP8266 模块均有一个内置的 LED,通常连在 GPIO2 上。LED 亮灭的逻辑是反向的,GPIO2 为高电平时,LED 熄灭;GPIO2 低电平时,LED 亮起。

复位引脚

当 RST 引脚被拉低时,ESP8266 将被复位。按开发板上的 RESET 按键同理。

GPIO0

当 GPIO0 被拉低时,复位 ESP8266,芯片将进入 bootloader 模式。按开发板上的 FLASH/BOOT 按钮同理。

GPIO16

GPIO16 可被用于从深度睡眠中唤醒 ESP8266。要实现此功能,需要将 GPIO16 连接在 RST 引脚上。关于如何实现深度睡眠,请搜索并参考 Arduino 官网上的相关案例。

I2C

ESP8266 没有硬件 I2C 引脚,但可以用软件模拟,所以你可以使用任意引脚实现 I2C。通常我们会使用以下引脚:

GPIO5:SCL

GPIO4:SDA

SPI

ESP8266 上的 SPI 引脚如下:

GPIO12:MISO

GPIO13:MOSI

GPIO14:SCLK

GPIO15:CS

PWM 引脚

我们可以在 ESP8266 的所有引脚(GPIO0 至 GPIO15)上软件实现 PWM 功能。ESP8266 上的 PWM 有 10 位精度。关于如何实现 PWM 功能,请搜索并参考 Arduino 官网上的相关案例。

中断引脚

ESP8266 的所有 GPIO 引脚均支持中断,除了 GPIO16。相关案例请搜索并参考 Arduino 官网上的相关案例。

  • 8
    点赞
  • 92
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值