我想用「握手」的方法讀取6個數據傳感器從arduino到VC++,我發送「1」給arduino,然後這個設備將數據發送到PC。 我的數據格式爲: &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」嗎? –
是的arduino正在接收1,併發送數據,但數據不完整(最後3位數據) – Limavolt
每個數據有多少字節? (data0,data1,..) –