阅读:1900回复:14
高手帮帮忙,我用driverstudio按照《10分钟完成usb驱动〉的程序不能执行???
我插上硬件后执行程序,发现下句有问题:
hDevice = OpenByInterface( &ClassGuid, 0, &Error); hDevice为无效。 还有文中所用的硬件有什么要求?其中的LED怎么接??? 我的系统以前是采用windriver的驱动,现在想用driverstudio写,不知该怎么做,望前辈指点迷津,不胜感激。 |
|
沙发#
发布于:2002-06-24 15:32
你的vid和pid设的对吗,
|
|
板凳#
发布于:2002-06-24 15:36
我的vid和pid使用的在windriver的wizard中插上设备自动提供的,而且我的原来的驱动就用的这个vid和pid。
|
|
地板#
发布于:2002-06-24 15:44
你可以用usbview测试一下usb板的参数,看看是不是endpoint等有什么错误
|
|
地下室#
发布于:2002-06-24 15:57
通过usbview察看如下:
Device Descriptor: bcdUSB: 0x0110 bDeviceClass: 0x00 bDeviceSubClass: 0x00 bDeviceProtocol: 0x00 bMaxPacketSize0: 0x08 (8) idVendor: 0x1965 idProduct: 0x0118 bcdDevice: 0x0001 iManufacturer: 0x01 iProduct: 0x02 iSerialNumber: 0x00 bNumConfigurations: 0x01 ConnectionStatus: DeviceConnected Current Config Value: 0x00 Device Bus Speed: Low Device Address: 0x02 Open Pipes: 0 怎么看有没有问题呢?我在driverstudio驱动程序中只用了endpoint0,而且用以前的驱动该端点没有问题。帮我分析一下吧! |
|
5楼#
发布于:2002-06-24 16:16
下面是我的USB参数,你可以参考一下:
Device Descriptor: bcdUSB: 0x0101 bDeviceClass: 0x07 bDeviceSubClass: 0x01 bDeviceProtocol: 0x02 bMaxPacketSize0: 0x10 (16) idVendor: 0x0B3D idProduct: 0x0001 bcdDevice: 0x0100 iManufacturer: 0x01 iProduct: 0x02 iSerialNumber: 0x00 bNumConfigurations: 0x01 ConnectionStatus: DeviceConnected Current Config Value: 0x01 Device Bus Speed: Full Device Address: 0x02 Open Pipes: 2 Endpoint Descriptor: bEndpointAddress: 0x02 Transfer Type: Bulk wMaxPacketSize: 0x0040 (64) bInterval: 0x00 Endpoint Descriptor: bEndpointAddress: 0x82 Transfer Type: Bulk wMaxPacketSize: 0x0040 (64) bInterval: 0x00 -------------------------------------- 你的PIPE没有一个打开,可能有些不对吧 我不知道你用的是什么芯片, 我记得好像ENDPOINT0是CONTROL OUT OR IN, |
|
6楼#
发布于:2002-06-24 16:33
我用的是cy7c63001a,我在生成驱动程序时,在添加endpoint的步骤中我直接选择next,而没有像文章中那样添加了2个endpoint,lake老兄,是和这个有关系么?多谢指点。
|
|
7楼#
发布于:2002-06-24 17:04
ENDPOINT是在读写过程中必须的,不过我不知道为什么你连句柄都没有打开(句柄打开还没用到ENDPOINT),而且你的USBVIEW也查出有设备的存在,你先看一下你的*.INF中的VID和PID是否和USBVIEW介绍的一样,然后在查开你的设备管理器是否在设备插上后出现设备标志,如果设备不存在,说明你的设备连结有问题,(关机从起试一试,或者从新用向导作一下,也许错误就在其中)
|
|
8楼#
发布于:2002-06-24 20:37
楼上两位大哥,您们谈的问题我还未能做到,因为在进行CPP文件Compile时出现了“Command line error D2027 : cannotexecute \'c1xx\'
Error executing cl.exe.”的提示,请问是什麽原因? |
|
9楼#
发布于:2002-06-25 09:58
这整个系统对硬件和固件有什么要求?lake兄你的调通了是吧?你能告诉我你的系统硬件和固件大约是什么?
|
|
10楼#
发布于:2002-06-25 12:10
我用的芯片是pdiusbd12,endpoint2->bulk,其他的也没什么,如果你的usbview能测出来,那你的硬件应该没有问题的吧!你的设备管理器没有出现你要的设备吗? :(
|
|
11楼#
发布于:2002-06-25 12:26
设备管理器是有我的设备符号,是不是因为我装过windriver驱动呢?
|
|
12楼#
发布于:2002-06-25 14:45
如果你装过以前的驱动,那么一定要卸载或更新,如果你装的是driverwork下的*.inf,此文件有没有改,那么设备标志应该是\"your company here\"之类的长东西,如果你以前的没有卸载,注册表当然要以前的驱动啦 :D
|
|
13楼#
发布于:2002-06-26 08:52
lake兄,我已经调通了,谢谢你,我把分给你了,不过在装好后程序只出现一个DOS界面,然后就退出了,我看了一下程序,是不是要修改程序才能实现对硬件的读写呀?
|
|
14楼#
发布于:2002-06-26 09:02
在dos方式下,输入: test_* r read_number w write_number <return>
|
|