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

RF接收任务和发射任务的问题

基于easylink我将射频收发分为了两个任务:

接收正常,但是发射发不出去,发射函数可以执行,但是根本进不去回调函数

测试发射任务中的 if(EasyLink_abort() == EasyLink_Status_Success)

返回的是4,也就是EasyLink_Status_Cmd_Error       = 4

请问这是什么原因?

发射任务代码如下:

 while(1) {Semaphore_pend(mySem, BIOS_WAIT_FOREVER);EasyLink_TxPacket txPacket =  { {0}, 0, 0, {0} };/* Create packet with incrementing sequence number and random payload */memcpy(&txPacket.payload[0],UART_RX,len);txPacket.len = len;txPacket.dstAddr[0] = 0xaa;txPacket.absTime = 5;
#ifdef RFEASYLINKTX_ASYNCEasyLink_transmitAsync(&txPacket,txDoneCb);if(Semaphore_pend(txDoneSem, (300000 / Clock_tickPeriod)) == FALSE){/* TX timed out, abort */if(EasyLink_abort() == EasyLink_Status_Success){/** Abort will cause the txDoneCb to be called, and the txDoneSem ti* Be released. So we must consume the txDoneSem* */Semaphore_pend(txDoneSem, BIOS_WAIT_FOREVER);}}

接收任务代码如下:

while(1){EasyLink_receiveAsync(rxDoneCb, 0);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);}}}

Felix ZF:

例程里的\drivers\rfEchoRx和\drivers\rfEchoTx是在一个工程里同时有RF TX和RX操作的例程。
如果你想使用easylink的话,\easylink\rfWsnConcentrator和\easylink\rfWsnNode也是同时有RF TX和RX操作的例程。

user4959119:

回复 Felix ZF:

恩这个我会看,您能帮我分析我现在问题的原因吗?

Felix ZF:

回复 user4959119:

你贴出来的的代码,看起来没什么问题。

赞(0)
未经允许不得转载:TI中文支持网 » RF接收任务和发射任务的问题
分享到: 更多 (0)