问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求高手讲解zigbee中的initNV( void )理解

发布网友 发布时间:2022-04-25 20:39

我来回答

1个回答

热心网友 时间:2022-06-17 05:47

CC2530用的是TI公司的zstack协议栈。学习zigbee关键在于多看官方给出的例程,基本的功能和用
法都有。对于zigbee组网,初学者不需要具体了解协议栈的内部结构,而且zstack是半开源的,你
也没机会了解核心代码,我们要做的就是了解应用程序的接口函数,然后应用它。如果你要实现温
度值的传输就要了解SimpleSensor.c和SimpleCollector.c,在ZStack-1.4.3-1.2.1的Projects
\zstack\Samples\SimpleApp下。

3.Zigbee超低功耗遥控器的设计
做zigbee设计首先要有zigbee协议栈,我用的是ZStack-1.4.3-1.2.1,芯片为CC2430。zigbee编程
主要在协议栈中修改。按你的要求应该用SimpleApp范例,在ZStack-1.4.3-1.2.1的Projects
\zstack\Samples\SimpleApp下。主要看SimpleSwitch.c和SimpleController.c两个文件。例如要
遥控LED灯的亮灭,由终端向协调器发送控制命令:
//SimpleSwitch.c
void zb_HandleKeys( uint8 shift, uint8 keys )
{
uint8 startOptions;
uint8 logicalType;

// Shift is used to make each button/switch al purpose.
if ( shift )
{
if ( keys & HAL_KEY_SW_1 )
{
}
if ( keys & HAL_KEY_SW_2 )
{
}
if ( keys & HAL_KEY_SW_3 )
{
}
if ( keys & HAL_KEY_SW_4 )
{
}
}
else
{
if ( keys & HAL_KEY_SW_1 )
{
if ( myAppState == APP_INIT )
{
// In the init state, keys are used to indicate the logical mode.
// The Switch device is always an end-device
logicalType = ZG_DEVICETYPE_ENDDEVICE;
zb_WriteConfiguration(ZCD_NV_LOGICAL_TYPE, sizeof(uint8), &logicalType);

// Do more configuration if necessary and then restart device with auto-start bit set

zb_ReadConfiguration( ZCD_NV_STARTUP_OPTION, sizeof(uint8), &startOptions );
startOptions = ZCD_STARTOPT_AUTO_START;
zb_WriteConfiguration( ZCD_NV_STARTUP_OPTION, sizeof(uint8), &startOptions );
zb_SystemReset();

}
else
{
// Initiate a binding with null destination
zb_BindDevice(TRUE, TOGGLE_LIGHT_CMD_ID, NULL);
}
}
if ( keys & HAL_KEY_SW_2 )
{
if ( myAppState == APP_INIT )
{
// In the init state, keys are used to indicate the logical mode.
// The Switch device is always an end-device
logicalType = ZG_DEVICETYPE_ENDDEVICE;
zb_WriteConfiguration(ZCD_NV_LOGICAL_TYPE, sizeof(uint8), &logicalType);

zb_ReadConfiguration( ZCD_NV_STARTUP_OPTION, sizeof(uint8), &startOptions );
startOptions = ZCD_STARTOPT_AUTO_START;
zb_WriteConfiguration( ZCD_NV_STARTUP_OPTION, sizeof(uint8), &startOptions );
zb_SystemReset();
}
else
{
// Send the command to toggle light
zb_SendDataRequest( 0xFFFE, TOGGLE_LIGHT_CMD_ID, 0,
(uint8 *)NULL, myAppSeqNumber, 0, 0 );
}
}
if ( keys & HAL_KEY_SW_3 )
{
// Remove all existing bindings
zb_BindDevice(FALSE, TOGGLE_LIGHT_CMD_ID, NULL);
}
if ( keys & HAL_KEY_SW_4 )
{
}
}
}
这个函数定义了开关的用法,按键1用来设置协调器,按键2用来设置终端或发送控制命令TOGGLE_LIGHT_CMD_ID,按键3用来绑定设备。
// SimpleController.c
void zb_ReceiveDataIndication( uint16 source, uint16 command, uint16 len, uint8 *pData )
{
if (command == TOGGLE_LIGHT_CMD_ID)
{
// Received application command to toggle the LED
HalLedSet(HAL_LED_1, HAL_LED_MODE_TOGGLE);
}
}
若接收到数据,判断命令command是否为TOGGLE_LIGHT_CMD_ID,若是则点亮LED1。其实TOGGLE_LIGHT_CMD_ID值就定义为1,为了让读者明白含义所以用一串字符表示,初学者不要认为zigbee协议栈有多复杂,耐心的看下去问题都会迎刃而解。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
水笔在手上画画会不会被衣服搽掉下来 老人每天大便次数很多量不多也不稀,每天还会拉三四次水应经三个月了... 从大连飞机场怎么去大连经济开发区5彩城K区的大连金港大酒店 除了打 ... 请问从大连周水子国际机场到经济技术开发区怎么走最省钱? 中国古代名刀总录中国古代十大名刀 怎样把qq安装到iphone里面 苏科大什么梗 苏科大叫什么名字 lol苏科大是苏州科技大学的吗 lol苏州科技大学为什么这么厉害 优尔精医用降温贴是不是保健品? 串口助手显示乱码 zigbee灯 怎么解除绑定 同一个表中,同一个字段既是主键,又是外键。同一个字段做另外三张表的外键,怎么写? endofdevicelistnodevfound是什么意思? Zstack中如何实现自己的任务 详细�0�3 请问End是什么意思? Zigbee里enddeviceid怎么调用 End是什么意思?? 如何将cc2530配置成end-device 在zigbee协议栈中CoodinatorEB-Pro和EndDeviceEB-Pro有什么区别吗? zigbee组网问题以及EndDevice失联问题 怎么用 Zigbee Z-stack协议 从电脑发送数据 到 指定的EndDevice ? zigbee协议栈中,enddevice我只想加入路由节点,如果是主节点不加入,怎么实现? 协议栈end device值是短地址号还是什么 如何理解“'河这边却是一片*动和聒噪”的,这句话来自密西西比河风光的阅读。 聒噪、这个是什么意思 呱噪的读音 聒噪读音 聒噪,这2个字怎么读 聒噪 是什么意思??? ZigBee协议栈绑定试验为什么终端节点LED不亮 求台湾版的命中注定我爱你百度云资源 命中注定我爱你台版 《命中注定我爱你》台版在哪可以看? 有命中注定我爱你台版百度云吗? 命中注定我爱你台湾版电视剧高清下载 有没有《命中注定我爱你》台版的资源啊? 有命中注定我爱你台湾版资源吗? 求《命中注定我爱你台版》的百度云资源 台剧命中注定我爱你的百度网盘 命中注定我爱你剧情变了? 韩剧命中注定我爱你 网盘 命中注定我爱你的剧情简介 有没有类似于命中注定我爱你的台湾电视剧?最好新一点的。比如要比命中注定我爱你晚的。知道的亲们快快告 电视剧台版的命中注定我爱你为什么都没了? 泰剧《命中注定我爱你》跟台版的相比哪个更好看? 快活地什么填词语答案? 词语搭配( )地问、( )地流、( )地说、( )地笑、快乐地( )、大声地( ) 快活地什么?怎么填? 快活地(),里面填什么词