C/C++教程

Nodemcu的GPIO接口介绍(ZT)

本文主要是介绍Nodemcu的GPIO接口介绍(ZT),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

http://www.basemu.com/nodemcu-gpio-interface.html

Nodemcu的GPIO接口介绍

通用输入/输出(GPIO)是集成电路上的一个引脚功能,它既可以是输入引脚,也可以是输出引脚,这些功能均可以在编写程序时进行控制。

NodeMCU的开发工具包( Dev kit  )提供了对Nodemcu GPIO的支持。唯一需要注意的是,NodeMCU Dev kit引脚的编号与Nodemcu的内部GPIO编号不是一个编号。例如,NodeMCU Dev kit上的D0引脚被映射到ESP8266的内部GPIO引脚16。这和树莓派的BCM编号与GPIO编号不相同是一样的(树莓派GPIO),如下所示。

 

Nodecu的GPIO接口

下表给出了NodeMCU Dev Kit IO引脚和ESP8266内部GPIO引脚的映射关系:

NodeMCU开发工具包上的Pin名称ESP8266 内部 GPIO Pin 编号
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

ESP8266的GPIO(1,3,9,10)不能按常规的GPIO方式进行理解和使用,根据ESP8266的系统(SoC)设计,其内部包含了处理器芯片等组件,处理器大约有16条GPIO线路,其中一些GPIO规定默认用于与其他内部组件进行通信,比如与内部闪存的通信等。这样我们大约还有11个GPIO引脚可按常规GPIO进行使用,在这11个针脚中,又有2个针脚预留给串口RX和TX。因此,最后只剩下9个通用I/O引脚,即D0到D8。

在实际使用中,从上图我们可以看到一些GPIO引脚同时兼备了其他功能,如RX, TX, SD2, SD3,这些引脚大多不作为GPIO使用,因为它们可用于其他进程。极端情况下,可使用 SD3 (D12)引脚,D12引脚主要用于响应GPIO/PWM/中断等功能。需要注意的是,D0|GPIO16引脚只能作为GPIO读/写使用,不支持任何特殊功能。

来看一个在NodeMCU的D4引脚上的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 }
这篇关于Nodemcu的GPIO接口介绍(ZT)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!