端口“COM11”不存在。指定的端口未打开

时间:2015-12-15 12:44:23

标签: unity3d serial-port

我一直在使用Unity和teensy执行串行通信已有一段时间了。它一直很好。 现在我改变了我的teensy板,因此COM端口已经改变了。 Teensy在arduino中完美通信,并在串行监视器中检查时发送所有正确的信号。但我在团结中得到了这个错误。

> IOException: The port `COM11' does not exist.
System.IO.Ports.WinSerialStream.ReportIOError (System.String optional_arg)
System.IO.Ports.WinSerialStream..ctor (System.String port_name, Int32 

baud_rate, Int32 data_bits, Parity parity, StopBits sb, Boolean dtr_enable, Boolean rts_enable, Handshake hs, Int32 read_timeout, Int32 write_timeout, Int32 read_buffer_size, Int32 write_buffer_size)
    (wrapper remoting-invoke-with-check) System.IO.Ports.WinSerialStream:.ctor (string,int,int,System.IO.Ports.Parity,System.IO.Ports.StopBits,bool,bool,System.IO.Ports.Handshake,int,int,int,int)
    System.IO.Ports.SerialPort.Open ()

最初的COM端口是单位数值,例如COM4或COM8等。但是自从我开始获得两个COM端口后,我开始面临这个问题。如果我再次使用单个数字com端口连接teensy,它可以正常工作,但不检测COM50等。

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:9)

如果这是Windows操作系统,请尝试将COM端口名称指定为\\。\ COM11

myPort= new SerialPort("\\\\.\\COM11",9600);

注意:此语法也适用于端口COM1到COM9。某些主板会让您自己选择端口名称。此语法也适用于这些名称。

答案 1 :(得分:0)

使用System.IO.Ports.SerialPort.GetPortNames()查看操作系统对当前COM端口使用的名称。 (我不确定你是在谈论.NET,但如果你这样做有帮助的话)

答案 2 :(得分:0)

使用

foreach(string str in SerialPort.GetPortNames())
{
    Debug.WriteLine(string.Format("Existing COM port: {0}", str));
}

了解可用的端口