网站首页 > 技术文章 正文
LED闪烁时怎么接收按键事件?
LED闪烁时怎么能接收按键事件?看一下非阻塞延时的代码,这是一个ESP8266的开发板。什么叫非阻塞?一般来说在使用delay方法以后会挡住所有事件的输入。这里看到的是LED闪烁的代码,所谓的LED闪烁就是每隔一定时间变亮或者熄灭。
一般最常见的就使用delay方法,但是delay方法设置了以后,比如delay一秒钟,这一秒钟什么事都不用干,就算用户按了这个按键也没有任何效果,这可能不是想要达到的目标,所以使用了另外一种写法,整个代码没有delay,这样就不妨碍在读取这个按键按下的值。
看一下相关代码。
·首先是一些引脚的定义,懒得记,就是用define来定义一下引脚。
·这里有一个LED默认的电平,还有LED闪烁的间隔时间,也就是原来写在delay里面的时间,这里就是最近的执行时间,还有按键的默认状态。
·在setup这里设置D1,也就是按键连接的引脚为上拉输入,INPUTPULLUP。
·再设置LED为输出,也就是连接的D8引脚为输出,并且设置波特率。设置这个主要是为了跟电脑进行通讯,打印一些信息。
·再看到循环执行区,这里有一个代码是读取系统运行的时间,单位是毫秒,减去当前的最近执行时间。如果大于间隔时间,判断一下是否已经间隔了1秒。如果是大于1秒就执行里面的内容,如果间隔小于1秒就不执行,这样就起到延时的效果。
·如果执行要改变LED的状态,要设置D8引脚为数字输出,要把当前运行时间赋予到最近的执行时间里面,这样下一次再循环执行这里的时候就不会马上进入执行区域。
·接着看下面,这里就正常的读取按键的数值,如果它跟最近的数字不一样就打印出来,在窗口输出可以看到这些0101的信息,在这里,没有处理按键抖动相关的逻辑,这里只是表示通过了非阻塞的代码处理方法,让按键可以读取。如果不使用这个方法,这里直接使用delay,可能delay的一秒钟以内,按键按了多少次都没有任何的反应。整个逻辑就是这样的。
猜你喜欢
- 2024-10-25 什么是喉梗阻 反流性食管炎嗓子疼怎么办
- 2024-10-25 阻塞列队详解!让你轻松理解阻塞列队
- 2024-10-25 【健康科普】认识阻塞性睡眠呼吸暂停低通气综合征
- 2024-10-25 气象科普|阻塞高压为何方神圣?后期它将给我国制造多轮冷空气
- 2024-10-25 非阻塞算法CAS 非阻塞函数
- 2024-10-25 为什么网络 I/O 会被阻塞?I/O 到底是什么?
- 2024-10-25 如何用Java设计阻塞队列,再说说ArrayBlocking和LinkedBlocking
- 2024-10-25 使用 Python Socket 实现非阻塞 I/O入门讲解
- 2024-10-25 梗阻性无精子症:多种选择,何为最佳?
- 2024-10-25 焦耳小偷 一个神奇的电路 焦耳小偷电路需要注意的地方
你 发表评论:
欢迎- 最近发表
-
- 吴谨言专访大反转!痛批耍大牌后竟翻红,六公主七连发力显真诚
- 港股2月28日物业股涨幅榜:CHINAOVSPPT涨1.72%位居首位
- 港股2月28日物业股午盘:CHINAOVSPPT涨1.72%位居首位
- 港股3月2日物业股涨幅榜:CHINAOVSPPT涨1.03%位居首位
- 港股3月2日物业股午盘:CHINAOVSPPT涨1.03%
- 天赋与心痛的背后:邓鸣贺成长悲剧引发的深刻反思
- 冯小刚女儿徐朵追星范丞丞 同框合照曝光惹人羡,回应网友尽显亲民
- “资本大佬”王冉:51岁娶小17岁童瑶,并承诺余生为娇妻保驾护航
- 港股3月2日物业股午盘:CHINAOVSPPT涨1.03%位居首位
- 「IT之家开箱」vivo S15 图赏:双镜云窗,盛夏风光
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)