我的 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 防护罩。这是问题:
- 加载新草图后,我在第一分钟左右收到数据 - 从 10-15k 字节
- 然后它停止发送任何东西
- 如果我关闭再打开 arduino,我可能会收到几百个字节 - 但不能保证
除了从我自己的代码中查看这个之外,我还使用 x-ctu 的终端进行调试并看到同样的问题。(这也是我知道我的其余代码没有被触及的方式,因为没有发送任何内容 - 有趣的是,当手动发送数据时它被正确处理,除了它没有被发回,因为它应该用于调试目的)有没有人有什么想法吗?
我还尝试在写入后添加延迟,如您所见,F()
宏已经分散Serial.flush();
在我能想到的任何地方,而根本问题没有改变。
谢谢,有几个问题/意见
- 是的,我希望它在一个while循环中,传感器测量的速率>>而不是其他任何东西的速率。
- Serial.flush() 不确保我不会溢出吗?
- 如果不是,那么我想我将不得不玩各种延迟时间?有没有更好的办法?
- 为什么我的 arduino/xbee 上的插头不能“解决”这个问题?即允许我再获得几k?
无论如何,我会尝试减少测量次数,看看今晚晚些时候会发生什么