手动关闭广播后,串口接收到Waiting for advertising打印消息后程序卡死,问题一般出在什么地方?
AdvertisingFlat=0;
initial_advertising_enable = FALSE;
GAPRole_SetParameter(GAPROLE_ADVERT_ENABLED, sizeof(uint8_t), &initial_advertising_enable);
手动关闭广播后,串口接收到Waiting for advertising打印消息后程序卡死,问题一般出在什么地方?
AdvertisingFlat=0;
initial_advertising_enable = FALSE;
GAPRole_SetParameter(GAPROLE_ADVERT_ENABLED, sizeof(uint8_t), &initial_advertising_enable);
打印Waiting for advertising并不会导致程序卡死,只是报了一个状态,广播停止了,等待再次广播,程序还是继续跑的。
如图所示,下面的周期任务还是会继续跑的。
开启了HAL_SLEEP,就不会继跑了,不开启HAL_SLEEP就可以
开启HAL_SLEEP也是可以跑的,因为我们的睡眠就是由tmos传的时间来决定睡眠的,如果你没有开启事件,那么大概在两分钟左右会醒一次,我们的rtc有一个校准任务是120s执行一次。
如果广播关了,把所有任务都去掉,那么协议栈不会自己调用睡眠,因为不清楚需要睡多久,此时需要自己调用睡眠(PM例程)。
好的,谢谢