Los datos se corrompen durante la transmisión a través del puerto serie
Estoy desarrollando un programa para comunicarme con un sistema antiguo. Yo uso System.IO.Ports.SerialPort para esto. El problema es cuando envío un mensaje más largo, el mensaje se volvió corrupto. Utilizo un oyente de línea y obtengo los siguientes resultados
Lo que envío
aa 01 00 00 12 03 06 18 02 c1 94 02 c1 94 00 00 00 00 00 00 00 00 00 00 00 00 1e fd
Lo que consig
c2 aa 01 00 00 12 03 06 18 02 c3 81 c2 94 02 c3 81 c2 94 00 00 00 00 00 00 00 00 00 00 00 00 1e c3 bd
El código que estoy usando es
_comPort.Encoding = new UTF8Encoding();
_comPort.PortName = PortName; //Com1
_comPort.BaudRate = BaudRate; //9600
_comPort.StopBits = StopBits; //1
_comPort.DataBits = DataBits; //8
_comPort.Parity = Parity; //None
_comPort.Open();
_comPort.Write(messageStr);
¿Por qué los datos están dañados y cómo soluciono esto?