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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章