Я хочу читать 6 датчиков данных от arduino до VC++ с помощью методов «handshaking», я отправляю «1» в arduino, после чего это устройство отправит данные на ПК. Мой формат данных: &data0,data1,data2,data3,data4,data5%
неполные данные чтения последовательный порт
Но когда я прочитал его с VC++ данных всегда является неполным, даже думал, что размер буфера достаточно для всех данных
вот снимок моей программы VC++, я ставлю это на событии таймера
DWORD nbytes;
char buffer[24];
//Read Sensors
if(!WriteFile(hnd_serial, "1", 1, &nbytes, NULL)){KillTimer(cTimer1);MessageBox(L"Write Com Port fail!");return;}
Sleep(5);
if(!ReadFile(hnd_serial, buffer, 23, &nbytes, NULL)){KillTimer(cTimer1);MessageBox(L"Read Com Port fail!");return;}
Sleep(50);
Я изменил скорость передачи в бодах, но результат все тот же. , но если я уменьшу данные, такие как data5 (станет 5 датчиков), данные будут завершены. Я сделал что-то не так с моей программой?
Вы проверили arduino, получив «1», или нет? –
Да, ардуино получает 1 и отправляет данные, но данные не являются полными (3 последних данных) – Limavolt
, сколько байтов данных? (data0, data1, ..) –