This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC2540 CC2541 动态修改广播数据后,出现GAPROLE_ERROR错误

**协议栈版本:1.3.2

**demo:SimpleBLEPeripheral

一共修改了两个地方,第一个是动态修改广播数据,需要调用GAP_UpdateAdvertisingData。另外一个是在按键中添加了修改advertData,详情如下:

1、peripheral.c,GAPRole_SetParameter函数GAPROLE_ADVERT_DATA部分

if ( len <= B_MAX_ADV_LEN )
{
VOID osal_memset( gapRole_AdvertData, 0, B_MAX_ADV_LEN );
VOID osal_memcpy( gapRole_AdvertData, pValue, len );
gapRole_AdvertDataLen = len;
GAP_UpdateAdvertisingData( gapRole_TaskID,TRUE, gapRole_AdvertDataLen, gapRole_AdvertData );
}

2、simpleBLEPeripheral.c文件中key处理片段(广播数据我有重新定义过)

advertData[5]=count;
advertData[6]=count;
advertData[7]=count;
GAPRole_SetParameter( GAPROLE_ADVERT_DATA, sizeof( advertData ), advertData );

测试现象:

程序上电运行后,正常启动和广播,LCD上显示正在广播,Packetsniffer抓包,广播内容为原数据。

然后触发按键,动态修改advertData 后,出现GAPROLE_ERROR错误,LCD上打印ERROR,但是此错误并未影响其他行为,Packetsniffer抓包看,广播数据已经被成功修改,另外该SimpleBLEPeripheral任然可以被正常的连接、通信,只是每次修改广播内容后,均会出现GAPROLE_ERROR错误。


x 出现错误。请重试或与管理员联系。