您好!
我的项目从配置阶段开始。 在此阶段、安装 cc1352R 器件的电路板会在开始时等待20秒、等待一些配置数据包。 如果没有配置数据包、它将更改其射频操作链(从 RX-TX 到 TX-RX)、并发送包含 IMU、ADC 和其他传感器数据的数据包。 为此、我在 while (1)中编写了以下代码:
/*发送数据包*/ if (configurationPhase =0){ //配置阶段结束 终端 Reason = rf_runCmd (rfHandle、(rf_Op*)&rf_cmdPropTx、rf_PriorityNormal、 sensorBoardRFCallback、(RF_EventCmdDone | RF_EventRxEntryDone | RF_EventLastCmdDone | RF_EventRxNOk)); } 否则、如果(配置阶段= 1){ //仍处于配置阶段 终端 Reason = rf_postCmd (rfHandle、(rf_Op*)&rf_cmdPropRx、rf_PriorityNormal、 sensorBoardRFCallback、(RF_EventCmdDone | RF_EventRxEntryDone | RF_EventLastCmdDone | RF_EventRxNOk)); }
sensorBoardRFCallback 将对接收到的数据包进行反序列化、并根据其性质创建正确的响应。
我想的是:如果没有接收到的数据包、电路板就不会执行任何操作。 20秒后开始发送一些具有有效载荷的数据包。
但我注意到代码冻结、所以我从 RF_cmdPropRx 读取 terminationReason 和 cmdStatus、获取 cmdStatus = 2、这意味着操作尚未完成? (根据 TRM 第2040页表25-182)
如果是、我如何解决此问题?
此致、
Vincenzo