DA14680在pm_设置\睡眠\模式(pm_模式\休眠)后重新启动自身

⚠️
你好。。谢谢你来到论坛。令人兴奋的消息!我们现在正在迁移到新的论坛平台,该平台将提供更好的功能,并包含在主对话网站中。所有员额和帐户都已迁移。我们现在只接受新论坛的流量-请在//www.xmece.com/support. 我们将在未来几天内修复bug/优化搜索和标记。
2个员额/0个新员额
最后一篇文章
惠贵
离线
最后一次见到:1年4个月前
加入:2017-07-08 22:32
DA14680在pm_设置\睡眠\模式(pm_模式\休眠)后重新启动自身

你好

我发现有时DA14680会在pm_设置_睡眠_模式(pm_模式_休眠)后重新启动。我实现它的方式是在电路板上有一个按钮,如果单击该按钮,它将运行pm_set_sleep_mode(pm_mode_hibernation)。

我用的是cunstom板。DA14680是否会重新启动取决于具体情况,总结如下。

DA14680进入休眠和重新启动案例:

--在suota_initial_flash_jtag_win项目之后。在这种情况下,单击按钮后,它将保持休眠模式。

--使用J-link RTT查看器并执行文件->连接。它重置电路板,点击按钮后,将保持休眠模式。

DA14680进入休眠状态并在以下时间后立即重新启动:

--硬件重启(断开电源并重新连接)后,如果单击按钮,DA14680将自行重启,不会进入休眠模式。

--从休眠模式启动后,如果单击按钮,DA14680也将重新启动,不会进入休眠模式。

我很困惑这怎么会发生。你能给我一些见解吗?非常感谢你!

设备:
PM_对话框
离线
最后一次见到:2天20小时前
工作人员
加入:2018-02-08 11:03
嗨,慧慧,

嗨,慧慧,

请问DA1468x的版本是什么?是DA14680/681还是DA14682/3?此外,您是否使用自己的应用程序代码?

一般性,为了使系统进入休眠模式,您应确保您没有任何与闪存、外围设备等相关的活动。为此,您应注意:

  • 所有任务都处于空闲状态
  • 没有密集的写闪存操作
  • 计时器处于空闲状态
  • 无中断活动(例如,将传感器置于睡眠/断电模式)

当设备退出休眠模式或休眠失败时,会发生冷启动,这意味着应用程序代码从头开始执行(如硬件重置)。

请在下面找到一些步骤,以便使用SDK的ble_外围示例将系统置于休眠状态。更改应应用于ble_peripheral_task.c文件:

1.设置OS_定时器()以在15秒后停止广告:

特权数据静态操作系统定时器休眠定时器;静态无效阻止计时器cb(OS计时器计时器){ble_gap_adv_stop()}

2.在ble_外围任务中启动计时器:

/*15秒后进入休眠状态*/hiberbation\u timer=OS\u timer\u CREATE(“休眠”,OS\u MS\u 2_TICKS(15000),OS\u timer\u FAIL,(void*)OS\u GET\u CURRENT\u TASK(),hiberbation\u timer\u cb);OS_断言(hiberbation_定时器);操作系统定时器启动(休眠定时器,操作系统定时器永远);

3.计时器到期后,停止广告。这样会触发handle_evt_gap_adv_completed(),系统将进入休眠状态。

静态无效句柄_evt_gap_adv_completed(ble_evt_gap_adv_completed_t*evt){ble_reset();pm_设置_睡眠_模式(pm_模式_休眠);}

4.我不知道您使用的是哪个闪存,因此请确保您的配置正确。

谢谢,下午好