私はクレイジーな問題を抱えています。次の形式でArduinoの受信機の送信機からデータを読み取っています: Start_Byte data%256 , data/256
これにより、2 バイトの int を送信できます。クレイジーなことは、コードを受け取ってコンマをチェックした後に println -257 を出力しない限り、-257 を出力しただけでは機能しないということです。
#define START_BYTE 'J'
// Receives an int over the RF network
int recieveData(void){
int val; // Value of the int
//Wait for the data, then the Start_Byte
while(Serial.available() == 0);
while(Serial.read() != START_BYTE);
val = Serial.read();
char c = Serial.read();
val += Serial.read()*256;
if(c == ','){
Serial.println("************");
Serial.println(val);
}
Serial.println(-257);
return val;
}
これは、-257 を追加した場合の結果です。
-257
-257
-257
-257
-257
-257
-257
-257
************
<Correct data>
-257
************
<Correct data>
-257
************
<Correct data>
-257
************
<Correct data>
-257
************
-257 を追加しないと、何も得られません。
他のことを試してみると、それが印刷されます。