fengzhongzhige
驱动小牛
驱动小牛
  • 注册日期2003-10-10
  • 最后登录2008-04-15
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望10点
  • 贡献值0点
  • 好评度40点
  • 原创分0分
  • 专家分0分
阅读:749回复:0

曾问过的:把EP6端点的数据读上来。jinhuiren老大指导过

楼主#
更多 发布于:2003-11-07 10:42
我用EZ-USB自带的一个例子bulksrc,用自带的控制面板download到USB的RAM,在着个例子的初始部分,就把一些递增数据储存到EP6FIFOBUF里。
********************************************
jinhuiren老大给出了提示:
如果你用的是例子代码并且没有修改过的话,说明你没有弄明白例子的意思!
BULKSRC的主要流程是先把主机通过EP2或着EP4传到设备的数据存储到哪个64K的RAM里,然后当主机通过EP6或者EP8读取数据的时候再把数据从RAM里读出来回传给主机!
但是你贴出来的那一段程序显然用的是EP4和EP8,直接REARM EP2和EP6,你读EP6当然没有数据了,也有可能读到的是随机数。
你这样做,先写一批数据到EP4,然后再用EP8读回去试试!
****************************************************

我认为BULKSRC的主要流程是这样的:
1、初始化,向EP6端点写512个数字。
2、检查EP2是否空,如果非空,就arm EP2。
   检查EP6是否满,如果非满,就arm EP6。(在下面的检查中并没有用到EP2和EP4,不知道为什么还要arm他们?)
   检查EP4是否空,如果非空,就把EP4里面的数据传输给myBuffer。
   检查EP8是否满,如果非满,就把myBuffer里的数据传输给EP8。

由上可看出,EP6没有参与数据传输,既然EP6里已经写了512个数据存储在里面了,为什么就读不出来呢?偶就纳了闷了!

bulkControl.pipeNum = 2;
bResult = DeviceIoControl (hDeviceFX2,
IOCTL_EZUSB_BULK_READ,
&bulkControl,
sizeof(bulkControl),
&inBuffer[dwTotalBytes],
512, &nBytes,
NULL);

}



 





[编辑 -  11/7/03 by  fengzhongzhige]
PCI卡 http://blog.21ic.com/blog.asp?name=zhangdage
游客

返回顶部