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

CC2650用Sampleswithc例程序不发ACK

用SmartRF06EB加载CC2650EM板,用Sampleswithc例程,给协调器CC2530发送数据后,CC2530马上返回ACK,但是当CC2530给终端发送数据时,sampleswitch能接收到数据,且进入Switch_processAfIncomingMsgInd函数,但是就是不发送ACK。抓帧数据如下:

CC2650-02.psd

问题如下:

1)ACK不是协议栈自动发的么?为什么sampleswithc不自动发送?

2)sampleswithc 的消息接收函数Switch_processAfIncomingMsgInd能否改成CC2530这种SerialApp_ProcessMSGCmd( afIncomingMSGPacket_t *pkt )形式?怎么改法?

Viki Shi:

有可能是编译器版本的问题,论坛有类似问题,请参考这边:e2echina.ti.com/…/167511

Alvin Chen:

回复 Alvin Chen:

你的POLL rate 是5s对吧,你上面失败的那一包数据应该是你的zed即CC2650再休眠,没有去poll 导致发送失败。

zhu weihua:

回复 Alvin Chen:

第八包的数据是CC2530协调器发送给终端CC2650的点播包,CC2650收到后是不是应该发ACK包,CC2650 没有发出任何的ACK包。 第八包和第十一包都一样。为啥重复发了这么多次?

zhu weihua:

回复 Alvin Chen:

是的5S

Alvin Chen:

回复 zhu weihua:

你的ZED此时在睡眠,自然没有没回即ACK, ZC判断失败启动了重传机制,所以传输的数据一样。

zhu weihua:

回复 Alvin Chen:

第8帧是ZC CC2530发送给ZED CC2650的数据,但此时CC2650在休眠,因此没能恢复ACK。所以CC2530发送了4回,直到第14帧,发送后,CC2650回复了第15帧的ACK。是这么理解吗?

Alvin Chen:

回复 zhu weihua:

是的, 14帧已经是新的一帧,不是第8帧的重传了,当重传超过三次没有回复就释放掉了buffer 放弃了这一帧。

zhu weihua:

回复 Alvin Chen:

谢谢!谢谢!很感谢你的及时回复!

赞(0)
未经允许不得转载:TI中文支持网 » CC2650用Sampleswithc例程序不发ACK
分享到: 更多 (0)