在XBee的文档中,提到一种快速进入命令模式的方法,即插入串行中断信号(serial break)来直接进入9600/8/n/1的命令模式。正常情况下,DIN是XBee模块的UART输入引脚,我们都知道串口的停止位是高电平,也就是串口在空闲是,一般是高电平状态的,当我们把它拉低到足够长的时间,就相当于打断了这个空闲状态,所以称它是Break信号。

XBee有两种方法来直接进入命令模式,第一种是插入Break信号达6秒以上(实测可能更久些),会直接进入命令模式,此时串口会输出OK并等待AT命令的输入,波特率被自动调整为9600/8/n/1的模式。这种方法虽然可以避免键入“+++“来进入命令模式,但等待的时间有点长。第二种方法是较多用户采用的主流方法,它是在上电过程或reset时插入Break信号,这样可以直接进入命令模式,串口波特率变成默认的9600/8/n/1,终端输出OK并等待命令输入。

我们可以用XCTU来观察上面这个操作方式,在XCTU的终端模式下,打开串口,可以看到串口的相关按钮和状态指示条:

其中的BRK按钮就是用来把DIN拉低发Break信号,拉低个7秒左右,就会出现OK,此时再放开BRK按钮,就可以直接发打AT命令。

配合Reset键的用法是:拉低Reset键后,点BRK给Break信号,放开Reset键后,OK马上跳出来,此时可以放开BRK按钮,然后直接打AT命令了。

不论是AT模式还是API模式,这个方法都有效,注意用了这个方法后,波特率会临时变回9600/8/n/1模式,所以当不知道模块的波特率时,可以用这个方法和模块进行通信,并重新配置模块,这个方法也可用于模块的首次配置或临时修改参数。注意,当退出命令模式后,波特率等就会用回BD配置好的那个波特率。