• 欢迎访问伊栖物联网社区,聚焦物联网技术和解决方案QQ群:735553309
  • ,从传感器到片上嵌入式系统,无线接入,边缘计算,在这里您可以讨论一切
  • 参加最新的物联网研讨会报名
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏伊栖Eccee

XBee C语言函数库的测试和使用

无线 Robin TU 2年前 (2021-12-13) 818次浏览 0个评论

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。或是利用现有系统的硬盘整理功能来释放空间,用于安装双操作系统。


ECCEE版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:XBee C语言函数库的测试和使用
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址