我一直在使用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等。
我该如何解决这个问题?
答案 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));
}
了解可用的端口