请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:CC1310 工具/软件:TI-RTOS
您好,团队
因为我的问题非常焦虑,而且上一篇文章的员工不得不离开办公室,所以我问了一个相关的问题。我有两个任务,所有这些任务都可以访问射频内核并执行命令。 一个任务是 WOR-RX 任务、一个任务是串行端口设置任务、它假定工作频率已设置。 为了避免资源使用冲突、我使用了信标来保护。 下面是我的代码逻辑、但它不会产生我想要的结果。当我在串行端口任务中无法获取信标时、我认为 RF 内核已经被占用、因此我立即执行了 DELETE 命令。 当我第一次设置频率时、STATUS = 0x83、然后设置 STATUS = 0x04。 请帮助!
/* WOR-RX 任务优先级=2*/ while (1) { /*获取对资源的访问*/ Semaphore_pend (semHandle、BIOS_wait_forever); /*设置未来的下一次唤醒时间*/RF_cmdPropRxSniff.StartTime += WOR_WAKE_UP_INTERVE_RAT_RAT_TICKs (500ms); /*计划 RX */rxCmdhandle = RF_postCmd (rfHandle、(RF_OP*)&RF_cmdPropRxHeff、RF_PriorityDr、RF_EventEntry1、RF_Entry1、RF_Entry1); rf_pendCmd (rfHandle、rxCmdhandle、0); //解锁资源*/ Semaphore_post (semHandle); } /* UART 任务优先级=4*/ while (1) { set Frequency instruction; …… if (semaphore_pend (semHandle、0)= false) { //if (!EasyLink_CmdHandle_IsValid (rxCmdhandle))返回 false; RF_Stat 状态= RF_CancelCmd (rfHandle、rxCmdhandle、1); UART_WRITE (uartHandle、STATUS、1); //if (status!= RF_StatusSuccessess)返回 false; } … }