2012-05-25 33 views
3

我正在使用Arduino Duemilanove來運行一些測試。我正在通過串口與Arduino進行通信。我所要做的就是讀入幾個整數,並且我使用parseInt()函數來簡化它。Arduino串行通信:本地回聲人物字符輸入

我的問題是,是否有一種方法來編程ardunino來回顯每個字符輸入時仍然使用parseInt()函數?

我知道有一些選項可以在終端客戶端打開本地回顯,但我寧願不依賴這些。

這裏是我使用的代碼:

unsigned int timeTotal; 
    Serial.print("Enter Total Time of Period (ms): "); 
    while (!Serial.available()) { ; } //wait for input 
    while (Serial.available() > 0) { 
     //Serial.write(Serial.peek()); 
     timeTotal = Serial.parseInt();  //read int 
     Serial.read();    //discard newline char at end of input 
     Serial.println(); 
     Serial.print("Total Time: "); 
     Serial.println(timeTotal, DEC); 
    } 

,你可以看到,我試圖用一個PEEK(),但只讓我一個字....

謝謝提前 !!!

+0

您是否希望計算機上的程序返回每個字符? – Overv

+0

不,我想從串口讀取數據作爲一個整數(即1000或500),但我想知道是否有一個arduino串行或流庫功能,將每個字符打印到串口,但可能不會從標準輸入中刪除它,所以像parseInt()這樣的函數可以解釋它。 – MRT89

+0

我不明白你的問題。您可以通過調用Serial.peek()4次來讀取串行端口中的4個字節。 – Overv

回答

1

您可以將字符讀入字符串中(隨時隨地回顯),直到您敲擊分隔符爲止。然後將該字符串轉換爲atoi()。沒有看源代碼,我相信這是什麼parseInt無論如何。

+0

這就是我最終做的。 Atoi起初給出了奇怪的結果,但我意識到我並不是零終止我的字符串。雖然謝謝! – MRT89