WCH沁恒单片机
直播中

laisvl

8年用户 1027经验值
私信 关注
[问答]

Peripheral例程,手动关闭广播后串口接收到Waiting for advertising打印消息后程序卡死的原因是什么?

手动关闭广播后,串口接收到Waiting for advertising打印消息后程序卡死,问题一般出在什么地方?
AdvertisingFlat=0;
initial_advertising_enable = FALSE;
GAPRole_SetParameter(GAPROLE_ADVERT_ENABLED, sizeof(uint8_t), &initial_advertising_enable);


回帖(3)

李昕一

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

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

李捷

2022-7-25 09:36:49
开启了HAL_SLEEP,就不会继跑了,不开启HAL_SLEEP就可以
举报

李耘蝶

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

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

更多回帖

发帖
×
20
完善资料,
赚取积分