微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 如何CC2640修改广播的名字?

如何CC2640修改广播的名字?

时间:10-02 整理:3721RD 点击:

各位好,

我想做成BLE广播的名字可以通过我的串口就行修改。

1.通过串口将新的广播名字写入Flash。

2.复位上电,去Flash中读取新的名字。

3.BLE广播新的名字。

问题:我读取Flash可以读取新的名字,但是BLE广播还是原来的名字。

我试着修改一下scanRspData的数组,但是好像没有生效,

我参考可HCI的命令集,如下:

// GAP - SCAN RSP data (max size = 31 bytes)
static uint8_t scanRspData[] =
{
// complete name
0x14, // length of this data
GAP_ADTYPE_LOCAL_NAME_COMPLETE,
0x53, // 'S'
0x69, // 'i'
0x6d, // 'm'
0x70, // 'p'
0x6c, // 'l'
0x65, // 'e'
0x42, // 'B'
0x4c, // 'L'
0x45, // 'E'
0x50, // 'P'
0x65, // 'e'
0x72, // 'r'
0x69, // 'i'
0x70, // 'p'
0x68, // 'h'
0x65, // 'e'
0x72, // 'r'
0x61, // 'a'
0x6c, // 'l'

// connection interval range
0x05, // length of this data
GAP_ADTYPE_SLAVE_CONN_INTERVAL_RANGE,
LO_UINT16(DEFAULT_DESIRED_MIN_CONN_INTERVAL), // 100ms
HI_UINT16(DEFAULT_DESIRED_MIN_CONN_INTERVAL),
LO_UINT16(DEFAULT_DESIRED_MAX_CONN_INTERVAL), // 1s
HI_UINT16(DEFAULT_DESIRED_MAX_CONN_INTERVAL),

// Tx power level
0x02, // length of this data
GAP_ADTYPE_POWER_LEVEL,
0 // 0dBm
};

修改广播内容及名字可以参考这篇文档: http://blog.csdn.net/stephen_lu_fahai/article/details/50481070

Hi ViKi,

我稍微动了一个数组scanRspData,然后重新烧录的程序后,BLE广播就看不到了。

static uint8_t scanRspData[] =
{
// complete name
0x14, // length of this data
GAP_ADTYPE_LOCAL_NAME_COMPLETE,
0x53, // 'S'
0x69, // 'i'
0x6d, // 'm'
0x70, // 'p'
0x6c, // 'l'
0x65, // 'e'
0x42, // 'B'
0x4c, // 'L'
0x45, // 'E'
0x50, // 'P'
0x65, // 'e'
0x72, // 'r'
0x69, // 'i'
0x70, // 'p'
0x68, // 'h'
0x65, // 'e'
0x72, // 'r'
0x61, // 'a'
0x6c, // 'l'

// connection interval range
0x05, // length of this data
GAP_ADTYPE_SLAVE_CONN_INTERVAL_RANGE,
LO_UINT16(DEFAULT_DESIRED_MIN_CONN_INTERVAL), // 100ms
HI_UINT16(DEFAULT_DESIRED_MIN_CONN_INTERVAL),
LO_UINT16(DEFAULT_DESIRED_MAX_CONN_INTERVAL), // 1s
HI_UINT16(DEFAULT_DESIRED_MAX_CONN_INTERVAL),

// Tx power level
0x02, // length of this data
GAP_ADTYPE_POWER_LEVEL,
0 // 0dBm
};

我还发现一个这样的结构,这是干甚的?这个不会需要和上面一样吧?

// GAP GATT Attributes
static uint8_t attDeviceName[GAP_DEVICE_NAME_LEN] = "Simple BLE Peripheral";

修改scanRspData之前,需要先停止广播再使能。

attDeviceName的详解情况这边: http://www.deyisupport.com/question_answer/wireless_connectivity/bluetooth/f/103/t/70710.aspx

Hi Viki Shi,

问题已经解决了,经过多个测试,ios版本比较低的手机把attDeviceName作为显示的名字;ios版本比较高的,把scanRspData作为显示的名字。

安卓并未测试。

谢谢分享。蓝牙兼容是个问题!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top