因此,基本上下面的代碼永遠不會退出for循環,並且我需要它退出for循環以打印緩衝區最終包含的任何內容通過每個字符。然而,正如我之前所說,循環(據我所知)只是繼續前進,並沒有結束,因此爲什麼從來沒有打印緩衝區外循環(我知道它在循環內重複打印)。 我相當肯定,如果帶有break命令的語句會在這裏執行這個技巧,但是在盯着它一段時間之後,我仍然不知道它會是什麼。出於某種原因,永遠不會退出for循環打印出最終值
另外一個需要注意的是,該代碼不能是void loop()
函數內部,且必須是void setup()
功能
這是代碼
char iValue;
const int bufflen = 10;
char buffer[bufflen];
void setup() {
Serial.begin(9600);
Serial.println(buffer);
int index = 0;
int i = 0;
for(i=0;i<bufflen;i++) {
while (!Serial.available()) {
;
}
iValue = Serial.read();
buffer[index] = iValue;
//Serial.println(buffer);
//Serial.println(iValue);
Serial.println(buffer);
index++;
if (index > bufflen){
break;
}
}
Serial.println(buffer);
}
void loop() {
}
這不是'c'問題。刪除標籤。此外,請妥善縮進您的代碼。 – 2014-12-03 06:21:14
您的while循環可能會導致此問題。 – Blacktempel 2014-12-03 06:26:28
是否有任何可能導致Serial.available()變爲false的內容? – TheBigH 2014-12-03 06:30:52