了解更多常见问题教程

2个帖子/ 0个新帖子
最后发表
Thanhtu131
离线
最后看到:5天26分钟前
加入:2018-09-18 17:44
sleepmode例子

你好,我使用的是DA14580基本工具包。请不要提及DA14531。我以后再知道!!

我真的想了解DA14580睡眠模式示例中的3件事:

1/在第10秒内,如果我不修改代码,系统会进入睡眠状态吗?或者主循环只是尝试基于arch_set_deep_sleep()函数设置的睡眠模式(或arch_set_extended_sleep()) ?

2/在前10秒,如果没有代码修改或连接,主循环是否成功休眠?代码中的哪一行做到了这一点?主循环是否使系统成功进入睡眠状态?哪一行代码唤醒了系统,让系统可以发布广告?这是BLE计时器吗?

3/在10秒的广告之后,回调函数user_app_adv_undirect_complete()被调用,然后函数arch_ble_ext_wakeup_on()被调用,以确保只有一个外部(GPIO)唤醒事件可以唤醒系统。我说的对吗?

我期待着尽快收到你的回复。对不起,我问了很多问题!!

设备:
PM_Dialog
离线
最后看到:两天前8小时前
工作人员
加入:2018-02-08 11:03
应该显式设置
  1. 您应该使用睡眠模式api显式地设置所需的睡眠模式。
  2. 如果您在您的应用程序代码中设置了睡眠模式,是的,系统将成功睡眠。因此,如果你启用了睡眠模式,设备会在广告或连接间隔之间进入睡眠状态。这样做,芯片将唤醒后,每个广告或连接间隔由于BLE事件,如你提到。BLE_WAKEUP_LP_Handler是每次唤醒时被触发的ISR。然后,CPU将从WFI恢复。请检查arch_main.c文件中的main()。在WFI之后,arch_resume_from_sleep()。BLE_WAKEUP_LP_HANDLER在每次系统被唤醒时被触发。该设备在睡眠模式下运行32K时钟,所以一旦它醒来,时钟切换到16MHz。
  3. arch_ble_ext_wakeup_on()将BLE内核激活到永久睡眠状态。只有外部事件才能唤醒它。BLE永远沉睡,等待着一个强迫的觉醒。app_button_enable()配置唤醒控制器,以便通过GPIO触发器唤醒控制器。

谢谢,PM_Dialog