limengsk
驱动牛犊
驱动牛犊
  • 注册日期2005-03-18
  • 最后登录2010-04-14
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望8点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:1812回复:1

usb中断传输

楼主#
更多 发布于:2008-11-18 10:38
m_pUrb = Pipe1.BuildInterruptTransfer(
                   m_buffer,          // Where is data coming from?
                   0x8,  // How much data to read?
                   TRUE,         // direction (TRUE = IN)
                    NULL,          // Link to next URB
                    NULL,
                    TRUE
                    );
          
        //    m_pUrb->UrbBulkOrInterruptTransfer.TransferFlags =( USBD_TRANSFER_DIRECTION_IN |USBD_SHORT_TRANSFER_OK);
            status = Pipe1.SubmitUrb(
                             m_pUrb,
                             NULL,//LinkTo(TransferComplete),
             NULL,//pCompInfo,
             0);
上面的程序我发现只能中断传输一次,也就是说我只能在设备上采集到一次数据。
我想请教一下大家:
    中断传输的驱动一般怎么处理,我想通过windows下的驱动,定时或者不定时的查询设备的状态,通过终端传输来读取设备上的数据,那么windows驱动怎么控制终端查询的时间,接受到的数据存储在什么位置?我现在在m_buffer中确实能看到一次接受的数据,可是驱动就不在查询了。如果我LinkTo(TransferComplete),驱动就会出现蓝屏,不知道什么原因,请大家帮忙看看。
wanjangoto
驱动牛犊
驱动牛犊
  • 注册日期2008-07-22
  • 最后登录2013-09-11
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望44点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2009-01-23 14:11
“如果我LinkTo(TransferComplete),驱动就”不知道 是什么 意思 ?
貌似 一般 在驱动里 循环 来实现 查询。
或者 是 完成 例程 的递归 调用
游客

返回顶部