亲爱的对话团队,
我引用BLE_APP_SLEEPMODE项目来实现BLE_APP_BAREBONE项目中的按钮唤醒。此外,我也可以使用app_timer_set()定期唤醒信标。
我用于睡眠的模式是扩展睡眠模式。开始睡眠的功能如下。
void user_app_add_undirect_complete(uint8_t状态)
{
......
app_timer_set(app_beacon_timer,task_app,延迟);
ARCH_SET_EXTEDDE_SLEEP();
ARCH_BLE_EXT_WAKEUP_ON();
app_button_enable();
......
}
现在,我可以正确地通过BLE定时器醒来。但是当我按下按钮时,系统将重置系统。
它与OTP使用情况以及深度睡眠模式有关吗?因为我正在燃烧闪光灯上的代码。
此致,
西蒙
P.S.app_button_press_cb()和app_wakeup_cb()稍微改变,以便我认为他们不会影响结果。
关键词:
设备:
嗨西蒙王,
设备运行的模式(延长或深睡眠)?在发生问题时,请尝试安装调试器,以便查看设备丢失的位置。如果您启用了看门狗,请告诉我。
谢谢mt_dialog.
嗨对话小组,
我使用“ARCH_SET_EXTEDDE_SLEEP()”设置睡眠模式,使其必须延长,右?
这是我在我的代码中做的事,
静态void app_wakeup_cb(void)
{
user_app_adv_start();
}
我不会在app_button_press_cb(void)中更改任何内容。
在上面的情况下,我发现系统将重置,这可能是由于看门狗。
但如果我移动“user_app_adv_start();”到app_button_press_cb(void)函数,我将获得广告,系统变得顺利。
您可以帮助解释唤醒过程的序列,并没有执行为什么app_wakeup_cb()?
此致,
西蒙
嗨西蒙王,
是的,由于您使用的是arch_set_extending_sleep()应该延长睡眠,而是关于您的问题,您必须检查系统确切并重置的是什么,以便我能够理解可能的原因可能是什么。您提到复位可能是由于看门狗,可以确保它,只需使用开发标志(development_debug集)在调试模式下运行代码,并检查系统是否在nmi_handler中粘贴,如果您可以附加电源分析器并检查系统发生后的系统也有助于调试此问题。还请确保定时器和按钮发出的广告开始之间没有冲突(据我所知 - 介绍它们和外部中断 - 触发广告,所以如果没有发生任何奇怪的情况)。
谢谢mt_dialog.