KLZB214系列SDK使用說明及LED燈的控制例子
- 2018-03-30 09:14:00
- kelanelec_admin 原創
- 8582
ZB214SDK3.2-使用說明
ZB214SDK3.2使用IAR for 8051 8.10.3開發環境
第一步:準備工作
1. 打開工程:
KLZB214serial - SDK\Projects\zstack\klzb214serial\Code\SDK\klzb214.eww
2. 工程下拉列表中選擇對應模塊的型號:比如KLZB214A(紅色低功耗款):
3. 打開應用文件夾:
user_app.c、user_app.h:用戶應用文件
app_api.c:基本不需要修改,如果用到端口中斷,中斷服務函數在這個文檔
user_ZBconfig.h:模塊配置文件
除系統自帶,如有需要,可自行創建文件
第二步:配置模塊,以下配置出廠通用zigbee轉串口為例,如圖所示
配置含義請看程序注解,禁止默寫功能,可以騰出IO口供APP使用,比如禁止KL_CMDCONFIG_IN后,看騰出一個CMD_EN端口出來。
第三步:認識框架中的重要APP函數
user_app_Init:用于初始化APP任務,除框架自帶,還可以將硬件初始化等放在這里。系統會在模塊上電后調用此函數。
user_app_event:APP事務處理函數,當有事件時,系統會觸發該函數。比如按鍵按下時,會觸發一個SYS_EVENT_MSG事件,事件內容為KEY_CHANGE,從而會執行user_app_HandleKeys函數。
user_app_Netstate_Change_CB:網絡狀態改變后會系統調用此函數
user_app_rf_data_process_CB:接收到無線數據后會系統調用此函數
app_user_key_poll:按鍵掃描,端口中斷觸發后系統會調用此函數(請參考例程編寫)
user_app_HandleKeys:按鍵處理,用于在user_app_event觸發事件后調用
其它子函數app_user_send_key:用在app_user_key_poll(請參考例程編寫)
APP實現案例:入網后實現一個LED燈一秒鐘閃爍
使用模塊KLZB214A為例
LED端口使用P04(PIN2)低電平有效
第一步:定義LED翻轉事件
在user_app.h中,定義事件宏定義:#define APP_LED_TGL_EVT 0x0001
注意事件名稱可隨意
注意0x0001為事件值,由于系統規定,任務的每一種事件都需要一位表示,而最高位固定是系統事件(0x8000),所以APP任務中,可定義的事件范圍是0x0001~0x4000,共15個。
第二步:LED翻轉事件添加到APP任務中(user_app_event)
這里要注意,定義的其它事件也一樣,格式要一致。
第三步:將CMD_EN(KLZB214A中為P0_4)端口騰出來驅動LED
在user_ZBconfig.h中將KL_CMDCONFIG_IN定義為FALSE
第四步:LED端口硬件初始化
在user_app.c中的函數user_app_Init加入程序:
KL_HAL_CFG_PORT_OUTPUT(0, 4, 1);
其中,0,4為P0_4,1為初始化后端口為高電平(開機不點亮)
第五步:LED翻轉觸發
在user_app.c中函數user_app_event事件APP_LED_TGL_EVT添加程序:
第六步:入網后觸發LED翻轉事件
在uer_app.c中user_app_Netstate_Change_CB函數中添加程序:
第七步:保存后編譯
第八步:打開鏡像路徑:
KLZB214serial - SDK\Projects\zstack\klzb214serial\Code\SDK\KLZB214A_SDK\Exe
打開燒入軟件,拖入固件: