是这样的,我需要读取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的要求,请问有其他快一点的方式么,新手,请教各位大大了