?手動關(guān)閉廣播后,串口接收到Waiting for advertising打印消息后程序卡死,問題一般出在什么地方?
AdvertisingFlat=0;
initial_advertising_enable = FALSE;
GAPRole_SetParameter(GAPROLE_ADVERT_ENABLED, sizeof(uint8_t), &initial_advertising_enable);
?手動關(guān)閉廣播后,串口接收到Waiting for advertising打印消息后程序卡死,問題一般出在什么地方?
AdvertisingFlat=0;
initial_advertising_enable = FALSE;
GAPRole_SetParameter(GAPROLE_ADVERT_ENABLED, sizeof(uint8_t), &initial_advertising_enable);
打印Waiting for advertising并不會導(dǎo)致程序卡死,只是報(bào)了一個(gè)狀態(tài),廣播停止了,等待再次廣播,程序還是繼續(xù)跑的。
如圖所示,下面的周期任務(wù)還是會繼續(xù)跑的。
開啟了HAL_SLEEP,就不會繼跑了,不開啟HAL_SLEEP就可以
開啟HAL_SLEEP也是可以跑的,因?yàn)槲覀兊乃呔褪怯蓆mos傳的時(shí)間來決定睡眠的,如果你沒有開啟事件,那么大概在兩分鐘左右會醒一次,我們的rtc有一個(gè)校準(zhǔn)任務(wù)是120s執(zhí)行一次。
如果廣播關(guān)了,把所有任務(wù)都去掉,那么協(xié)議棧不會自己調(diào)用睡眠,因?yàn)椴磺宄枰嗑?,此時(shí)需要自己調(diào)用睡眠(PM例程)。
好的,謝謝