尝试访问通过USB端口连接的设备时,收到以下错误消息。
端口“COM1”不存在
通过查看设备管理器,我确定该设备已分配COM1,并且没有其他设备连接到COM1。为什么会出现这种情况?
此环境是否依赖,因为相同版本的应用程序在其他系统中执行时不会生成此消息。
答案 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();
查找端口名称的步骤: