CH585/4 CH592/1 CH583/2这些系列支持BLE5.0以上的协议的芯片是支持扩展广播的,扩展广播可以发送更长的广播数据,普通广播只能发送31字节数据。

在Peripheral_Init初始化时可以调用下方接口配置扩展广播:

// 定义广播类型变量
uint8_t ext_adv_type;
// 设置广播类型为可连接的扩展不可定向广播
ext_adv_type = GAP_ADTYPE_EXT_CONN_UNDIRECT; 
// 判断广播类型并配置相应参数
if (ext_adv_type == GAP_ADTYPE_EXT_SCAN_UNDIRECT) {
    // 可扫描不可连接模式
    PRINT("GAP_ADTYPE_EXT_SCAN_UNDIRECT\n");
    // 设置广播事件类型
    GAPRole_SetParameter(GAPROLE_ADV_EVENT_TYPE, sizeof(uint8_t), &ext_adv_type);
    // 设置扫描响应数据
    GAPRole_SetParameter(GAPROLE_SCAN_RSP_DATA, sizeof(ext_scan_response_data), ext_scan_response_data);   
} else if (ext_adv_type == GAP_ADTYPE_EXT_NONCONN_NONSCAN_UNDIRECT) {
    // 不可连接不可扫描模式
    PRINT("GAP_ADTYPE_EXT_NONCONN_NONSCAN_UNDIRECT\n");
    // 设置广播事件类型
    GAPRole_SetParameter(GAPROLE_ADV_EVENT_TYPE, sizeof(uint8_t), &ext_adv_type);
    // 设置广播数据
    GAPRole_SetParameter(GAPROLE_ADVERT_DATA, sizeof(ext_advertising_data), ext_advertising_data);   
} else if (ext_adv_type == GAP_ADTYPE_EXT_CONN_UNDIRECT) {
    // 可连接模式(当前执行的模式)
    PRINT("GAP_ADTYPE_EXT_CONN_UNDIRECT\n");
    // 设置广播事件类型
    GAPRole_SetParameter(GAPROLE_ADV_EVENT_TYPE, sizeof(uint8_t), &ext_adv_type);
    // 设置广播数据
    GAPRole_SetParameter(GAPROLE_ADVERT_DATA, sizeof(ext_advertising_data), ext_advertising_data); 
}

广播包和应答包数据参考:

// 扩展广播数据数组
static uint8_t ext_advertising_data[] = {
        // 第一个广播数据段:设备名称
        0x07, // 本段数据长度:7字节(1字节类型 + 6字节名称)
        GAP_ADTYPE_LOCAL_NAME_COMPLETE, // 完整设备名称类型
        'E','x','t','A','D','V',        // 设备名称:"ExtADV"
        // 第二个广播数据段:厂商自定义数据
        0x40, // 本段数据长度:64字节(1字节类型 + 63字节厂商数据)
        GAP_ADTYPE_MANUFACTURER_SPECIFIC, // 厂商自定义数据类型
        // 厂商测试数据(1-63的连续值,共63字节)
        0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A, // 1-10
        0x0B,0x0C,0x0D,0x0E,0x0F,0x10,0x11,0x12,0x13,0x14, // 11-20
        0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E, // 21-30
        0x1F,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28, // 31-40
        0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F,0x30,0x31,0x32, // 41-50
        0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C, // 51-60
        0x3D,0x3E,0x3F // 61-63
};

// 扩展扫描响应数据数组
static uint8_t ext_scan_response_data[] = {
        // 第一个扫描响应数据段:设备名称
        0x07, // 本段数据长度:7字节
        GAP_ADTYPE_LOCAL_NAME_COMPLETE, // 完整设备名称类型
        'E','x','t','R','S','P',        // 设备名称:"ExtRSP"
        // 第二个扫描响应数据段:厂商自定义数据
        0x40, // 本段数据长度:64字节
        GAP_ADTYPE_MANUFACTURER_SPECIFIC, // 厂商自定义数据类型
        // 厂商测试数据(64-126的连续值,共63字节)
        0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49, // 64-73
        0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,0x50,0x51,0x52,0x53, // 74-83
        0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D, // 84-93
        0x5E,0x5F,0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67, // 94-103
        0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F,0x70,0x71, // 104-113
        0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B, // 114-123
        0x7C,0x7D,0x7E // 124-126
};

 

posted on 2026-02-06 12:33  WCH蓝牙应用分享  阅读(0)  评论(0)    收藏  举报