Arduino Xbee无法发送数据的可能原因

Arduino Xbee无法发送数据的可能原因,arduino,xbee,Arduino,Xbee,我在Xbee系列1上使用Arduino Pro Mini 328P(3.3v,8Mhz)。我已将频率设置为1MHz,波特率设置为9600。我还在Xbee中将波特率设置为9600。我还测试了在这种波特率下,Xbee是否在正常情况下正确发送数据 现在我在我的项目中所做的: 我已经向网关注册了我的Xbee,然后它将进入睡眠状态(我使用了pin休眠模式),然后它将被Pro Mini的数字pin唤醒。我已经设置了19毫秒的延迟,之后Xbee将尝试发送数据。发送数据后,它将返回睡眠状态 问题在于,它在向网关

我在Xbee系列1上使用Arduino Pro Mini 328P(3.3v,8Mhz)。我已将频率设置为1MHz,波特率设置为9600。我还在Xbee中将波特率设置为9600。我还测试了在这种波特率下,Xbee是否在正常情况下正确发送数据

现在我在我的项目中所做的:

我已经向网关注册了我的Xbee,然后它将进入睡眠状态(我使用了pin休眠模式),然后它将被Pro Mini的数字pin唤醒。我已经设置了19毫秒的延迟,之后Xbee将尝试发送数据。发送数据后,它将返回睡眠状态

问题在于,它在向网关发送数据时表现为随机行为(网关也具有相同的Xbee系列1)。有时它完美地发送数据,有时发送失败。我还允许RR在Xbee第一次发送数据失败时重试6次

由于发送数据的随机性,我不知道如何解决这个问题

我把两个XBee放得更近了(我有两个具有相同硬件和相同代码的节点)。间隔时间约为4分钟。因此,当一个Xbee完美地发送数据时,在4分钟gae(不同节点上两个RTC的时差)之后,另一个无法发送数据。在这种情况下,我能得出什么结论

作为补充说明,Xbee将尝试每小时发送一次数据。为了计算这个小时,我必须使用一个RTC,它似乎工作得很好(我确信,因为我已经记录了日志,RTC从来不会不生成中断)

所以我想知道可能的原因是什么,我如何解决这个问题(如果可能的话,不重新启动任何东西,那么没有比这更好的了)

我没有选择重启我的控制器


如何调试这个?

一些事情。如果可能,请提高波特率,以便减少向XBee发送数据或从XBee发送数据的时间。如果功率预算有限,更快的波特率可以节省时间和精力。我不知道UART在Arduino上是如何工作的,所以我不能说使用1MHz的CPU时钟是否可以实现115200bps

其次,确保在唤醒XBee后,等待它将CTS断言回Arduino。除非“可以发送”,否则不要发送到XBee

第三,如果您使用API模式,您可以观察从本地XBee返回到Arduino的“传输状态”帧,这将让您知道模块何时成功发送了帧,并且您可以安全地将其恢复睡眠