前言
现在为止也开发了许多杰理TWS蓝牙耳机项目SDK的案子,在调试案子时不断的向前辈们学习到了很多关于蓝牙TWS耳机专业的知识。想在这里做一个学习汇总,方便各位同行和对杰理芯片SDK感兴趣的小伙伴们学习;
本章详细讲解杰理SDK开发中更改蓝牙名功能
在我们进行杰理蓝牙耳机、蓝牙音响等蓝牙产品软件开发时,往往会遇到客户要求改不同的蓝牙名使其在客户端进行清晰的连接使用。在使用杰理SDK软件开发时,可以使用配置工具方便的进行更改。在本章详细演示,并深入代码中进行关联;因此本人发现出有两种方法可以更改产品蓝牙名;
方式1:使用杰理SDK中携带的配置工具进行更改;此方法非常快速好用
方式2:在杰理SDK代码中进行更改;
方法1:使用杰理SDK中携带的配置工具进行更改------演示教程
步骤1:我们打开一个SDK软件包,文件地址:"D:\ac696n_soundbox_sdk_v1.7.0\SDK\cpu\br25\tools\soundbox\standard\ac696x配置入口.jlxproj" 如图所示:

步骤2:在弹出的选项卡中选择配置工具;如图所示

步骤3:在配置工具中点击蓝牙配置,在蓝牙配置选项卡中的经典蓝牙选项中修改自己想要的蓝牙名,最后点击保存bin文件;

步骤4:修改完蓝牙名后,需要对SDK代码进行编译或者点击"download.bat"批处理文件进行编译;这样我们将升级文件升级到蓝牙产品中就可以观察到啦!如图所示

方法2:在杰理SDK代码中进行更改
这一方法可以使得我们更加生动的了解杰理SDK代码是如何于配置工具进行关联的;
步骤1:首先打开"user_cfg.c"或者"user_cfg_new.c"文件中不同杰理芯片SDK的文件命名有点点不同,一般都是user_cfg开头的;如图所示我们可以观察到经典蓝牙、蓝牙MAC地址、发射功率等一些重要参数;

步骤2:在文件中查找bt_get_local_name()函数。这个函数可以是我们在SDK内部进行蓝牙名的更改;

步骤3:在函数中修改代码如图所示;

代码讲解:
const char *bt_get_local_name() //蓝牙名修改点
{
//return (const char *)(bt_cfg.edr_name); //原本函数代码
const u8 *mac_addr; // 声明无符号8位整数指针(指向MAC地址)
mac_addr = bt_get_mac_addr(); // 获取设备MAC地址(小端序存储)
sprintf(bt_cfg.edr_name, "JL-AC79XX-%02X%02X", mac_addr[4], mac_addr[5]);
//将格式化数据写入bt_cfg.edr_name字符数组。
return (const char *)(bt_cfg.edr_name);
}
知识小点:
sprintf函数 是 C 语言中一个非常强大且常用的函数,它的全称是 string print。简单来说,它的作用就是:将格式化的数据"打印"到一个字符串中。你可以把它想象成 printf,只不过 printf 是把内容输出到控制台(屏幕),而 sprintf 是把内容输出到你指定的一个字符数组(字符串)里。
sprintf函数原型:
#include <stdio.h>
int sprintf(char *str, const char *format, ...);
1、str: 这是一个指向字符数组的指针,sprintf 会把生成的字符串存储到这个数组中。
2、format: 这是一个格式化字符串,和 printf 中使用的格式化字符串完全一样(例如如"%d"、"%f"、"%s" 等)。
3、...: 这表示可变参数列表,对应于 format 字符串中的占位符。
4、返回值: 如果成功,返回写入到 str 中的字符总数(不包括自动添加在字符串末尾的 \0);如果失败,返回一个负数。
如果后面没有要填的变量,直接不传就行,sprintf 照样能用;简单用法:只复制原样字符串
示例:
char buf[100];
sprintf(buf, "hello world");
结果:buf 里就是 "hello world"。
修改展示:

制作不易!喜欢的小伙伴给个小赞赞!喜欢我的小伙伴点个关注!有不懂的地方和需要的资源随时问我哟!