如何CC2640修改广播的名字?
各位好,
我想做成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作为显示的名字。
安卓并未测试。
谢谢分享。蓝牙兼容是个问题!
