ARM-按键定义及其功能

ARM外设-按键

一、什么是按键

1、按键可以理解为一种开关。
2、平时每人按的时候,弹簧吧按键按钮弹开,此时内部断开的。
3、一般的按键都有四个引脚,这四个引脚成两对,其中一对是常开触点(不按则断开,按下则闭合);一对是常闭触点(不按时闭合,按下是断开的)
4、按键的电路连接分析:平时按钮没有按下时,按钮内部断开,GPIO引脚处电压为高电平;当有人按下按钮时,按钮内部导通,外部VDD经过电阻和按钮连接到地,形成回路,此时GPIO引脚处电压就变成了低电平,此时VDD电压全部分压在了电阻上(这个电阻就叫分压电阻)
5、按键工作就是按键的按下与弹开,分别对应GPIO的两种电平状态(按下则GPIO为低电平,弹开则GPIO为高电平),此时SOC内部可以通过检测这个GPIO引脚的电平高低来判断按键有没有被按下,这个判断结果即可作为SOC的信号。

二、按键的工作

1、按键一般用来做输入设备(从外部向SOC发送信息的设备,叫输入设备),人按下按键向SOC发送按键信号(按下和弹开两种操作)
2、有些设备就是单纯的输入设备,譬如按键、触摸屏等;有些设备就是单纯的输出设备,譬如LCD;还有一些设备既能输入又能输出的,叫输入输出设备,譬如串口。
3、按键两种响应方法:
①轮训方式:就是SOC每个一段时间就去读取按键对应的GPIO的电平高低,以此获得按键信息;缺点在于CPU要一直注意按键事件,会影响CPU做其他事情。
②中断方式,就是SOC事先设定好GPIO触发的中断所对应的中断处理程序ISR,当外部按键按下或弹开自动触发GPIO对应的外部中断,导致ISR执行,从而自动处理按键信息。

4、按键的轮训处理
①按键接到GPIO上,按键按下还是弹起,决定外部电路的按键接通与否,从而决定这个GPIO引脚是高电压还是低电压。这个电压可作为这个GPIO引脚的输入信号,此时GPIO配置为输入模式。即SOC读取该引脚的电平值。
②应将该GPIO的控制寄存器设置为input模式,然后去读取该数据寄存器的电平值,判断是否按下。

5、按键程序流程
①先初始化GPIO的控制寄存器为input
②循环读取GPIO的数据寄存器电平值,并进行判断

6、按键的消抖
①按键这种物理器件本身会有抖动信号,抖动信号指的是在电平由高到低(按下按键)或者电平由低到高(弹起按键)过程中,电平的变化不是立刻变化,而是经过了一段时间的不稳定期才完成变化,在这个不稳定期间电平可能会时高时低反复变化,这个不稳定期就叫抖动,抖动期内获取按键信息是不可靠的,要想办法消抖。
②消抖,就是用硬件或者软件的方法来减小抖动期对按键值获取的影响。
③第一是硬件消抖:消抖思路就是尽量减小抖动时间,方法就是通过添加电容等元器件来减小抖动。
④第二是软件消抖:消抖思路是发现一次按键事件后,不立即处理按键,而是延时一段时间(一般10~20ms,这是消抖时间)后再次获取按键值。
⑤一般比较精密需要的时候,硬件消抖和软件消抖一起配合。

猜你喜欢

转载自blog.csdn.net/weixin_46089486/article/details/108979936