EV_REP,input_repeat_key,键盘重复,GPIO键盘
来源:互联网 发布:陈桥五笔输入法知乎 编辑:程序博客网 时间:2024/06/11 17:31
要实现的效果:类似桌面打开记事本,按下键盘后有输入,按住按键不放的话就连续输入。
环境:嵌入式Linux系统,键盘有GPIO扫描实现,模拟成标准键盘,界面用QT4的LineEdit显示。
键盘的驱动我就不多说了,参考input/keyboard的omap方面代码即可;QT里面继承keyPressEvent()即可判断按下的是哪个键。
要注意的有一些,说说心得:
1、键盘要注意防抖动
2、如果确认有键盘就input_report_key(&va->kb_dev,key_got,1);然后重复扫描,这一步很重要,重复扫描的时间要小于33ms。为什么?看下input.c就知道了,input.c的input_repeat_key会隔rep[REP_PERIOD]调用一次,但是如果我们在驱动里释放了按键,则input_repeat_key不会再调用(此函数前面有判断)。
因此扫描的时间一定要少于rep[REP_PERIOD],不这样做的话,就会出现你本来想按一次按键,结果多了几个尾巴。
例如,你确认按键后200ms再开始扫描是否还按下,则input_repeat_key已经调用好几次了,所以多了几个尾巴,这样就不是只按下一次键盘了。
3、千万不要因手按键盘的重复时间的固定思路迷惑了程序的编写。只要驱动指定了EV_REP,则驱动上层会自动启动上述的timer,本驱动只要判断按键是否抬起然后input_report_key(x,x,0);即可!
不对之处欢迎指正!
转自:blog.csdn.net/lanmanck
0 0
- EV_REP,input_repeat_key,键盘重复,GPIO键盘
- EV_REP,input_repeat_key,键盘重复,GPIO键盘
- gpio键盘的原理
- gpio键盘驱动
- 设置键盘重复延迟
- 键盘
- 键盘
- 键盘
- 键盘
- 键盘
- 键盘
- 键盘
- 键盘
- 键盘
- 键盘
- 键盘
- 键盘
- 键盘
- 学写makefile
- 顶部置顶菜单和CSS3分页
- Python_C1_编程基础和字符串
- InstallShield Limited Edition for Visual Studio 2013 图文教程(教你如何打包.NET程序)
- 【tip】使用交大代理(转)
- EV_REP,input_repeat_key,键盘重复,GPIO键盘
- 【备战蓝桥杯】USACo--> airpro【改变策略】
- DevExtreme常用示例:如何在Visual Studio中创建本地封装包
- Oracle Win 11gr2 安装失败,安装不到文件em.ear
- Hadoop Metrics体系分析之一:认识Metrics
- Hadoop Metrics体系分析之二:Hadoop Metrics实现
- 计算机类刊物
- 计算机经典书籍合集(适合计算机学生学习以及程序员)
- Android内存问题之bimap