Other Parts Discussed in Thread: CC2530
原本想过年好好休息一下,想在休息不了了,我的ZigBee终端模块每5秒调用一次AF_DataRequest函数发信息给协调器(单播),出现一个问题,就是工作几个小时后或几十分钟(时间不等),就会出现发送失败,错误代码是0xc2。失败后有时过会能自行恢复,有时要重启,请各位大神帮忙解决。谢谢!!!!
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Other Parts Discussed in Thread: CC2530
原本想过年好好休息一下,想在休息不了了,我的ZigBee终端模块每5秒调用一次AF_DataRequest函数发信息给协调器(单播),出现一个问题,就是工作几个小时后或几十分钟(时间不等),就会出现发送失败,错误代码是0xc2。失败后有时过会能自行恢复,有时要重启,请各位大神帮忙解决。谢谢!!!!
@Tao,
返回0x00,是正常的,Success
返回0x10,是#define afStatus_MEM_FAIL ZMemError /* 0x10 */
程序里面是否有动态申请内存,没有释放的,
调试方法,
在osal_memory.c文件中,把下面的宏定义打开
// For information about memory profiling, refer to SWRA204 "Heap Memory Management", section 1.5.
#if !defined OSALMEM_PROFILER
#define OSALMEM_PROFILER TRUE // Enable/disable the memory usage profiling buckets.
#endif
#if !defined OSALMEM_PROFILER_LL
#define OSALMEM_PROFILER_LL FALSE // Special profiling of the Long-Lived bucket.
#endif
用IAR调试下用户内存动态分配的Heap的使用情况,详细参考附件的文档。

数据是否发出去,是由AF_DATA_CONFIRM决定的。ZigBee协议的数据发送,AF_DataRequest,你可以把它看作你要寄一个快递首先联系快递公司,函数返回成功,好比快递员来收了你的物品,但是快递员收了你的物品并不代表你的货物可以100%寄到。ZigBee网络是一个很复杂的网络拓扑,不过可以给你一些经验,如果你的协调器要发数据给终端节点,终端节点可以定期调用ZDApp_AnnounceNewAddress函数(建议半分钟到一分钟为一个周期),这个函数可以随时刷新协调器到各个节点的路由路径。
谢谢各位老师的回复!现在有一点搞清了,就是终端节点失去父节点造成的,但为什么会无规律的失去父节点呢?联网很正常,有没有断电,还请各位老师和高手知道。谢谢!注大家春节愉快!
你好,Aries Lord!请问下怎么调用AF_DATA_CONFIRM来确定数据是否发出去了?谢谢了