KLZB214繫列SDK使用説明及LED燈的控製例子
- 2018-03-30 09:14:00
- kelanelec_admin 原創
- 8583
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
打開燒入軟件,拖入固件: