我是靠谱客的博主 高兴心情,最近开发中收集的这篇文章主要介绍zigbee模块_Z-stack的使用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

zigbee模块_Z-stack的使用

    • zigbee组网与使用
      • 一、通道与网络ID
        • 1、修改文件: f8wConfig.cfg (通道与网络ID)
      • 二、zigbee的发送与接收
        • 1、修改文件:SampleApp.c(全局变量)
        • 2、修改文件:SampleApp.h与SampleApp.c(数据输出簇)
      • 三、串口通信
        • 1、修改文件:MT_URAT.c(硬件参数配置)
          • ① MT_UartInit();
        • 2、修改文件:SampleApp.c(串口初始化)
          • ① SampleApp_Init();
        • 3、修改文件:SampleApp.c(声明自定义函数)
      • 四、任务事件处理
        • 1、接收到无线数据
          • ① 产生事件:
          • ② 自定义一个按键事件处理函数
          • ③、 无线数据处理函数
        • 2、按键触发
          • ① 产生事件:
          • ② 自定义一个按键事件处理函数
          • ③、 按键事件处理函数
      • 五、按键驱动
        • 修改文件:hal_key.c
      • 六、常用函数
        • 1、led闪烁函数——HalLedBlink();
        • 2、ADC函数
          • ① 初始化
          • ② adc读取函数——HalAdcRead();
    • 参考文献

zigbee组网与使用

一、通道与网络ID

1、修改文件: f8wConfig.cfg (通道与网络ID)

-DDEFAULT_CHANLIST= 0x00020000   // 17 - 0x11 ;工作通道,工作信道。自组网内的zigbee要工作在同一个信道下。

-DZDAPP CONFIG PAN ID= 0xFFFF   // FFFF改成任意数字。自组网内的每个设备的ID都不一样。

二、zigbee的发送与接收

1、修改文件:SampleApp.c(全局变量)

定义 发送数据缓存 (此处4个 uint8 元素的数组):
定义 接收数据缓存 (此处1个 uint8 类型指针):
定义两个布尔类型的标志
在这里插入图片描述

2、修改文件:SampleApp.h与SampleApp.c(数据输出簇)

数据输出簇 用于识别 数据来源(比如数据来自哪一块或哪一组的zigbee),进而决定数据要怎么处理。
SampleApp.h文件(添加输出簇 ID 并修改最大簇的数量):
在这里插入图片描述
SampleApp.c文件(添加输出簇 ID):

在这里插入图片描述

三、串口通信

1、修改文件:MT_URAT.c(硬件参数配置)

① MT_UartInit();

串口的所有硬件参数都放在一个 halUARTCfg_t 类型的结构体里面

主要修改波特率流控属性

在这里插入图片描述

2、修改文件:SampleApp.c(串口初始化)

① SampleApp_Init();

在这里插入图片描述

3、修改文件:SampleApp.c(声明自定义函数)

无线无数据处理函数(接收端):
在这里插入图片描述

四、任务事件处理

1、接收到无线数据

① 产生事件:

       AF_INCOMING_MSG_CMD

② 自定义一个按键事件处理函数

将 Z-Stack 协议栈SampleApp_ProcessEvent()函数里原来的事件处理函数删除,然后自定义一个无线数据处理函数。
在这里插入图片描述

③、 无线数据处理函数

在进行真正的数据解析之前,先通过无线数据输出簇 ID 号来判断该数据帧
来自哪里。
在这里插入图片描述

2、按键触发

① 产生事件:

       KEY_CHANGE

② 自定义一个按键事件处理函数

将 Z-Stack 协议栈SampleApp_ProcessEvent()函数里原来的事件处理函数删除,自定义一个按键事件处理函数。
在这里插入图片描述

③、 按键事件处理函数

在这里插入图片描述

五、按键驱动

修改文件:hal_key.c

找到HalKeyPoll()函数

在这里插入图片描述

六、常用函数

1、led闪烁函数——HalLedBlink();

HalLedBlink(HaL_LED_2,3,70,1000);	//参数:LED序号(此处为2)、闪烁次数(此处为闪烁3次)、占空比、闪烁周期(ms)

2、ADC函数

对电压输出型的传感器,如果传感器输出为0 - 3.3V,就可以直接接到板上,如果是0 - 5V,可以先用一个分压电阻分压,然后接到板子上。

① 初始化

修改SampleApp.c中的SampleApp_Init()函数

  HalAdcInit();                       // 初始化ADC
  HalAdcSetReference ( HAL_ADC_REF_AVDD );  //设置基准电压

在这里插入图片描述

② adc读取函数——HalAdcRead();
HalAdcRead(HAL_ADC_CHN_AIN7, HAL_ADC_RESOLUTION_12); 	//参数:ADC读取引脚、ADC读取精度

在这里插入图片描述

参考文献

https://www.cnblogs.com/ALittleBee/p/7419394.html (本文主要文献,在此非常感谢欧浩源老师)
https://www.cnblogs.com/zjutlitao/p/4771857.html
https://blog.csdn.net/lihaicg/article/details/47844469
https://blog.csdn.net/weixin_39749553/article/details/81461612

最后

以上就是高兴心情为你收集整理的zigbee模块_Z-stack的使用的全部内容,希望文章能够帮你解决zigbee模块_Z-stack的使用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(142)

评论列表共有 0 条评论

立即
投稿
返回
顶部