1
我正在接收像0xFA5D0D01這樣的數據包。 現在我想parce它像解析傳入的數據包
FA是頭1 5D是頭2 0D是長度和 01是校驗碼。 const int data_availabe = Serial.available();
我能寫串口,但不能parce像 如果我收到FA然後打印接收頭1
const int data_availabe = Serial.available();
if (data_availabe <= 0)
{
return;
}
const int c = Serial.read();
Serial.print("Receive Status: ");
Serial.println(STATE_NAME[receiveState]);
Serial.print(c, HEX);
Serial.print(" ");
if (isprint(c)) //isprint checks whether it is printable character or not (e.g non printable char = \t)
{
Serial.write(c);
}
Serial.println();
Serial.println(receiveState);
switch (receiveState)
{
case WAITING_FOR_HEADER1:
if (c == HEADER1)
{
receiveState = WAITING_FOR_HEADER2;
}
break;
case WAITING_FOR_HEADER2:
if (c == HEADER2)
{
receiveState = WAITING_FOR_LENGTH;
}
break;
}
因爲我們正在exptected數據在哪裏receiveState是枚舉改變..
這不是關於USB,該系列是RS-232,如果你不知道答案,然後不回答。 –
請查看更新後的問題......我無法解析它,因爲預期..有些地方出了問題...... –
@ChrisDesjardins我可能完全傻,但你怎麼知道這一點? 我編輯了我的答案,告訴我,如果這是你想要做的。 – ladislas