外观
七、按键检测实验
独立按键基础知识
独立按键结构组成
独立按键实际上是一个非自锁的轻触开关,有左右四个触点,当按下时左右四个触点闭合,当松开时左右四个触点断开,12触点与34触点在内部是连接在一起的。
![]() | ![]() |
---|
独立按键原理
单片机通过检测按键按下前后的高低电平变化,来判断按键是否按下。通过程序的控制,就可以实现不同的功能与设置。机械式按键在按下或者释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。抖动时间长短与开关的机械特性有关,一般为5-10ms。在触点抖动期间检测按键的按下与否,可能会导致判断错误,为了克服机械抖动所产生的影响,必须采取消抖措施,可分为硬件消抖和软件消抖。
硬件消抖
硬件消抖一般会在按键检测引脚处加入电容与电阻,通过RC延迟电路将按键按下时的高频振荡吸收滤除掉。
软件消抖
软件消抖一般是通过延时。当检测到按键按下时,不会立即去检测电平,而是经过短暂的延时之后,再去检测当前引脚的电平,这样就可以去掉抖动过程中的干扰,一般抖动时间在10ms以内。
按键一侧接电源,GPIO需要设置为下拉,也就是默认为低电平,通过判断对应GPIO引脚为高电平,从而判断按键是否按下。
按键一侧接GND,GPIO需要设置为上拉,也就是默认为高电平,通过判断对应GPIO引脚为低电平,从而判断按键是否按下。
板载按键原理图
按键检测配置
项目分析
本次项目完成KEY1点亮两个LED灯,KEY2熄灭两个LED灯,KEY3留给大家自行发挥;
通过前面的知识,我们已经知道了按键检测的原理与按键连接的引脚;
- KEY1--->PA12
- KEY2--->PA13
- KEY3--->PA16
从原理图中可看出,按键一侧接GND,所以需要判断GPIO引脚为低电平,从而判断按键是否按下。
配置流程
一般我们使用GPIO的端口,都需要有以下几个步骤;
- 开启GPIO的端口时钟;
- 配置GPIO的模式;
- 配置GPIO的输入/输出;