You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python的digi模块将API模式的XBee PRO S3B切换回AT模式

解决XBee PRO S3B从API模式切回AT模式的方案

方法1:通过digi XBee库直接修改配置参数

无需使用force_settings=True强制切换到API模式,可直接读取当前配置并修改为AT模式,示例代码如下:

from digi.xbee.devices import XBeeDevice

# 初始化设备
xbee0 = XBeeDevice("/dev/ttyUSB0", 9600)

try:
    # 正常打开设备,避免强制切换模式
    xbee0.open()
    
    # 读取当前工作模式参数AP
    current_mode = xbee0.get_parameter("AP")
    print(f"当前模式参数值: {current_mode}")
    
    # 将AP参数设为0,对应AT模式
    xbee0.set_parameter("AP", bytearray([0]))
    
    # 保存配置到模块永久存储
    xbee0.write_changes()
    
    # 重置设备使新配置生效
    xbee0.reset()
    
finally:
    if xbee0.is_open():
        xbee0.close()

方法2:串口直接发送AT指令(适用于模块已被切换到API模式的情况)

如果模块已经被force_settings=True强制改为API模式,无法通过库的普通方式打开,可直接操作串口发送AT指令切换:

import serial

# 打开串口,波特率与模块匹配
ser = serial.Serial("/dev/ttyUSB0", 9600, timeout=1)

try:
    # 发送+++进入AT命令模式(无需回车)
    ser.write(b'+++')
    # 等待模块响应确认
    response = ser.read(3)
    if response == b'OK\r':
        # 设置AP参数为0(AT模式)
        ser.write(b'ATAP0\r')
        ser.readline()
        # 保存配置
        ser.write(b'ATWR\r')
        ser.readline()
        # 重置模块
        ser.write(b'ATFR\r')
        ser.readline()
finally:
    ser.close()

关键注意事项

  • 禁止随意使用force_settings=True,该参数会强制将模块切换到API模式(AP参数设为1或2),直接覆盖原有配置。
  • 修改AP参数后必须执行保存操作(ATWR指令或库的write_changes()方法),否则模块重启后会恢复原有模式。
  • 模式修改完成后,必须重置模块才能让新配置生效。

内容的提问来源于stack exchange,提问作者임성래

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 00:45:24