读书人

对usb设备使用ReadFile存在的有关问题

发布时间: 2012-02-02 23:57:14 作者: rapoo

对usb设备使用ReadFile存在的问题 不能返回数据
对usb设备使用ReadFile存在的问题

打开USB设备(2410),调用ReadFile读数据:

usb设备端写入128字节数据
.....
BYTE buf[256];
memset(buf, 0, 256);
DWORD dwRead;
ReadFile(hUSB, buf, 256, &dwRead, NULL);
.......

程序会一直阻塞不返回,而如果改成ReadFile(hUSB, buf, 128, &dwRead, NULL)就可以正常的返回数据。

我记得使用窗口读数据的时候,即使写入的数据没达到nNumberOfBytesToRead参数指定的值也是可以返回的。

不知道哪里出错了,请各位大侠帮帮忙!

[解决办法]
这个取决于具体USB设备,看看读写USB设备支持的帧长度是多少字节?
[解决办法]
这个主要取决于你的USB硬件。
如果USB硬件只有128byte的数据,而你读取的是256byte,再加上USB驱动程序没有设置超时返回机制,那么就会出现这种现象。
解决的方法有两个:
(1)让你的USB硬件产生>=256byte的数据
(2)修改驱动程序

读书人网 >VC/MFC

热点推荐