0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Digi公司XBee Pro SX模块的通讯方式

lcdz66 来源:雨飞工作室 作者:雨飞工作室 2024-01-09 11:02 次阅读

无人机行业的不少客户反馈,第一次接触XBee Pro SX模块时,看着整篇的文档感觉头大,不知从何下手。本文做个总结,以供有需要的朋友借鉴。

Digi公司的XBee Pro SX通讯方式主要分两种,一种是透传方式还有种是AIP方式,透传使用起来比较简单,但API的功能更为强大。

一、透传模式

1、硬件方面准备:

XBee Pro SX模式×2、XBee调试底板×2、天线×2、Micro-USB连接线×2。

wKgaomWct82AHBGLAAxcBrDpYOg848.jpg

2、XCTU上位机

官网链接:

https://www.digi.com/products/embedded-systems/digi-xbee/digi-xbee-tools/xctu

添加模块:

wKgaomWct82AFzm5AAJobGbQ620699.jpg

添加另一个,同理:

wKgZomWct82AD6h_AAJ1-TweMFw663.jpg

3、选择固件及配置传输方式

选择固件:

wKgZomWct82AQZ0IAALwtO-b5k4857.jpg

4、AT指令

①打开串口

wKgZomWct82AFfsRAAHjBdK9xyE699.jpg

②先查询下本机MAC, 注:"0x0D"是ASCII中的回车字符。

wKgZomWct82AdjHaAAKUz26ZxqU405.jpg

③将本机设为**广播模式(即:DH=0,DL=0xFFFF)**,除了用AT指令,也可以在设置界面直接设置。当然,MCU程序里,只能用串口发送AT指令来设置了。

wKgaomWct82AVAk-AAJStn6uENw571.jpg

④发送“Hello XBEE”

wKgaomWct82AaOzTAAE3U4wNHJI657.jpg

wKgZomWct82APdkNAAFKyUghBJ4352.jpg

注意:两个XBee接上天线后距离不宜过近,以防损坏模块,官方推荐2m左右

5、用程序控制SX发送数据

①初始化设置目标MAC地址

