开发ESP8266 NodeMCU GPIO功能时,作为小白的我根本不知道引脚编号,虽然知道ESP8266 NodeMCU丝印引脚编号如下图所示,但是和实际对应的GPIO编号完全不一样.
经过多方面的资料查找,我汇总了以下的对应图片.
汇总成表格的话,如下表格所示.
GPIO编号 | 丝印编号 | 旧版丝印编号 |
---|---|---|
GPIO 0 | D3 | D8 |
GPIO 1 | TX(D10) | D5 |
GPIO 2 | D4 | RX(D9) |
GPIO 3 | RX(D9) | D4 |
GPIO 4 | D2 | TX(D10) |
GPIO 5 | D1 | D11 |
GPIO 6 - 11 | 不可用,但需要一直供电 | 不可用,但需要一直供电 |
GPIO 12 | D6 | D0 |
GPIO 13 | D7 | D1 |
GPIO 14 | D5 | D2 |
GPIO 15 | D8 | D3 |
下表显示了板载标识和 GPIO 编号上的标签之间的对应关系,以及项目中最好使用的引脚,以及哪些引脚需要谨慎。
以绿色突出显示的引脚可以使用。以黄色突出显示的可以使用,但需要注意,因为它们可能有意外行为,主要在启动时。不建议将红色突出显示的引脚用作输入或输出。****
Label | GPIO | Input | Output | Notes |
---|---|---|---|---|
D0 | GPIO16 | 无中断 | 无 Pwm 或 I2c 支持 | HIGH at boot used to wake up from deep sleep |
D1 | GPIO5 | OK | OK | 常用作SCL(I2C) |
D2 | GPIO4 | OK | OK | 常用作SDA(I2C) |
D3 | GPIO0 | 上拉 | OK | connected to FLASH button, boot fails if pulled LOW |
D4 | GPIO2 | 上拉 | OK | HIGH at boot connected to on-board LED, boot fails if pulled LOW |
D5 | GPIO14 | OK | OK | SPI (SCLK) |
D6 | GPIO12 | OK | OK | SPI (MISO) |
D7 | GPIO13 | OK | OK | SPI (MOSI) |
D8 | GPIO15 | 下拉 | OK | SPI (CS) Boot fails if pulled HIGH |
RX | GPIO3 | OK | RX | HIGH at boot |
TX | GPIO1 | TX | OK | HIGH at boot debug output at boot, boot fails if pulled LOW |
A0 | ADC0 | 模拟引脚 | X |
继续阅读,对 ESP8266 GPIOs 及其功能进行更详细的深入分析。
GPIO6 到 GPIO11 通常连接到 ESP8266 板中的闪存芯片。因此,不建议使用这些引脚。
如果某些引脚被拉低或高,可以阻止 ESP8266 启动。以下列表显示了引导上的以下引脚的状态:
当 ESP8266 启动时,某些引脚输出 3.3V 信号。如果您有继电器或其他外设连接到这些 GPIOs,这可能有问题。以下 GPIOs 在启动时输出高信号:
此外,除 GPIO5 和 GPIO4 外,其他 GPIOs 可以在引导时输出低压信号,如果这些信号连接到晶体管或继电器,则可能会有问题。您可以阅读本文,其中调查每个 GPIO 在启动时的状态和行为。
如果要操作继电器,GPIO4 和 GPIO5 是使用 GPIOs 最安全的方式。
ESP8266 仅支持一个 GPIO 中的模拟读取。GPIO 称为ADC0,通常在丝网上标记为A0。
如果使用 ESP8266 裸芯片,ADC0 引脚的最大输入电压为 0 到 1V。如果您使用的是 ESP8266 12-E NodeMCU 套件等开发板,则电压输入范围为 0 到 3.3V,因为这些板包含内部分压器。
大多数 ESP8266 开发板都具有内置 LED。此 LED 通常连接到 GPIO2(D4)。发送高信号以将其关闭,发送低信号以将其打开。
当 RST 引脚拉低时,ESP8266 将复位。这与按板载重置按钮相同。
当 GPIO0 被拉低时,它会将 ESP8266 设置到引导加载器模式。这与按下板载闪存/引导按钮相同。
GPIO16 可用于从深度睡眠中唤醒 ESP8266。要从深度睡眠中唤醒 ESP8266,GPIO16 应连接到 RST 引脚。
ESP8266没有硬件 I2C 引脚,但它可以在软件中实现。因此,您可以将任何 GPIOS 用作 I2C。通常,以下 GPIOS 用作 I2C 引脚:
ESP8266 中用作 SPI 的引脚包括:
ESP8266 允许所有 I/O 引脚的软件 PWM。ESP8266 上的 PWM 信号具有 10 位分辨率。
ESP8266 支持任何 GPIO 中的中断,GPIO16 除外。
将来我们在编写NodeMCU开发板的控制程序时,经常会进行引脚操作。如以下程序语句。
digitalWrite(4,HIGH)
以上语句通过digitalWrite函数将引脚4设置为高电平。那么您知道这个数字4到底是指GPIO4还是指开发板D4引脚呢?
答案是GPIO4而不是D4。
NodeMCU和Arduinod的管脚是有所不同的,具体见下表:
左侧为Arduino引脚,右侧为ESP8266对应引脚:
static const uint8_t D0 = 16;
static const uint8_t D1 = 5;
static const uint8_t D2 = 4;
static const uint8_t D3 = 0;
static const uint8_t D4 = 2;
static const uint8_t D5 = 14;
static const uint8_t D6 = 12;
static const uint8_t D7 = 13;
static const uint8_t D8 = 15;
static const uint8_t D9 = 3;
static const uint8_t D10 = 1;
本文链接:https://blog.nnwk.net/article/102
有问题请留言。版权所有,转载请在显眼位置处保留文章出处,并留下原文连接
Leave your question and I'll get back to you as soon as I see it. All rights reserved. Please keep the source and links
友情链接:
子卿全栈
全部评论