TI中文支持网
TI专业的中文技术问题搜集分享网站

cc2530协调器只接收不发送数据

上位机用串口给协调器数据,刚上电的时候一切正常,过一段时间后就出现协调器只能接收,不能发送的问题了。

抓包工具抓到GTS reqeust(rx only),如图所示,不知道和这个有没有关系。

YiKai Chen:

接上IAR 調试看看卡在哪

Dandjinh:

回复 YiKai Chen:

它也没有死机,用串口查询一些信息还是有回应的,就是无线有问题。

YiKai Chen:

回复 Dandjinh:

你是不是持續發送封包呢?如果是,先靜止一段時間不發送會不會恢復?

Susan Yang:

请问您现在的串口部分是如何设置的呢?能否简要描述下您的程序?

另外GTS部分基本上是zstack 来处理的,并不开放给用户来配置参数。
The GTS direction is specified as either transmit or receive. Each device may request one transmit GTS and/or one receive GTS. For each allocated GTS, the device shall be able to store its starting slot, length and direction. If a device has been allocated a receive GTS, it shall enable its receiver for the entirety of the GTS. In the same way, a PAN coordinator shall enable its receiver for the entirety of the GTS if a device has been allocated a transmit GTS.

Dandjinh:

回复 YiKai Chen:

没有一直发送数据。整个网络目前是1个协调器+15个路由。然后协议栈每15s发一次NWK Link Status,除了这个,没有其他的主动通讯。

目前就是协调器每过几小时后就不能发送数据了,接收数据是没问题的。

另外,每次不能发送数据的同时,协调器自身的NWK Link Status也不发送了。

Dandjinh:

回复 Susan Yang:

串口使用的是网蜂的方案,流程如下:

在自己的任务里条用MT_UartInit();和 MT_UartRegisterTaskID(task_id);

然后重写了函数 MT_UartProcessZToolData

void MT_UartProcessZToolData ( uint8 port, uint8 event )
{uint8 flag=0,i,j=0;//flag是判断有没有收到数据,j记录数据长度uint8 buf[128];//串口buffer最大缓冲默认是128,我们这里用128.(void)event;// Intentionally unreferenced parameterwhile ((Hal_UART_RxBufLen(port))&&(j<128)) //检测串口数据是否接收完成{HalUARTRead (port,&buf[j], 1);//把数据接收放到buf中j++;//记录字符数flag=1;//已经从串口接收到信息}if(flag==1)//已经从串口接收到信息{/* Allocate memory for the data *///分配内存空间,为机构体内容+数据内容+1个记录长度的数据pMsg = (mtOSALSerialData_t *)osal_msg_allocate( sizeof( mtOSALSerialData_t )+j+1);//事件号用原来的CMD_SERIAL_MSGpMsg->hdr.event = CMD_SERIAL_MSG;pMsg->msg = (uint8*)(pMsg+1);// 把数据定位到结构体数据部分pMsg->msg [0]= j;//给上层的数据第一个是长度for(i=0;i<j;i++)//从第二个开始记录数据pMsg->msg [i+1]= buf[i];osal_msg_send( App_TaskID, (byte *)pMsg );//登记任务,发往上层/* deallocate the msg */osal_msg_deallocate ( (uint8 *)pMsg );//释放内存}
}

YiKai Chen:

回复 Dandjinh:

如果用原始沒有修改過原始碼的协调器測試還會过几小时后就不能发送数据,然後协调器自身的NWK Link Status也不发送了?

Dandjinh:

回复 YiKai Chen:

连NWK Link Status也不发了,不能从这方面着手分析吗?

YiKai Chen:

回复 Dandjinh:

NWK Link Status是协議棧底層發出的,沒有完整原始碼是沒辦法分析的,只能從你加了什麼程序上去分析看看可能的原因

gaoyang9992006:

你下载网蜂的那个电子书了没,按照里面的测试看看,另外板子是买的他们的?寻求他们技术支持。或者加入他们的售后技术群
网蜂ZigBee用户群54108630

赞(0)
未经允许不得转载:TI中文支持网 » cc2530协调器只接收不发送数据
分享到: 更多 (0)