本文以CH592为例进行演示,使用RF_PHY例程发送不可连接广播和接收不可连接广播。
一.初始化配置
void RF_Init(void)
{
uint8_t state;
rfConfig_t rf_Config;
tmos_memset(&rf_Config, 0, sizeof(rfConfig_t));
taskID = TMOS_ProcessEventRegister(RF_ProcessEvent);
rf_Config.accessAddress = 0x8E89BED6; // 使用蓝牙广播接入地址0x8E89BED6
rf_Config.CRCInit = 0x555555;
rf_Config.Channel = 39; //配置为37或38或39
rf_Config.Frequency = 2480000;
#if(RF_AUTO_MODE_EXAM)
rf_Config.LLEMode = LLE_MODE_AUTO;
#else
rf_Config.LLEMode = LLE_MODE_BASIC; //LLE_MODE_EX_CHANNEL不置1使用信道
#endif
rf_Config.rfStatusCB = RF_2G4StatusCallBack;
rf_Config.RxMaxlen = 251;
state = RF_Config(&rf_Config);
PRINT("rf 2.4g init: %x\n", state);
// { // RX mode
//#if(RF_AUTO_MODE_EXAM)
// rx_end_flag = FALSE;
//#endif
// state = RF_Rx(TX_DATA, 10, 0xFF, 0xFF);
// PRINT("RX mode.state = %x\n", state);
// }
{ // TX mode
tmos_set_event( taskID , SBP_RF_PERIODIC_EVT );
}
}
二.发送数据配置
uint8_t TX_DATA[] = {
0x02,0x02,0x03,0xE4,0xC2,0x84, //mac addr
0x04,0x09,'B','L','E' //adv data
};
if(events & SBP_RF_PERIODIC_EVT)
{
RF_Shut();
tx_end_flag = FALSE;
if(!RF_Tx(TX_DATA, sizeof(TX_DATA), 0x02, 0xFF))
{
RF_Wait_Tx_End();
}
tmos_start_task(taskID, SBP_RF_PERIODIC_EVT, 80);
return events ^ SBP_RF_PERIODIC_EVT;
}
三.接收数据处理
case RX_MODE_RX_DATA:
{
if (crc == 0) {
uint8_t i;
#if(RF_AUTO_MODE_EXAM)
RF_Wait_Rx_End();
#endif
uint8_t pkt_length = rxBuf[1];
int8_t rssi = (int8_t)rxBuf[0];
uint8_t adv_length = pkt_length - 6;
PRINT("adv_len:%u,rssi:%d\n",adv_length,rssi);
PRINT("mac_addr:");
for (i = 0; i < 6; i++) {
PRINT("%x ", rxBuf[i + 2]);
}
PRINT("\r\n");
PRINT("adv_data:");
for (i = 0; i < adv_length; i++) {
PRINT("%x ", rxBuf[i + 8]);
}
PRINT("\r\n");
// PRINT("rx recv, rssi: %d\n", (int8_t)rxBuf[0]);
// PRINT("len:%d-", rxBuf[1]);
// for (i = 0; i < rxBuf[1]; i++) {
// PRINT("%x ", rxBuf[i + 2]);
// }
// PRINT("\n");
} else {
if (crc & (1<<0)) {
PRINT("crc error\n");
}
if (crc & (1<<1)) {
PRINT("match type error\n");
}
}
#if(!RF_AUTO_MODE_EXAM)
tmos_set_event(taskID, SBP_RF_RF_RX_EVT);
#endif
break;
}
四.功能演示
1.发送
使用BLE调试助手进行搜索,搜索到对应MAC地址和蓝牙名称的广播设备:

2.接收
adv_len:12,rssi:-63
mac_addr:ff 2c 70 5e 40 e2
adv_data:b 16 ee fd 5 3 0 6 3 b5 ff 20
浙公网安备 33010602011771号