阅读:951回复:3
USB块写操作为什么设备进入不了中断
我在做USB读卡器,用的是EZ-USB的AN2131,驱动程序是EZ-USB自带的通用驱动程序,用控制面版执行块写操作没问题,但用VC自己编的应用程序执行,设备始终接收不到主机发送的数据,主机关于块写操作的代码如下:
hDevice = CreateFile("\.ezusb-0", GENERIC_WRITE|GENERIC_READ, FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL); bResult=DeviceIoControl( hDevice, IOCTL_EZUSB_BULK_WRITE, &bulkControl, sizeof(BULK_TRANSFER_CONTROL), &outBuffer[0],//first address of outbuffer nOutPackSize,//=64 &nBytes, NULL); 缓冲方式用的是METHOD_IN_DIRECT。 希望哪位大侠能够指点迷津,万分感谢!!! [编辑 - 2/11/04 by zhiming_song] [编辑 - 2/11/04 by zhiming_song] |
|
沙发#
发布于:2004-02-12 08:55
jinghuiren,再请教一下,softice软件怎么用,如何跟踪驱动程序
|
|
板凳#
发布于:2004-02-11 22:01
多谢!你说的前4条估计没问题,bulkControl.pipeNum=1(OUT端点2),nOutPackSize=64,固件已打开中断,用控制面版能检测到中断,我再用softice试试看。
|
|
地板#
发布于:2004-02-11 21:21
建议检查一下以下情况:
1,bulkControl里存放的端点号是否是你期望的端点 2,outBuffer[]是个数组吗?如果是为什么不用outBuffer来表示数组的首地址?这个数据里是否有数据? 3,nOutPackSize是否大于0。 4,你固件里是否打开了相应的中断。 5,如果你有驱动源代码,可以用softice等工具跟踪到驱动程序里,看是驱动没有收到数据还是设备端没有收到数据。 |
|