【发布时间】:2011-06-04 10:16:44
【问题描述】:
因此,当我尝试使用 SerialPort.Open() 方法在 c# 应用程序中打开 COM1 时收到以下异常:
“ArgumentException: 给定的端口名称不以 COM/com 开头或未解析为有效的串行端口”
但是,如果我在设备管理器中禁用 Com1 端口,然后启用,一切正常。从那时起,没有任何问题。我可以运行应用程序并打开端口而不会失败。但是如果我重置电脑,我会遇到同样的问题,直到我禁用然后启用。
当我启动计算机时,Com1 似乎没有打开。当 Com1 打开时,我尝试使用我的应用程序打开,我没有收到 ArgumentException。相反,我得到一个异常,拒绝访问该端口。
我只在 Windows 7 机器上尝试过。我正在使用VS2010。我尝试了 .net 3.5 和 4.0。
所以,正如我所说,一旦我重置端口,应用程序就可以正常工作。有什么想法吗?
代码(这是一个简单的测试应用):
public partial class Form1 : Form
{
SerialPort port = new SerialPort();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
string[] ports = SerialPort.GetPortNames();
foreach (string element in ports)
{
textBox1.Text = element + "\r\n";
}
}
private void button1_Click(object sender, EventArgs e)
{
port.PortName = "COM1";
port.BaudRate = 9600;
port.Parity = Parity.None;
port.DataBits = 8;
port.StopBits = StopBits.One;
port.Handshake = Handshake.None; // Handshake.RequestToSend;
port.ReadTimeout = 1000;
port.WriteTimeout = 500;
try
{
port.Open();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
button1.Text = port.IsOpen.ToString();
}
}
}
【问题讨论】:
标签: c# .net serial-port