WCH沁恒单片机
直播中

卓侨汉

9年用户 1156经验值
擅长:MEMS/传感技术
私信 关注
[问答]

请问RF_PHY如何控制发送?

老师们好,初次接触2.4G芯片,今天尝试2.4G直接发送、接收,但没搞清楚如何主动控制手法,请指点一下,函数中的SBP_RF_PERIODIC_EVT位应该是与发送有关,这个应该怎么控制呢,或者有没有相关的说明资料发我学习下也可以,谢谢。
/*********************************************************************
* @fn      RF_ProcessEvent
*
* @brief   RF 事件处理
*
* @param   task_id - 任务ID
* @param   events  - 事件标志
*
* @return  未完成事件
*/
uint16_t RF_ProcessEvent(uint8_t task_id, uint16_t events)
{
    if(events & SYS_EVENT_MSG)
    {
        uint8_t *pMsg;


        if((pMsg = tmos_msg_receive(task_id)) != NULL)
        {
            // Release the TMOS message
            tmos_msg_deallocate(pMsg);
        }
        // return unprocessed events
        return (events ^ SYS_EVENT_MSG);
    }
    if(events & SBP_RF_START_DEVICE_EVT)
    {
        tmos_start_task(taskID, SBP_RF_PERIODIC_EVT, 1000);
        return events ^ SBP_RF_START_DEVICE_EVT;
    }
    if(events & SBP_RF_PERIODIC_EVT)
    {
        RF_Shut();
        RF_Tx(TX_DATA, 10, 0xFF, 0xFF);
        tmos_start_task(taskID, SBP_RF_PERIODIC_EVT, 1000);
        return events ^ SBP_RF_PERIODIC_EVT;
    }
    if(events & SBP_RF_RF_RX_EVT)
    {
        uint8_t state;
        RF_Shut();
        TX_DATA[0]++;
        state = RF_Rx(TX_DATA, 10, 0xFF, 0xFF);
        PRINT("RX mode.state = %xn", state);
        return events ^ SBP_RF_RF_RX_EVT;
    }
    return 0;
}

回帖(1)

张艳梅

2022-10-17 10:51:18
这里的发送是通过TMOS管理时间进行定时的发送处理,但是具体2.4G往外发包是在底层进行的处理,因此你可以修改对应TMOS任务的时间参数会发现收发的速度会随之变化,底层目前暂不开放,可以先从应用层着手查看。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分