现在在做一个数据传输的项目,数据60ms一帧,每帧20bytes, 通过CC1310发送,并同时需要接收另一端CC1310发送的数据。
请问
1. CC1310在接收转发送的耗时时间大概是多少?
2. CC1310能否实现上述的数据透传需求?
Alvin Chen:
这个不建议低于10ms以下,你这个完全可以做到,可能需要加大一些间隔,建议用C:\TI\simplelink_cc13x0_sdk_2_40_00_20\examples\rtos\CC1310_LAUNCHXL\easylink\rfEasyLinkRx
RX 和TX试一下
kun zhou:
回复 Alvin Chen:
我发现 论坛挺多收发共存的需求,建议官方能给出示例代码
Alvin Chen:
回复 kun zhou:
e2echina.ti.com/…/106253
user5782616:
回复 Alvin Chen:
根据提供的例程,我在接收任务内进行UART数据转射频发送,代码如下:EasyLink_receiveAsync(rxDoneCb, 0);/* Wait 300ms for Rx */if (Semaphore_pend(rxDoneSem, (30000 / Clock_tickPeriod)) == FALSE){/* RX timed out abort */if(EasyLink_abort() == EasyLink_Status_Success){/* Wait for the abort *///Semaphore_pend(rxDoneSem, BIOS_WAIT_FOREVER);}}UARTDataQueue.flag = FALSE;if (QueueIsEmpty(&UARTDataQueue.queue) == 0){sRFDataType *item;void *temp;QueueOut(&UARTDataQueue.queue, &temp, sizeof(sRFDataType), RF_DATA_QUEUE_SIZE);item = (sRFDataType *)temp;if (item->len <= RF_DATA_SIZE){EasyLink_TxPacket txPacket ={ {0}, 0, 0, {0} };/* Create packet with incrementing sequence number and random payload */txPacket.payload[0] = (uint8_t)(seqNumber >> 8);txPacket.payload[1] = (uint8_t) (seqNumber++);memcpy(&txPacket.payload[2], item->data, item->len);txPacket.len = item->len + 2;txPacket.dstAddr[0] = 0xaa;EasyLink_abort();//EasyLink_transmitCcaAsync (&txPacket, lbtDoneCb);EasyLink_transmit(&txPacket);PIN_setOutputValue(pinHandle, Board_PIN_LED1, !PIN_getOutputValue(Board_PIN_LED1));}}收发都是这一套代码,但是两端的UART如果都以200ms的间隔发送数据,则射频端接收不到对放发送的数据。单向传输(即A->B 或B->A)没有问题, 但是A<=>B这种模式下,数据就不正常了。麻烦帮忙看看有哪些可能的问题,谢谢!