【发布时间】:2014-05-26 17:13:08
【问题描述】:
背景:我正在使用与 PC 和 XBee + Arduino(也是传感器)连接的 XBee。我想从 PC 向 Arduino 端发送命令。 Arduino端将获取命令并发送传感器数据。
现在的问题:我希望 Arduino 继续发送数据(当前传感器数据 - 所以它的值可能会改变),如果没有来自 PC 端的命令,假设 20 次。我的意思是,如果在发送 5 个传感器数据后,Arduino 看到 PC 有另一个命令,它必须停止发送传感器数据;它将从 PC 获取新命令,读取它然后再次开始发送。
我的要求是Arduino在收到PC端的命令后会发送传感器数据,并会持续发送20次,但同时如果有新的命令,它会停止发送传感器数据,将读取命令然后再次开始发送传感器数据20次。如何编写代码,以便在每个循环中检查是否有来自 PC 的任何命令?
我知道下面的代码甚至不适合我正在寻找的内容:
void loop()
{
while (Serial.available()) {
delay(2);
char c = Serial.read();
readString += c;
}
if (readString.length() >0) {
Serial.println(readString);
for (int i=0; i<20; i++) {
//Send the temperature, or send a simple message
Serial.println("The command has been received");
}
}
}
【问题讨论】: