sunshine_fl
驱动牛犊
驱动牛犊
  • 注册日期2002-08-22
  • 最后登录2005-09-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:5016回复:22

按键驱动

楼主#
更多 发布于:2005-05-27 13:08

我想用支持中断的GPIO来实现几个按键的功能,该如何编写程序,请大家给我点意见,谢谢了 开发平台是PXA255

或者大家还有别的方法吗?
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-05-27 13:51
没什么特别的你可以找一个键盘驱动的例子,比如在BSP里面或COMMON\\\\OAK\\\\DRIVERS或CSP里面,把底层从硬件获得扫描码部分的代码全部换成你的就可以了,上面MDD都不动,不过你可能先要看看帮助,因为键盘的物理连接方式较多,CE也为每种不同连接给出了相应的框架,你的应该是MATRIX键盘。
根据地的兄弟们,团结就是力量
sunshine_fl
驱动牛犊
驱动牛犊
  • 注册日期2002-08-22
  • 最后登录2005-09-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-05-30 13:15
谢谢老大帮助,
小弟看的不是很明白,大家有没有这方面的资料呢
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-05-30 14:11
先仔细看pb带的帮助中键盘驱动的主题,然后看看实际的代码,代码你可以看你的pb的platform里面,最好找wince.net 4.2的pb,里面的platform里有三星smdk2410的bsp,你可以参考这里的键盘驱动,我觉得刚开始弄比较好看懂。
根据地的兄弟们,团结就是力量
sunshine_fl
驱动牛犊
驱动牛犊
  • 注册日期2002-08-22
  • 最后登录2005-09-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-05-31 08:56
如果我只想实现上下左右 确认 取消等几个键
我该怎么做?
键盘驱动需要编写吗?
我只写相应的GPIO中断响应函数可以吗?
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-05-31 11:11
这个你需要先确定一下你的需求,如果你不需要标准的键盘,按键只是为某个或某几个特别的应用使用,你完全可以自己管理按键:写按键的isr->然后在ist里面读键值->让应用根据键值工作。这样做好处是完全可以不管ce的键盘驱动模型,自由度大。缺点是这样的按键驱动不能纳入系统管理,按键的值不能通过上层消息机制传递到任意进程。你可以权衡一下。
根据地的兄弟们,团结就是力量
scatzr
驱动牛犊
驱动牛犊
  • 注册日期2005-07-15
  • 最后登录2005-08-09
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-07-21 10:47
说了和没有说一个样,那位大侠做了麻烦将操作步骤说一遍。
做了才知道根本不是你们说那回事!!!
kaokaokaokao
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-07-21 13:47
下面是引用scatzr于2005-07-21 10:47发表的:
说了和没有说一个样,那位大侠做了麻烦将操作步骤说一遍。
做了才知道根本不是你们说那回事!!!
kaokaokaokao



通过你的实践证明我们说的哪里不对呢?

“做了才知道根本不是你们说那回事!!!”

我不知道这句话从何说起


有什么意见你可以继续提出来,不过我觉得你最好把自己的语言组织一下,谢谢。
根据地的兄弟们,团结就是力量
zxl_95
驱动牛犊
驱动牛犊
  • 注册日期2005-03-07
  • 最后登录2005-09-05
  • 粉丝0
  • 关注0
  • 积分33分
  • 威望5点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2005-07-21 17:03
楼主太激动了吧,语无伦次
renlongxiang
驱动牛犊
驱动牛犊
  • 注册日期2005-07-15
  • 最后登录2005-10-19
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2005-08-04 09:55
楼主,我现在做的工作与你类似,你的问题解决了吗?希望多交流一下,我QQ42822776
xiyulang
驱动牛犊
驱动牛犊
  • 注册日期2005-09-06
  • 最后登录2010-07-22
  • 粉丝1
  • 关注0
  • 积分7分
  • 威望111点
  • 贡献值0点
  • 好评度64点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2007-01-04 09:14
