RF_PHY如何控制發(fā)送?

老師們好,初次接觸2.4G芯片,今天嘗試2.4G直接發(fā)送、接收,但沒搞清楚如何主動控制手法,請指點一下,函數(shù)中的SBP_RF_PERIODIC_EVT位應該是與發(fā)送有關,這個應該怎么控制呢,或者有沒有相關的說明資料發(fā)我學習下也可以,謝謝。

/*********************************************************************

?* @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;

}


這里的發(fā)送是通過TMOS管理時間進行定時的發(fā)送處理,但是具體2.4G往外發(fā)包是在底層進行的處理,因此你可以修改對應TMOS任務的時間參數(shù)會發(fā)現(xiàn)收發(fā)的速度會隨之變化,底層目前暫不開放,可以先從應用層著手查看。


RF_phy例程本身會不停的發(fā)送數(shù)據(jù)嗎,我兩塊demo板燒錄了phy例程,仿真其中一塊,并沒有追蹤到有接收的數(shù)據(jù)


image.png

這里默認是RX的,兩塊開發(fā)板可以一塊燒錄RX,另一塊燒錄TX的進行數(shù)據(jù)透傳驗證。


只有登錄才能回復,可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频