ReadFile Rs232 Too Slow
ReadFile Rs232 Too Slow
我在Windows 8上执行程序时遇到问题;我使用ReadFile从RS232串行端口检索数据。
我的代码在从windows Xp到Win 7的操作系统上运行了很多年,没有任何问题,但现在ReadFile操作总是在94到100ms之间,而在以前的操作系统上运行速度很快或很快
我试着修改我的超时以强制1ms,但结果总是一样的:
GetCommTimeouts(Handle, &cto);
cto.ReadIntervalTimeout=MAXDWORD;
cto.ReadTotalTimeoutMultiplier=0;
cto.ReadTotalTimeoutConstant=0;
cto.WriteTotalTimeoutMultiplier=0;
cto.WriteTotalTimeoutConstant=0;
if(SetCommTimeouts(Handle, &cto) == 0)
// And the read function :
rOL.Offset = 0;
rOL.OffsetHigh = 0;
if (ReadFile(Handle, &byte, 1, &i, &rOL) == TRUE)
在阅读了大量的帖子和MSDN之后,我找不到任何解决方案!
我发现并纠正了我的问题,感谢Hans Passant,他为我指明了正确的方法!
所以这是一个驱动程序问题,最大的问题是专门为Windows 8和7制作的最新Prolific驱动程序在Windows Update和catalog.Update.microsoft.com上有缺陷:
所以我降级到2010/12/03版本,现在它运行得很好。
我做了一个程序,你可以在这个zip中找到工作驱动程序:
http://www.soft-control.com/media/exe_soft/sav/ProlificDowngrade.3.11.zip
我希望它能帮助到其他关心这个问题的人!
过一段时间,这里是32位驱动程序(只有x86驱动程序包含在先前的zip中)。
扩展驱动程序x86 3.3.11.152:
http://www.allendatagraph.com/techsupport/usb/SetupBafoDriverWindow.exe
相关文章:
- 如何在 C 中正确使用 libiconv 使其不会报告"Arg list too long"?
- "throw expression code" 1e7 >返回 d 是什么?投掷标准::overflow_error( "too big" ) : d;意味 着?
- 如何修复"too few arguments to function"?
- fopen 在创建大量文件后因 EFBIG "File too large" 而失败
- VC++ wcscpy_s随机断言"Buffer is too small"
- 从 std::ostream 重载 << 运算符时,为什么编译器会给出"too many parameters for this operator function"错误?
- cuda 9.2 curand_init extremely slow
- VS说"Too few arguments...",但其他编译器给了我正确的输出?
- 连接到MySQL时如何修复xdev C++ api中的'string too long'错误
- C++ OpenCV imdecode slow
- The mysql_query() is slow
- c++ (XORString): "recursive type or function dependency context too complex"
- QFileDialog Slow Network
- 尝试在 eclipse CDT 中提取函数时"Too many declarations in selection"错误消息
- QT 5.2.0 getOpenFileName slow
- 将嵌套结构变量从 C++ 传递到C++ dll 会导致 (L "Buffer is too small" && 0)
- ReadFile Rs232 Too Slow
- SetPixel() is too slow
- GetPixel is WAY too slow
- Erode is too slow - Opencv