了解更多常见问题教程

4个职位/ 0个新
最后发表
Lyadnov
离线
最后看到:8个月1周前
加入:2019-07-31 13:57
BLE计时器

亲爱的支持团队!你能不能,解释一下,如何设置下一个睡眠模式的时间间隔。

设备:
PM_Dialog
离线
最后看到:6天23小时前
工作人员
加入:2018-02-08 11:03
嗨Lyadnov,

嗨Lyadnov,

如果我能从你的问题中正确理解,你想要完成的是使用一个软件定时器,以便在设备处于延长睡眠模式时周期性地唤醒?请检查app_easy_timer()。否则,请澄清你的问题。

谢谢,PM_Dialog

Lyadnov
离线
最后看到:8个月1周前
加入:2019-07-31 13:57
嗨,你对我的

你好,你正确理解我的问题,但为了清楚地理解app_easy_timer()工作,我需要检查任何示例,但在SDK中我没有看到示例与app_easy_timer()从ext. sleep模式唤醒。你有吗?

PM_Dialog
离线
最后看到:6天23小时前
工作人员
加入:2018-02-08 11:03
嗨Lyadnov,

嗨Lyadnov,

使用SDK6.0.10的ble_app_sleepmode示例(6.0.10.511\projects\target_apps\ble_examples\ble_app_sleepmode)。这个例子演示了如何将DA14585置于永久睡眠状态。在user_app_adv_start()函数中设置一个计时器,当计时器到期时,设备将停止发布消息并进入延长睡眠模式。你可以通过按一个按钮唤醒控制器唤醒它。请查看下面的修改,以便通过app_easy_timer()唤醒它:

1.定义一个新的定时器处理程序:

timer_hnd wakeup_timer_used__attribute__(部分(“retention_mem_area0”),zero_init));/ / @RETENTION记忆

2.从user_app_adv_undirect_complete()中注释掉app_button_enable(),并设置一个计时器:

wakeup_timer_used = app_easy_timer(WAKEUP_TO, app_button_press_cb);

3.将WAKEUP_TO定义为ble_app_sleepmode.h头文件

4.当过期时,将触发wakeup_timer_cb()。该设备将苏醒并再次开始广告

static void wakeup_timer_cb(void) {if (GetBits16(SYS_STAT_REG, PER_IS_DOWN)){外围init();} if (arch_ble_ext_wakeup_get()) {arch_set_sleep_mode(app_default_sleep_mode);arch_ble_force_wakeup ();arch_ble_ext_wakeup_off ();app_easy_wakeup ();} //如果状态不空闲,忽略If (ke_state_get(TASK_APP) == APP_CONNECTABLE) {user_app_adv_start();}}

5.停止计时器up连接。

app_easy_timer_cancel (wakeup_timer_used);

如果您遵循上面的步骤,系统将发布APP_ADV_DATA_UPDATE_TO秒。然后它将进入睡眠模式,并在WAKEUP_TO秒后醒来。如果您认为这些步骤有用,请将此票标记为“已接受”。

谢谢,PM_Dialog