杰理AC63蓝牙名修改

发布时间:2024年01月11日

杰理SDK会自动从VM区域读取蓝牙名字。代码如下,在user_cfg.c文件里。

    //-----------------------------CFG_BT_NAME--------------------------------------//
    ret = syscfg_read(CFG_BT_NAME, tmp, 32);
    if (ret < 0) {
        log_info("read bt name err\n");
    } else if (ret >= LOCAL_NAME_LEN) {
        memset(bt_cfg.edr_name, 0x00, LOCAL_NAME_LEN);
        memcpy(bt_cfg.edr_name, tmp, LOCAL_NAME_LEN);
        bt_cfg.edr_name[LOCAL_NAME_LEN - 1] = 0;
    } else {
        memset(bt_cfg.edr_name, 0x00, LOCAL_NAME_LEN);
        memcpy(bt_cfg.edr_name, tmp, ret);
    }

改名办法很简单就是把这一段注释掉,使用自己的名字。

    //蓝牙名修改
    memset(bt_cfg.edr_name, 0x00, LOCAL_NAME_LEN);
    extern u8 my_ble_name[20];
    u8 len = strlen(my_ble_name);
    if(len>15)
    {
        len = 15;//截断超长的蓝牙名字
    }
    memcpy(bt_cfg.edr_name, my_ble_name, len);
    /* g_printf("bt name config:%s\n", bt_cfg.edr_name); */
    log_info("bt name config:%s\n", bt_cfg.edr_name);

但是这样修改只是改了EDR蓝牙名字,杰理的SDK会自动把BLE的名字会扩展成*****(BLE)。如果不想显示BLE字样,可以在le_gatt_common.c文件里把BLE扩展的字符去掉即可。

//static const char ble_ext_name[] = "(BLE)";
static const char ble_ext_name[1] = 0;//不显示BLE字样

当然也可以把这个蓝牙名字保存在VM区域,每次上电自动读取。杰理提供了相关的读写函数,在syscfg_id.h文件里。

/* --------------------------------------------------------------------------*/
/**
 * @brief 读取对应配置项的内容
 *
 * @param  [in] item_id 配置项ID号
 * @param  [out] buf 用于存储read数据内容
 * @param  [in] len buf的长度(byte), buf长度必须大于等于read数据长度
 *
 * @return 1)执行正确: 返回值等于实际上所读到的数据长度(大于0);
 *         2)执行错误: 返回值小于等于0, 小于0表示相关错误码;
 */
/* --------------------------------------------------------------------------*/
int syscfg_read(u16 item_id, void *buf, u16 len);

/* --------------------------------------------------------------------------*/
/**
 * @brief 写入对应配置项的内容
 *
 * @param  [in] item_id 配置项ID号
 * @param  [in] buf 用于存储write数据内容
 * @param  [in] len buf的长度(byte), buf长度必须大于等于write数据长度
 *
 * @return 1)执行正确: 返回值等于实际上所读到的数据长度(大于0);
 *         2)执行错误: 返回值小于等于0, 小于0表示相关错误码;
 */
/* --------------------------------------------------------------------------*/
int syscfg_write(u16 item_id, void *buf, u16 len);
文章来源:https://blog.csdn.net/ydgd118/article/details/135525496
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。