我有一个python脚本,我想用它来配置一些XBee模块。当通过xbee development board连接到计算机时,它可以很好地找到,但是当通过pi板连接到覆盆子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或pi板的问题不是问题,因为如果我使用“picocom -lc / dev / ttyAMA0”手动尝试它就可以正常工作。
答案 0 :(得分:0)
要检查的一些事项:
你有什么回应吗?
您是否在XBee上启用了流量控制?确保D6
和D7
设置为0,因为Raspberry Pi串口没有流量控制。
是否为流量控制配置了Python代码?它可能正在等待从未声明的CTS信号。
您可以尝试在Raspberry Pi的USB端口上使用XBee开发板吗?
答案 1 :(得分: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。 MANEL。