用STM32做矩阵键盘、自己理解的外部中断方式的几个问题。
刚才发错分类了。。首先我的小项目确不需要双击或者长按键等,只需要知道按下一次是什么就好。现在我中断里返回两个参数:更新键值标志位和键值存储位。但是这样我并没有感觉比扫描好...
刚才发错分类了。。首先我的小项目确不需要双击或者长按键等,只需要知道按下一次是什么就好。现在我中断里返回两个参数:更新键值标志位和键值存储位。但是这样我并没有感觉比扫描好在哪里,中断程序里还是需要延时消抖,而且我发现32的外部中断很敏感(没仔细看过数电不知道这怎么形容),抖动没消好就很容易重新进入,这甚至造成了我主程序里面的任务被打断;其次我在主程序里还是需要扫描键值更新标志位,我不感觉有多么节省资源,我想知道是我对中断键盘理解错了吗?难道需要在这个外部中断里或者开启其他的中断来处理按键相应事件操作?这不是不符合实时系统的原则了吗?而反过来如果是外部中断来标志更新,再在主程序里扫描,那和直接扫描有多少区别?优势在哪里?是不是总结之后就是键盘根本不需要通过中断方式扫描?我最近看了一些主程序里用定时器或者SYStick来检测键盘状态消抖的方式,我觉得不错,希望大神告诉我我该选择怎么处理键盘?
展开
3个回答
展开全部
我觉得扫描方式比中断好。对每个键,定义一个字节用来消抖,每扫描一次就把键的0或1移位至这个字节,判断这个字节如果是0xff那么这个键被按下,如果0x00那么这个键未被按下,其它值不做操作,这种方法很简单,消抖效果也不错。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
中断相应的及时性 是直接在中断程序进行处理
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询