从过去的三天开始,我一直在尝试建立两个XBees来进行交流。X似乎是这样做的完美选择,然而,当涉及到在串口上发现XBees时,这是一个真正的威胁。
我只能幸运地检测到一个XBee,而另一个却没有出现。我甚至更换了我的两个XBees。我正试图找出替代方案,即使用串行控制台来执行操作。在发出+++时,我还没有收到设备的OK响应。
由于之前我还没有使用PC与ESP8266设备通信的良好经验,所以我试图通过使用Arduino的第二个串口发送此类配置消息并在默认的串行控制台上打印出来来读取响应,从而找到解决办法。
根据设备的模式,配置消息也可能有所不同。如果它处于API模式,则必须以特定格式生成框架(为此目的,我使用X框架生成器)。
为什么我在发布XBee时不能收到+++的响应?
设备是系列1 XBees和确切的零件号码是XB24-AWI-001.任何帮助都是非常感谢的。
发布于 2016-06-10 10:05:52
您是否考虑过XBee处于API模式?也许你应该考虑在AT模式下对设备进行通货再膨胀来开始玩它。
要测试它是否处于API模式,您可以参考指南第9章中的API模式结构:
基本上,API模式下的数据报是从~开始的,其构建如下:
[0x7E|length(2B)|Command(1B)|Payload(length-1B)|Checksum(1B)]由于0x7E是ASCII表中的~,因此您应该尝试在串行终端会话中键入虚假的数据报,如下所示:
~ <C-d> AAAA注:<C-d>字符是unix.下的Control-d,这是EOF字符。
显然,这样的消息不太可能起作用,您将收到一个要求您再次发送该数据报的回复。这是因为EOF字符是ASCII代码4,这意味着数据报的长度将是4个字节。然后发送四个假字节,校验和将是A,这很可能是正确的,接收方将假定传输已经损坏。因此,数据报将再次被询问,这意味着您将收到一个数据报来执行该查询。
虽然我只能建议您考虑只在API模式下运行它(更可靠和更好的API,但您不能使用它,并通过使用逻辑分析器…来了解所发生的事情。)虽然有足够的时间,但您将开始阅读API数据报,就像它是英语☺一样)。
我编写了一个包含一些资源的页面,以检查如何刷新XBees:
以下是另一个完全无关的项目的其他建议:
我还编写了一个库(针对beaglebone,但您可以对其进行调整以供使用),它使用XBees处理API模式2:
但我敢打赌,通过google搜索,你可以找到比那些库更广泛使用的库,甚至还有一些库的目标是在Arduino上运行(N.B.:lib最初是为Arduino编写的,然后被改编为Beaglebone,因此逆转操作应该不难)。
https://stackoverflow.com/questions/37743313
复制相似问题