阅读:1336回复:4
有关usb的应用程序开发
小妹现在开发一个usb-gpib卡,硬件已经条是通过,基本的固件程序也调试成功,现在有一个问题困扰我几天了,即在用vc开发应用程序的过程中,用createfile()获取一起句柄,但不跟踪已成功获取,然后用deviceiocontrol()对硬件进行写操作,总是不能发送成功,不只是什么原因。在用芯片厂商提供的控制软面板对硬件进行写操作没有问题,是不是可以排除固件程序的问题?难道真是应用程序的问题,可是我翻阅了好多资料,对于usb的读写都是应用的这种方法。还有一个问题,就是运行应用程序后,关闭芯片厂商提供的控制软面板,在重新打开,原先显示ezusb-0的地方显示成了ezusb-1甚至于ezusb-2,ezusb-3等等,不知是何原因?麻烦高手指点一下了,bow//
|
|
沙发#
发布于:2005-05-13 13:48
你可以尝试使用WriteFile,ReadFile等API函数来试一下
ezusb-0,ezusb-1,ezusb-2 只是在系统中对应不同USB端口,逻辑可以有128个端口号 |
|
板凳#
发布于:2005-05-13 16:32
问题是在同一个usb端口上,通过控制软面板对硬件进行读写,一旦挂起,拔下硬件,再插上,在软面板的文件菜单里打开设备的话,就会改变成ezusb-1
|
|
地板#
发布于:2005-05-13 17:39
可能是软件上没有卸载干净,系统中还存在驱动或设备对象(或是还被引用?),这样就可能每次递增?
突然发现是关于应用程序开发的,上面说的无效! 关于名字递增,是否每次creatfile,使用后没有closehandle? 随便说的,不要仍砖头过来:P [编辑 - 5/13/05 by drivering] |
|
地下室#
发布于:2005-05-13 22:32
ReadFile, WriteFile, DeviceIoControl是应用程序和驱动程序交流数据的手段,首先确认你的驱动支持IoControl,其次看你的参数是否正确,如IOCTRL码。还不行的,用BUSHOUND看一下URB,还可用GetLastError来看一下最后的错误。
希望对你有帮助 |
|
|