zhiming_song
驱动牛犊
驱动牛犊
  • 注册日期2003-08-16
  • 最后登录2004-02-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:951回复:3

USB块写操作为什么设备进入不了中断

楼主#
更多 发布于:2004-02-11 17:15
我在做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]
zhiming_song
驱动牛犊
驱动牛犊
  • 注册日期2003-08-16
  • 最后登录2004-02-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-02-12 08:55
jinghuiren,再请教一下,softice软件怎么用,如何跟踪驱动程序
zhiming_song
驱动牛犊
驱动牛犊
  • 注册日期2003-08-16
  • 最后登录2004-02-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-02-11 22:01
多谢!你说的前4条估计没问题,bulkControl.pipeNum=1(OUT端点2),nOutPackSize=64,固件已打开中断,用控制面版能检测到中断,我再用softice试试看。
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-02-11 21:21
建议检查一下以下情况:
1,bulkControl里存放的端点号是否是你期望的端点
2,outBuffer[]是个数组吗?如果是为什么不用outBuffer来表示数组的首地址?这个数据里是否有数据?
3,nOutPackSize是否大于0。
4,你固件里是否打开了相应的中断。
5,如果你有驱动源代码,可以用softice等工具跟踪到驱动程序里,看是驱动没有收到数据还是设备端没有收到数据。
游客

返回顶部