CH59X/CH58X蓝牙主机设置白名单

可以通过白名单只扫描、连接特定的蓝牙设备(白名单中列出的)。

一、首先将白名单使能,通过宏开启

// TRUE to use white list during discovery
#define DEFAULT_DISCOVERY_WHITE_LIST        1//FALSE

// TRUE to use white list when creating link
#define DEFAULT_LINK_WHITE_LIST               1//;FALSE

二、如需要添加2个即以上的白名单设备,需要将SNV数量设置为对应的数量。默认只分配了一个可绑定设备名单。

 单个BLE_SNV占用256字节。默认将DataFlash的最后区域(77FFF - 77E00)即512字节。因此默认提供两个绑定数量的地址大小,但是只提供了1个绑定num。

举例:绑定四个设备

#ifndef BLE_SNV_NUM        //config.h中添加配置
#define BLE_SNV_NUM    4  //  - 如果配置了SNVNum参数,则需要对应修改Lib_Write_Flash函数内擦除的flash大小,大小为SNVBlock*SNVNum
#endif
cfg.SNVNum = (uint32_t)BLE_SNV_NUM;    //MCU.c中添加配置
#ifndef BLE_SNV_ADDR            //config.h中修改
#define BLE_SNV_ADDR      0x77D00-FLASH_ROM_MAX_SIZE
#endif

三、在初始化的时候添加对应的白名单MAC(注意SNV修改为2)。

uint8 mac0[6] = {0x01, 0x00, 0x00, 0xE4, 0xC2, 0x84};//指定mac地址
uint8 mac1[6] = {0x02, 0x00, 0x00, 0xE4, 0xC2, 0x84};//指定mac地址
uint8 macType = 0; //指定地址类型
 
uint8 ret = LL_AddWhiteListDevice(macType, mac0); //添加白名单mac,并查看返回值判断是否设置成功(0为成功)
printf("ret0 = %d\n", ret);
ret = LL_AddWhiteListDevice(macType, mac1); //添加白名单mac
printf("ret1 = %d\n", ret);
uint8 filter_policy = GAP_FILTER_POLICY_WHITE_CON;//允许任何设备扫描,但只允许白名单中的设备连接。
GAPRole_SetParameter( GAPROLE_ADV_FILTER_POLICY, sizeof( uint8 ), &filter_policy );//设置白名单

四、可以在程序运行过程中进行添加白名单,需要注意主机需要不在扫描的状态。即先关闭主机扫描,设置白名单,重新开启主机扫描。

以Observer观察者为例

{
    GAPRole_ObserverCancelDiscovery();                   //关闭扫描
    uint8 mac0[6] = {0x01, 0x00, 0x00, 0xE4, 0xC2, 0x84};//指定mac地址
    uint8 mac1[6] = {0x02, 0x00, 0x00, 0xE4, 0xC2, 0x84};//指定mac地址
    uint8 macType = 0; //指定地址类型
 
    uint8 ret = LL_AddWhiteListDevice(macType, mac0); //添加白名单mac
    printf("ret0 = %d\n", ret);
    ret = LL_AddWhiteListDevice(macType, mac1); //添加白名单mac
    printf("ret1 = %d\n", ret);
    uint8 filter_policy = GAP_FILTER_POLICY_WHITE_CON;//允许任何设备扫描,但只允许白名单中的设备连接。
    GAPRole_SetParameter( GAPROLE_ADV_FILTER_POLICY, sizeof( uint8 ), &filter_policy );//设置白名单
    GAPRole_ObserverStartDiscovery(DEVDISC_MODE_GENERAL ,1 , 1);    //重新开启扫描
}

 

posted @ 2025-11-02 22:09  小舟从此逝_1  阅读(5)  评论(0)    收藏  举报