亲爱的团队对话框,
谢谢你的支持。
我们有14683的定制板。应用程序是基于ble_peripheral项目。一个任务从传感器读取数据,另一个任务在连接上后向移动应用程序发送数据。
我们有2个传感器,RTC,闪光灯,3个led,振动器连接到主板上。
在系统初始化期间,我们的应用程序将处于活动模式。我们想把板到休眠模式,当按钮被按下5秒。我们观察到主板有时会进入休眠模式,但并非总是如此。
我们还观察到,按钮中断总是被调用,按钮按下5秒计数器就会增加,但是一些进程会从主板上阻塞,进入休眠模式。
你能帮我们解决这个问题吗?
致以最亲切的问候
Malli
设备:
嗨powersquare,
谢谢你的问题。我正在处理你的问题,我会尽快回复你。
你能告诉我你的问题是否和这个有关吗?
https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bluetooth-low-energy-%E2%80%93-software/button-press-5-sec-wakeup-sleep-mode
谢谢,PM_Dialog
是的。
嗨powersquare,
不好意思,我有点搞不清这张票和附件的这张票在附件的票据中,您提到您无法在唤醒时获得回调函数。根据这张票据,您的问题是无法将设备置于休眠模式。为了使设备处于休眠模式,您应该使用pm_set_sleep_mode(pm_mode_hibernate)。请注意,休眠模式是一种特殊模式,用于在不耗尽电池的情况下将最终产品运送到市场。这是用于交付和存储最终产品的,我不建议您为开发或调试范围休眠。如果您有BLE活动或任何其他挂起的中断,系统将不能进入休眠。所以,你能告诉我你进入休眠的程序吗?你是否停止BLE活动,传感器读数等?
谢谢,PM_Dialog
亲爱的团队对话框,
谢谢你的支持。
我们正在试图找出,是代码的哪一部分导致了这个问题。
我们将所有代码放入注释(#if 0)中,并开始用PCB测试按钮问题。
请查收附件main.c.pdf文件,供您参考。
在这个文件中,我们将代码放在注释中(行号为569到584,605到649,行号为588和595)。我们还将行号586,590,591和593放入注释中。
通过这最少的代码,我们观察到按钮在PCB中工作得很好。
然后我们开始一个接一个地删除评论。删除了第586、590、591和593行中的注释,代码如下:
-------------------------------------------------------------------------
ad_nvms_init ();
/ / nvms_var = ad_nvms_open (NVMS_GENERIC_PART);
nvms_Binvar = ad_nvms_open (NVMS_BIN_PART);
OS_ASSERT (nvms_Binvar);
Printf ("flash bin part success\r\n");
----------------------------------------------------------------------------
有了这个代码,按钮不能正常工作。在上面几行中,我们初始化了flash并打开了bin分区。它的打印信息“flash bin part success”。
我们没有api像ad_nvms_close () api关闭分区,在把PCB进入休眠模式。
请注意PCB是用电池供电的。
你能帮我们解决这个问题吗?如果上面的代码对按钮工作正常,那么我们将开始删除代码中的注释以进行进一步测试。
请让我们知道任何澄清。
致以最亲切的问候
Malli
嗨powersquare,
你能附加main.c文件吗?我在附件里看不到。
谢谢,PM_Dialog
亲爱的团队对话框,
你能分享你的邮件吗,我会把源代码发给你。
致以最亲切的问候
Malli
嗨powersquare,
你能在这里上传一些代码片段吗?请确认当系统进入休眠状态时是否停止ble活动并与传感器交互?在进入冬眠之前,你需要完全停止BLE活动。你有定制板吗,或者你正在使用我们的dk ?
谢谢,PM_Dialog
亲爱的团队对话框,
我们使用14683定制板。
你有任何代码片段或例子项目来停止BLE活动。目前我们使用BLE停止广告api来停止广告。我们需要在BLE中停止任何其他东西吗?
我们使用pm set sleep mode to hibernate api将系统置于休眠模式。
你能帮助我们,如何找到,哪个进程正在阻止系统进入休眠模式。
致以最亲切的问候
Malli
嗨Malli,
我们将在您的私人支持频道上支持您。
谢谢,PM_Dialog