2016-04-10 11 views
-1

私はシリアルからバイトデータを読み書きできるプログラムを開発したいが、私の問題はシリアルモニタで以下のコードをテストしているときにシリアルシリアルモニタで改行形式を変更せずにデータを入力するのに役立つ人がいれば、改行形式を最初に監視してください。ここでシリアルモニタのArduino改行(ヘルプ)

はコードです:

byte alarmhour = 0; 
byte alarmminute = 0; 

void setAlarm() { 
    Serial.print("Please enter the alarm hour in 24hr format, 0-23. - "); 
    alarmhour = readByte(); 
    Serial.println(alarmhour); 
    Serial.print("Please enter the alarm minute, 0-59. - "); 
    alarmminute = readByte(); 
    Serial.println(alarmminute); 
    Serial.println("The data has been entered."); 

    EEPROM.write(addr + 2, alarmminute); 
    EEPROM.write(addr + 3, alarmhour); 
} 

byte readByte() { 
    while (!Serial.available()) delay(10); 
    byte reading = 0; 
    byte incomingByte = Serial.read(); 
    while (incomingByte != '\n') { 
     if (incomingByte >= '0' && incomingByte <= '9'){ 
      reading = reading * 10 + (incomingByte - '0'); 
     }else{ 
      incomingByte = Serial.read(); 
     } 
    } 
    Serial.flush(); 
    return reading; 
} 

感謝。

+1

フォーマット/インデント:(「エンディングなしの行を」デフォルトを持っていない –

+0

インデント、 –

+0

'他;'確かにタイプミスでは何も手助けすることはできません –

答えて

0

WindowsでVB.netからシリアルでarduinoにデータを転送するときにも、この問題が発生しました。

void serialEvent() { 
    while (Serial.available() > 0) { 
    char ch = (char) Serial.read(); 
    if (ch == '!') { //This is where it checks if the incomming (char/byte is the End of line 
     stringComplete = true; 
    }else if (ch == '0' || ch == '1') { //Im Sending 0 and 1 here to turn un/off LED's 
     inputString += ch; 
    } 
    if (stringComplete) { 
     Serial.flush(); 
     Serial.println("<--" + inputString); 
     inputString = ""; 
     stringComplete = false; 
    } 
    } 
} 

私はあなたに少し助けてくれることを願っています。このコードを自由に使用してください。