【发布时间】:2012-07-23 01:29:01
【问题描述】:
在我的本地机器上,
- Windows XP
- 端口(COM 和 LPT)
- COM3
- RIM 虚拟串行端口 v2 (COM4)
- RIM 虚拟串行端口 v2 (COM5)
以下代码,
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 开头或不解析为 一个有效的串口。
有人知道为什么会这样吗?
【问题讨论】:
-
先检查端口是否已经打开!
-
@AhmedGhoneim,
IsOpen返回false -
很酷,所以请在打开之前致电
serialPort.Close();,试试吧:)
标签: c# serial-port argumentexception virtual-serial-port