阅读:1056回复:0
怎么保持PC和USB设备通讯收发一致?
我采用的BULK传输方式,在设备的firmware中我写操作是这样来处理的:每写一个包(64字节)如果超过了5秒还不能成功发送,我就丢弃这个包,接着发下面的一个包.
在PC端的驱动程序中我的读操着是这么来处理的:直接通过WD_UsbTransfer函数读.如下: transfer.dwPipe = 0x01; transfer.dwBytes = dwSize;//为500K字节 transfer.pBuffer = pBuffer;//为500K字节大小的缓冲区 transfer.hDevice = hSEALCONTRL->hDevice; transfer.dwTimeout = 5000;//超时设置为5秒 WD_UsbTransfer(hSEALCONTRL->hWD, &transfer); 在我的应用程序中发现有个问题:PC读数据时有时能完整的收到所有的包,而有时只能收到部分包.还有时读操作返回超时.请问这种我这样处理有什么问题?还望各位指点指点,多谢了! |
|