FR801xH-SDK\examples\none_evm\ble_AT的SDK烧录后,蓝牙搜索显示的是蓝牙鼠标设备,在哪位置可以修改蓝牙设备类型?
-
FR801xH-SDK\examples\none_evm\ble_AT的SDK烧录后,蓝牙搜索显示的是蓝牙鼠标设备,在哪位置可以修改蓝牙设备类型?
-
应该是广播包的字段里面有影响
-
-
需要自己去修改广播内容,修改服务uuid 那一项。
-
因为在广播包中有个字段声明了自己是 HID 设备,所以手机扫描到后是键鼠的图标。
- 代码如下
void at_init_advertising_parameter(void)
{uint8_t *pos; uint8_t adv_data[0x1C]; uint8_t adv_data_len = 0; pos = &adv_data[0]; uint8_t manufacturer_value[] = {0x00,0x00}; *pos++ = sizeof(manufacturer_value) + 1; *pos++ = '\xff'; memcpy(pos, manufacturer_value, sizeof(manufacturer_value)); pos += sizeof(manufacturer_value); uint16_t uuid_value = 0xFF03 ; // 将 HID_SERV_UUID 改成你想设置的 任意 2字节 UUID *pos++ = sizeof(uuid_value) + 1; *pos++ = '\x03'; memcpy(pos, (uint8_t *)&uuid_value, sizeof(uuid_value)); pos += sizeof(uuid_value); adv_data_len = ((uint32_t)pos - (uint32_t)(&adv_data[0])); gap_adv_param_t adv_param; adv_param.adv_mode = GAP_ADV_MODE_UNDIRECT; adv_param.adv_addr_type = GAP_ADDR_TYPE_PUBLIC; adv_param.adv_chnl_map = GAP_ADV_CHAN_ALL; adv_param.adv_filt_policy = GAP_ADV_ALLOW_SCAN_ANY_CON_ANY; adv_param.adv_intv_min = adv_int_arr[gAT_buff_env.default_info.adv_int]; adv_param.adv_intv_max = adv_int_arr[gAT_buff_env.default_info.adv_int]; gap_set_advertising_param(&adv_param); gAT_ctrl_env.curr_adv_int = adv_param.adv_intv_min; gap_set_advertising_data(adv_data,adv_data_len); at_init_adv_rsp_parameter();
}
-