CC2541可连接广播和不可连接广播进行切换问题
源代码如下:(切换不成功)
//ADV
if (events & SBP_ADV_EVT){
if(Flang==FALSE){
uint8 advtype=GAP_ADTYPE_ADV_NONCONN_IND;
uint8 initial_advertising_enable = FALSE; //关广播
GAPRole_SetParameter( GAPROLE_ADVERT_ENABLED, sizeof( uint8 ), &initial_advertising_enable );
GAPRole_SetParameter( GAPROLE_ADVERT_DATA, sizeof( Beacon ), Beacon );
GAPRole_SetParameter(GAPROLE_ADV_EVENT_TYPE,sizeof(uint8),&advtype);
initial_advertising_enable=TRUE; //开广播
GAPRole_SetParameter( GAPROLE_ADV_NONCONN_ENABLED, sizeof( uint8 ), &initial_advertising_enable );
P1_1=!P1_1;
Flang = TRUE;
osal_start_timerEx( simpleBLEPeripheral_TaskID, SBP_ADV_EVT,150);
}else{
uint8 advtype=GAP_ADTYPE_ADV_IND;
uint8 initial_advertising_enable = FALSE;
GAPRole_SetParameter( GAPROLE_ADV_NONCONN_ENABLED, sizeof( uint8 ), &initial_advertising_enable );
GAPRole_SetParameter( GAPROLE_ADVERT_DATA, sizeof( advertData ), advertData );
GAPRole_SetParameter(GAPROLE_ADV_EVENT_TYPE,sizeof(uint8),&advtype);
initial_advertising_enable=TRUE; //开广播
GAPRole_SetParameter( GAPROLE_ADVERT_ENABLED, sizeof( uint8 ), &initial_advertising_enable );
P1_0=!P1_0;
Flang = FALSE;
osal_start_timerEx( simpleBLEPeripheral_TaskID, SBP_ADV_EVT,50);
}
return (events^ SBP_ADV_EVT);
}
广播模式的修改需要先停止广播,然后更新广播内容,最后再使能广播
1)停止广播
2) 修改广播 内容,并重新设置广播
3)重新开始广播
