• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 无线通信 > 技术讨论 > 如何解决修改蓝牙设备名称后要重启的问题?

如何解决修改蓝牙设备名称后要重启的问题?

录入:edatop.com     点击:

如何解决修改蓝牙设备名称后要重启的问题?


我修改蓝牙设备名称后,发现需要重启一下才可以更新
请问能否抽空我帮解决一下
谢谢!
我的做法如下:
将static uint8 scanRspData[]改为
void Update_ParameterScanRspData(void)
{
uint8 NameLen,*str_point,*Name_point;
uint8 MachineName[21];
uint8 scanRspData[35]={0};
uint8 scanRsplen;
osal_snv_read(AddrName,1, &NameLen); // 名称长度
osal_snv_read(AddrName,NameLen+1,MachineName); //名称长度+名称
str_point = scanRspData;
*str_point++ = NameLen+1;
*str_point++ = GAP_ADTYPE_LOCAL_NAME_COMPLETE;
Name_point = &MachineName[1];
osal_memcpy(str_point, Name_point, NameLen);
str_point +=NameLen;
*str_point++ = 0x05; // length of this data
*str_point++ = GAP_ADTYPE_SLAVE_CONN_INTERVAL_RANGE;
*str_point++ = LO_UINT16( DEFAULT_DESIRED_MIN_CONN_INTERVAL );
*str_point++ = HI_UINT16( DEFAULT_DESIRED_MIN_CONN_INTERVAL );
*str_point++ = LO_UINT16( DEFAULT_DESIRED_MAX_CONN_INTERVAL );
*str_point++ = HI_UINT16( DEFAULT_DESIRED_MAX_CONN_INTERVAL );
// Tx power level
*str_point++ = 0x02;
*str_point++ = GAP_ADTYPE_POWER_LEVEL;
*str_point++ = 0;
scanRsplen = NameLen+ 11;
GAPRole_SetParameter( GAPROLE_SCAN_RSP_DATA, scanRsplen, scanRspData );
GGS_SetParameter( GGS_DEVICE_NAME_ATT, scanRsplen, scanRspData);
}
接收到新名称后,保存在Flash中
然后调用Update_ParameterScanRspData()更改名称
但是总是要重启才可以更新名称

adv 和 scan的内容的修改,需要先停止广播,再修改内容,然后再重启广播才能完成更改。
所以你只需要在修改前停止广播,修改完后再重启广播就行,不需要重启整个系统

上一篇:cc1101和433模块用ASK通信的参考代码,哪位提供下?
下一篇:CC3100做wifi通信数据接收程序卡死问题

手机天线设计培训教程详情>>

手机天线设计培训教程 国内最全面、系统、专业的手机天线设计培训课程,没有之一;是您学习手机天线设计的最佳选择...【More..

射频和天线工程师培训课程详情>>

  网站地图