微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > 关于z-stack 无线循环发包不正常问题

关于z-stack 无线循环发包不正常问题

时间:10-02 整理:3721RD 点击:

您好 我的协议栈是2.4.0-1.4.0版本的,目标板是CC2530。  发现在使用Z-stack开发项目时候,需要循环发送无线包   使用到了此AF_DataRequest函数,但当我的LinkNumber数(也就是循环发送包次数)增加到4时,发送就出现错误,开始以为发包间隔时间太短,所以在每次进入循环发送包时候加了1S延时,但还是没有解决问题。是不是底层配置文件对发包数量进行了限制呢?下面是我的部分代码,希望得到解答。谢谢!

   for(;send_PacketComplect<LinkNumber;send_PacketComplect++)
   {
     for(int i=0;i<20;i++)
     {
    Onboard_wait(50000);
     }
    SourceNodeInf[1]=sendNumber;
    SourceNodeInf[2]=send_PacketComplect;
    SourceNodeInf[3]=LinkNumber;
   if( AF_DataRequest( &RouterEnd_DstAddr,
                    //端点描述符
                    &RouterEnd_epDesc,
                    //簇ID
                   LINK_NODE_CLUSTERID,
                     //发送字节长度
                      4,
                       //发送数据
                        SourceNodeInf,
                        //发送序列号
                        &RouterEnd_TransID,
                        //设备为路由发现
                        AF_DISCV_ROUTE,
                        //路由半径
                        AF_DEFAULT_RADIUS)==afStatus_SUCCESS)
      {
              HalLedSet(HAL_LED_1,HAL_LED_MODE_BLINK);
          sendNumber++;
      }

都 一天了,,没人解答?

AF_DataRequest并不是真正的发送函数,只是把数据包填充到发送队列中,你必须要退出当前任务,运行到MAC和NWK的任务中,才能发出数据来。你那种方法只是无聊的去消耗CC2530的内存,最后导致CC2530内存溢出死机。

你好:

首先非常感谢您能关注并回答这个问题,你说的是发送队列溢出的现象吧,我们当时也考虑过这个问题,所以在每次循环都加入了1s时间的延迟,我不理解这个时间还不够解决队列溢出问题?而且我们测试了节点也没有死机,还能正常接收上位机发送的其他命令并能正常执行啊。你所指的退出当前任务能说的基体点吗?谢谢!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top