2016-06-01 2 views
0

arduino 코드 : int p; void setup() { pinMode (13, OUTPUT); Serial.begin (9600); 난의 Arduino 직렬 통신 C++이 코드를 시도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); 
     } 
    } 

}. 나는 "조기 eof"오류가있어. 여기에 무슨 문제가 있니?

답변

0

Arduino가 실제로 포트에 연결되어 수신 한 내용을 반향한다고 가정하면 )을 고려해야합니다. a) arduino 코드가 직렬 포트를 제어하기 전에 먼저 직렬 부트 로더를로드하려고 시도합니다 따라서 통신의 첫 번째 바이트가 코드에 도달하지 못할 수 있습니다. b) 그렇더라도 arduino는 아마도 컴퓨터보다 속도가 느리고 검사를하기 전에 대답을 처리 할 시간이 없을 수 있습니다.

+0

그래서 어떻게 만들 수 있습니까? – Jyo

+0

첫 번째 문제는 프로그램을 시작할 때 직렬 포트에있을 수있는 내용을 읽은 후에 보내십시오. 두 번째 문제는 std :: this_thread :: sleep_for를 시도하고 프로그램을 약간 지연 시키십시오. – technik