2016-06-01 12 views
0

アルドゥーコード: int p; void setup() { pinMode(13、OUTPUT); Serial.begin(9600); }C++のARDUINOとのシリアル通信

void loop() 
    { 
     if(Serial.available()) 
     { 
      p=Serial.read(); 
      if(p!=-1) 
      { 
       Serial.write(1); 
       digitalWrite(13,HIGH); 
       delay(5000); 
      } 
     } 
     else 
     { 
      digitalWrite(13,LOW); 
      delay(1000); 
     } 
    } 

私はアルドゥイーノとのシリアル通信のためにC++でこのコードを試みました。私は "早すぎるeof"というエラーを受けました。何が問題なの?

答えて

0

arduinoが実際にそのポートに接続され、受信したものをエコーすると仮定すると、 の2つのことを考慮する必要があります。a)arduinoコードがシリアルポートを制御する前に、まずシリアルブートローダしたがって、通信の最初のバイトが決してあなたのコードに到達することはありません。 b)それがあっても、arduinoはおそらくあなたのコンピュータよりも遅く、チェックを行う前に答えを処理する時間がないかもしれません。

+0

私はそれを動作させるために何ができますか? – Jyo

+0

最初の問題については、何かを送る前に、プログラムの始めにシリアルポートにあるものを読んでみてください。 2番目の問題は、std :: this_thread :: sleep_forを試して、プログラムを少し遅らせてください。 – technik

関連する問題