环境: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);时是否要注意配置或修改什么参数值??
或者什么问题会导致一直卡在这里?
Annie Liu:
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