感性认识数据传输实验,观察老师提供的代码的实验现象,在此基础上,请在实验报告中阐述清楚协议栈的启动过程及数据收发的具体实现。

【ZigBee】数据传输实验及协议栈的启动过程具体实现

实验简介

感性认识数据传输实验,观察老师提供的代码的实验现象,在此基础上,在实验报告中阐述清楚协议栈的启动过程及数据收发的具体实现。

实验环境

  • Win10 1909
  • IAR 10.30
  • Z-Stack
  • VScode

准备工作

一开始我打算使用最新版本的3.0.2协议栈中的SampleLight工程,这里面有协调器按键控制终端节点的LED灯的亮灭,按下Lighting设备的按键,则能对本地的Led进行亮灭控制。

但是,我看了很久后,发现了一些东西导致我暂时放弃了魔改3.0.2这个版本的想法。

Zigbee3.0 较先前的版本对设备的行为做了更多的规范,增加了很多功能。代码中通过使用一个3级目录菜单UI来实现对各个功能的。

菜单功能描述
A级菜单功能菜单
B级菜单commissioning、网络等参数配置菜单
C级菜单installCode配置菜单

这需要5个按键完成操作:

按键功能描述
左/右按键菜单切换方向键
上/下按键编辑按键
中间按键确认键,即【OK】

虽然这很方便,但是一个比较现实的问题是我目前手里的开发板没有LCD屏以及较多的按键。

20191118234915.png

如果有上图这样的设备就可以完美进行这个实验了。

但是限于实验设备,所以如果要使用3.0.2的协议栈的这个工程的话,需要进行一些魔改。

后面如果有时间再魔改这个吧。下面就使用老师给的旧版本的进行本次实验。

实验过程

首先打开老师给的代码的工程文件,由于IAR版本较新,一开始会弹出很多不兼容的提示,没有关系,一直点OK下去就行。

然后尝试编译一下,显然是不行的。提示链接出错。

op.png

如上图,点击option,重新配置一下。

linker.png

需要配置设备和linker里的内容。配置过程和你第一次新建一个工程是一样的,这里不再赘述。

配置好后,再编译,就没有错误了。

接下来的操作就按照老师的注释进行操作即可。

第一步: 找到下面内容,把appLight();  注释掉,下载到发射模块。
          appSwitch();        //节点为按键S1       P1_2
       // appLight();        //节点为指示灯LED1    P1_0

第二步:找到相同位置,这次把appSwitch();注释掉,下载到接收模块。 
       //appSwitch();        //节点为按键S1       P0_4
        appLight();         //节点为指示灯LED1   P1_0

加入串口

稍微不同的是,我加了之前串口的代码。这样连接电脑的串口助手,讲道理是可以查看收到的数据。
首先是之前我们写过的串口实验代码:

void initUART0()
{
    CLKCONCMD &= ~0x40;//设置系统时钟源32MHz晶振
    while(CLKCONSTA&0x40);//等待晶振稳定
    CLKCONCMD&=~0x47;//设置系统主时钟频率32MHz

    PERCFG= 0x00;//位置1P0口
    P0SEL=0x3C;//P0口是串口
    P2DIR&=~0xC0;//P0优先作为UART0
    U0CSR|=0x80;//串口设置为UART方式
    U0GCR|=9;
    U0BAUD|=59;//波特率19200
    UTX0IF=1;//UART0 TX中断标志初始为1
    U0CSR|=0x40;//允许接受
    IEN0|=0x84;//开总中断,接受中断

}

void Send_String(unsigned char *Data, int len)
{
    unsigned int j;
    for(j=0;j<len;j++)
    {
        U0DBUF=*Data++;
        while (UTX0IF==0);
        UTX0IF=0;
        
    }
}

在appLight函数里添加:

if(basicRfReceive(pRxData, APP_PAYLOAD_LENGTH, NULL)>0)
{
   if(pRxData[0] == LIGHT_TOGGLE_CMD) 
    {
      Send_String("Change LED",10);
      //Send_String(pRxData,1);
      halLedToggle(1);
    }
}

好了,接下来分别烧录,连接串口助手,按下Switch的开发板按键,串口线接appLight开发板:

20191118233040.png

注意:这里想打印出pRxData里的内容的话,需要转换一下类型才可以。

实验现象视频:

点击这里去看实验现象视频

提示;上面的图片是我使用的其他图床,不是csdn的。如果图片查看不了,请移步到我的博客查看。地址是:https://stefancharles.xyz/

查看完整原文

请移步到我的个人博客:https://stefancharles.xyz/

本篇文章地址点击这里

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值