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

楼主#
更多 发布于:2003-11-13 15:29
详细描述入下:程序框架为“bulksrc”
配置:端口2、4为OUT,DOUBLE BUFFER,端口6、8为IN,DOUBLE BUFFER。
SLAVE FIFO 模式,在初始化TD_INIT里加入了如下代码:
  for (i=0;i<512;i++)
     EP6FIFOBUF = i+2;
  SYNCDELAY;                    //
  EP6BCH = 0x02;
  SYNCDELAY;                    //
  EP6BCL = 0x00;
  for (i=0;i<512;i++)
     EP6FIFOBUF = i+2;
  SYNCDELAY;                    //
  EP6BCH = 0x02;
  SYNCDELAY;                    //
  EP6BCL = 0x00;

这样就把递增的数据写到EP6的FIFO里了吧?
把TD_POLL里的东西全部删除。
然后用以下代码(设备已经打开,驱动为EZUSB.SYS)
void CUsbfxDlg::OnReadButton()
{
   BULK_TRANSFER_CONTROL bulkControl;
   BOOLEAN        bResult = FALSE;
   UCHAR          inBuffer[90000];
   DWORD          nBytes, dwTotalBytes;
   CFile myFile((int)hFile);
   dwTotalBytes = 0;
   bulkControl.pipeNum = 2;
   bResult=DeviceIoControl (hOmrDev,
       IOCTL_EZUSB_BULK_READ,                                   &bulkControl,
                      sizeof(BULK_TRANSFER_CONTROL),
     &inBuffer[dwTotalBytes],
       512,
       &nBytes,
     NULL);

调试,发现&inBuffer里并没数据?唉

PCI卡 http://blog.21ic.com/blog.asp?name=zhangdage
fengzhongzhige
驱动小牛
驱动小牛
  • 注册日期2003-10-10
  • 最后登录2008-04-15
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望10点
  • 贡献值0点
  • 好评度40点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-11-13 17:28
有知道原因的大牛吗?难透了。
PCI卡 http://blog.21ic.com/blog.asp?name=zhangdage
游客

返回顶部