接收端 RF_runCm语句一直在执行中,没有返回值,也没有运行下一句

环境:win7,SDK:simplelink_cc2640r2_sdk_3_20_00_21,例程:rfPacketRx_CC2640R2_LAUNCHXL_nortos_ccs

语句: RF_EventMask terminationReason = RF_runCmd(rfHandle, (RF_Op*)&RF_cmdPropRx, RF_PriorityNormal, &callback, RF_EventRxEntryDone);

问题描述:

                 编译烧写成功,但运行时一直卡在 RF_EventMask terminationReason = RF_runCmd(rfHandle, (RF_Op*)&RF_cmdPropRx, RF_PriorityNormal, &callback, RF_EventRxEntryDone);这一句,没有返回值,也没有运行下一句。进行debug调试时,也是一直卡在这一句。

问题:运行RF_runCmd(rfHandle, (RF_Op*)&RF_cmdPropRx, RF_PriorityNormal, &callback, RF_EventRxEntryDone);时是否要注意配置或修改什么参数值??

或者什么问题会导致一直卡在这里?

SDK:simplelink_cc2640r2_sdk_3_20_00_21 , 例程:rfPacketTx_CC2640R2_LAUNCHXL_tirtos_ccs,芯片: CC2640R2F,CCS  9.0.1.00004

1 个回复

  • rfPacketRx example被编写为以红色标记的注释状态永久保留在RX中。

    发出RF_runCmd()时,在此命令运行到最后之前,代码不会继续执行。

    如果您查看命令的设置:
    RF_cmdPropRx.pktConf.bRepeatOk = 1;
    RF_cmdPropRx.pktConf.bRepeatNok = 1;

    当接收到数据包时,芯片将重新输入RX,因此在正常操作下,您将永远不会超过此行。

    如何编写代码取决于您想做什么。如果您想在接收或类似消息时使用UART进行打印,则应在RX回调中发布一个信号量,并在单独的任务中对此进行标记。建议您参考这个帖子中发布的代码:
    https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz/f/156/t/647411

    若该回复解决了您的问题,请点击“确认此为答案”,谢谢。