Отправить данные на COM порт и вывести ответ - C#

Узнай цену своей работы

Формулировка задачи:

День добрый. Нужна ваша помощь. Пытаюсь отправить данные на ком порт и вывести ответ.При использовании метода port.Read(buffer,int,int) вся программа зависает. При методе port.ReadingExisting() ничего вообще не выводится хотя данные я посылаю. Самого ком порта на ноутбуке нет. Создал виртуальный ком через NPort Windows Driver Manager. Вот код:
 private void button1_Click(object sender, EventArgs e)
        {
            int TimeOut = 4500;
            SerialPort port = new SerialPort();
            port.PortName = "COM3";
            port.BaudRate = 115200;
            port.Parity = Parity.None;
            port.StopBits = StopBits.One;
            port.DataBits = 8;
            port.Handshake = Handshake.None;
            port.Open();
          
            byte[] send = new byte[] { 0x12, 0x10, 0x5a };
            port.Write(send, 0, send.Length);
            Thread.Sleep(TimeOut);
//вариант 1-ничего не выдает программа
   //         textBox1.Text = port.ReadExisting();
 
//2 вариант - зависает на этом месте(наверное timeoutexeption. ждет каких-то данных..)
    port.Read(StartByte, 0,StartByte.Length);
listBox1.Items.Add(StartByte);
            port.Close();
}
Что происходит с данными? Почему ничего не приходит?

Решение задачи: «Отправить данные на COM порт и вывести ответ»

textual
Листинг программы
byte[] array = new byte[port.BytesToRead];
                    port.Read(array, 0, port.BytesToRead);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4 из 5
Похожие ответы