unsigned char XBEE_Model_Set(void){  uint8_t date;        while(UART_CheckFlag(UART1, UART_FlagRDRF)) //接收数据寄存器 空 0  date=UART_ReadDataReg(UART1);    UART1->C2 |= UART_C2_TE_MASK; //发送使能UART_SendWait(UART1,SetCommand,3);//使XBEE进入AT命令模式,里面用字符存的“+++”    UART1->C2|=UART_C2_RE_MASK;//接收使能  while(!UART_CheckFlag(UART1, UART_FlagRDRF)); //接收到数据  date=UART_ReadDataReg(UART1);  if(date!=0x4f) return 1;  //发送完数据后,顺序接收到 0x4f--->0x4B--->0x0D(接收到OK)  while(!UART_CheckFlag(UART1, UART_FlagRDRF));  date=UART_ReadDataReg(UART1);  if(date!=0x4B) return 1;   while(!UART_CheckFlag(UART1, UART_FlagRDRF));  date=UART_ReadDataReg(UART1);  if(date!=0x0D) return 1;  //ATDH“charSRUDH_CMD[14]="ATDH00000000
";”,
为ASCII里的回车UART_SendWait(UART1,SRUDH_CMD,sizeof(SRUDH_CMD));  while(!UART_CheckFlag(UART1, UART_FlagRDRF));  date=UART_ReadDataReg(UART1);  if(date!=0x4f) return 1;  while(!UART_CheckFlag(UART1, UART_FlagRDRF));  date=UART_ReadDataReg(UART1);  if(date!=0x4B) return 1;   while(!UART_CheckFlag(UART1, UART_FlagRDRF));  date=UART_ReadDataReg(UART1);  if(date!=0x0D) return 1;  //ATDLUART_SendWait(UART1,SRUDL_CMD,sizeof(SRUDL_CMD));    while(!UART_CheckFlag(UART1, UART_FlagRDRF));  date=UART_ReadDataReg(UART1);  if(date!=0x4f) return 1;   while(!UART_CheckFlag(UART1, UART_FlagRDRF));  date=UART_ReadDataReg(UART1);  if(date!=0x4B) return 1;   while(!UART_CheckFlag(UART1, UART_FlagRDRF));  date=UART_ReadDataReg(UART1);  if(date!=0x0D) return 1;  //ATHP,先导码UART_SendWait(UART1,HP_CMD,sizeof(HP_CMD));  while(!UART_CheckFlag(UART1, UART_FlagRDRF));  date=UART_ReadDataReg(UART1);  if(date!=0x4f) return 1;while(!UART_CheckFlag(UART1,UART_FlagRDRF));  date=UART_ReadDataReg(UART1);  if(date!=0x4B) return 1;   while(!UART_CheckFlag(UART1, UART_FlagRDRF));  date=UART_ReadDataReg(UART1);  if(date!=0x0D) return 1;    //ATWRUART_SendWait(UART1,WRCommandf,sizeof(WRCommandf));  while(!UART_CheckFlag(UART1, UART_FlagRDRF));  date=UART_ReadDataReg(UART1);  if(date!=0x4f) return 1;  while(!UART_CheckFlag(UART1, UART_FlagRDRF));  date=UART_ReadDataReg(UART1);  if(date!=0x4B) return 1;while(!UART_CheckFlag(UART1,UART_FlagRDRF));  date=UART_ReadDataReg(UART1);  if(date!=0x0D) return 1;    //ATCN,每次正确发送都会收到OK  UART_SendWait(UART1,SetTimeCommandf,sizeof(SetTimeCommandf));  while(!UART_CheckFlag(UART1,UART_FlagRDRF));  date=UART_ReadDataReg(UART1);  if(date!=0x4f) return 1;  while(!UART_CheckFlag(UART1, UART_FlagRDRF));  date=UART_ReadDataReg(UART1);  if(date!=0x4B) return 1;  while(!UART_CheckFlag(UART1, UART_FlagRDRF));  date=UART_ReadDataReg(UART1);  if(date!=0x0D) return 1;    return 0;}

②发送数据

透传模式下,只要把目标地址设定好,就可以直接发送数据: UART_SendWait(UART1,Xbee_Send,10); //将数据发送给XBEE

6、透传模式下的各种AT指令可以详看手册说明。

二、API传输方式

API模式的传输功能非常强大,使用也很方便,建议在学会使用透传模式后,上手API模式。具体使用方法是:

1、两个模块都这样设置:

wKgZomWcuBSAYdOOAANQolbqOB4156.jpg

2、API 64位地址 传输协议

wKgaomWcuBSAXNXmAAPrk7eC9pA864.jpg

协议介绍:

wKgZomWcuBSAY0QRAATWK-E_q1c490.jpg

3、API方式 “Hello XBEE”

wKgaomWcuBSANeROAAJYn8_rbe8658.jpg

接收端的协议同理。

4、用程序发送

不用AT指令设置目标地址,直接把目标地址包含在数组中就行。

//1byte帧头+2byte字节长度+1byteFrametype+1byteFrameID+8byte目标MAC+1byteoptions+数据字节8byte+1byte和校验
uint8_t XBEE_Send_Data[23]={0x7E,0x00,0x13,0x00,0x00,0,0,0,0,0,0,0,0,0x00,0,0,0,0,0,0,0,0,0x00};
                                                    //bit5               //bit14      
UART_SendWait(UART1,XBEE_Send_Data,23);//将数据发送给XBEE
注:API模式也有AT协议,可以查询本机MAC等。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模块
    +关注

    关注

    7

    文章

    2696

    浏览量

    47427
  • 天线
    +关注

    关注

    68

    文章

    3196

    浏览量

    140778
  • usb
    usb
    +关注

    关注

    60

    文章

    7935

    浏览量

    264436
  • 无人机
    +关注

    关注

    229

    文章

    10419

    浏览量

    180078

原文标题:可在无人机上使用的Digi公司XBee Pro SX模块快速上手

文章出处:【微信号:雨飞工作室,微信公众号:雨飞工作室】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Digi采用电池供电长寿命无线传感器XBee

    事件和触发因素,并根据这些信息作出决策。XBee 传感器目前支持 DigiXBee ZNet 2.5平台,以及将于2008年第三季度发布的 XBee ZB(ZigBee
    发表于 10-29 14:52

    Digi长寿命XBee无线电池传感器

      Digi推出了 XBee (R) 传感器。这是一种由电池供电的长寿命无线传感器,易于连接到 Drop-in Networking 网络应用或 ZigBee 网络中。ZigBee 技术使低成本
    发表于 10-29 15:43

    Digi用于创建无线传感器网络的XBee传感器

    事件和触发因素,并根据这些信息作出决策。XBee 传感器目前支持 DigiXBee ZNet 2.5平台,以及将于2008年第三季度发布的 XBee ZB(ZigBee
    发表于 11-15 16:53

    基于ZigBee技术的XBee Pro模块在智能公交系统中的应用

    的稳定性高。所以,在本文的设计中选用了MaxStream公司与ZigBee兼容的以Freescale MC1319x芯片组为核心的XBee Pro RF模块。下面主要介绍
    发表于 12-10 10:21

    Xbee Pro具有哪些特性应用?

    本文介绍了MaxStream公司与ZigBee/IEEE802.15.4协议兼容的Xbee Pro模块的性能特点及其在智能公交系统无线通信中的应用。
    发表于 05-13 06:13

    Digi推出新一代XBeeXBee

    关键词:Digi , XBee , XBee-PRO , ZigBee模块 美国明尼苏达州明尼通卡市(2010年6月8日)? Digi In
    发表于 10-14 17:30 669次阅读

    关于Digi International XBee® S2D ZigBee线程就绪射频模块的分析介绍

    Digi XBee S2D ZigBee 线程就绪射频模块提供更大的内存容量,使得设计人员能够升级到线程网络协议。 此线程就绪射频模块不仅保留了之前
    的头像 发表于 08-23 10:54 2793次阅读

    dfrobotXBEE PRO S2C 63mW无线网络模块介绍

    这是Digi最新出品的2.4Ghz Xbee PRO S2C无线通信模块
    的头像 发表于 12-11 16:25 2194次阅读
    dfrobotXBEE <b class='flag-5'>PRO</b> S2C 63mW无线网络<b class='flag-5'>模块</b>介绍

    基于XBee进行ZigBee组网——XBee介绍

    XBee模块Digi公司的一款采用ZigBee技术的无线模块,通过串口与单片机等设备间进行通信,能够非常快速地实现将设备接入到ZigBee
    发表于 07-06 10:29 2817次阅读
    基于<b class='flag-5'>XBee</b>进行ZigBee组网——<b class='flag-5'>XBee</b>介绍

    Digi XBee LR模块的主要特点

    全球领先的物联网连接产品、解决方案和服务提供商迪进国际(Digi International®, NASDAQ: DGII)今天发布了Digi XBee® LR模块,这是首款
    的头像 发表于 07-04 15:44 805次阅读

    带有BMP180的DIGI XBEE3

    电子发烧友网站提供《带有BMP180的DIGI XBEE3.zip》资料免费下载
    发表于 12-12 10:24 0次下载
    带有BMP180的<b class='flag-5'>DIGI</b> <b class='flag-5'>XBEE</b>3

    看图细说Digi XBee模块型号

    先说说Digi XBee模块的分类,从频段、扩频技术、封装、天线接口、发射功率几个方面划分。
    的头像 发表于 01-09 17:20 1822次阅读

    Digi XBee3 Zigbee模块的硬件设计Troubleshooting问题分析

    Digi XBee3 Zigbee模块的硬件设计指南里,有个Troubleshooting问题,值得注意。
    的头像 发表于 02-06 09:51 903次阅读

    浅谈Digi XBee模块的操作模式

    一般地,Digi XBee模块有空闲模式、接收模式、发送模式、睡眠模式和命令模式5种操作模式。下面以XBee3 Zigbee模块来说明。
    的头像 发表于 02-06 14:08 1726次阅读

    Digi XBee3 ZigBee组网和通信测试步骤

    下面采用DigiXBee ZigBee mesh网络开发套件来进行组网和通信操作,需要装备好至少两个模块和对应的开发底板。
    的头像 发表于 12-14 09:17 1603次阅读
    <b class='flag-5'>Digi</b> <b class='flag-5'>XBee</b>3 ZigBee组网和通信测试步骤