解析 Qt 如何支持矩阵键盘
2014-10-21 23:47
169 查看
解析 Qt 如何支持矩阵键盘
www.educity.cn 发布者:lyslyl 来源:网络转载 发布日期:2014年06月02日 文章评论 发表文章Qt 如何支持矩阵键盘是本文介绍的内容,不多说,先来看内容的详细介绍。前几天想在fs2410开发板上做这件事情,然后移植一个Qt游戏,拿4x4矩阵键盘控制没找到资料,但是有类似的论文,就郁闷了,这个问题也能写成论文?后来搞定了觉得很简单。
矩阵键盘属于自定义的键盘,按下之后并不能像标准ps2、usb键盘那样对系统输入标准按键,都是自己写的按键处理函数。
我们想要按下矩阵键盘,被Linux识别为数字、字母等,就像一个标准102键盘那样(当然键没有那么多)
就可以使用input子系统
如何编写矩阵键盘的input子系统驱动,可以参考当前内核的/drivers/input/keyboard/gpio_keys.c
我给的代码基于2.6.22.6 ,连BIT_MASK都没有。
其实非常简单了,定义一个全局static struct input_dev* vkeyboard_idev = NULL;
在初始化里
//注册input子系统
vkeyboard_idev = input_allocate_device();
if(vkeyboard_idev == NULL)
{
printk(KERN_ERR "input_allocate_device error\n");
}
vkeyboard_idev->evbit[0] = BIT(EV_KEY);
bitmap_fill(vkeyboard_idev->keybit, KEY_MAX);
bitmap_fill(vkeyboard_idev->relbit, REL_MAX);
bitmap_fill(vkeyboard_idev->absbit, ABS_MAX);
vkeyboard_idev->name = "vkeyboard";
vkeyboard_idev->phys = "vkeyboard/input0";
vkeyboard_idev->open = vkeyboard_input_dev_open;
vkeyboard_idev->close = vkeyboard_input_dev_close;
for(i = 0; i <KEY_MAX; i++)
{
input_set_capability(vkeyboard_idev, EV_KEY, i);
}
__set_bit(EV_KEY, vkeyboard_idev->evbit);
input_register_device(vkeyboard_idev);
注销
input_unregister_device(vkeyboard_idev);
当驱动判断到按键按下时 (回车键为例)
input_event(vkeyboard_idev, EV_KEY, KEY_ENTER,1);
input_sync (vkeyboard_idev);
当驱动判断到按键抬起
input_event(vkeyboard_idev, EV_KEY, KEY_ENTER,0);
input_sync (vkeyboard_idev);
然后是qt跟这个input设备的联系了
我使用的是qt-embedded-4.5.2 ,
加载矩阵键盘后多了一个 /dev/event1
小结:Qt 如何支持矩阵键盘的内容介绍完了,希望本文对你会有所帮助吧,更多资料要或许,请参考编辑推荐。
所以指定环境变量
export set QWS_KEYBOARD=USB:/dev/event1 即可
标签: 矩阵键盘 Qt
相关文章推荐
- 如何使resin支持xml的解析
- qt-extended 中如何支持gstreamer 播放引擎(ubuntu)
- 如何让wireshark支持OpenFlow解析
- 计算机是如何支持中文的? ――国际化和本地化、字符集和编码等问题解析
- Qt如何支持高分辨率屏幕(高分屏)
- 【转】如何让Bluedragon支持自定义后缀的解析
- 2.ipv6苹果上线 新网域名不支持AAAA 域名DNS解析AAAA -----如何将DNS从新网转到DNSPod?
- QT如何支持中文
- 4412开发板Linux-QT 下如何支持 HDMI 显示
- Qt中如何解析Json数据
- Qt-extended中如何用Gstreamer支持流媒体
- 在Qt中如何通过QJson 解析json数据
- 如何查询当前环境下,Qt所支持的字体的名称
- 解析Qt的信号-槽机制是如何工作的 - How Qt Signals and Slots Work
- 如何让你的Apache支持include文件解析和支持shtml的相关配置
- QT源码解析(八)Qt是如何处理windows消息的
- QT如何支持中文显示
- 【QT笔记】编译(1):如何添加c++0x支持
- QT不同平台对线程如何支持和实现
- Qt学习: 如何在Qt中使用全局变量!出现无法解析的命令的问题看过来!!