没有合适的资源?快使用搜索试试~ 我知道了~
首页zigbee按键实现绑定
zigbee按键实现绑定
需积分: 50 178 浏览量
更新于2023-05-30
评论
收藏 26KB DOC 举报
zigbee的按键绑定转自动绑定,可实现开机自动绑定,而不用又按按键进行绑定
资源详情
资源评论
资源推荐

zigbee 自动绑定的实现
近来事情比较多,忙着答辩,忙着去应酬,尤其是同学之间的感情需要喝酒来加深,
以至于没什么时间看书写码。所以就没什么空看书写码了。
今天把绑定的实验重新做了一遍,但是觉得通过按键来绑定是手动实现的,过程很麻
烦。所以就琢磨着用自动的方式实现。下面就讲讲实现自动绑定的过程了。
BTW,把我在这次实验的过程中失败经验也介绍一下,希望大家一下。在开始的过程
中,我在初始化中添加了自己的事件 MY_EVENT,然后在事件中读取设备的类型,如果是
协调器就允许绑定,绑定时间无限制,如果是终端就发送绑定请求。但是始终失败了,而
且设备在不断的重启。甚是烦恼,不知道什么原因。
希望遇到类似问题的童鞋们可以和我讲解一下。
ok,如正题吧。估计大家已经不赖烦了要喷我了。
1、要保证设备的自动启动。在原来的程序中,设备的类型是依据不同按键进行设置
的,也就是说按下不同的按键,其将该节点按照特定的设备进行启动。
首先屏蔽掉在初始化程序中的按键部分。因为这部分关闭了自动启动模式。
/*
#if (dened HAL_KEY) && (HAL_KEY == TRUE)
if ( HalKeyRead () == HAL_KEY_SW_1)
{
// If SW1 is pressed and held while powerup, force auto-start and nv-restore
o5 and reset
startOptions = 0;
zb_WriteConguration( ZCD_NV_STARTUP_OPTION, sizeof(uint8),
&startOptions );
zb_SystemReset();
}
#endif // HAL_KEY
*/
初始化函数的结束部分添加如下代码:
startOptions = ZCD_STARTOPT_AUTO_START;
zb_WriteConguration( ZCD_NV_STARTUP_OPTION, sizeof(uint8),
&startOptions );
ZDOInitDevice(0);
设备自动启动以后,会向任务发送一个设备状态改变的消息,在任务处理函数中对应如
下的部分:
case ZDO_STATE_CHANGE:
// If the device has started up, notify the application
if (pMsg->status == DEV_END_DEVICE ||
pMsg->status == DEV_ROUTER ||
pMsg->status == DEV_ZB_COORD )
{


















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0