stm32矩阵按键扫描
更新时间:2023-09-28 13:01:01 阅读量: 综合文库 文档下载
原理图
各位大侠,这是我写的矩阵按键扫描程序,大家可以参考参考 思维是和一般的按键扫描一样的,欢迎大家吐槽。
说明:微处理器: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矩阵按键扫描09-28
工厂化养鱼基础设施的配置06-14
形体舞蹈校本教材小学中段03-17
创建有个性的对话框之MFC篇08-29
一年级数学公开课分类与整理详案 - 图文11-24
尔雅考古与人类考试题及答案11-25
2022卓越学案高考总复习·英语(外研版)选修8Module 3知能训练轻04-11
人间喜剧相关材料05-24
农村低保申请书格式【精选4篇】03-28
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 矩阵
- 按键
- 扫描
- stm32