现在在做一个数据传输的项目,数据60ms一帧,每帧20bytes, 通过CC1310发送,并同时需要接收另一端CC1310发送的数据。
请问
1. CC1310在接收转发送的耗时时间大概是多少?
2. CC1310能否实现上述的数据透传需求?
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.
现在在做一个数据传输的项目,数据60ms一帧,每帧20bytes, 通过CC1310发送,并同时需要接收另一端CC1310发送的数据。
请问
1. CC1310在接收转发送的耗时时间大概是多少?
2. CC1310能否实现上述的数据透传需求?
根据提供的例程,我在接收任务内进行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这种模式下,数据就不正常了。麻烦帮忙看看有哪些可能的问题,谢谢!