工具/软件:
朋友、您好!我有关于 CC1312R1 中使用 Sub-1GHz 和 I2S 的工程的问题。
SDK 使用 simplelink_cc13x_cc26x_SDK_7_41_00_17、我在样本中基于 rfEchoRx 和 rfEchoTx 构建了工程。
症状是在将从 I2S 读取的数据发送到 Rx 时、Tx 仅发送 1 次带有 RF_cmdRun、然后接收到 Rx 是正常的、但不回显。 顺便说一下、
删除并执行 I2S 的 I2S_startClocks (i2sHandle) 时、Rx 回波正常工作。 请告诉我此症状的原因以及如何解决。
CMD_PROP_RX、CMD_PROP_TX 设置如下所示。
----- 。 Tx
/*根据应用需求修改 CMD_PROP_TX 和 CMD_PROP_RX 命令*/
RF_cmdPropTx_2gfsk1mbps868_0.pktLen = payload_length;
RF_cmdPropTx_2gfsk1mbps868_0.ppkt = txPacket;
RF_cmdPropTx_2gfsk1mbps868_0.startTriggerType = TRIG_NOW;//TRIG_NOW;//TRIG_ABSTIME;
RF_cmdPropTx_2gfsk1mbps868_0.startTrigger.pastTrig = 1;
RF_cmdPropTx_2gfsk1mbps868_0.StartTime = 0;
RF_cmdPropTx_2gfsk1mbps868_0.pNextOp =(RFC_radiOp_t *)&RF_cmdPropRx_2gfsk1mbps868_0;
/*仅在 TX 成功时运行 RX 命令*/
RF_cmdPropTx_2gfsk1mbps868_0.condition.rule = COND_Always;//COND_Always;//COND_STOP_ON_FALSE;
/*为接收的数据设置数据实体队列*/
rf_cmdProprx_2gfsk1mbps868_0.pQueue =&dataQueue;
/*丢弃 Rx 队列中忽略的数据包*/
RF_cmdPropRx_2gfsk1mbps868_0.rxConf.bAutoFlushIgnored = 1;
/*从 Rx 队列中丢弃带有 CRC 错误的数据包*/
rf_cmdProprx_2gfsk1mbps868_0.rxConf.bAutoFlushCrcErr = 1;
/*实现数据包长度过滤以避免 PROP_ERROR_RXBUF */
RF_cmdPropRx_2gfsk1mbps868_0.maxPktLen = payload_length;
RF_cmdPropRx_2gfsk1mbps868_0.pktConf.brepeatOk = 0;
RF_cmdPropRx_2gfsk1mbps868_0.pktConf.brepeatNok = 1;
RF_cmdPropRx_2gfsk1mbps868_0.pOutput =(uint8_t *)&rxStatistics;
/*接收操作将在命令启动后的 ms 内结束 RX_TIMEOUT */
RF_cmdPropRx_2gfsk1mbps868_0.endTriggerType = TRIG_NOW;//TRIG_NOW;//TRIG_REL_PREVEND;
RF_cmdPropRx_2gfsk1mbps868_0.condition.rule = COND_ALWAY;
RF_cmdPropRx_2gfsk1mbps868_0.EndTime = RX_TIMEOUT;
----- 。 Rx
/*根据应用需求修改 CMD_PROP_TX 和 CMD_PROP_RX 命令*/
/*为接收的数据设置数据实体队列*/
rf_cmdProprx_2gfsk1mbps868_0.pQueue =&dataQueue;
/*丢弃 Rx 队列中忽略的数据包*/
RF_cmdPropRx_2gfsk1mbps868_0.rxConf.bAutoFlushIgnored = 1;
/*从 Rx 队列中丢弃带有 CRC 错误的数据包*/
rf_cmdProprx_2gfsk1mbps868_0.rxConf.bAutoFlushCrcErr = 1;
/*实现数据包长度过滤以避免 PROP_ERROR_RXBUF */
rf_cmdProprx_2gfsk1mbps868_0.maxPktLen = payload_length;//payload_length+NUM_added_byts+1;
/*在正确接收到数据包时结束 RX 操作并继续到
*链中的下一个命令*/
RF_cmdPropRx_2gfsk1mbps868_0.pktConf.brepeatOk = 0;
RF_cmdPropRx_2gfsk1mbps868_0.pktConf.brepeatNok = 0;
RF_cmdPropRx_2gfsk1mbps868_0.startTriggerType = TRIG_NOW;
RF_cmdPropRx_2gfsk1mbps868_0.pNextOp =(RFC_radiOp_t *)&RF_cmdPropTx_2gfsk1mbps868_0;
/*仅在 RX 成功时运行 TX 命令*/
RF_cmdPropRx_2gfsk1mbps868_0.condition.rule = COND_STOP_ON_FALSE;//COND_ALWAY;//COND_STOP_ON_FALSE;
RF_cmdPropRx_2gfsk1mbps868_0.pOutput =(uint8_t *)&rxStatistics;
rf_cmdPropTx_2gfsk1mbps868_0.pktLen = payload_length;//payload_length+NUM_added_bytes+1;
RF_cmdPropTx_2gfsk1mbps868_0.ppkt = txPacket;
RF_cmdPropTx_2gfsk1mbps868_0.startTriggerType = TRIG_NOW;//TRIG_REL_PREVEND;
RF_cmdPropTx_2gfsk1mbps868_0.StartTime = 0;