從機例程,在Peripheral_LinkEstablished
連接時只增加一次白名單,LL_AddWhiteListDevice(0,event->devAddr);?
下次上電時,不再執(zhí)行LL_AddWhiteListDevice,發(fā)現(xiàn)是連不上主機的,請問,LL_AddWhiteListDevice這個函數(shù)增加后不是將數(shù)據(jù)保存到dataflash嗎?難道是每次上電都要重復增加一次白名單?
static void Peripheral_LinkEstablished(gapRoleEvent_t *pEvent)
{
。。。
? ? ? ? // Start read rssi
? ? ? ? tmos_start_task(Peripheral_TaskID, SBP_READ_RSSI_EVT, SBP_READ_RSSI_EVT_PERIOD);
? ? ? ? if(light_get_master_mac_flag() == 0xFF) {
? ? ? ? ? ? int ret = LL_AddWhiteListDevice(0,event->devAddr); //
? ? ? ? ? ? if(ret == SUCCESS) {
? ? ? ? ? ? ? ? light_set_master_mac_flag(0x00);
? ? ? ? ? ? ? ? uint8_t filter_policy = GAP_FILTER_POLICY_WHITE;
? ? ? ? ? ? ? ? GAPRole_SetParameter(GAPROLE_ADV_FILTER_POLICY, sizeof( uint8 ), &filter_policy);
? ? ? ? ? ? }
? ? ? ? ? ? PRINT("ret:%d\n", ret);
? ? }
}
上電程序會初始化從頭運行,本身就會運行到白名單初始化的地方。需要用白名單功能就將白名單的MAC添加到白名單函數(shù)并調用。
白名單沒有操作dataflash,綁定會操作dataflash。573作為從機連接手機使用白名單功能用到dataflash,是因為必須要綁定獲取靜態(tài)地址。
藍牙BLE從機Peripheral講解四(白名單/BLE_WhiteList) - SweetTea_lllpc - 博客園 (cnblogs.com)
要實現(xiàn)長按后執(zhí)行禁用白名單,在按鍵里執(zhí)行
? ? LL_ClearWhiteList();
? ? uint8_t filter_policy = GAP_FILTER_POLICY_ALL;
????initial_advertising_enable = FALSE;
? ? GAPRole_SetParameter(GAPROLE_ADVERT_ENABLED, sizeof(uint8_t), &initial_advertising_enable);
? ? GAPRole_SetParameter(GAPROLE_ADV_FILTER_POLICY, sizeof( uint8 ), &filter_policy);
? ? initial_advertising_enable = TRUE;
? ? GAPRole_SetParameter(GAPROLE_ADVERT_ENABLED, sizeof(uint8_t), &initial_advertising_enable);
不起作用,其它主機還是無法連接,重新上電,執(zhí)行一下上面函數(shù),才能連接,請幫忙分析一下是什么原因,謝謝
關閉白名單功能函數(shù)調用后,可以復位,或者嘗試廣播重新使能。