This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC1310 接收转发送的耗时时间问题

Other Parts Discussed in Thread: CC1310

现在在做一个数据传输的项目,数据60ms一帧,每帧20bytes, 通过CC1310发送,并同时需要接收另一端CC1310发送的数据。

请问

1. CC1310在接收转发送的耗时时间大概是多少?

2. CC1310能否实现上述的数据透传需求?

  • 这个不建议低于10ms以下,你这个完全可以做到,可能需要加大一些间隔,建议用C:\TI\simplelink_cc13x0_sdk_2_40_00_20\examples\rtos\CC1310_LAUNCHXL\easylink\rfEasyLinkRx
    RX 和TX试一下
  • 我发现 论坛挺多收发共存的需求,建议官方能给出示例代码
  • 根据提供的例程,我在接收任务内进行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这种模式下,数据就不正常了。麻烦帮忙看看有哪些可能的问题,谢谢!