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

C1310-simplink-请问如何设置一个规定时间的接收窗口

我想设定一个500ms的接收窗口,请问正确的写法是什么的,基于easylink库

我通过例程看到如下代码

//数据接收回调
void RxDoneCb(EasyLink_RxPacket * rxPacket, EasyLink_Status status)
{if (status == EasyLink_Status_Success){}else if(status == EasyLink_Status_Aborted){}else{}Semaphore_post(RcvDoneSem);
}

//打开接收EasyLink_receiveAsync(RxDoneCb, 0);//等待500msif(Semaphore_pend(RcvDoneSem, (JOINACK_RCV_TIME_US / Clock_tickPeriod)) == FALSE){/* 无应答 */if(EasyLink_abort() == EasyLink_Status_Success){/* Wait for the abort等待关闭完成 */Semaphore_pend(RcvDoneSem, BIOS_WAIT_FOREVER);}}

该代码在500ms中没有接收到数据时则会调用EasyLink_abort来关闭异步的发送和接收,这儿就可以关闭接收窗口,但是有个问题是,如果有数据了之后,在数据回调中会产生RcvDoneSem这个信号量,则以第一个if为true,程序直接向下运行了,接收窗口就一直没用关闭么? 我想无论有没有数据,来几组数据,接收窗口都只打开500ms,还不影响功耗,请问应该如何编写呢?  

谢谢

Viki Shi:

感谢反馈正确解答

赞(0)
未经允许不得转载:TI中文支持网 » C1310-simplink-请问如何设置一个规定时间的接收窗口
分享到: 更多 (0)