Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / WinForms, .Net Framework Новый топик    Ответить
 Чтение из серийного порта  [new]
jenya7
Member

Откуда:
Сообщений: 1349
Я посылаю в микроконтроллер комманду - прочитай мне с такого то адреса столько то байт. И я вижу что микроконтроллер возвращает мне 64 байта, количество которое я запросил. Но серийный порт читает только 5-7 байт.
private int CPU_Read(uint address, int size, int offset, byte[] data)
{
    int ticks = 0;
    int length = 0;
    int val, i = 0;

    if (size > data.Length)
        length = data.Length;
    else
       length = size;

    comport.DiscardInBuffer();
    comport.DiscardOutBuffer();

    //opcode read
    command[0] = CPU_CMD_READ;
    //address
    command[1] = (byte)(address);
    command[2] = (byte)(address >> 8);
    command[3] = (byte)(address >> 16);
    command[4] = (byte)(address >> 24);
    //length
    command[5] = (byte)length;

    comport.Write(command, 0, 6);

    while (comport.BytesToRead == 0)
    {
         Thread.Sleep(1);
         ticks++;
         if (ticks > 10000)
             return 0;
    }

    //comport.Read(data, offset, length);

    while (comport.BytesToRead > 0)
    {
        val = comport.ReadByte();
        data[i] = (byte)val;
        i++;

         if (i > length)
             break;
    }
            
     return i;
}


Что не так в моём методе?
5 апр 21, 15:11    [22304526]     Ответить | Цитировать Сообщить модератору
 Re: Чтение из серийного порта  [new]
hVostt
Member

Откуда:
Сообщений: 19144
jenya7
while (comport.BytesToRead > 0)



не всегда удаётся прочитать видимо
5 апр 21, 22:25    [22304819]     Ответить | Цитировать Сообщить модератору
 Re: Чтение из серийного порта  [new]
jenya7
Member

Откуда:
Сообщений: 1349
hVostt
jenya7
while (comport.BytesToRead > 0)



не всегда удаётся прочитать видимо

я прохожу это условие. но BytesToRead почему то 5 а не 64.
6 апр 21, 08:09    [22304881]     Ответить | Цитировать Сообщить модератору
 Re: Чтение из серийного порта  [new]
hVostt
Member

Откуда:
Сообщений: 19144
jenya7,

попробуйте читать, используя события

https://www.instructables.com/Serial-Port-Programming-With-NET/
6 апр 21, 08:48    [22304890]     Ответить | Цитировать Сообщить модератору
Все форумы / WinForms, .Net Framework Ответить