神秘错误消息“端口'COM1'不存在”

时间:2011-03-17 09:39:29

标签: c# serial-port

尝试访问通过USB端口连接的设备时,收到以下错误消息。

  

端口“COM1”不存在

通过查看设备管理器,我确定该设备已分配COM1,并且没有其他设备连接到COM1。为什么会出现这种情况?

此环境是否依赖,因为相同版本的应用程序在其他系统中执行时不会生成此消息。

3 个答案:

答案 0 :(得分:2)

我的情况非常具体。

发生的事情是,有一个先前已连接的设备。当它被删除时,进行连接的对象仍然保持在端口上。现在,当插入一个新设备时,虽然搜索该设备显示它在COM1中,但是尝试打开它会导致此异常,因为之前仍然存在的对象仍然保留在端口上。

答案 1 :(得分:0)

目前我不知道.Net想要什么,但是在旧的C / C ++时代你必须打开COM1:(在端口名称后注意冒号)。

答案 2 :(得分:0)

来源:MsdnLink

我想出了问题和答案。我们需要获取机器上安装了Arduino驱动程序的端口的名称。并非所有Arduino都已安装在“ COM1”端口上。我的Arduino Mega 2560 R3安装在端口“ COM3”上

将代码粘贴到C#Main()函数中,

var serialPort = new SerialPort("COM3", 9600, Parity.None, 8, StopBits.One);
 try
 {
     while (true)
     {
         serialPort.ReadTimeout = 2000;
         if (!serialPort.IsOpen) serialPort.Open();
         int readData = serialPort.ReadByte();
         Console.Write((char)readData);
     }
 }
 catch (Exception ex)  // Press CTRL-C to exit.
 {
     Console.WriteLine(ex.Message);
     Console.ReadKey();
 }
 serialPort.Close();

查找端口名称的步骤:

  1. 开始>运行> devmgmt.msc
  2. 展开名为“端口(COM和LPT)”的节点
  3. 您可以找到Arduino设备的端口名称。