CC1310 RX和TX模式切换问题
您好:
TI的工程师,我最近在调试CC1310,使用WSN的例程直接测试没问题,我将例程里面的射频配置部分修改为433.92MHz(使用 StudioRF软件生成的参数)之后,发现rfWSNNode在调用下述函数时,停在了 RF_EventMask result = RF_pendCmd(rfHandle, cmdHdl, (RF_EventLastCmdDone |
RF_EventCmdError)); 这行程序处无法退出,我自己修改的无线唤醒程序(433MHz)的也是在调用这一函数时程序停止,不知是什么原因,麻烦给予解决,谢谢。
EasyLink_Status EasyLink_transmit(EasyLink_TxPacket *txPacket)
{
EasyLink_Status status = EasyLink_Status_Tx_Error;
if ( (!configured) || suspended)
{
return EasyLink_Status_Config_Error;
}
//Check and take the busyMutex
if (Semaphore_pend(busyMutex, 0) == FALSE)
{
return EasyLink_Status_Busy_Error;
}
if (txPacket->len > EASYLINK_MAX_DATA_LENGTH)
{
return EasyLink_Status_Param_Error;
}
memcpy(txBuffer, txPacket->dstAddr, addrSize);
memcpy(txBuffer + addrSize, txPacket->payload, txPacket->len);
//packet length to Tx includes address
EasyLink_cmdPropTx.pktLen = txPacket->len + addrSize;
EasyLink_cmdPropTx.pPkt = txBuffer;
if (txPacket->absTime != 0)
{
EasyLink_cmdPropTx.startTrigger.triggerType = TRIG_ABSTIME;
EasyLink_cmdPropTx.startTrigger.pastTrig = 1;
EasyLink_cmdPropTx.startTime = txPacket->absTime;
}
else
{
EasyLink_cmdPropTx.startTrigger.triggerType = TRIG_NOW;
EasyLink_cmdPropTx.startTrigger.pastTrig = 1;
EasyLink_cmdPropTx.startTime = 0;
}
// Send packet
RF_CmdHandle cmdHdl = RF_postCmd(rfHandle, (RF_Op*)&EasyLink_cmdPropTx,
RF_PriorityNormal, 0, EASYLINK_RF_EVENT_MASK);
// Wait for Command to complete
RF_EventMask result = RF_pendCmd(rfHandle, cmdHdl, (RF_EventLastCmdDone |
RF_EventCmdError));
if (result & RF_EventLastCmdDone)
{
status = EasyLink_Status_Success;
}
//Release the busyMutex
Semaphore_post(busyMutex);
return status;
}
可以把你射频配置(使用 StudioRF软件生成的参数)贴出来看一下吗?