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

注:对于ESP8266开源技术感兴趣的可以加群,我们一起探索交流学习,群号:579932824。群名:ESP8266开源技术交流群。

介绍

中断是在连续性流程中随机发生的事件。这就像你忙于某些工作时的一个电话一样,根据电话的优先顺序决定是否参加或忽略它。

基于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引脚上连接一个开关来产生上升沿中断。另外,我们将打印在串行监视器窗口上发生中断的时间(以毫秒为单位)。

NodeMCU 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串行输出窗口

 


 

  • 7
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.Lanson

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值