老師們好,初次接觸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;
}