Не удается открыть последовательный порт в приложении Windows CE - PullRequest
0 голосов
/ 01 декабря 2010

Я работаю над приложением Windows CE, которое использует последовательные порты машины. Однако, когда я пытаюсь открыть порт, это дает IOException. Ниже приведен пример кода:

SerialPort NewSerialPort = new SerialPort("COM7", 115200, Parity.None, 8, StopBits.One);
NewSerialPort.Handshake = Handshake.None;

//opening the serial port
NewSerialPort.Open();

Я попытался закрыть соединение перед оператором открытия, а также проверил состояние IsOpen перед его открытием (что на самом деле ложно перед открытием). Функция SerialPort.GetPortNames возвращает: COM1 / COM2 / COM5 / COM7. Я попробовал все, в том числе в другом виде, как это: COM1: / COM2: / COM5: / COM7 :. Я не могу заставить его работать.

Моей первой мыслью будет, что я забыл добавить что-то в образ Windows CE. Но я не могу найти в каталоге ничего, что могло бы показаться важным для последовательной связи.

У кого-нибудь есть мысли по этому поводу?


в System.IO.Ports.SerialStream.WinIOError () в System.IO.Ports.SerialStream.WinIOError () в System.IO.Ports.SerialStream.CheckResult () в System.IO.Ports.SerialStream.SetBufferSizes () в System.IO.Ports.SerialPort.Open () at commtest.Form1.button2_Click () в System.Windows.Forms.Control.OnClick () в System.Windows.Forms.Button.OnClick () в System.Windows.Forms.ButtonBase.WnProc () в System.Windows.Forms.Control._InternalWnProc () в Microsoft.AGL.Forms.EVL.EnterMainLoop () в System.Windows.Forms.Application.Run () at commtest.Program.Main ()

Ответы [ 2 ]

0 голосов
/ 29 августа 2012

Я не знаю, есть ли у вас ответ на этот вопрос, но убедитесь, что вы используете последнюю версию .NET CF 3.5. В версии .NET CF 2.0 возникла ошибка, созданная IOException при открытии последовательного порта. если вы посмотрите на ошибку, исправленную в .NET CF 2.0 SP, вы увидите упомянутые.

0 голосов
/ 01 декабря 2010

Попробуйте точное имя порта, полученное из GetPortNames (), включая двоеточие

SerialPort NewSerialPort = new SerialPort("COM7:", 115200, Parity.None, 8, StopBits.One);

// or

string[]   portNames     = SerialPort.GetPortNames()
SerialPort newSerialPort = new SerialPort(portNames[3], , 115200, Parity.None, 8, StopBits.One);

Если это не сработает, попробуйте "\\. \ COM7"

SerialPort NewSerialPort = new SerialPort("\\.\COM7", 115200, Parity.None, 8, StopBits.One);
...