0
我有以下簡單的代碼來讀取計算機發送到一個Arduino兆臺指令:從Arduino的串行讀似乎是非常不穩定的
void get_command()
{
char received;
int index = 0;
while (Serial.available() > 0) {
if (index < BUFFER_SIZE -1) {
received = Serial.read();
if (received == '\n') {
buffer[index] = '\0';
parse_command(buffer);
} else {
buffer[index++] = received;
}
} else {
Serial.println('666'); // buffer overflow
}
}
}
的命令是像A123 B123 C123 D123 \ n
基本上是一個由空格分隔的指令序列,每條指令都由一個字母開頭,後跟一個數字。一個命令以「\ n」結尾。
讀這看起來很不穩定。有時我會完美地得到命令,有時我會錯過第一個字母,有時候會是一對,有時候會以數字開始,...
我通過串行監視器發送命令,設置爲換行符。
在使用此代碼之前,我只需使用Serial.available檢查大小,然後等待一秒鐘以填充緩衝區,然後將緩衝區複製到char *。這工作完美無瑕。我現在正在做這個循環,等待\ n,這似乎更優雅,但它非常不穩定。