在我的本地计算机上,
以下代码,
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO.Ports;
using System.Threading;
namespace OpenSerialPortTest
{
class Test
{
static void Main(string[] args)
{
foreach (String serialPortName in SerialPort.GetPortNames())
{
SerialPort serialPort = new SerialPort(serialPortName);
try
{
serialPort.Open(); // Line 19
Console.WriteLine(serialPort.PortName);
}
catch (Exception ex1)
{
Console.WriteLine(ex1);
try
{
serialPort.Close();
}
catch (Exception ex2)
{
Console.WriteLine(ex2);
}
}
}
Console.ReadLine();
}
}
}
将抛出以下ArgumentException
,
即,
给定的端口名称不以COM / com开头或不解析 一个有效的串口。
有人知道为什么会这样吗?
答案 0 :(得分:0)
看看 http://social.msdn.microsoft.com/Forums/en/csharpgeneral/thread/35954173-2eeb-46af-bb3e-86840c6b5484
似乎问题是那些COM端口被映射到其他东西并且在响应中给出了这个奇怪的错误。
我有完全相同的问题。我发现我有一个Windows打印机设置使用相同的端口。一旦我在打印机设置中更改了端口,SerialPort.Open()就可以工作。