SleepMode示例问题

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.wsdof.com/support.我们将在未来几天修复bug /优化搜索和标记。
5个帖子/ 0新
最后发表
thanhtu131.
离线
最后一次露面:5个月1周前
加入:2018-09-18 17:44
SleepMode示例问题

你好!我正在基于BLE SleepMode示例为DA14580开发应用程序。我一天读了主循环,并试图清楚地了解它

我将一些日志放入主循环代码并获取结果(显示在附加文件中)。我有2个问题:

1/在前10秒,当函数arch_goto_sleep()被调用时,系统是否进入睡眠?或者只是设置了睡眠模式?

2 /系统转到睡眠后,WFI()称为等待中断恢复操作,中断在前10个躯干中唤醒系统?我没有用一个按钮连接到基本套件或连接到任何设备。但在结果文件中,我的日志在前10个ordononds中持续了

期待您的亲切回复!谢谢

附件:
设备:
PM_DIALOG.
离线
最后一次露面:1天18小时前
工作人员
加入:2018-02-08 11:03
嗨Thanhtu131,

嗨Thanhtu131,

谢谢你的问题。你能解释一下你想完成什么吗?main_func()是一个SDK函数,我们强烈建议不要修改任何SDK函数或文件。SDK应该原样使用,所有的实现都应该在应用程序层级中完成,该层级包含所有以“user_”开头的文件。

在主功能中添加打印信息会导致系统延迟。

为了将系统置于睡眠模式,您应该使用来自arch_sleep.c源文件的适当api。

此外,可以通过在user_config.h文件中配置app_default_sleep_mode变量来设置睡眠模式。主循环由两部分组成。第一部分是在CPU处于活动状态时执行的,只要内核或应用程序希望CPU保持活动状态。在主循环的第二部分中,程序试图进入断电模式。它将尝试关闭BLE硬件,然后关闭其余的外设,并在等待中断(WFI)时将CPU设置为低功耗状态,无论是来自某些外部引脚还是BLE编程事件。

请参见图9:来自UM-B-051: DA14580软件平台参考(SDK5)用户手册以获取更多信息。

关于可用的睡眠模式,我建议首先阅读教程4:在DA1458x上配置睡眠模式教程。

如果您正在开始一个新的设计/项目,我们强烈建议您从DA14531或DA14585/586产品和我们最新的SDK6.0.14开始,因为它有了更多的改进。雷电竞官网登录我们有很多代码示例和改进的文档,也有软件路线图的支持。没有对DA14580产品族和SDK5的软件路线图支持。

请查看DA14531:

//www.wsdof.com/雷电竞官网登录products/connectivity/bluetooth-low-energy/products/da14531

我们也有一个DA14531模块,即DA14531 SmartBond TINY™模块!它的尺寸很小,功率也很低。按照下面的链接找到模块的数据表,文档和HW附件:

//www.wsdof.com/雷电竞官网登录products/bluetooth-module-da14531-smartbond-tiny

还有参考设计,您将帮助您减少开发阶段,因为您不需要花费这么多时间开发您的应用程序代码。

无代表

CodeLess允许您通过一组AT命令快速开始无线物联网应用程序。雷竞技安卓下载该CodeLess AT命令平台允许控制本地UART连接的设备,以及通过BLE远程设备。您可以创建简单的演示/应用程序/概念证明,而无需任何代码开发雷竞技安卓下载或在上面构建自己的应用程序!

//www.wsdof.com/雷电竞官网登录products/smartbond-codeless-commands

对话串口服务

DSPS模拟串行电缆通信。它提供了一个简单的替代RS-232连接,包括熟悉的软件流控制逻辑通过蓝牙低能量。SPS软件分发包括应用程序和概要文件源代码,并支持GAP中心/外设角色。

//www.wsdof.com/雷电竞官网登录products/dialog-serial-port-service-dsps

谢谢,PM_DIALOG.

thanhtu131.
离线
最后一次露面:5个月1周前
加入:2018-09-18 17:44
我已经阅读了UM-B-051:

我读过UM-B-051: DA14580软件平台参考(SDK5)教程4:在DA1458x上配置睡眠模式多次。

我可以看到主函数中添加打印信息将延迟系统。

但我真的想了解三件事:

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

2/在前10秒,如果没有代码修改或连接,主循环是否成功休眠?代码中的哪一行做的呢?主循环是否成功使系统休眠?哪一行代码唤醒系统,让系统可以发布消息?是BLE定时器吗?

3 / 10SEC广告后,回调函数user_app_add_undirect_complete()是呼叫,然后调用函数arch_ble_ext_wakeup_on()以确保只有外部(GPIO)Wakup事件可以唤醒系统。我对吗?

希望很快能收到你的回复。很抱歉我问了这么多问题!!

PM_DIALOG.
离线
最后一次露面:1天18小时前
工作人员
加入:2018-02-08 11:03
嗨Thanhtu131,
thanhtu131.
离线
最后一次露面:5个月1周前
加入:2018-09-18 17:44
非常感谢你!!

非常感谢你!!