2210|6

5

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

关于广播形式下数据发送失败 [复制链接]

    萌新求助:
在用zigbee转发串口数据时一直发送失败,代码如下:

  1.                              if( AF_DataRequest( &SampleApp_Periodic_DstAddr, &SampleApp_epDesc,
  2.                                          SAMPLEAPP_PERIODIC_CLUSTERID,
  3.                                          strlen((char *)txbuf)+1,
  4.                                          txbuf,
  5.                                          &SampleApp_TransID,
  6.                                          AF_DISCV_ROUTE,
  7.                                          AF_DEFAULT_RADIUS ) == afStatus_SUCCESS );
  8.                              else{
  9.                                   HalUARTWrite(0,"wrong\n", 6);
  10.                                  
  11.                              }
复制代码

但是我改成这样却可以发送出去:

  1.                              if( AF_DataRequest( &SampleApp_Periodic_DstAddr, &SampleApp_epDesc,
  2.                                          SAMPLEAPP_PERIODIC_CLUSTERID,
  3. 3,
  4. "OK",
  5.                                          &SampleApp_TransID,
  6.                                          AF_DISCV_ROUTE,
  7.                                          AF_DEFAULT_RADIUS ) == afStatus_SUCCESS );
  8.                              else{
  9.                                   HalUARTWrite(0,"wrong\n", 6);
  10.                                  
  11.                              }
复制代码

求问下原因



此帖出自RF/无线论坛

最新回复

你如果是用的TI的8051的zigbee方案,8051的内存是非常小的,你的字符串定义为200确是太大了。因为8051的内存管理很严格的。  详情 回复 发表于 2019-3-10 20:04
点赞 关注(1)
 

回复
举报

5

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
问题是出现在终端向协调器转发数据
此帖出自RF/无线论坛
 
 

回复

2870

帖子

4

TA的资源

五彩晶圆(中级)

板凳
 
你的程序:

  1.                              if( AF_DataRequest( &SampleApp_Periodic_DstAddr, &SampleApp_epDesc,
  2.                            SAMPLEAPP_PERIODIC_CLUSTERID,
  3.                            strlen((char *)[color=#ff0000]txbuf[/color])+1,
  4.                            [color=#ff0000]txbuf[/color],
  5.                            &SampleApp_TransID,
  6.                            AF_DISCV_ROUTE,
  7.                           AF_DEFAULT_RADIUS ) == afStatus_SUCCESS );
  8.                              else{
  9.                         HalUARTWrite(0,"wrong\n", 6);
  10.                                  
  11.                              }
复制代码

看到txBuf这个变量,需要在函数外面初始化!!!
此帖出自RF/无线论坛
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(初级)

4
 
bigbat 发表于 2019-3-10 07:58
你的程序:

看到txBuf这个变量,需要在函数外面初始化!!!

已经实在函数外初始化了
此帖出自RF/无线论坛
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(初级)

5
 
我发现,在数据长度小于35的情况下可以发出去,但是大于就不行了,可是我在以往测试的时候(数据长度58)也是可以发出去的,求问这是为什么
此帖出自RF/无线论坛
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(初级)

6
 
好的,我已经解决了,原来我分配是200,改为100就可以了,我也不知道是为什么,是不是因为内存比较紧张的原因??????
  1. uint8* txbuf = osal_mem_alloc(100);
复制代码
此帖出自RF/无线论坛
 
 
 

回复

2870

帖子

4

TA的资源

五彩晶圆(中级)

7
 
你如果是用的TI的8051的zigbee方案,8051的内存是非常小的,你的字符串定义为200确是太大了。因为8051的内存管理很严格的。
此帖出自RF/无线论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
快速回复 返回顶部 返回列表