朱老师笔记
1.8.3.1、基于串口标准输出的按键调试
(1)以之前的串口stdio的工程为基础来移植添加轮询方式按键处理。(2)注意USB下载方式可能有错误(有可能不下载,也有可能下载了执行不对),解决方案是用SD卡启动来替代。
1.8.3.2、什么是按键消抖
(1)按键这种物理器件本身会有抖动信号,抖动信号指的是在电平由高到低(也就是按键按下时)或者电平由低到高(也就是按键弹起时)过程中,电平的变化不是立刻变化,而是经过了一段时间的不稳定期才完成变化,在这个不稳定期间电平可能会时高时低反复变化,这个不稳定期就叫抖动(抖动期内获取按键信息是不可靠的,要想办法消抖)。
(2)什么叫消抖?消抖就是用硬件或者软件方法来尽量减小抖动期对按键获取的影响。消抖常用2种思路:第一是硬件消抖,消抖思路就是尽量减小抖动时间,方法是通过硬件添加电容等元件来减小抖动;第二是软件消抖,消抖思路是发现一次按键按下/弹起事件后,不立即处理按键,而是延时一段时间(一般10~20ms,这就是消抖时间)后再次获取按键键值,如果此次获取和上次一样是按下/弹起,那就认为真的按下/弹起了。
(3)一般比较精密需要的时候,需要硬件消抖和软件消抖一起配合。
1.8.3.3、编程实践
《朱老师物联网大讲堂》学习笔记
学习地址:www.zhulaoshi.org
串口输出,
即在上节移植printf的基础之上,
在按键按下中,调用printf函数进行输出,
效果就是,按键按下,串口printf输出内容,
按键消抖
理想状态:按键按下与弹起,电压是直上直下的,非常规整,
现实中好一点的情况是,有一定弧度的上下变化,
实际情况可能是高地电平的变化,电压一上一下,抖动。
在此我们需要去消抖,用硬件或软件的方式。
硬件方式是缩短这个抖动期,软件消抖是绕过这个抖动期。
软件消抖有个麻烦的地方是,这个延时时间不好掌握。
软件实现,就是在按下某个案件后并不立即作出反应,
而是等待某个时间,如果获取的按键状态一致则做出相应的反应。