你好。我们正试图修改接近的项目,以开始广告时,一个键已按下。当按钮松开时,我们想停止广告。
在原始示例代码中,广告立即开始。我们关闭了“app\u adv\u start()”的自动启动,现在我们在按键中断处理程序中运行“app\u adv\u start()”,如果按键被按下,则运行“app\u adv\u stop()”。好像不管用。
然而,似乎每10秒或12秒就会发生一个事件或某种中断。使用SmartSnippets工具,我们可以看到当前电平在短时间内上升到~0.8mA,我们不知道这是什么,但它似乎将设备从睡眠模式唤醒,并重新初始化大多数事情,例如LED,如果我们在按下按钮之前按下按钮,它也会启动广告(也就是说,在按下按钮之后广告开始的时间要晚得多)。
同样的情况也会发生,如果我们从接近度样本开始,只将广告间隔改为12秒以上,那么似乎不再出现广告,而是每10秒或12秒增加0.8毫安的电流。
首先,当设备处于长时间睡眠而不是广告时,这种中断会发生什么?
第二,当按下按钮时,我们将如何让广告发挥作用?
我们已经检查了键盘的例子,但我们认为它不完全是我们要找的。
所以,为了澄清问题,以防不清楚:
如果我们在项目中的某个地方调用app\u adv\u stop()函数,那么广告就会停止,芯片进入休眠模式。问题是从这一点开始,每隔10-12秒就会有一个计时器事件开始。请让我知道这是什么以及为什么会发生。
谢谢
可能是因为你在应用程序的外部唤醒关闭模式?
UM-B-006,第12页:
将内核的操作恢复到默认模式。在这种模式下,BLE核心
即使没有安排可恢复事件,也会每10秒唤醒一次。如果一个事件
安排得越早,BLE核心就会越早醒来为它服务。
我不知道这是不是你要找的,但我们注意到了同样的事情。
嗨,金和乔阿西姆,
你说得对。如果设置了app\u ble\u ext\u wakeup\u off,则在短时间内每隔10秒会有一次唤醒。
如果设置了app\u ble\u ext\u wakeup\u on,则每10秒唤醒一次将消失。但在调用app\u ble\u ext\u wakeup\u on后,您将无法使用app\u timer\u set命令设置计时器事件,并在扩展/深度睡眠模式下通过计时器事件唤醒DA14580。