ch573增加白名单问题
  1. 从机例程,在Peripheral_LinkEstablished

    连接时只增加一次白名单,LL_AddWhiteListDevice(0,event->devAddr);?

  2. 下次上电时,不再执行LL_AddWhiteListDevice,发现是连不上主机的,请问,LL_AddWhiteListDevice这个函数增加后不是将数据保存到dataflash吗?难道是每次上电都要重复增加一次白名单?

    static void Peripheral_LinkEstablished(gapRoleEvent_t *pEvent)

  3. {

  4. 。。。

  5. ? ? ? ? // Start read rssi

  6. ? ? ? ? tmos_start_task(Peripheral_TaskID, SBP_READ_RSSI_EVT, SBP_READ_RSSI_EVT_PERIOD);

  7. ? ? ? ? if(light_get_master_mac_flag() == 0xFF) {

  8. ? ? ? ? ? ? int ret = LL_AddWhiteListDevice(0,event->devAddr); //

  9. ? ? ? ? ? ? if(ret == SUCCESS) {

  10. ? ? ? ? ? ? ? ? light_set_master_mac_flag(0x00);


  11. ? ? ? ? ? ? ? ? uint8_t filter_policy = GAP_FILTER_POLICY_WHITE;

  12. ? ? ? ? ? ? ? ? GAPRole_SetParameter(GAPROLE_ADV_FILTER_POLICY, sizeof( uint8 ), &filter_policy);

  13. ? ? ? ? ? ? }

  14. ? ? ? ? ? ? PRINT("ret:%d\n", ret);

  15. ? ? }

  16. }

上电程序会初始化从头运行,本身就会运行到白名单初始化的地方。需要用白名单功能就将白名单的MAC添加到白名单函数并调用。

白名单没有操作dataflash,绑定会操作dataflash。573作为从机连接手机使用白名单功能用到dataflash,是因为必须要绑定获取静态地址。

蓝牙BLE从机Peripheral讲解四(白名单/BLE_WhiteList) - SweetTea_lllpc - 博客园 (cnblogs.com)


要实现长按后执行禁用白名单,在按键里执行

    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);

不起作用,其它主机还是无法连接,重新上电,执行一下上面函数,才能连接,请帮忙分析一下是什么原因,谢谢



关闭白名单功能函数调用后,可以复位,或者尝试广播重新使能。


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