目录
介绍
通用输入/输出(GPIO)是IC(集成电路)上的引脚。它可以是输入引脚或输出引脚,其行为可以在运行时控制。
NodeMCU开发套件提供对ESP8266的这些GPIO的访问。唯一需要注意的是NodeMCU Dev kit引脚的编号与ESP8266的内部GPIO符号不同,如下图和表所示。例如,NodeMCU开发套件上的D0引脚映射到ESP8266的内部GPIO引脚16。
NodeMCU DevKit GPIO
下表给出了NodeMCU Dev Kit IO引脚和ESP8266内部GPIO引脚映射
蓝色框(1,3,9,10)中显示的GPIO大部分不用于开发套件中的GPIO用途
ESP8266是一种片上系统(SoC)设计,具有处理器芯片等组件。处理器有大约16条GPIO线,其中一些用于内部与SoC的其他组件接口,如闪存。
由于ESP8266 SoC内部使用了几条线路,因此我们还有大约11个GPIO引脚用于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程序。
用于LED闪烁的Arduino程序
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
}
本教程完整程序下载: