У меня есть виртуальное 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");