無人機行業(yè)的不少客戶反饋,第一次接觸XBee Pro SX模塊時,看著整篇的文檔感覺頭大,不知從何下手。本文做個總結(jié),以供有需要的朋友借鑒。
Digi公司的XBee Pro SX通訊方式主要分兩種,一種是透傳方式還有種是AIP方式,透傳使用起來比較簡單,但API的功能更為強大。
一、透傳模式
1、硬件方面準備:
XBee Pro SX模式×2、XBee調(diào)試底板×2、天線×2、Micro-USB連接線×2。

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

添加另一個,同理:

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

4、AT指令
①打開串口

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

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

④發(fā)送“Hello XBEE”


注意:兩個XBee接上天線后距離不宜過近,以防損壞模塊,官方推薦2m左右。
5、用程序控制SX發(fā)送數(shù)據(jù)
①初始化設(shè)置目標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進入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,先導碼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ā)送都會收到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ù)
透傳模式下,只要把目標地址設(shè)定好,就可以直接發(fā)送數(shù)據(jù): UART_SendWait(UART1,Xbee_Send,10); //將數(shù)據(jù)發(fā)送給XBEE
6、透傳模式下的各種AT指令可以詳看手冊說明。
二、API傳輸方式
API模式的傳輸功能非常強大,使用也很方便,建議在學會使用透傳模式后,上手API模式。具體使用方法是:
1、兩個模塊都這樣設(shè)置:

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

協(xié)議介紹:

3、API方式 “Hello XBEE”

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