本文转载,翻译自这篇文章

本文包含 ESP8266 GPIO 的指南,引脚图,功能以及如何使用它们。

ESP8266 12-E 芯片带有 17 个 GPIO 引脚。并不是所有的 ESP8266 开发板都暴露了所有的 GPIO,有些 GPIO 是不推荐使用的,还有一些有非常特殊的功能。

通过本指南,您将了解如何正确使用 ESP8266 GPIO,并通过为您的项目使用最合适的引脚来避免数小时的挫败感。

ESP8266 12-E 芯片引脚

下图说明了 ESP8266 12-E 芯片的引脚排列。如果您在项目中使用 ESP8266 裸芯片,请使用此图。

注意:并非所有 GPIO 都可以在所有开发板中访问,但无论您使用哪种开发板,每个特定 GPIO 都以相同的方式工作。

目前,带有 ESP8266 芯片的开发板种类繁多,在可访问 GPIO 的数量、尺寸、外形等方面有所不同……

使用最广泛的 ESP8266 板是ESP-01ESP8266-12E NodeMCU KitWemos D1 Mini。有关这些板的比较,您可以阅读本指南:ESP8266 Wi-Fi 开发板比较

ESP8266-01 引脚排列

如果您使用的是 ESP8266-01 板,您可以使用以下 GPIO 图作为参考。

ESP8266 12-E NodeMCU 套件

ESP8266 12-E NodeMCU 套件引脚图如下所示。

WeMos D1 Mini 引脚分配

下图显示了 WeMos D1 Mini 引脚排列。

下载带有 ESP8266 引脚图的 PDF文档

ESP8266 外设

ESP8266 外设包括:

  • 17 个 GPIO
  • SPI
  • I2C(在软件上实现)
  • 与 DMA 的 I2S 接口
  • UART
  • 10 位 ADC

最佳使用引脚——ESP8266

关于 ESP8266 需要注意的一件重要事情是 GPIO 编号与板上丝印上的标签不匹配。例如,D0 对应 GPIO16,D1 对应 GPIO5。

下表显示了丝印上的标签与GPIO编号的对应关系,以及在您的项目中最好使用哪些管脚,需要注意哪些管脚。

  • 绿色:可以放心使用。
  • 黄色:可以使用,但需要额外注意,因为它们可能在启动时出现意外行为。
  • 红色:不建议用作输入或输出。

  • IO编号:使用NodeMCU的gpio库函数时的IO参数。比如GPIO2输出高电平:gpio.write(4, gpio.HIGH)

连接到闪存芯片的 GPIO

GPIO6 到 GPIO11 通常连接到 ESP8266 板上的 flash 芯片。因此,不建议使用这些引脚。

上电引导期间使用的引脚

如果某些引脚被拉低或拉高,则可以防止 ESP8266 启动。

以下列表显示了上电引导时以下引脚的状态:

  • GPIO16: 高电平
  • GPIO0: 高电平,如果拉低则启动失败
  • GPIO2: 高电平,如果拉低则启动失败
  • GPIO15: 低电平,如果拉高,则启动失败
  • GPIO3: 高电平
  • GPIO1: 高电平,如果拉低则启动失败
  • GPIO10: 高电平
  • GPIO9: 高电平

引导时引脚为高电平

当 ESP8266 启动时,某些引脚会输出 3.3V 信号。如果您将继电器或其他外围设备连接到这些 GPIO可能会出现问题。以下 GPIO 在启动时输出 HIGH 信号:

  • GPIO16
  • GPIO3
  • GPIO1
  • GPIO10
  • GPIO9

此外,除 GPIO5 和 GPIO4 外,其他 GPIO 可以在启动时输出低电平,如果这些 GPIO 连接到三极管或继电器,则可能会出现问题。你可以阅读这篇(英文)确认每个 GPIO 在启动时的状态和行为的文章。

如果要操作继电器,GPIO4 和 GPIO5 是最安全的 GPIO。

模拟输入

ESP8266 仅支持一个 GPIO 中的模拟信号的输入。该 GPIO 称为ADC0,通常在丝印上标记为A0

如果你使用的是 ESP8266 裸片,ADC0 引脚的最大输入电压为 0 到 1V。如果你使用的是 ESP8266 12-E NodeMCU 套件等开发板,则电压输入范围为 0 至 3.3V,因为这些板包含3.3V的稳压芯片。

您可以通过以下指南了解如何使用 ESP8266 进行模数转换(英文):

板载 LED

大多数 ESP8266 开发板都内置了 LED。该 LED 通常连接到 GPIO2。

LED 使用高电平将其关闭,用低电平将其打开。

RST 引脚

当 RST 引脚拉低时,ESP8266 复位。这与按下板载 RESET 按钮相同。

GPIO0

当 GPIO0 被拉低时,它将 ESP8266 设置为引导加载程序模式。这与按下板载 FLASH/BOOT 按钮相同。

GPIO16

GPIO16 可用于将 ESP8266 从深度睡眠中唤醒。要将 ESP8266 从深度睡眠中唤醒,GPIO16 应连接到 RST 引脚。了解如何将 ESP8266 置于深度睡眠模式:

I2C

ESP8266 没有硬件 I2C 引脚,但可以用软件实现。因此,您可以将任何 GPIO 用作 I2C。通常,以下 GPIO 用作 I2C 引脚:

  • GPIO5:SCL
  • GPIO4:SDA

SPI

ESP8266 中用作 SPI 的引脚有:

  • GPIO12:味噌
  • GPIO13:MOSI
  • GPIO14:SCLK
  • GPIO15:CS

PWM 引脚

ESP8266 允许在所有 I/O 引脚中使用软件 PWM:GPIO0 到 GPIO15。ESP8266 上的 PWM 信号具有 10 位分辨率。了解如何使用 ESP8266 PWM 引脚:

中断引脚

ESP8266 支持任何 GPIO 中的中断,但 GPIO16 除外。

总结

希望本指南对你了解 ESP8266 GPIO 能有所帮助。如果你对如何正确使用 ESP8266 GPIO 有一些想法,欢迎评论。

Last modification:September 27, 2022
If you think my article is useful to you, please feel free to appreciate