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.

终端CC2650广播后 协调器CC2530接收没反应

Other Parts Discussed in Thread: CC2650, CC2630, CC2530

用SmartRF06EB加载CC2650EM板,用Sampleswithc例程,CC2650发送函数设置如下:

void SerialApp_DeviceConnect()
{
#if ZDO_COORDINATOR
SerialApp_TxLen = 0;
SerialApp_RxSeq = 0;
#else

byte SendData[3]="D1";

SerialApp_TxAddr.addrMode = (afAddrMode_t)AddrBroadcast;
SerialApp_TxAddr.endPoint = SWITCH_EP; //20
SerialApp_TxAddr.addr.shortAddr = 0xFFFF;


AF_DataRequest( &SerialApp_TxAddr, &zswEpDesc,
SERIALAPP_CLUSTERID1,
2,
SendData,
&SerialApp_MsgID,
AF_DISCV_ROUTE,
AF_DEFAULT_RADIUS);

#endif //ZDO_COORDINATOR
}

发送后,协调器直接把广播的数据重新广播一边,但不进入自己的如下的接收函数。

void SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt )
{
uint16 flashTime;
byte buf[3];

switch ( pkt->clusterId ) //判断簇ID
{
case SAMPLEAPP_PERIODIC_CLUSTERID: //收到广播数据
osal_memset(buf, 0 , 3);
osal_memcpy(buf, pkt->cmd.Data, 2); //复制数据到缓冲区中

if(buf[0]=='D' && buf[1]=='1') //判断收到的数据是否为"D1"
{
HalLedBlink(HAL_LED_1, 0, 50, 500);//如果是则Led1间隔500ms闪烁
#if defined(ZDO_COORDINATOR) //协调器收到"D1"后,返回"D1"给终端,让终端Led1也闪烁
SampleApp_SendPeriodicMessage();
#endif
}
else
{
HalLedSet(HAL_LED_1, HAL_LED_MODE_ON);
}
break;

case SAMPLEAPP_FLASH_CLUSTERID: //收到组播数据
flashTime = BUILD_UINT16(pkt->cmd.Data[1], pkt->cmd.Data[2] );
HalLedBlink( HAL_LED_4, 4, 50, (flashTime / 4) );
break;
}
}

数据抓包如下

1856.CC2650-01.psd

endpoint设置为20,CLUSTER 设置为1,都对,为什么解调器程序不进入void SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt )?