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 = %x\n", state);

        return events ^ SBP_RF_RF_RX_EVT;

    }

    return 0;

}


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


RF_phy例程本身会不停的发送数据吗,我两块demo板烧录了phy例程,仿真其中一块,并没有追踪到有接收的数据


image.png

这里默认是RX的,两块开发板可以一块烧录RX,另一块烧录TX的进行数据透传验证。


只有登录才能回复,可以选择微信账号登录