首页 stm32矩阵按键扫描

stm32矩阵按键扫描

举报
开通vip

stm32矩阵按键扫描stm32矩阵按键扫描 原理图 各位大侠,这是我写的矩阵按键扫描程序,大家可以参考参考 思维是和一般的按键扫描一样的,欢迎大家吐槽。 说明:微处理器:STM32F103VET6,开发软件:IAR for ARM。(本来想复制文本文档的,发现代码层次感全变了,而且看着不 舒服,所以采用截图的方式) 其中需要注意的是:1、HKey是利用位带定义然后宏定义的,如下: PEin(n)利位带宏定义,(如果不明白可以百度一下 stm32 位带操作)。 2、此函数是利用定时器设置30ms进行一次中断,而按键扫描...

stm32矩阵按键扫描
stm32矩阵按键扫描 原理图 各位大侠,这是我写的矩阵按键扫描程序,大家可以参考参考 思维是和一般的按键扫描一样的,欢迎大家吐槽。 说明:微处理器:STM32F103VET6,开发软件:IAR for ARM。(本来想复制文本文档的,发现代码层次感全变了,而且看着不 舒服,所以采用截图的方式) 其中需要注意的是:1、HKey是利用位带定义然后宏定义的,如下: PEin(n)利位带宏定义,(如果不明白可以百度一下 stm32 位带操作)。 2、此函数是利用定时器设置30ms进行一次中断,而按键扫描的时间则由KeyScanEn确定 3、关于KeyHData=HKey 编译器一直报警告,(但是程序跑起来为发现问题,不知道有没有什么潜在的风险) 为了安全起见,大家可以直接去读寄存器也行 4、按键消抖是利用计数器的方式,(说白了就是需要检测到两次后再处理)。 5、关于Delay(1)函数,试过不用也行,这里是置输入脚后马上检测输出感觉应该给点反应时间。 6、此函数只取出了键值,判断的话需要在另外的函数,最好不在中断函数里来做判断。 思路:1、首先置行线全为高,然后检测HEKEY这四位是不是全为0(当然,先要把这四个脚设置为下拉输入),如果不全是0, 侧说明有按键按下。 2、然后依次将PE12-PE15置高进行扫描,(将一位置高后,然后检测输入引脚,如果输入引脚不是0x00,则说明按键 在此行。如若不是则循环置下一个引脚为高再判断),因为是循环扫描,此时循环次数就说明了在第几行。 所以 键值=列键值(读取的键值)+ 循环的次数(行键值)。 3、取出按键的键值依次是:0x11 0x21 0x41 0x81 0x12 0x22 0x42 0x82 0x13 0x23 0x43 0x83 0x14 0x24 0x44 0x84 4、从上面的键值表可以看出:键值的后四位说明了按键的行数,键值的前四位则说明了按键所在的列数。
本文档为【stm32矩阵按键扫描】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_751406
暂无简介~
格式:doc
大小:54KB
软件:Word
页数:0
分类:
上传时间:2017-10-06
浏览量:47