注:对于ESP8266开源技术感兴趣的可以加群,我们一起探索交流学习,群号:579932824。群名:ESP8266开源技术交流群。
介绍
通用输入/输出(GPIO)是IC(集成电路)上的引脚。它可以是输入引脚或输出引脚,其行为可以在运行时进行控制。
NodeMCU开发套件可以访问ESP8266的这些GPIO。唯一要注意的是,NodeMCU开发工具包引脚的编号与ESP8266的内部GPIO符号的编号不同,如下图和表格所示。例如,NodeMCU Dev kit上的D0引脚被映射到ESP8266的内部GPIO引脚16。
NodeMCU DevKit GPIO
下表给出了NodeMCU开发工具包IO引脚和ESP8266内部GPIO引脚的映射
NodeMCU开发工具包上的引脚名称 | ESP8266内部GPIO引脚号 |
---|---|
D0 | GPIO16 |
D1 | GPIO5 |
D2 | GPIO4 |
D3 | GPIO0 |
D4 | GPIO2 |
D5 | GPIO14 |
D6 | GPIO12 |
D7 | GPIO13 |
D8 | GPIO15 |
D9 / RX | GPIO3 |
D10 / TX | GPIO1 |
D11 / SD2 | GPIO9 |
D12 / SD3 | GPIO10 |
在Dev Kit中,蓝色框(1,3,9,10)中显示的GPIO大多不用于GPIO目的
ESP8266是一种片上系统(SoC)设计,具有处理器芯片等组件。该处理器具有大约16条GPIO线,其中一些用于内部与SoC的其他组件(如flash)连接。
由于在ESP8266 SoC内部使用了多条线路,因此我们有大约11个GPIO引脚可用。
现在,11个中的2个引脚通常被保留用于RX和TX,以便与从其下载编译目标代码的主PC进行通信。
因此最后,这只剩下9个通用I / O引脚,即D0到D8。
如上图NodeMCU Dev Kit所示。我们可以看到,RX,TX,SD2,SD3引脚通常不用作GPIO,因为它们被用于其他内部处理。但是我们可以尝试使用SD3(D12)引脚,这些引脚主要用于响应GPIO / PWM /中断等功能。
请注意,D0 / GPIO16引脚只能用作GPIO读/写,不支持特殊功能。
例
在NodeMCU Dev Kit的D4引脚上写一个LED闪烁的Arduino草图。
Arduino--LED闪烁
uint8_t LED_Pin = D4; // declare LED pin on NodeMCU Dev Kit
void setup() {
pinMode(LED_Pin, OUTPUT); // Initialize the LED pin as an output
}
void loop() {
digitalWrite(LED_Pin, LOW); // Turn the LED on
delay(1000); // Wait for a second
digitalWrite(LED_Pin, HIGH);// Turn the LED off
delay(1000); // Wait for a second
}