delphi – 串口WriteFile()冻结

我有一个简单的应用程序,它应该每分钟一个字节发送一个字节到一个串口.但有时,从某些奇怪的原因,它在WriteFile()函数中的某处冻结. sw和hw流量控制均关闭.我已经搜索了一些关于从另一个线程执行的挂起读取操作的东西,但我相信这不是问题,因为我的应用程序有单线程.此外,CreateFile的句柄看起来有效,因此任何其他应用程序都不应使用该端口.有人遭受过这种情况吗? 最佳答案 如果你谷歌写的文件挂起,你会发现有关这个问题的一些讨论.一些线索是缓冲区溢出,正确调整缓冲区大小,有缺陷的COM端口,清除错误状态……似乎有很多事情要尝试.

我建议的另一件事是使用通信库而不是直接调用API,比如Async Professional(http://sourceforge.net/projects/tpapro/).即使它们为您的应用程序增加了一些开销,它们也可能简化您的工作并避免一些潜在的陷阱……

点赞