微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 如何编写Windows CE.net的usb驱动程序(1)

如何编写Windows CE.net的usb驱动程序(1)

时间:05-02 来源:互联网 点击:

键都有Group1_IDGroup2_IDGroup3_IDDriverName格式,如果注册表信息与USB设备信息符合,USBD就会加载此驱动程序。否则设备的子键应该由供应商,设备类和协议信息通过下划线组成。

具体的配置举个例子:

例如你有个PDA设备,它具有一个USB接口,它的供应厂商ID假设为0x0888,设备ID为0x0999,没有使用特殊的协议,那么它的加载注册表应该写为:

[HKEY_LOCAL_MACHINEDriversUSBLoadClients2184_2457DefaultDefaultPDA]DLL=pdausb.dll

需要注意的是注册表构成都是十进制数值来标识的,注意一下十进制和十六进制的转换。

再举个USB鼠标的例子,USB鼠标是标准的HID设备,它的协议为:InterfaceClassCode为3(HID类),InterfaceSubclassCode为1(引导接口类),InterfaceProtocolCode为2(鼠标协议类),所以它的注册如下:

[HKEY_LOCAL_MACHINEDriversUSBLoadClientsDefaultDefault3_1_2USBMouse]DLL=usbmouse.dll

到此为止,我们可以看出,其实驱动开发无非做两件事情,一件是和硬件打交道,另外一件是和操作系统打交道。举个简单的例子,例如:我们需要开发一个USB鼠标驱动程序,我们就需要了解USB鼠标硬件上是怎么发送数据的?操作系统怎么才能得到鼠标的控制事件?其实USB鼠标是有一个中断PIPE的,用于传送鼠标产生的数据,WindwosCE.NET中有个接口函数叫做mouse_event(),专门用于产生鼠标事件,但是它是不关心具体什么硬件的,甚至我们自己在应用程序中调用这个函数都可以实现模拟鼠标,对应的有个keybd_event(),用于产生键盘事件,知道了这个就好办多了,只要将相应的数据转换一下,调用一下mouse_event()即可

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top