我在使用SerialPort函数时遇到问题,数据日志记录会间歇性地崩溃几天。这是一个很难调试的问题,我想尝试Zach Saw的解决方案,他谈到here和provides code for in C#
我的问题是,要做到这一点,我是否需要在代码中重写串口的全部使用?
如果我使用System.IO.Ports.SerialPort模块,有没有办法只使用SetCommState的DLLImport将fAbortOnError设置为false,或者我是否需要完全放弃SerialPort模块并使用kernel32编写所有内容。 dll的?
答案 0 :(得分:2)
我很确定在这种情况下你可以将他的项目导入你的解决方案,它应该运行得很好。由于VB和C#都是CLR语言,因此它们都编译成相同的中间语言。
答案 1 :(得分:1)
查看此页
http://support.microsoft.com/kb/823179
它有一些适当的SetCommState声明,带有一些示例代码。 Zach的修复方法是首先将com端口首先打开为文件,调用setcommstate,然后使用.net中的串口io函数。我没有尝试过,但他的帖子听起来你不应该对你的代码做很多事情。
答案 2 :(得分:1)
在针对.NET中串行端口的各种问题测试了大约15种不同的解决方案后,我决定使用CommStudio。从那时起它一直坚如磐石。
您可以在此处获取CommStudio Express(他们的免费版本):http://www.componentsource.com/products/commstudio/downloads.html?rv=42917