奇怪的SerialPort名称不起作用

时间:2011-01-07 12:26:46

标签: .net vb.net serial-port

问题很简单,我正在编写一个能够通过.NET中的IO.Ports.SerialPort函数连接GPS设备的工具

一切正常,但要列出所有可用的COM接口,它们看起来像:

COM1  
COM2%  
COM3°
COM12$

无法连接到名为COM3°的设备。如果我只是尝试手动连接到COM3,那就完美了。

这是我现在正在使用的代码片段:

For i As Integer = 0 To My.Computer.Ports.SerialPortNames.Count - 1
        cbbCOMPorts.Items.Add(System.IO.Ports.SerialPort.GetPortNames(i))
Next

感谢您的帮助;)

3 个答案:

答案 0 :(得分:4)

我以前看过这个,已经有一段时间了。这是驱动程序中的一个错误,它将垃圾写入注册表。 Bobby给了你这个位置,看看Regedit.exe。我想是某种USB设备。扔掉它,找到另一个制造商的另一个。 Cr * ppy驱动程序不是你想要处理的东西。

答案 1 :(得分:2)

this Connect MSDN post的信息有帮助吗?

具体来说,我看到了:

  

感谢您报告此问题。这个的根本原因(RegistryKey.GetValue无法正确处理非空终止的字符串数据)将在下一版本的.NET Framework中得到修复。

     

此致   贾斯汀范帕滕

修改:如上面的评论中所述,此链接和问题可在existing Stackoverflow question中找到。

答案 2 :(得分:0)

这是使用SerialPorts时使用.Net 4.0的另一个原因。可能最大的问题是在端口打开时修复USB SerialPorts,这会导致许多问题(是的,我知道用户不应该......)。