Peripheral例程,手动关闭广播后问题

 手动关闭广播后,串口接收到Waiting for advertising打印消息后程序卡死,问题一般出在什么地方?

AdvertisingFlat=0;

initial_advertising_enable = FALSE;

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


打印Waiting for advertising并不会导致程序卡死,只是报了一个状态,广播停止了,等待再次广播,程序还是继续跑的。

emobile_2022-06-30_14-31-07.png

如图所示,下面的周期任务还是会继续跑的。


开启了HAL_SLEEP,就不会继跑了,不开启HAL_SLEEP就可以


开启HAL_SLEEP也是可以跑的,因为我们的睡眠就是由tmos传的时间来决定睡眠的,如果你没有开启事件,那么大概在两分钟左右会醒一次,我们的rtc有一个校准任务是120s执行一次。

emobile_2022-06-30_15-54-27.png

如果广播关了,把所有任务都去掉,那么协议栈不会自己调用睡眠,因为不清楚需要睡多久,此时需要自己调用睡眠(PM例程)。


好的,谢谢


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