zigbee模塊_Z-stack的使用
zigbee組網與使用
一、通道與網絡ID
1、修改文件: f8wConfig.cfg (通道與網絡ID)
-DDEFAULT_CHANLIST= 0x00020000 // 17 - 0x11 ;工作通道,工作信道。自組網內的zigbee要工作在同一個信道下。
-DZDAPP CONFIG PAN ID= 0xFFFF // FFFF改成任意數字。自組網內的每個設備的ID都不一樣。
二、zigbee的發送與接收
1、修改文件:SampleApp.c(全局變量)
定義 發送數據緩存 (此處4個 uint8 元素的數組):
定義 接收數據緩存 (此處1個 uint8 類型指針):
定義兩個布爾類型的標誌
2、修改文件:SampleApp.h與SampleApp.c(數據輸出簇)
數據輸出簇 用於識別 數據來源(比如數據來自哪一塊或哪一組的zigbee),進而決定數據要怎麼處理。
SampleApp.h文件(添加輸出簇 ID 並修改最大簇的數量):
SampleApp.c文件(添加輸出簇 ID):
三、串口通信
1、修改文件:MT_URAT.c(硬件參數配置)
① MT_UartInit();
串口的所有硬件參數都放在一個 halUARTCfg_t 類型的結構體裏面
主要修改波特率 和 流控屬性
2、修改文件:SampleApp.c(串口初始化)
① SampleApp_Init();
3、修改文件:SampleApp.c(聲明自定義函數)
無線無數據處理函數(接收端):
四、任務事件處理
1、接收到無線數據
① 產生事件:
AF_INCOMING_MSG_CMD
② 自定義一個按鍵事件處理函數
將 Z-Stack 協議棧SampleApp_ProcessEvent()函數裏原來的事件處理函數刪除,然後自定義一個無線數據處理函數。
③、 無線數據處理函數
在進行真正的數據解析之前,先通過無線數據輸出簇 ID 號來判斷該數據幀
來自哪裏。
2、按鍵觸發
① 產生事件:
KEY_CHANGE
② 自定義一個按鍵事件處理函數
將 Z-Stack 協議棧SampleApp_ProcessEvent()函數裏原來的事件處理函數刪除,自定義一個按鍵事件處理函數。
③、 按鍵事件處理函數
五、按鍵驅動
修改文件:hal_key.c
找到HalKeyPoll()函數
六、常用函數
1、led閃爍函數——HalLedBlink();
HalLedBlink(HaL_LED_2,3,70,1000); //參數:LED序號(此處爲2)、閃爍次數(此處爲閃爍3次)、佔空比、閃爍週期(ms)
2、ADC函數
對電壓輸出型的傳感器,如果傳感器輸出爲0 - 3.3V,就可以直接接到板上,如果是0 - 5V,可以先用一個分壓電阻分壓,然後接到板子上。
① 初始化
修改SampleApp.c中的SampleApp_Init()函數
HalAdcInit(); // 初始化ADC
HalAdcSetReference ( HAL_ADC_REF_AVDD ); //設置基準電壓
② adc讀取函數——HalAdcRead();
HalAdcRead(HAL_ADC_CHN_AIN7, HAL_ADC_RESOLUTION_12); //參數:ADC讀取引腳、ADC讀取精度
參考文獻
https://www.cnblogs.com/ALittleBee/p/7419394.html (本文主要文獻,在此非常感謝歐浩源老師)
https://www.cnblogs.com/zjutlitao/p/4771857.html
https://blog.csdn.net/lihaicg/article/details/47844469
https://blog.csdn.net/weixin_39749553/article/details/81461612