XBee无线模块能通过API模式实现强大的实时组网通信和控制功能。API模式下分为数据帧和命令帧,需要按一定格式来组包和解包。Digi官方提供多种API的驱动库,其中最常用的就是C语言的库。本文将从各方面探讨如何使用这套XBee API函数库。
一、XBee ANSI C语言函数库下载地址
可以在github上直接下载xbee_ansic_library。在Linux下可以直接用git拉取,考虑到国内对github访问不畅,建议改https为git来克隆相关的库:
git clone git://github.com/digidotcom/xbee_ansic_library
二、编译和测试例程
在这个函数库中,真正发挥作用的是src,include,ports三个目录,其中ports是硬件平台或操作系统相关目录,不同硬件平台的串口和时间函数的定义,需放在ports目录下。如果你的单片机不跑操作系统,可以参考posix或其它单片机的目录来移植自己的MCU平台。例程在sample目录下,有相应的README说明。
这里以linux为例,它支持POSIX标准,因此平台相关的定义在ports/posix下。在\sample\posix下有相关的Makefile,可以直接make生成所有的可执行例程。 例程的源文件在\sample\common下。而\sample\posix下的源文件主要是系统相关的定义。
以atinter例程作为例子,这个例程名字是AT interpreter(AT命令解释器)的缩写,
为了能直接使用例程,需要把XBee预先配置成API模式,即AP=1。此外,还需要注意XBee模块的波特率参数BD,在命令行中运行例程时,串口波特率将作为最后一个参数带入。如
./atinter /dev/ttyUSB0 115200
上面例程运行时,会尝试打开对应串口,读取XBee模块信息,然后等待输入AT命令,对于键盘上输入的AT命令,它会转换成API模式同串口上的XBee模块通信,如下图所示:
XBee API函数库可以在诸如vmware workstation player之类的虚拟机中使用,但例程测试时往往需要把串口映射到虚拟机中。许多开发板采用USB转串口的设计,这就需要虚拟机能支持使用Host中的USB接口设备。一般情况下,这并不是个问题,但国内有许多用户喜欢安装番茄花园,雨林木风之类的盗版或Ghost版的windows,这些内核做过改动和破解的系统,对虚拟机访问硬件的支持有可能造成障碍。因此如果你无法顺利使用虚拟机中的Linux来测试例程,可以尝试下面这些手段:
1. 使用管理员的模式来运行最新版本的虚拟机安装软件
2. 将USB设备连接映射到虚拟机中,并给予普通用户读写权限(chmod 666)
3. 使用root来运行例程
如果上面的方法不能解决,你需要重新安装原版的操作系统,软件激活使用或者直接使用正版windows。或是利用现有系统的硬盘整理功能来释放空间,用于安装双操作系统。