KLZB214系列SDK使用说明及LED灯的控制例子
- 2018-03-30 09:14:00
- kelanelec_admin 原创
- 8584
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
打开烧入软件,拖入固件: