(五)Arduino系列:NodeMCU GPIO定时器中断

介绍

中断是在连续性工作中随机发生的事件。这就像你忙于一些工作时的电话,根据电话优先级,你决定是接听还是忽视。

基于NodeMCU的ESP8266在其GPIO引脚上具有中断功能。此功能在NodeMCU Dev Kit的D0-D8引脚上可用。

通过Arduino中断功能支持GPIO引脚中断,即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的第二个GPIO引脚上设置上升沿中断。在这里,我们连接第二个GPIO引脚上的开关,以在其上产生上升沿中断。此外,我们将打印串行监视器窗口中发生的中断的时间(以毫秒为单位)。

(五)Arduino系列:NodeMCU GPIO定时器中断


 

用于GPIO中断的Arduino程序

uint8_t GPIO_Pin = D2;

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

void loop() {
}

余下程序:

隐藏内容,您需要满足以下条件方可查看
End

输出结果

(五)Arduino系列:NodeMCU GPIO定时器中断

完整程序下载 

隐藏内容,您需要满足以下条件方可查看
End

人已赞赏
动态

(四)Arduino系列:NodeMCU PWM占空比学习

2019-5-2 13:08:53

动态

(六)Arduino系列:NodeMCU与Arduino进行SPI通信

2019-5-2 13:52:37

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索