1

我有一个 python 脚本,我想用它来配置一些 XBee 模块。当通过xbee 开发板连接到计算机时,它可以完美地找到,但在通过 pi 板片连接到树莓派时失败。

我已将问题缩小到无法进入命令模式,发送 +++ 后 xbee 从未发送 OK 消息。以下是相关代码:

...
CC = '+'
GT = '1.1' # Tried different values here
...

def startCommandMode(self):
    self.emptyBuffer() # Tried with and without this line
    sleep(self.GT) # Tried with and without this line
    self.ser.write(self.CC + self.CC + self.CC)
    sleep(self.GT)
    return self.getReply() == 'OK'

...

def getReply(self):
    count = 0
    reply = ''
    while True:
        char = self.ser.read()
        if char == '\r':
            break
        if len(char) == 0:
            return None
        reply += char

    return reply

如果需要,可以在github上找到完整的源代码。

我知道 xbee 模块、树莓派或 pi 板片不是问题,因为如果我使用“picocom -lc /dev/ttyAMA0”手动尝试它,它工作得非常好。

4

2 回答 2

0

使用以下内容:

....
if args.common:
    args.at = ['ID', 'CH', 'MY', 'DL', 'DH', 'AP'] + args.at
xbee = XBee(args.port, args.baud);
sleep(2)
xbee.CC = args.CC
xbee.GT = args.GT
....
....

恕我直言,我厚 Rpi 需要更多时间来初始化串口,这就是我使用这个延迟的原因。也适用于透明模式,因此在端口初始化后添加延迟。

我希望这对你来说没问题。对我来说已经解决了。

BR。曼内尔。

于 2013-03-22T11:27:53.250 回答
0

需要检查的一些事项:

  • 你有什么回应吗?

  • 您是否在 XBee 上启用了流量控制?确保D6D7设置为 0,因为 Raspberry Pi 串行端口没有流量控制。

  • 是否为流控制配置了 Python 代码?它可能正在等待一个从未被断言的 CTS 信号。

  • 您可以尝试在树莓派的 USB 端口上使用 XBee 开发板吗?

于 2012-11-26T18:38:00.943 回答