[资料分享] CC2640R2F蓝牙调试——更改设备名称

[复制链接]
1234|8
 楼主| laocuo1142 发表于 2020-10-23 17:13 | 显示全部楼层 |阅读模式
调试CC2640R2F,以TI官方simple_peripheral例程为基础,更改手机端搜索到的蓝牙名称。
1、安卓和IOS搜索蓝牙名称有何区别?
      配置CC2640R2F时,有两个地方配置了蓝牙名,分别是attDeviceName[]和scanRspData[],其中scanRspData[]除了包含local_name外,还有发射功率和时间间隔信息。
安卓设备:
搜索显示的是local_name,需要在scanRspData中更改。
IOS设备:
      搜索显示的是attDeviceName,需要在attDeviceName中更改。采用lightblue调试,连接之后点击'show'可以显示local_name,由于attDeviceName需要在连接之后读取,所以之前连接过,在更改2640蓝牙名称后显示的还是修改前的名称,重新连接并断开,再次搜索即可变为修改后的名称。
2、程序中如何更改名称?
       上边介绍名称从哪里赋值,下面介绍怎么更改,其实很简单,使用初始化的两个函数:GAPRole_SetParameter()和GGS_SetParameter(),将名称数组按照要求进行赋值操作后,调用这两个函数就可以。项目需求要时刻更改显示名称,具体名称在另外任务中下发,故每次收到名称变更要求,就重新赋值并调用两个函数进行配置,实验显示名称会动态更改,配置时不需要关闭蓝牙协议栈任务。
3、更改名称时注意事项?
      例程中scanRspData[]按字节初始化,attDeviceName[]初始化为字符串,名称更改时一般为按字节形式赋值数组,所以scanRspData重新赋值即可,但更改attDeviceName时需注意,默认字符串赋值末尾会加'\0',未赋值的字节默认也是0,ASCII码中为控制字符,不可显示,会导致在'0'之后的内容显示不来,此为多次实验结果,具体原因需要查看GGS_SetParameter()的函数实现过程。故一定注意在更改蓝牙名称时,不要在名称中间出现0x00或ASCII中的不可显示字符,空格的话可直接赋值'  '或0x20。
dirtwillfly 发表于 2020-10-23 21:22 | 显示全部楼层
感谢分享
lvuu 发表于 2020-10-31 22:23 | 显示全部楼层
例程中scanRspData[]按字节初始化
610u 发表于 2020-10-31 22:24 | 显示全部楼层
zljiu 发表于 2020-11-10 09:45 | 显示全部楼层
at指令可以更改吗
coshi 发表于 2020-11-10 09:46 | 显示全部楼层
只能按照字节进行初始化吗
磨砂 发表于 2020-11-10 09:51 | 显示全部楼层
别的型号的芯片能用这种方式更改吗
晓伍 发表于 2020-11-10 09:52 | 显示全部楼层
一共有几种更改方式啊
八层楼 发表于 2020-11-10 09:52 | 显示全部楼层
介绍的真是太详细了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1296

主题

6239

帖子

15

粉丝
快速回复 在线客服 返回列表 返回顶部