已经通过bulkendpoint实现对usb的写入和读取。
现在情况是,usb那边每40微秒生成512bytes的数据。
上位机这边在一个while(ture){}循环内部一直调用BulkInEndPoint->xferdata(data[],len)来获取USB的数据。
while(ture)
{
while(!flag)
{
bool flag = bulkInEndPoint->XferData(data[], len);
}
}
程序在运行一段时间后,会阻塞。
查到是xferdata超时,返回false。
这时while(!flag)判真,重新调用bulkInEndPoint->XferData(data[], len);
但自这之后xferdata一直就返回false了。
同事用抓包工具说,阻塞之后上位机没有发出SOF命令。
正常一次包的发送应该是SOF-In-DATA-xxx。 |