CC2541为什么无法关闭广播?
我做了一个蓝牙连接超时的程序,如果打一定时间还没主机连接蓝牙,蓝牙广播自动关闭
if( events & SBP_BLE_CONNECT_TIMEOUT_EVT )
{
uint8 new_adv_enabled_status;
new_adv_enabled_status = FALSE;
GAPRole_SetParameter( GAPROLE_ADVERT_ENABLED, sizeof( uint8 ), & new_adv_enabled_status );
return ( events ^ SBP_BLE_CONNECT_TIMEOUT_EVT );
}
我能确定程序已经执行到里面去了,为什么广播关不掉?
是否试过官方发布的代码?休眠模式下广播能正常关闭吗?
是官方1.4.0协议栈的代码,我在蓝牙断开的程序关闭广播就可以关, 其他地方关都关不了。
case GAPROLE_WAITING:
{
LED4_SBIT = 0;
{
uint8 current_adv_enabled_status;
uint8 new_adv_enabled_status;
//Find the current GAP advertisement status
GAPRole_GetParameter( GAPROLE_ADVERT_ENABLED, ¤t_adv_enabled_status );
if( current_adv_enabled_status == TRUE )
{
new_adv_enabled_status = FALSE;
}
//Close the GAP advertisement
GAPRole_SetParameter( GAPROLE_ADVERT_ENABLED, sizeof( uint8 ), &new_adv_enabled_status );
}
}
break;