0

私はクレイジーな問題を抱えています。次の形式で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 を追加しないと、何も得られません。

他のことを試してみると、それが印刷されます。

4

0 に答える 0