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

rfEasylinkRx例程接收丢帧问题

各位TI老师:

我现在有7个CC1310发射模块在435Mhz不停发送数据,每次发射间隔2秒左右,用一块CC1310Launchpad做接收,先用SmartRF studio接收,报文没有问题,发射序号为3、6、5、4、9、2、1

但是用rfEasylinkRx例程做接收,每接收一帧做一下缓存,调试结果如下,明显序号有丢失现象

请问这是什么原因造成的啊

 

Viki Shi:

This example shows how to use the EasyLink API to access the RF drive, set the frequency and receive packets. The board will blink LED2 when a packet has been received. When a second board is running rfEasyLinkTx example then the expected behavior is that Board_PIN_LED2 will blink every 100 ms 10 times, the TX will then wait for 300 ms before transmitting the next packets and if RFEASYLINKRX_ASYNC is defined (as it is by default) then this will cause the rfEasyLinkRx example to timeout and exercise the EasyLink_abort API. When an RX has been aborted Board_PIN_LED1 should toggle. The rfEasyLinkTx board will then transmit another burst of packets and Board_PIN_LED2 should blink another 10 times and the cycle should repeat.

看一下是不是rfEasyLinkRx 超时导致的丢包

user5806587:

回复 Viki Shi:

rfEasyLinkRx 超时是不是300ms太小了?
怎么看出来呢

EasyLink_receiveAsync(rxDoneCb, 0);
        /* Wait 300ms for Rx */        if(Semaphore_pend(rxDoneSem, (300000 / Clock_tickPeriod)) == FALSE)        {            /* RX timed out abort */            if(EasyLink_abort() == EasyLink_Status_Success)            {               /* Wait for the abort */               Semaphore_pend(rxDoneSem, BIOS_WAIT_FOREVER);            }        }

Viki Shi:

回复 user5806587:

时间改大一点测一下

user5806587:

回复 Viki Shi:

改成 if(Semaphore_pend(rxDoneSem, (2000000 / Clock_tickPeriod)) == FALSE)

或直接 Semaphore_pend(rxDoneSem, BIOS_WAIT_FOREVER)都不行

Alvin Chen:

回复 user5806587:

你直接把下面的注释掉编程堵塞接收看看,因为Smartf RF TX时定期发送。
/* Undefine to remove async mode */
#define RFEASYLINKRX_ASYNC

Viki Shi:

回复 user5806587:

改大还是丢包吗?提供一个类似帖子,可能有帮助:e2echina.ti.com/…/122614

user5806587:

回复 Viki Shi:

Viki Shi 老师,我觉得这个肯定和硬件没问题,因为我用的是CC1310Launchpad做接收,用SmartRF studio是没问题的
但是改为用rfEasylinkRx例程就丢帧,这是不是rfEasylinkRx里有那些设置不一样啊
想不明白了

user5806587:

回复 Alvin Chen:

@Alvin Chen,注释掉也不行

Alvin Chen:

回复 user5806587:

你把你的模块烧录成rfEasylinkTx 然后LP烧录为rfEasylinkRx这样对测比较有意义,你去试试,

赞(0)
未经允许不得转载:TI中文支持网 » rfEasylinkRx例程接收丢帧问题
分享到: 更多 (0)