stm32矩阵按键扫描.doc

stm32矩阵按键扫描.doc

ID:56785927

大小:197.00 KB

页数:3页

时间:2020-07-11

stm32矩阵按键扫描.doc_第1页
stm32矩阵按键扫描.doc_第2页
stm32矩阵按键扫描.doc_第3页
资源描述:

《stm32矩阵按键扫描.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

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

2、HData=HKey编译器一直报警告,(但是程序跑起来为发现问题,不知道有没有什么潜在的风险)为了安全起见,大家可以直接去读寄存器也行4、按键消抖是利用计数器的方式,(说白了就是需要检测到两次后再处理)。5、关于Delay(1)函数,试过不用也行,这里是置输入脚后马上检测输出感觉应该给点反应时间。6、此函数只取出了键值,判断的话需要在另外的函数,最好不在中断函数里来做判断。思路:1、首先置行线全为高,然后检测HEKEY这四位是不是全为0(当然,先要把这四个脚设置为下拉输入),如果不全是0,侧说明有按

3、键按下。2、然后依次将PE12-PE15置高进行扫描,(将一位置高后,然后检测输入引脚,如果输入引脚不是0x00,则说明按键在此行。如若不是则循环置下一个引脚为高再判断),因为是循环扫描,此时循环次数就说明了在第几行。所以键值=列键值(读取的键值)+循环的次数(行键值)。3、取出按键的键值依次是:0x110x210x410x810x120x220x420x820x130x230x430x830x140x240x440x844、从上面的键值表可以看出:键值的后四位说明了按键的行数,键值的前四位则说明了

4、按键所在的列数。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。