我的arduino循环中有以下代码
while( !Serial.available()){//wait for data to start but keep sending the distance
distance = analogRead(A0);
Serial.print(F("d"));
Serial.print(distance);
Serial.print(F("|"));
Serial.flush();
}
它从距离传感器读取并将值发送到我附加到我的arduino的x-bee盾牌。这是问题所在:
除了从我自己的代码看这个,我还使用x-ctu的终端来调试和看到同样的问题。 (这也是我如何知道我的其余代码没有被触及因为没有发送 - 有趣的是当手动发送数据时它被正确处理,除了它不会被发回,因为它应该用于调试目的)有没有人有任何想法吗?
我也尝试在写入后添加延迟,正如您所看到的那样,F()
宏和Serial.flush();
分散在我能想到的任何地方,而基础问题没有任何变化。
谢谢,一些问题/评论
在任何情况下,我都会尝试减少测量次数,看看今晚晚些时候会发生什么
答案 0 :(得分:2)
您可能过快地发送数据(每秒数百次)并且溢出串行缓冲区和/或xbee。
这一行while(!Serial.available()){//
也很奇怪。你知道它会在一个紧凑的循环中执行,直到有传入的数据,对吧?
您的项目范围不明确,因此我无法提出任何建议 - 除了将if
替换为while
并查看是否可以解决当前问题。