自从在蓝牙门诊部坐诊以来,蓝牙的问题越来越多,涉及方面越来越广,上回说到原相蓝牙鼠标的案例,虽然通过有线的方式,插在电脑上,可以做为电脑的一个设备,显得很酷。
然而无线蓝牙的方式,更加洒脱!
在蓝牙设备满天飘的年代,到底哪个是我的蓝牙呢?
先以原相BLE 蓝牙芯片PAR2822方案为例,谈一谈原相鼠标蓝牙名称的修改。
1、蓝牙名称设置
在 ms_param_profile_1.h 中有以下两个定义:
#define DEVICE_NAME "BT Mouse"
#define COMPLETE_DEV_NAME "BT Mouse"
这两个可供修改
DEVICE_NAME 是蓝牙搜索到的名称, COMPLETE_DEV_NAME 理论上是完成连接后的名称显示
2、代码解说
在 void ble_adv_start(uint8_t pairing_en) 中
#if (CONFIG_DEV_NAME_TYPE == SHORTENED_LOCAL_NAME)
adv_data[adv_data_sz + 1] = 0x08;
#elif (CONFIG_DEV_NAME_TYPE == COMPLETE_LOCAL_NAME)
adv_data[adv_data_sz + 1] = 0x09;
#endif
取决于 CONFIG_DEV_NAME_TYPE,其中定义如下:
/* Device Name Config */
#define SHORTENED_LOCAL_NAME 0
#define COMPLETE_LOCAL_NAME 1
#define CONFIG_DEV_NAME_TYPE COMPLETE_LOCAL_NAME
在 static void _ble_att_read_cb(struct gap_att_read_evt* evt) 中,也有以下代码,决定蓝牙的名称:
#if (CONFIG_DEV_NAME_TYPE == SHORTENED_LOCAL_NAME)
memcpy(&dev_name[0], (const uint8_t*)COMPLETE_DEV_NAME, strlen(COMPLETE_DEV_NAME));
dev_name_sz = strlen(COMPLETE_DEV_NAME);
#elif (CONFIG_DEV_NAME_TYPE == COMPLETE_LOCAL_NAME)
memcpy(&dev_name[0], (const uint8_t*)DEVICE_NAME, strlen(DEVICE_NAME));
dev_name_sz = strlen(DEVICE_NAME);
#endif
综述:
从代码上分析,蓝牙名称起关键决定作用的是DEVICE_NAME 等定义,可以进行修改,客户可以自行修改。我让我的蓝牙名称改成“那就不是事儿”,天空飘着六个字怎么样?
名字是中文的吗?这个可以有吗?以后有机会详细!
这次博文就到这了
大大通方案与博文,十分精彩,引人入胜,如果不在登录状态的看官,大大通则视为“匆匆之过客”很快就“不见庐山真面目”了,看的正过瘾啊!
各位看官!不要着急!只需一个小小的动作而已:登录!
请扫描下面二维码注册:
请多多关注小编与大大通平台,我们会不断分享最新的热点技术
好啦,谢谢大家观看啦!我们下期见!
评论