如何在 ESP 单片机上选用合适的引脚

#智能家居 2022-11-21 14:41:49 | 全文 1651 字,阅读约需 4 分钟 | 加载中... 次浏览

👋 相关阅读


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

图片alt

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

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

ESP12-E 模块引脚定义

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

图片alt

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

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

常用 ESP8266 开发板引脚定义

ESP-01(S) 引脚定义

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

图片alt

ESP-12E NodeMCU 开发板

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

图片alt

Wemos D1 Mini 开发板

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

图片alt

ESP8266 的外设

ESP8266 的外设包括:

推荐使用的引脚

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

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

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

图片alt

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

连接 FLASH 芯片的引脚

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

启动过程中用到的引脚

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

启动时为高电平的引脚

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

此外,其他引脚(除了 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 亮起。

图片alt

复位引脚

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

图片alt

GPIO0

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

GPIO16

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

I2C

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

SPI

ESP8266 上的 SPI 引脚如下:

PWM 引脚

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

中断引脚

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

希望本文能解决你对 ESP8266 GPIO 的相关疑惑,祝好!

VIA

如何在 ESP8266 上选用合适的引脚 - 三帛的世界 https://blog.vvzero.com/2022/05/05/esp8266-pinout-reference-gpios/

Edit | Last updated on 2024-04-08 15:48:44




×