您的位置:首页 > Web前端 > Node.js

WiFi-ESP8266入门开发(十二)-使用GPIO中断

2018-02-03 20:11 2421 查看


介绍

中断是在连续性流程中随机发生的事件。这就像你忙于某些工作时的一个电话一样,根据电话的优先顺序决定是否参加或忽略它。
基于NodeMCU的ESP8266在其GPIO引脚上具有中断功能。该功能在NodeMCU Dev Kit的D0-D8引脚上可用。
GPIO引脚中断通过Arduino中断函数支持,例如attachInterrupt,detachInterrupt。
中断可以连接到除D0 / GPIO16引脚外的任何GPIO引脚。支持标准的Arduino中断类型,即CHANGE,RISING,FALLING。


针对NodeMCU的Arduino中断功能

我们来看看Arduino IDE中用于为NodeMCU套件设置中断的函数。
attachInterrupt()
该功能用于在指定的引脚上附加中断。
函数: 
attachInterrupt(pin,
ISR(callback function), interrupt type/mode);

参数:

pin
:要设置中断的引脚号。

ISR (callback function)
:中断发生时要调用的ISR; 这个函数不带任何参数,不返回任何内容。

Interrupt type/mode
:它定义当中断应该被触发。

CHANGE:用于在引脚值改变时触发中断。

RISING:用于在引脚从低电平变为高电平时触发中断。

FALLING:用于在引脚从高电平变为低电平时触发中断。
返回: null
 
detachInterrupt()
该功能用于禁止指定GPIO引脚上的中断。
函数: 
detachInterrupt(pin)

参数:

pin
:要禁用的中断的GPIO引脚。
返回: null
 


我们来写一个Arduino程序,在NodeMCU的第2个GPIO引脚上设置上升沿中断。这里我们在第二个GPIO引脚上连接一个开关来产生上升沿中断。另外,我们将打印在串行监视器窗口上发生中断的时间(以毫秒为单位)。



 


Arduino程序-GPIO中断

uint8_t GPIO_Pin = D2;

void setup() {
Serial.begin(9600);
attachInterrupt(digitalPinToInterrupt(GPIO_Pin), IntCallback, RISING);
}

void loop() {
}

void IntCallback(){
Serial.print("Stamp(ms): ");
Serial.println(millis());
}

输出窗口



 

支持文件
源代码
Arduino草图NodeMCU GPIO中断 下载
 

  232

附件
ESP8266数据手册Datasheet  下载
 

  196
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ESP8266 NodeMCU
相关文章推荐