2020-10-28 13:31:47 信驰达科技 6

芯片型号:cc2640r2f

模块型号:rf-bm-4044b3

        我正在调试信驰达科技基于cc2640r2f的rf-bm-4044b3模块,以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。 


标签: cc2640r2f
银河国际galaxy首页
产品
新闻
联系
"));