答案 0 :(得分:5)
对于那些建议查看.NET SerialPort类的人;关于串行相关问题的频繁Stack Overflow应答提供商,Ben Voigt,提供了一些很好的见解,为什么围绕WinAPI的包装器最终会比使用提供的SerialPort框架更好的想法:
必读。
他还提到了一个WinAPI包装器,他可能会在未来的博客文章中透露。如果发生这种情况,它将回答原始问题。
此外,似乎至少有一个商业解决方案提供了所请求的功能here。
另一个编辑:
在.NET中没有SerialPort类的时候,在线搜索显然已经产生了this blog post ...提供的源代码显示了如何为此目的包装Win32 API。
修改强>
有些用户指出上面提到的MSDN博客文章链接已经死了。
链接文章的标题是:
“Use P/Invoke to Develop a .NET Base Class Library for Serial Device Communications”,由John Hind撰写并于2002年10月发布,我可以从另一篇MSDN文章中了解到它:
不幸的是,微软似乎只在2003年之前提供其杂志的版本:
FWIW,我在其他地方找到了half working online version ......
答案 1 :(得分:3)
答案 2 :(得分:3)
答案 3 :(得分:2)
通过PInvoke使用串口工作正常。我们在Silverlight应用程序中执行此操作,但它应该在普通的.NET应用程序中使用相同的功能。 Serial Communication with Silverlight 5 (COM port)的答案提供了一个基本包装,可以很容易地适应您的需求。它使用常规的WinAPI方法,因此您可以像在C ++应用程序中那样完全访问所有串行端口功能。
P.S。如果您还没有,请使用PortMon来监控该线路上发生的情况。
答案 4 :(得分:0)