無人機(jī)行業(yè)的不少客戶反饋,第一次接觸XBee Pro SX模塊時(shí),看著整篇的文檔感覺頭大,不知從何下手。本文做個(gè)總結(jié),以供有需要的朋友借鑒。
Digi公司的XBee Pro SX通訊方式主要分兩種,一種是透?jìng)鞣绞竭€有種是AIP方式,透?jìng)魇褂闷饋肀容^簡(jiǎn)單,但API的功能更為強(qiáng)大。
一、透?jìng)髂J?/p>
1、硬件方面準(zhǔn)備:
XBee Pro SX模式×2、XBee調(diào)試底板×2、天線×2、Micro-USB連接線×2。

2、XCTU上位機(jī):
官網(wǎng)鏈接:
https://www.digi.com/products/embedded-systems/digi-xbee/digi-xbee-tools/xctu
添加模塊:

添加另一個(gè),同理:

3、選擇固件及配置傳輸方式
選擇固件:

4、AT指令
①打開串口

②先查詢下本機(jī)MAC, 注:"0x0D"是ASCII中的回車字符。

③將本機(jī)設(shè)為**廣播模式(即:DH=0,DL=0xFFFF)**,除了用AT指令,也可以在設(shè)置界面直接設(shè)置。當(dāng)然,MCU程序里,只能用串口發(fā)送AT指令來設(shè)置了。

④發(fā)送“Hello XBEE”


注意:兩個(gè)XBee接上天線后距離不宜過近,以防損壞模塊,官方推薦2m左右。
5、用程序控制SX發(fā)送數(shù)據(jù)
①初始化設(shè)置目標(biāo)MAC地址
unsigned char XBEE_Model_Set(void){ uint8_t date; while(UART_CheckFlag(UART1, UART_FlagRDRF)) //接收數(shù)據(jù)寄存器 空 0 date=UART_ReadDataReg(UART1); UART1->C2 |= UART_C2_TE_MASK; //發(fā)送使能UART_SendWait(UART1,SetCommand,3);//使XBEE進(jìn)入AT命令模式,里面用字符存的“+++” UART1->C2|=UART_C2_RE_MASK;//接收使能 while(!UART_CheckFlag(UART1, UART_FlagRDRF)); //接收到數(shù)據(jù) date=UART_ReadDataReg(UART1); if(date!=0x4f) return 1; //發(fā)送完數(shù)據(jù)后,順序接收到 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,先導(dǎo)碼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,每次正確發(fā)送都會(huì)收到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;}
②發(fā)送數(shù)據(jù)
透?jìng)髂J较?,只要把目?biāo)地址設(shè)定好,就可以直接發(fā)送數(shù)據(jù): UART_SendWait(UART1,Xbee_Send,10); //將數(shù)據(jù)發(fā)送給XBEE
6、透?jìng)髂J较碌母鞣NAT指令可以詳看手冊(cè)說明。
二、API傳輸方式
API模式的傳輸功能非常強(qiáng)大,使用也很方便,建議在學(xué)會(huì)使用透?jìng)髂J胶?,上手API模式。具體使用方法是:
1、兩個(gè)模塊都這樣設(shè)置:

2、API 64位地址 傳輸協(xié)議

協(xié)議介紹:

3、API方式 “Hello XBEE”

接收端的協(xié)議同理。
4、用程序發(fā)送
不用AT指令設(shè)置目標(biāo)地址,直接把目標(biāo)地址包含在數(shù)組中就行。
//1byte幀頭+2byte字節(jié)長(zhǎng)度+1byteFrametype+1byteFrameID+8byte目標(biāo)MAC+1byteoptions+數(shù)據(jù)字節(jié)8byte+1byte和校驗(yàn)
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);//將數(shù)據(jù)發(fā)送給XBEE
注:API模式也有AT協(xié)議,可以查詢本機(jī)MAC等。
審核編輯:湯梓紅
-
模塊
+關(guān)注
關(guān)注
7文章
2817瀏覽量
52567 -
天線
+關(guān)注
關(guān)注
71文章
3318瀏覽量
143551 -
usb
+關(guān)注
關(guān)注
60文章
8340瀏覽量
280450 -
無人機(jī)
+關(guān)注
關(guān)注
234文章
11071瀏覽量
192089
原文標(biāo)題:可在無人機(jī)上使用的Digi公司XBee Pro SX模塊快速上手
文章出處:【微信號(hào):雨飛工作室,微信公眾號(hào):雨飛工作室】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
Digi采用電池供電長(zhǎng)壽命無線傳感器XBee
Digi長(zhǎng)壽命XBee無線電池傳感器
Digi用于創(chuàng)建無線傳感器網(wǎng)絡(luò)的XBee傳感器
基于ZigBee技術(shù)的XBee Pro模塊在智能公交系統(tǒng)中的應(yīng)用
Xbee Pro具有哪些特性應(yīng)用?
Digi推出新一代XBee及XBee
關(guān)于Digi International XBee? S2D ZigBee線程就緒射頻模塊的分析介紹
基于XBee進(jìn)行ZigBee組網(wǎng)——XBee介紹
Digi XBee LR模塊的主要特點(diǎn)
帶有BMP180的DIGI XBEE3
看圖細(xì)說Digi XBee模塊型號(hào)
Digi XBee3 Zigbee模塊的硬件設(shè)計(jì)Troubleshooting問題分析
淺談Digi XBee模塊的操作模式
Digi XBee3 ZigBee組網(wǎng)和通信測(cè)試步驟

Digi公司XBee Pro SX模塊的通訊方式
評(píng)論