KLZB214系列SDK使用說明及LED燈的控制例子
- 2018-03-30 09:14:00
- kelanelec_admin 原創(chuàng)
- 10047
ZB214SDK3.2-使用說明
ZB214SDK3.2使用IAR for 8051 8.10.3開發(fā)環(huán)境
第一步:準備工作
1. 打開工程:
KLZB214serial - SDK\Projects\zstack\klzb214serial\Code\SDK\klzb214.eww
2. 工程下拉列表中選擇對應模塊的型號:比如KLZB214A(紅色低功耗款):
3. 打開應用文件夾:
user_app.c、user_app.h:用戶應用文件
app_api.c:基本不需要修改,如果用到端口中斷,中斷服務函數(shù)在這個文檔
user_ZBconfig.h:模塊配置文件
除系統(tǒng)自帶,如有需要,可自行創(chuàng)建文件

第二步:配置模塊,以下配置出廠通用zigbee轉(zhuǎn)串口為例,如圖所示
配置含義請看程序注解,禁止默寫功能,可以騰出IO口供APP使用,比如禁止KL_CMDCONFIG_IN后,看騰出一個CMD_EN端口出來。

第三步:認識框架中的重要APP函數(shù)
user_app_Init:用于初始化APP任務,除框架自帶,還可以將硬件初始化等放在這里。系統(tǒng)會在模塊上電后調(diào)用此函數(shù)。
user_app_event:APP事務處理函數(shù),當有事件時,系統(tǒng)會觸發(fā)該函數(shù)。比如按鍵按下時,會觸發(fā)一個SYS_EVENT_MSG事件,事件內(nèi)容為KEY_CHANGE,從而會執(zhí)行user_app_HandleKeys函數(shù)。
user_app_Netstate_Change_CB:網(wǎng)絡(luò)狀態(tài)改變后會系統(tǒng)調(diào)用此函數(shù)

user_app_rf_data_process_CB:接收到無線數(shù)據(jù)后會系統(tǒng)調(diào)用此函數(shù)

app_user_key_poll:按鍵掃描,端口中斷觸發(fā)后系統(tǒng)會調(diào)用此函數(shù)(請參考例程編寫)
user_app_HandleKeys:按鍵處理,用于在user_app_event觸發(fā)事件后調(diào)用

其它子函數(shù)app_user_send_key:用在app_user_key_poll(請參考例程編寫)
APP實現(xiàn)案例:入網(wǎng)后實現(xiàn)一個LED燈一秒鐘閃爍
使用模塊KLZB214A為例
LED端口使用P04(PIN2)低電平有效
第一步:定義LED翻轉(zhuǎn)事件
在user_app.h中,定義事件宏定義:#define APP_LED_TGL_EVT 0x0001
注意事件名稱可隨意
注意0x0001為事件值,由于系統(tǒng)規(guī)定,任務的每一種事件都需要一位表示,而最高位固定是系統(tǒng)事件(0x8000),所以APP任務中,可定義的事件范圍是0x0001~0x4000,共15個。

第二步:LED翻轉(zhuǎn)事件添加到APP任務中(user_app_event)
這里要注意,定義的其它事件也一樣,格式要一致。
第三步:將CMD_EN(KLZB214A中為P0_4)端口騰出來驅(qū)動LED
在user_ZBconfig.h中將KL_CMDCONFIG_IN定義為FALSE
第四步:LED端口硬件初始化
在user_app.c中的函數(shù)user_app_Init加入程序:
KL_HAL_CFG_PORT_OUTPUT(0, 4, 1);
其中,0,4為P0_4,1為初始化后端口為高電平(開機不點亮)
第五步:LED翻轉(zhuǎn)觸發(fā)
在user_app.c中函數(shù)user_app_event事件APP_LED_TGL_EVT添加程序:
第六步:入網(wǎng)后觸發(fā)LED翻轉(zhuǎn)事件
在uer_app.c中user_app_Netstate_Change_CB函數(shù)中添加程序:
第七步:保存后編譯
第八步:打開鏡像路徑:
KLZB214serial - SDK\Projects\zstack\klzb214serial\Code\SDK\KLZB214A_SDK\Exe
打開燒入軟件,拖入固件: