quanweibuaa 2018-10-09 08:11 采纳率: 0%
浏览 1683

C++ 读取USB3.0数据问题

是这样的,我需要读取USB3.0(Cypress)自动上传的数据,速率大概2MB/s,每个数据包1KB,也就是2048pkt/s,但我通过主动读取代码,如下:

  void USBDataPacket::GetUSBDataPacket()
{
     ZeroMemory(inBuf, 1024); 
     LONG length = 1024;
     UCHAR *inContext = USBDevice->BulkInEndPt->BeginDataXfer(inBuf, length, &inOvLap);
     USBDevice->BulkInEndPt->WaitForXfer(&inOvLap, 100);
     USBDevice->BulkInEndPt->FinishDataXfer(inBuf, length, &inOvLap, inContext);   
}
```    工作流程大概为:

while(true)
{
GetUSBDataPacket();
处理函数();
}


  这样的问题是我调用一次GetUSBDataPacket(),时间大概为1.5ms,也就是即使我不加数据处理函数,疯狂循环调用GetUSBDataPacket(),1.5ms才能得到1KB的数据,速率达不到2MB/S的要求,请问有其他快一点的方式么,新手,请教各位大大了
  • 写回答

1条回答 默认 最新

  • Lingxy 2018-10-12 08:26
    关注

    我是把USB枚举成一个串口,然后上位机和单片两边建立通讯协议,就随便写了。USB2.0也能到30m/s啊

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题