Я сделал приложение на C #, которое отправляет 11 байтов данных на последовательный порт, используя:
port = new SerialPort("COM1");
port.BaudRate = 9600;
port.DataBits = 8;
port.Parity = Parity.None;
port.StopBits = StopBits.One;
port.ReadTimeout = 1000;
port.WriteTimeout = 1000;
port.Open();
byte[] buffer = new byte[11];
buffer[0] = 0;
buffer[1] = 0;
buffer[2] = 0;
buffer[3] = 3;
buffer[4] = 2;
buffer[5] = 4;
buffer[6] = 1;
buffer[7] = 20;
buffer[8] = 50;
buffer[9] = 0;
buffer[10] = 120;
port.Write(buffer, 0, 11);
Затем я написал другое приложение, чтобы проверить предыдущее. Я хотел бы проверить, были ли правильно отправлены 11 байтов. В этом приложении я использую:
using (SerialPort port = new SerialPort("COM1"))
{
// configure serial port
port.BaudRate = 9600;
port.DataBits = 8;
port.Parity = Parity.None;
port.StopBits = StopBits.One;
port.Open();
for (; ; )
{
byte[] b = new byte[11];
port.Read(b, 0, 11);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 11; ++i)
{
sb.Append(b[i]);
sb.Append(" ");
}
Console.WriteLine(sb.ToString());
}
}
для получения байтов. Проблема в том, что после отправки что-то вроде этого:
0 0 0 3 2 4 1 20 50 0 120
Я получаю:
0 0 0 0 0 0 0 0 0 0 0
0 0 3 2 1 4 20 50 0 120 0
Почему это происходит? Что за ошибка в моем коде?
Спасибо