Hi ,在使用CC1310时发现,一批板子中好多模块,在支持cmdFS命令时,一直无法执行完成,导致系统复位
/** * \note 通过radio发送数据 * \param*buff 数据缓冲区指针 * \paramlen 数据长度 * \return状态:0 发送失败;1 发送成功。 */ static uint8_t radio_trans(uint8_t *buff, uint16_t len) { RF_cmdPropTx.pktLen = len; RF_cmdPropTx.pPkt = buff; RF_Params_init(&rfParams); rfHandle = RF_open(&rfObject, &RF_prop, (RF_RadioSetup *)&SLAVE_T_TX_RF_cmdPropRadioDivSetup, &rfParams);if (rfHandle!=NULL){// Run a proprietary Fs commandRF_runCmd(rfHandle, (RF_Op*)&SLAVE_T_TX_RF_cmdFs, RF_PriorityNormal, NULL, 0);// Schedule a proprietary TX commandRF_runCmd(rfHandle, (RF_Op*)&RF_cmdPropTx, RF_PriorityNormal, NULL, 0);} RF_close(rfHandle);return (1); }
代码如上,这是怎么回事啊,总感觉CC1310很神秘似的,难以掌握!
Felix ZF:
是否是数据还没有发送完成呢?
你可以尝试在确定发送完成后再调用RF_close()。
RF_EventMask result = RF_runCmd(rfHandle, (RF_Op*)&RF_cmdPropTx, RF_PriorityNormal, NULL, 0); if (!(result & RF_EventLastCmdDone)) { /* Error */ while(true); }