我在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后,我找不到任何解决方案!
答案 0 :(得分:1)
我找到并纠正了我的问题,感谢汉斯帕森特指示我正确的道路!
所以这是一个驱动程序问题,最大的问题是专门针对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
我希望它可以帮助那些关心这个问题的人!
答案 1 :(得分:0)
过了一会儿,这里是32位驱动程序(只有x86驱动程序包含在先前的zip中)。
多产驱动程序x86 3.3.11.152:
http://www.allendatagraph.com/techsupport/usb/SetupBafoDriverWindow.exe