Что не так? Com порты - C#

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

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

Для начала хочу, чтобы байты просто отправлял по ком порту ( отправляться должны на электронные часы, подключённые к компу). Кто разбирается, дайте как можно больше инфы и скажите как просматривать полученные байты через процедуру private void button2_Click
private void button1_Click(object sender, EventArgs e)
        {
            string[] portnames = SerialPort.GetPortNames();
            SerialPort port = new SerialPort( "COM1" , 9600, Parity.None, 8, StopBits.One);
            port.Open();
            byte[] data = { 0, 1, 2, 1, 0 };
            port.Write(data, 0, data.Length);
            port.Close();
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            string[] portnames = SerialPort.GetPortNames();
            SerialPort port = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);
            port.Open();
            byte[] data = new byte[256];
            port.Read(data, 0, data.Length);
            int databyte = port.ReadByte();
            port.Close();
        }

Решение задачи: «Что не так? Com порты»

textual
Листинг программы
void OnDataReceived(object sender, SerialDataReceivedEventArgs e)
{
    if (e.EventType == SerialData.Eof)
        return;
 
    var port = sender as SerialPort;
    var bytes = new byte[8];  // Вместо 8 — размер входящего сообщения в байтах.
 
    int read = 0;
    do read = port.Read(bytes, read, bytes.Length - read);
    while (read < bytes.Length);
 
    label.Text = Encoding.ASCII.GetString(bytes); // Вместо ASCII — кодировка, в которой отсылает данные устройство.
}

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


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

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

8   голосов , оценка 4 из 5