nrf52832自定义蓝牙名字过长,广播显示不全

自定义蓝牙名字过长,广播显示不全
原因:nrf52832默认使用蓝牙4.x的广播,它的广播包数据只有32byte数据,当广播已经包含足够多的数据的时候,广播每次过长就会显示部分名称,即便你选择"BLE_ADVDATA_FULL_NAME"也一样。解决办法是使用蓝牙5.0,它的容量就会增加到254byte,具体添加代码如下:
/

  • @brief Function for initializing the Advertising functionality.
    /
    void advertising_init(void)
    {
    uint32_t err_code;
    ble_advertising_init_t adv_data;
    ble_advdata_service_data_t service_data; //定义蓝牙服务数据到广播包中
    int8_t tx_power_level = TX_POWER_LEVEL; //设置发射功率
    memset(&adv_data, 0, sizeof(adv_data));
    adv_data.advdata.name_type = BLE_ADVDATA_FULL_NAME;
    adv_data.advdata.include_appearance = true;
    adv_data.advdata.flags = BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE;
    adv_data.advdata.p_tx_power_level = &tx_power_level;
    adv_data.advdata.uuids_complete.uuid_cnt = sizeof(m_adv_uuids) / sizeof(m_adv_uuids[0]);
    adv_data.advdata.uuids_complete.p_uuids = m_adv_uuids;
    uint8_t my_adv_manuf_data[6] = {0};
    memcpy(my_adv_manuf_data, passwords, 6);
    ble_advdata_manuf_data_t manuf_specific_data; //定义制造商数据结构体变量
    manuf_specific_data.company_identifier = 0x0059; //0x0059是Nordic的制造商ID
    manuf_specific_data.data.p_data = my_adv_manuf_data; //指向自定义数据
    manuf_specific_data.data.size = sizeof(my_adv_manuf_data); //自定义数据的大小
    adv_data.advdata.p_manuf_specific_data = &manuf_specific_data; //定义自定义数据到广播包中
    adv_data.config.ble_adv_fast_enabled = true;
    adv_data.config.ble_adv_fast_interval = APP_ADV_INTERVAL;
    adv_data.config.ble_adv_fast_timeout = APP_ADV_DURATION;
    adv_data.evt_handler = on_adv_evt;
    //添加蓝牙5.0
    ***//
    adv_data.config.ble_adv_primary_phy = BLE_GAP_PHY_1MBPS;
    adv_data.config.ble_adv_secondary_phy = BLE_GAP_PHY_2MBPS;
    adv_data.config.ble_adv_extended_enabled = true;
    //***********************************************************//
    err_code = ble_advertising_init(&m_advertising, &adv_data);
    APP_ERROR_CHECK(err_code);
    ble_advertising_conn_cfg_tag_set(&m_advertising, APP_BLE_CONN_CFG_TAG);
    }
    注意:只能添加advdata的数据,srdata的数据在开启5.0之后添加会出错。加粗样式**
  • 24
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值