CH582的Peripheral例程,怎么主动关闭打开蓝牙功能?

在从机Peripheral例程上直接编写自己的应用程序,现在需要人为控制蓝牙从机的开启和关闭。

在按键按下后,开启蓝牙从机功能,一段时间后,转入待机前,主动关闭蓝牙。


不知道怎样处理更为合适,能提供下操作方法吗?

在需要关闭蓝牙功能的时候确保先断开连接,再关闭广播,等到日志waiting for advertising就是关闭广播了。

image.png


//关闭广播

initial_advertising_enable = FALSE;

GAPRole_SetParameter(GAPROLE_ADVERT_ENABLED, sizeof(uint8_t), &initial_advertising_enable);


在打印日志 waiting for advertising 的地方可以得知广播关闭成功。


//打开广播

initial_advertising_enable = TRUE;

GAPRole_SetParameter(GAPROLE_ADVERT_ENABLED, sizeof(uint8_t), &initial_advertising_enable);


在哪里可以得到广播打开成功,现在我是在Peripheral_ProcessGAPMsg函数中打印Receive scan req from时,就认为广播打开成功,可是在手机没有打开蓝牙时,好像不会进入这个函数,这样就有可能广播成功打开了,但无法确定。


这个广播打开成功在哪里获得?

image.png





image.png


打印 PRINT("Advertising..\n"); 表示蓝牙断开

打印 PRINT("Connected..\n"); 表示蓝牙已连接


在以上的位置进行蓝牙连接的状态提取,是否能保证是真实是蓝牙连接状态?


能够保证真实的蓝牙状态        蓝牙断开参考:PRINT("Disconnected.. Reason:%x\n", pEvent->linkTerminate.reason);


只有登录才能回复,可以选择微信账号登录