KLZB214SDK3.2-API说明
- 2018-03-29 10:25:00
- kelanelec_admin 原创
- 7538
ZB214SDK3.2-API说明
修改日期2017.09.07
支持的数据类型
char |
8位无符号 |
int8 |
8位有符号,signed char |
uint8 |
8位无符号,unsigned char |
int16 |
16位有符号,signed short |
uint16 |
16位无符号,unsigned short |
int32 |
32位有符号,signed long |
uint32 |
32位无符号,unsigned long |
1 系统配置(以下函数只能在任务初始化中使用,否则会造成系统崩溃)
void AppDisableUART_Api(void);
函数功能:禁止串口,在用户任务初始化中使用,调用之后,模块正常工作后串口将失效
void AppDisableNetWorkManage(void);
函数功能:禁止网络管理
调用之后,协调器默认开通授权任何尝试加入的设备进入
void AppNetWorkManage_DisableMacAuth(void);
函数功能:使能网络管理但禁止设备单独MAC单独允许入网功能
在用户任务初始化中使用,仅协调器有效
备注:在配置文件使能了网络管理之后,默认是需要MAC单独允许的,但
调用此函数之后只有授权功能,不支持设备单独允许入网(允许授权后,所有设备均可以入网)
如配置文件中没有使能网络管理,调用此函数后会使能网络管理功能
void AppEableNetWorkManage2(void);
函数功能:使能网络管理模式2
在用户任务初始化中使用,此Api仅协调器有效,通常用户不需要调用,配置文件配置即可
备注:此模式除了拥有授权功能外,还支持设备单独允许入网(可串口指令或api添加允许设备列表)
void AppZstackConfigBase_Api(uint8 device_type, uint16 panID,
uint8 channel, uint8* mass);
函数功能:网络参数配置
panID: 0000-FFFF channel:11-26,FF:scan channel
device_type:0,COORDINATOR 1, ROUTER 2, ENDDEVICE
mass: point to 16bytes data buffer, is no,set 'NULL'
void AppZstackLowCongigZigBee_Api(ZSTACK_PARA_ITEM item, void *value);
函数功能:zigbee底层参数配置
参看ZSTACK_PARA_ITEM
void AppPowerOnNetWorkStartMode_Api(uint8 start_mode);
函数功能:上电网络启动模式
start_mode =0: 不管网络状态如何,都禁止开始/恢复网络
start_mode =1: 不管网络状态如何,立即开始/恢复网络
start_mode =2: 如果已经入网或者已经构建网络的设备,则直接恢复网络。如果没有入网(对路由器和终端)或者没有构建好网络(对协调器),则不进行初始化网络(等待用户命令)
void AppSetScanDuration_Api(uint8 duration);
函数功能:设置扫描时持续的时间(0-14)
数值越小,入网越快,但功耗越大。
默认:5
14:4分钟
13:2分钟
12:1分钟
11:30秒
10:15秒
9 :7.5秒
8 :4秒
7 :2秒
6 :1秒
5 :480毫秒
4 :240毫秒
3 :120毫秒
2 :60毫秒
1 :30毫秒
0 :15毫秒
2 常用函数(动态函数,随时可以调用)
void AppSetJoinCycle_Api(uint16 time);
函数功能:设置加入速度设置(100-60000)
默认:200
速度越小,入网越快,但功耗越大
void AppClearNetWork_Api(void);
函数功能:清除网络,执行之后会清除之前的网络并重启。
void AppResetSystem_Api(void);
函数功能:重启
uint16 AppReadPanID_Api(void);
函数功能:读取网络PANID,如果未加入到网络或建立网络,值为FFFEh
uint16 AppReadShortAddr_Api(void);
函数功能:读取短地址,如果未加入到网络或建立网络,值为FFFEh
void AppReadMacAddress_Api(uint8 *mac_addr);
函数功能:读取8字节MAC地址,参数是放置MAC地址的缓存首地址
uint8 AppReadChannel_Api(void);
函数功能:读取当前信道,如果未加入到网络或建立网络,则返回0
devStates_t AppReadDeviceState_Api(void);
函数功能:获取设备状态,返回含义请看devStates_t结构类型
int8 AppReadTemperature_Api(void);
函数功能:读取芯片温度(有符号)
uint8 AppReadVcc_Api(void);
函数功能:读取芯片VCC电压
uint8 AppGetRand_Api(void);
函数功能:或取8位随机数
uint16 AppGetRand16bit_Api(void);
函数功能:获取16位随机数
uint16 AppAdcRead_Api ( uint8 channel, uint8 resolution );
函数功能:读取ADC转换值
channel:转换的通道,HAL_ADC_CHANNEL_0 --- HAL_ADC_CHANNEL_7
resolution:有效位,HAL_ADC_RESOLUTION_8 (8位)
HAL_ADC_RESOLUTION_10 (10位)
HAL_ADC_RESOLUTION_12 (12位)
HAL_ADC_RESOLUTION_14 (14位)
void AppAdcSetReference_Api ( uint8 reference );
函数功能:设置ADC参考电压
reference:HAL_ADC_REF_125V,内部1.25V电压
HAL_ADC_REF_AIN7,通道7端口(P0_7)作为参考电压
HAL_ADC_REF_AVDD,供电电压(VCC)
uint8 AppReadProductInfo_Api(uint8 *s, uint8 len);
函数功能:读取产品信息
s:字符串缓存指针
len:读取的大小,最大64个字节,如果不知道大小,直接写64
返回:读取到的字节,如果返回0,则读取不成功或不存在产品信息
void AppUartSend_Api(uint8 *dat, uint8 len);
函数功能:串口发送
dat:数据缓存指针
len:数据的大小
void AppUartSend_debug(uint8 *dat);
函数功能:串口发送字符串,可以用来调试打印
3 数据传输类
void app_send_dat_extern(uint8 *buf, uint8 len);
函数功能:无线发送数据
buf: 数据的首地址
len:数据的长度
uint8 app_set_send_addr(uint8 addr_type, uint8 *addr);
函数功能:设置发送地址
设置之后有10秒的有效期,10秒过后会恢复到上电默认
上电默认(addr_type=01,协调器广播,路由器和终端发给协调器)
addr_type: 01,短地址方式,不使能应答,addr为目的短地址
addr_type: 11,短地址方式,使能应答,addr为目的短地址
addr_type: 02,MAC地址方式,不使能应答,addr为目的MAC地址
addr_type: 12,MAC地址方式,使能应答,addr为目的MAC地址
void user_app_rf_data_process_CB(afAddrType_t *srcAddr,
uint8 *dat,
uint8 dat_len)
函数功能:无线数据接收
注意,此函数为CALLBACK函数,无线接收到数据后将会调用此函数
srcAddr:源地址,发送对方地址
dat:数据首地址
dat_len:数据的长度
4 网络管理类
void AppContinueScanNetWork_Api(void);
函数功能:启动扫描
执行此函数后,只开启扫描功能,但不会立即扫描。
如果开启之后,设备由入网状态变成掉网,会重新自动扫描网络
void AppContinueScanNetWorkAndStart_Api(void);
函数功能:启动扫描网络
如果设备未入网或者掉网状态,执行此函数后会自动进行扫描网络
如果设备已经入网,执行此函数无效
void AppStopScanNetWork_Api(void);
函数功能:禁止扫描网络
如果设备未入网或者掉网状态,执行此函数后会终止进行扫描网络
如果设备已经入网,执行此函数后,即使突然掉网也不再扫描网络,将保持在掉网状态
void AppStartNewNetWork_Api(void)
函数功能:启动扫描新的网络
不管设备当前网络状态如何,执行此函数之后都将扫描新的网络,
跟AppClearNetWork_Api功能类似,不同在于不会重启设备。
void App_MgrPermitJoining_Api(uint8 timeout);
函数功能:设置设备入网允许通道,仅对协调器有效
timeout:0,关闭入网申请通道
timeout:0xff,打开入网申请通道
void App_addValid_Device_Api(uint8 *DeviceMac);
函数功能:添加允许授权设备
DeviceMac:8byte,设备MAC地址
void App_DiscValidDeviceList_Api(void);
函数功能:清空允许授权设备列表
void App_Leave_Device1_Api(uint8 rejoin);
函数功能:离开网络:自身
rejoin:0,离开后重启之前不加入任何网络
rejoin:1,离开后会重新扫描周围网络并尝试加入
void App_Leave_Device2_Api(uint8 rejoin, uint16 devictShortAdd,
uint8 *deviceMac);
函数功能:离开网络:其它设备
rejoin:0,离开后重启之前不加入任何网络
rejoin:1,离开后会重新扫描周围网络并尝试加入
devictShortAdd:离开设备的短地址,不清楚地址,可以设置为0xFFFF
deviceMac: 离开设备的MAC地址
5 操作系统常用函数
uint8 osal_set_event( uint8 task_id, uint16 event_id);
函数功能:设置事件
task_id:对应的任务ID
event_id:事件ID
uint8 osal_clear_event ( uint8 task_id, uint16 event_id);
函数功能:清除事件
task_id:对应的任务ID
event_id:事件ID
uint8 osal_start_timerEx ( uint8 task_id, uint16 event_id, uint16 timeout_value);
函数功能:开始一个定时事件
task_id:对应的任务ID
event_id:事件ID
timeout_value:到期时间,单位毫秒
uint8 osal_stop_timerEx ( uint8 task_id, uint16 event_id);
函数功能:停止一个定时事件
task_id:对应的任务ID
event_id:事件ID
void *osal_mem_alloc( uint16 size )
函数功能:申请动态内存
size:内存大小
返回:内存指针
void osal_mem_free(void *ptr)
函数功能:释放动态内存(一般跟osal_mem_alloc函数配套使用)
ptr:内存指针(申请时返回的指针值)
uint8 osal_nv_item_init( uint16 id, uint16 len, void *buf )
函数功能:初始化一个NV(掉电不丢失)条目
id:条目ID,共16个可以用,范围0x5f0~0x5ff,禁止使用其它ID,否则会造成不可预知的错误。
len:数据长度(最大16个字节)
buf:初始化NV值,写NULL,表示不进行初始化
uint8 osal_nv_read( uint16 id, uint16 offset, uint16 len, void *buf );
函数功能:度一个NV(掉电不丢失)条目
id:条目ID,共16个可以用,范围0x5f0~0x5ff,禁止使用其它ID,否则会造成不可预知的错误。使用之前,请先在user_app_Init函数中初始NV条目。
offset:偏移
len:读入的大小(不能大于初始化时条目的长度)
buf:指向读取缓存
uint8 osal_nv_write( uint16 id, uint16 offset, uint16 len, void *buf )
函数功能:写一个NV(掉电不丢失)条目
id:条目ID,共16个可以用,范围0x5f0~0x5ff,禁止使用其它ID,否则会造成不可预知的错误。使用之前,请先在user_app_Init函数中初始NV条目。
offset:偏移
len:写入的大小(不能大于初始化时条目的长度)
buf:指向写入数值的缓存
6 临界函数
使用临界保护,需要先在函数开头定义halIntState_t变量halIntState
定义方法:halIntState_t halIntState;
HAL_ENTER_CRITICAL_SECTION(halIntState)
函数功能:进入临界保护(执行后不会被中断)
HAL_EXIT_CRITICAL_SECTION (halIntState)
函数功能:退出临界保护
7 端口配置
注意:
端口可配置成通用IO或者模拟输入,系统未使用的IO(根据用户配置头文件),上电默认都是通用IO口
配置流程:
第一步 配置通用IO还是模拟输入(作为通用IO口时,由于上电默认,可以省去)
第二步 配置输入还是输出端口(模拟输入时可以省去)
第三步 配置中断功能(模拟输入和通用IO输出时可以省去)
KL_HAL_ENABLE_CHANNEL_ADC(channel)
端口开启ADC功能,只有P0口支持ADC
channel:0~7, 0对应通道0,端口为P0_0,以此类推
KL_HAL_DISABLE_CHANNEL_ADC (channel)
端口关闭ADC功能(上电默认是关闭状态)