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.cuser_app.h:用户应用文件

app_api.c:基本不需要修改,如果用到端口中断,中断服务函数在这个文档

user_ZBconfig.h:模块配置文件

除系统自带,如有需要,可自行创建文件


第二步:配置模块,以下配置出厂通用zigbee转串口为例,如图所示

配置含义请看程序注解,禁止默写功能,可以腾出IO口供APP使用,比如禁止KL_CMDCONFIG_IN后,看腾出一个CMD_EN端口出来。



第三步:认识框架中的重要APP函数

user_app_Init:用于初始化APP任务,除框架自带,还可以将硬件初始化等放在这里。系统会在模块上电后调用此函数。



       user_app_eventAPP事务处理函数,当有事件时,系统会触发该函数。比如按键按下时,会触发一个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,4P0_41为初始化后端口为高电平(开机不点亮)



第五步:LED翻转触发

       user_app.c中函数user_app_event事件APP_LED_TGL_EVT添加程序:



第六步:入网后触发LED翻转事件

       uer_app.cuser_app_Netstate_Change_CB函数中添加程序:


第七步:保存后编译


第八步:打开镜像路径:

KLZB214serial - SDK\Projects\zstack\klzb214serial\Code\SDK\KLZB214A_SDK\Exe

打开烧入软件,拖入固件:






发表评论
评论通过审核后显示。