2016-06-01 16 views
0

arduino-code: int p; void setup() { pinMode (13, AUSGABE); Serial.begin (9600); }serielle Kommunikation mit ARDUINO in C++

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); 
     } 
    } 

ich diesen Code in C++ serielle Kommunikation für die Arduino versucht haben. Ich habe einen Fehler "vorzeitigen eof". Was ist das Problem hier ??

Antwort

0

Angenommen, Ihr Arduino ist tatsächlich mit diesem Port verbunden und echo was es empfängt, müssen Sie zwei Dinge berücksichtigen: a) Bevor Ihr Arduino-Code die Kontrolle über den seriellen Port bekommt, versucht es zuerst den seriellen Bootloader zu laden Es ist also möglich, dass die ersten Bytes der Kommunikation niemals Ihren Code erreichen. b) Selbst wenn dies der Fall ist, ist Arduino wahrscheinlich viel langsamer als Ihr Computer und hat möglicherweise keine Zeit, die Antwort zu verarbeiten, bevor Sie die Überprüfung durchführen.

+0

also was kann ich tun, damit es funktioniert? – Jyo

+0

Für das erste Problem, versuchen Sie, lesen Sie, was auch immer auf der seriellen Schnittstelle am Anfang Ihres Programms sein mag, bevor Sie etwas senden. Versuchen Sie für das zweite Problem std :: this_thread :: sleep_for, und verzögern Sie Ihr Programm ein wenig. – technik