大家好、我使用的是 CC2652P、SimpleLink SDKv4.20。 我的应用基于 TI154stack sensor_2_4g。
我需要控制 CW 测试。
我将 RF_OPEN ()与 RF_cmdRadioSetup (命令编号0x0802)搭配使用。
然后、我将 RF_runCmd ()与 RF_cmdF (命令编号0x0803)一起使用。
最后、我将 RF_postCmd 与 RF_cmdTxTest (命令编号0x0808)一起用于 TX CW。
在 RF_cmdTxTest 中、结束触发器类型为0x1、因此 CW 永远不会停止。
现在、CW 工作正常。 我可以在频谱分析仪上观察到2.4G 频谱。
一段时间后、我需要停止 CW。
我尝试了两种不同的方法来停止 CW、但它们都失败了。
第一种方法是:
当我想停止 CW 时、我按 如下方式设置 RF_cmdTxTest:
.endTrigger.triggerType = 0x4、 .EndTime = 4000
然后、我 再次使用 RF_cmdF 调用 RF_runCmd ()、使用 RF_cmdTxTest 调用 RF_postCmd。
我希望 CW 将重新启动并持续1ms、然后停止。
第二条路是:
当我想停止 CW 时、我将 RF_runCmd 与 RF_cmdTrigger 一同使用、如下所示:
RFC_CMD_TRIGGER_t RF_cmdTrigger = { .commandNo = 0x0808、 .triggerNo = 0x33 };
Rf_cmdTxTest 中的结束触发器编号 也是0x33、如下所示:
RFC_CMD_TX_TEST_t RF_cmdTxTest_ie154_0 = { .commandNo = 0x0808、 .status = 0x0000、 .pNextOp = 0、 .StartTime = 0x00000000、 .startTrigger.triggerType = 0x0、 .startTrigger.bEnaCmd = 0x0、 .startTrigger.triggerNo = 0x0、 .startTrigger.PastTrig = 0x0、 .condition.rule = 0x1、 .condition.nSkip = 0x0、 config.bUseCw = 0x1、 config.bFsOff = 0x0、 config.whitenMode = 0x2、 .__dummy0 = 0x00、 txWord = 0xABCD、 .__dummy1 = 0x00、 endTrigger.triggerType = 1、 .endTrigger.bEnaCmd = 0x1、 .endTrigger.triggerNo = 0x33、 .endTrigger.PastTrig = 0x00、 syncdWord = 0x71764129、 .EndTime = 0x00000000 };
这两种方法都无法停止 CW 并触发错误,进入 Main_excHandler ()。
那么、如何在启动后停止 CW?