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

CC1310在使用的过程中会无法接收到数据

   在使用的时候,会突然无法接收到数据,但是能正常发送数据,得重启芯片才能恢复。出现的概率不大,但是对于产品使用有一定的不稳定因素。请问有什么方法可以排查问题,或者有解决方法吗?

Viki Shi:

是否排查过RX buffer?

user5782616:

回复 Viki Shi:

请问RX buffer在什么情况下会引起这个问题?

Viki Shi:

回复 user5782616:

看一下是不是有溢出

user5782616:

回复 Viki Shi:

RXbuffer只有在接收数据超长才有可能溢出,现在在进行测试。请问还有其他可能的情况吗?比如TX 与RX切换的时候是否需要一些操作,否则会接收不到数据?

user5782616:

回复 Viki Shi:

你好,我把RXcallback函数内的rxbuffer人为的造成数据溢出,在测试一天的情况下,没有出现不能接收的情况。请问还有什么可能的原因?

Viki Shi:

回复 user5782616:

暂时没有想法,不过RX TX的切换有工程师提供过例程,参考这边:e2echina.ti.com/…/106253

user5782616:

回复 Viki Shi:

EasyLink在调用EasyLink_receiveAsync以后,突然某一瞬间进入发送,会不会出现芯片不接收?

Viki Shi:

回复 user5782616:

也有可能,建议按照上面的例程进行RX TX 切换

user5782616:

回复 Viki Shi:

EasyLink_receiveAsync(rxDoneCb, 0);//// /* Wait 300ms for Rx */// if(Semaphore_pend(rxDoneSem, (300000 / Clock_tickPeriod)) == FALSE) //delete by barbara if(Semaphore_pend(rxDoneSem, (100000 / Clock_tickPeriod)) == FALSE) //add by barbara { /* RX timed out abort */ if(EasyLink_abort() == EasyLink_Status_Success) { /* Wait for the abort */ Semaphore_pend(rxDoneSem, BIOS_WAIT_FOREVER); // 请问这里在abort成功后,为什么要一直等待接收成功信号量 ? } } }

user5782616:

回复 Viki Shi:

请问调用

void ReBoot(void){ asm("CPSID F");// asm("CPSID F");// asm("LDR R0, =0xE000ED0C"); asm("LDR R1, =0x05FA0004"); asm("STR R1, [R0]"); while(1);}

这个函数复位芯片,有时候会复位不成功,需要手动拉reset引脚才行,这是什么原因?

赞(0)
未经允许不得转载:TI中文支持网 » CC1310在使用的过程中会无法接收到数据
分享到: 更多 (0)