2015-12-15 2 views
3

Я использую Unity и teensy для выполнения последовательной связи в течение довольно долгого времени. И он работает нормально. Теперь я сменил свою панель для подростков и, таким образом, COM-порт изменился. Teensy прекрасно общается в arduino и посылает все правильные сигналы, когда их проверяют на серийном мониторе. Но я получаю эту ошибку в единстве.Порт COM11 не существует. Указанный порт не открыт

> 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 и т.д. Но так как я начал получать twodigit COM порты я начал сталкиваются с этой проблемой. Если снова подключить teensy с помощью одного цифрового COM-порта, он отлично работает, но не обнаруживает COM50 и т. Д.

Как это решить?

ответ

5

Если это ОС Windows, то попробуйте указать имя COM порта как \\ \ COM11

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

ПРИМЕЧАНИЯ:. Этот синтаксис работает также и для портов COM1 через COM9. Некоторые платы позволят вам самим выбирать имена портов. Этот синтаксис работает и для этих имен.

0

Используйте System.IO.Ports.SerialPort.GetPortNames(), чтобы узнать, какие имена использует ОС для текущих COM-портов. (Я не уверен, если вы говорите об .NET, но если вы это сделаете)

+0

это действительно списки компонов, но он показывает COM11 с той же проблемой, что и OP снова. Решение Хелен работает. – lode

Смежные вопросы