GPIO序号
可用引脚
ESP8266芯片有17个GPIO引脚(GPIO0~GPIO16)。
这些引脚中的GPIO6~GPIO 11被用于连接开发板的闪存(Flash Memory)。如果在实验电路中使用GPIO6~GPIO11,NodeMCU开发板将无法正常工作。因此建议您不要使用GPIO6~GPIO 11。
特殊引脚情况说明
GPIO2引脚 在NodeMCU开发板启动时是不能连接低电平的。
GPIO15引脚在开发板运行中一直保持低电平状态。因此请不要使用GPIO15引脚来读取开关状态或进行I²C通讯。
GPIO0引脚在开发板运行中需要一直保持高电平状态。否则ESP8266将进入程序上传工作模式也就无法正常工作了。您无需对GPIO0引脚进行额外操作,因为NodeMCU的内置电路可以确保GPIO0引脚在工作时连接高电平而在上传程序时连接低电平。
上拉电阻/下拉电阻
GPIO 0-15引脚都配有内置上拉电阻。这一点与Arduino十分类似。GPIO16 引脚配有内置下拉电阻。
模拟输入
ESP8266 只有一个模拟输入引脚(该引脚通过模拟-数字转换将引脚上的模拟电压数值转化为数字量)。此引脚可以读取的模拟电压值为 0 – 1.0V。请注意:ESP8266 芯片模拟输入引脚连接在1.0V以上电压可能损坏ESP8266芯片
GPIO序号与ESP8266引脚对应关系Table-1
IO index | ESP8266 pin | IO index | ESP8266 pin |
---|---|---|---|
0 [*] | GPIO16 | 7 | GPIO13 |
1 | GPIO5 | 8 | GPIO15 |
2 | GPIO4 | 9 | GPIO3 |
3 | GPIO0 | 10 | GPIO1 |
4 | GPIO2 | 11 | GPIO9 |
5 | GPIO14 | 12 | GPIO10 |
6 | GPIO12 |
GPIO模式定义语法如下:
gpio.mode(pin,mode[,pullup])
参数
pin IO 口序号
mode 可以是gpio.OUTPUT, gpio.OPENDRAIN, gpio.INPUT, 或者 gpio.INT (中断模式)
pullup 支持gpio.PULLUP上拉模式;默认为 gpio.FLOAT浮空模式
简单例程
pin = 1
gpio.mode(pin,gpio.OUTPUT)
gpio.write(pin,gpio.HIGH)
gpio.mode(pin,gpio.INPUT)
print(gpio.read(pin))
I2C
esp8266的I2C是可以定义引脚的,默认的是SDA为4,SCL为5号引脚
SPI
ESP8266的SPI端口情况如下:
GPIO14 — CLK
GPIO12 — MISO
GPIO13 — MOSI
GPIO 15 — CS(SS)
GPIO overview
GPIO | Function | State | Restrictions |
---|---|---|---|
0 | Boot mode select | 3.3V | No Hi-Z |
1 | TX0 | - | Not usable during Serial transmission |
2 | Boot mode select TX1 | 3.3V (boot only) | Don’t connect to ground at boot time Sends debug data at boot time |
3 | RX0 | - | Not usable during Serial transmission |
4 | SDA (I²C) | - | - |
5 | SCL (I²C) | - | - |
6-11 | Flash connection | x | Not usable, and not broken out |
12 | MISO (SPI) | - | - |
13 | MOSI (SPI) | - | - |
14 | SCK (SPI) | - | - |
15 | SS (SPI) | 0V | Pull-up resistor not usable |
16 | Wake up from sleep | - | No pull-up resistor, but pull-down instead |