Wifi-nodeMCU-esp8266 按键中断服务 | 学习笔记

简介: 快速学习 Wifi-nodeMCU-esp8266 按键中断服务

开发者学堂课程【嵌入式之 RFID 开发与应用2020版:Wifi-nodeMCU-esp8266 按键中断服务】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/665/detail/11212


Wifi-nodeMCU-esp8266 按键中断服务


内容介绍

一、代码展示

二、演示

 

一、代码演示

WiFi 联网方面讲述完毕之后,进行 gpio 的中断的演示讲解。因为在之后的实践中会使用到。代码较为简洁,代码如下:

led=4

key = 1 -- GPI05

gpio . mode (led, gpio. OUTPUT)

gpio . mode (key, gpio. INT, gpio. PULLUP)

gpio.write (led, gpio . HIGH)

function key_ irq ()

local i,j

tmr . delay (50*1000)

j = gpio. read (key)

if (j == 1) then

return

end

i =gpio. read (led)

if (i == 0) then

gpio.write (led, gpio.HIGH)

print("led off")

else

首先设置了灯和按键。将灯设置为输出模式,按键设置为中断模式。在数据手册中的 gpio 子模块设置当中,描述如下:

mode: 取值为: gpio.OUTPUT or gpio.INPUT, or gpio.INT(中断模式)

pullup: 取值为: gpio.PULLUP or gpio.FLOAT,默认为 gpio.FLOAT

本身包括了输出输入和中断模式,接下来给 N 输出高电平,也就是说刚开始是熄灭的,然后书写了中断服务函数,但对于中断来说并不是中断服务函数,只是一个回调函数,然后通过 gpio 方法注册该回调,注册当中还存在一些参数。首先,是注册的描述和语法:

描述

设置管脚中断模式的回调函数。

语法

gpio.trig(pin, type, function(level))

其次是触发方式,Up 和 Down 是上升沿触发和下降沿触发,BOTH 是双沿触发,Low 和 High 是电平触发方式,几乎将所有常见方式包含,最后是回合函数,一旦中断注册,就会监听触发。按键一旦被触发,就会调用中断服务函数。在中断服务函数当中书写了延时函数,延时 50 毫秒。过 50 毫秒就读取 Key 的值,取出后判断其是否等于 1。因为此时将 Key 设置成为上拉。正常情况下,引脚存在上拉电阻,外面接按键,另一端要接到地面。按键按下时,io 口,也就是 key 值就应该等于 0。如果没有按键按下,Key 就等于 1。如果读取出 Key 值等于 0,就表示中断退出。否则 Key 就等于 1,等于 1 时,将灯泡点亮。此时延时函数。的作用是去等保证按键确实按下,而且每次按下只触发一次中断程序。

 

二、演示

将代码重新加载保存下载之后,执行程序,此时按键已经连接,具体连接可以根据引脚。K1 用于接按键,必须有一个脚接到按键上,另一个脚接地,K1 刚好就是 D1 脚。将该脚中间接按键,按键另一端接地如图所示:

image.png

以下是按键:

image.png

按键的两个引脚,一个接到 K1,一个接地,此时按下按键,效果如下:

image.png

按键按一下灯亮,再按灯灭。中断主要用于按键,其他地方使用较少,也可以使用在数据采集中,对于中断是非常重要的内容,必须掌握。

相关文章
|
数据安全/隐私保护 网络架构 智能硬件