Как исправить исключение System.IO.IOException из SerialPort.Write в C #? - PullRequest
1 голос
/ 17 мая 2019

У меня есть виртуальное COM-устройство (от USB до UART), которым я пытаюсь управлять с помощью C # SerialPort.Когда я вызываю методы Write или WriteLine, я получаю следующую трассировку стека:

Exception (System.IO.IOException): The I/O operation has been aborted because of either a thread exit or an application request.
   at System.IO.Ports.InternalResources.WinIOError(Int32 errorCode, String str)
   at System.IO.Ports.SerialStream.EndWrite(IAsyncResult asyncResult)
   at System.IO.Ports.SerialStream.Write(Byte[] array, Int32 offset, Int32 count, Int32 timeout)
   at System.IO.Ports.SerialPort.Write(String text)

Я подтвердил порт, скорость передачи в бодах, четность и квитирование как с документацией устройства, так и с помощью успешного взаимодействия через PuTTY, поэтомупроблема должна быть с моим кодом C #.

_serialPort = new SerialPort(commId, 9600, Parity.None, 8, StopBits.One)
{
    Handshake = Handshake.XOnXOff,
    ReadTimeout = 5000,
    WriteTimeout = 5000,
    NewLine = "\r", //added during debug
    DtrEnable = true, //added during debug
    RtsEnable = true //added during debug
};

_serialPort.DataReceived += new SerialDataReceivedEventHandler(SerialPort_DataReceived);

_serialPort.Open();

_serialPort.DiscardInBuffer(); //added during debug
_serialPort.DiscardOutBuffer(); //added during debug
_serialPort.Write("echo");
_serialPort.WriteLine("echo");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...