WINCE5.0 下的一个小疑问?

来源:百度知道 编辑:UC知道 时间:2024/05/30 07:33:41
想从串口读取键盘键值,然后发送给WINCE.请高手给出思路,解释越详细越好,谢谢.
Thanks
另外,如果别人通过I2C把键值发过来了,我要怎么操作,再发给WinCE
----------------------------------------------------------------
首先谢谢一楼的回答,目前我的方案是这样的:写DLL注册成服务,通过服务来把I2C的键值传给WinCE.至于keybd_event( )的用法我已经知道了,现在问题是,如果I2C有键值,我用什么函数去判断读取I2C的数据.如果是串口,我可以用CreateFile( )和ReadFile( ),I2C要怎么操作.
由于刚刚接触WinCE,有很多地方比较困惑,不过我还是希望自己来做,就当是个学习的机会吧.

WinCE有内置的键盘驱动接口,你需要做的就是实现键盘驱动程序,实现微软规定的几个函数
首先你需要了解驱动程序开发,其次需要查看WinCE自带的帮助文档,来了解键盘驱动的结构和实现方法

如果你只是想用应用程序来实现一个辅助功能而不是作为主键盘驱动的话,可以调用keybd_event来模拟键盘输入

----------------------------------------------------------------
这分为两个部分:
1 从I2C获得键值。这一部分就不多说了,因为你问的是把键值通知WinCE的问题
2 把获得的键值发送给WinCE。比如你从I2C获得的数值为0x12345678,首先你需要做一个映射判断,就是说你要把获得的键值作为某个系统按键的定义。比如0x12345678是按键“7”,如果你判断到这个,就调用keybd_event。这个函数会通知WinCE,有一个按键事件。效果就等于你按了数字键“7”。就是说这里有2个小过程:
a)将I2C数据对应到一个你想要的按键,这个是自定义的
b)调用keybd_event函数,将你映射的系统按键值传递给WinCE系统

关于keybd_event的用法,你查一些WinCE的帮助,上面说的很清楚

说到这里,如果你真是一个程序员的话,整个流程思路应该已经很清楚了

如果你不是程序员或者实在调不通的话,干脆把资料给我,外包给我来帮你搞定

--------------------------------------------------------------
首先你要知道你的I2C驱动是如何工作的,I2C的寄存器你应该了解一些,当I2C发送数据和接收数据的时候是放到哪个缓存的?是否使用了中断?
I2C驱动可能是自己实现的驱动,所以不会像微软做好的串口的MDD层,让你可以用ReadFile从buffer中读取数据,所以你首先要熟悉自己的I2C驱动