我遇到了麻煩,我有一臺具有串行通信的小型遊戲機,我必須發送一個十六進制值,因此它可以用十六進制值進行響應,其中有十六進制值一個我需要提取的數字。Arduino在讀取後丟失串行字節
隨着我在C#中已經writen一個客戶它完美的作品,我得到的每一個字節,
但隨着Arduino的我得到這個: '00 03 03 12' 在那裏我normaly應該得到這樣的:01 10 00 03 43 20 03 12',你會看到我丟失了一半的字節。
我嘗試了一切,我沒有得到它的周圍。
當我與arduino和Pc通信時,所有的讀寫操作都是完美的。但與遊戲機只發送工程很好,但是當我收到數據我鬆散它像上面。 謝謝
這裏是代碼:
void setup()
{
Serial3.begin(19200, SERIAL_8E1);
Serial.begin(19200, SERIAL_8E1);
delay(1000);
}
void statsP()
{
delay(400);
Serial3.write(0x01);
Serial3.write(0x10);
delay(300);
}
void generalpol()
{
delay(200);
Serial3.write(0x80);
Serial3.write(0x81);
}
void loop()
{
generalpol();
statsP();
if(Serial3.available()){
char commandbuffer;
int j = Serial3.available();
for (int i =0 ; i<j ; i++)
{
while(Serial3.available()) {
commandbuffer = Serial3.read();
Serial.write(commandbuffer);
}
}
}
}