我现在通过GPIO和中断基本已经实现了按键功能,但是获取窗口中的项目的句柄还是有点问题,没法像标准键盘一样(比如选中项目后按上下左右键实现移动),现在只能往上层发消息,上层程序自己做处理捕捉消息,关键是怎么获取窗口当前操作项的句柄,这样就可以实现跟标准键盘一样的功能。各位有什么建议?
wince_lover
驱动中牛
驱动中牛
  • 注册日期2007-01-10
  • 最后登录2010-12-20
  • 粉丝0
  • 关注0
  • 积分1103分
  • 威望735点
  • 贡献值2点
  • 好评度279点
  • 原创分1分
  • 专家分0分
11楼#
发布于:2007-01-22 13:42
关注中
zhoumc
驱动牛犊
驱动牛犊
  • 注册日期2006-07-13
  • 最后登录2008-11-25
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望88点
  • 贡献值0点
  • 好评度80点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2007-01-22 14:38
wxl_50685330说得对,针对楼主的需求,可以进行简单实现,不需要做成标准的键盘驱动。而且用keybd_event函数发送虚拟键值,OS会自动地将虚拟键值发送到当前焦点窗口中。
dreamzqw
驱动牛犊
驱动牛犊
  • 注册日期2004-11-25
  • 最后登录2019-04-08
  • 粉丝1
  • 关注0
  • 积分19分
  • 威望182点
  • 贡献值0点
  • 好评度55点
  • 原创分1分
  • 专家分2分
13楼#
发布于:2007-01-24 14:54
wxl_50685330说得对,针对楼主的需求,可以进行简单实现,不需要做成标准的键盘驱动。而且用keybd_event函数发送虚拟键值,OS会自动地将虚拟键值发送到当前焦点窗口中。
可是keybd_event好像不能发送ASCII和数字键呀,请问zhoumc大哥,ASCII和数字键要怎么处理呀.
zhoumc
驱动牛犊
驱动牛犊
  • 注册日期2006-07-13
  • 最后登录2008-11-25
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望88点
  • 贡献值0点
  • 好评度80点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2007-01-24 15:13
可以发送数字键,我试过!查查你的OS系统的SDK中的虚拟键值定义表,然后按表中的值发送即可,绝对可以。
zhoumc
驱动牛犊
驱动牛犊
  • 注册日期2006-07-13
  • 最后登录2008-11-25
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望88点
  • 贡献值0点
  • 好评度80点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2007-01-24 16:34
注意不光是要发送虚拟键值,还是填对应的扫描码
dreamzqw
驱动牛犊
驱动牛犊
  • 注册日期2004-11-25
  • 最后登录2019-04-08
  • 粉丝1
  • 关注0
  • 积分19分
  • 威望182点
  • 贡献值0点
  • 好评度55点
  • 原创分1分
  • 专家分2分
16楼#
发布于:2007-01-24 18:46
数字键我也试了,在CE下打开WordPad,按数字键,在WordPad中没有对应的数字出来.
我是转换成CE  Help文档中的虚拟键的呀,只是扫描码就是我自己定的了,不过都不一样.
在WordPad中,只有按回车键可以看到光往下移了.
多谢zhoumc大哥的回贴.
zhoumc
驱动牛犊
驱动牛犊
  • 注册日期2006-07-13
  • 最后登录2008-11-25
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望88点
  • 贡献值0点
  • 好评度80点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2007-01-24 19:48
扫描码要用标准的,你可以到MSDN文档中去查,用文档中标出的扫描码肯定可以了,goodluck!
dreamzqw
驱动牛犊
驱动牛犊
  • 注册日期2004-11-25
  • 最后登录2019-04-08
  • 粉丝1
  • 关注0
  • 积分19分
  • 威望182点
  • 贡献值0点
  • 好评度55点
  • 原创分1分
  • 专家分2分
18楼#
发布于:2007-01-24 20:53
那为什么控制键,(如回车键)可以用任意的一个扫描码呢??
zhoumc
驱动牛犊
驱动牛犊
  • 注册日期2006-07-13
  • 最后登录2008-11-25
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望88点
  • 贡献值0点
  • 好评度80点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2007-01-24 23:17
数字键出来了没有?,至于原理,需要你自已去探究了
上一页
游客

返回顶部