c++ - 读取文件 Rs232 太慢

标签 c++ file-io windows-8 serial-port timeout

我在 Windows 8 上执行程序时遇到问题;我使用 ReadFile 从 RS232 串行端口检索数据。

我的代码多年来一直在从 Windows Xp 到 Win 7 的操作系统上运行,没有任何问题,但现在 ReadFile 操作总是花费 94 到 100 毫秒,而它在以前的操作系统上非常快或立即:

我尝试修改我的超时以强制 1 毫秒,但结果始终相同:

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 制作并在 Windows Update 和 catalog.update.microsoft.com 上可用的最新 Prolific 驱动程序有问题:

所以我降级到 2010/12/03 版本,现在它运行良好。

我做了一个程序,你可以在这个 zip 中找到工作驱动程序:

http://www.soft-control.com/media/exe_soft/sav/ProlificDowngrade.3.11.zip

我希望它能帮助任何关心这个问题的人!

关于c++ - 读取文件 Rs232 太慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17971365/

相关文章:

java - 锁定虚拟机内单个线程的文件

html - 从底部展开 listView

javascript - Metro 应用程序中的启动画面

C++ 使用 std::getline 代替 cin >>

c++ - 复制/move 省略与显式删除的复制/move 构造函数

c++ - 对象初始化后在C++中显示char数组时出现异常行为

r - 如何使用 UTF-8 编码保存的 source() .R 文件?

c++ - 通用容器的输出流

c++ - 对 fstream 输出操作执行 'catch all' 错误检查的正确方法是什么?

c# - 当指针指向项目时如何在gridview中指定项目的样式