5个职位/ 0个新职位
最后发表
蓝宝莹
离线
最后看到:5个月6天前
加入:2020-06-11 15:18
DSPS_v_5.150.2按钮进入睡眠模式

问题描述:
1. dsps_v_5.150.2工程中变量默认初始值:
const static sleep_state_t app_default_sleep_mode = ARCH_EXT_SLEEP_ON;
app_default_sleep_mode = ARCH_EXT_SLEEP_ON在需求方工程中的含义是开启扩展睡眠模式,在这种情况下测试透传功能,数据传输是不稳定的。我不想使用硬件流或者软件。
2.现在我在需求方工程中设置变量app_default_sleep_mode = ARCH_SLEEP_OFF;关闭睡眠模式的情况下,我该如何手动设置DA14583让其进入延长睡眠?

现在我的实现方案是:

//添加进入休眠模式的程序

空白app_button_press_cb(空白)

如果(GetBits16 (SYS_STAT_REG PER_IS_DOWN)) {
periph_init ();

如果(arch_get_sleep_mode () = = ARCH_SLEEP_OFF)

app_easy_gap_advertise_stop ();
arch_set_sleep_mode (ARCH_EXT_SLEEP_ON);
user_sps_set_mode (ARCH_EXT_SLEEP_ON);
user_scheduler_reinit (); / /
arch_ble_ext_wakeup_on ();

/ / app_button_enable ();

/ /以下是在主程序中进行按键检测,当IO口为高电平时进入休眠模式

而(1)

如果(GPIO_GetPinStatus (KEY_PORT KEY_PIN)) / /高电平检测

app_button_press_cb(); / /进入休眠

{做
//调度所有挂起的事件
schedule_while_ble_on ();

而((app_asynch_proc ()));//将控制权限授予应用程序,尝试关闭电源
//如果应用程序返回GOTO_SLEEP
/ / ((STREAMDATA_QUEUE) & & stream_queue_more_data ()));//将控制权限授予拖缆,尝试关闭电源

......

//我在以下位置进行断点调式,但是我发现并没有进入该断点。表明没有进入延长睡眠模式下

If ((sleep_mode == mode_ext_sleep) || (sleep_mode == mode_deep_sleep)) {
//关掉收音机,做任何允许做的事情

arch_goto_sleep (sleep_mode);

//等待中断恢复操作
注射用水();

/ /恢复操作
arch_resume_from_sleep ();

设备:
马丁。通用电气
离线
最后看到:6个月2个星期前
工作人员
加入:14:51 2020-01-06 06:51
你好,蓝宝莹,

你好,蓝宝莹,

我想你的目的是使数据传输的情况稳定。

在你看来数据传输不稳定的原因是打开了休眠。

其实不是这样。并且需求方例程无法去除流控。

按照标准的需求方例程,如果硬件连接,软件设置都准确的情况下,数据传输是很稳定的。

如果出现不稳定的情况,麻烦请描述一下测试环境以及测试步骤。

Br

马丁

蓝宝莹
离线
最后看到:5个月6天前
加入:2020-06-11 15:18
感谢你的回复,因为我使用了WLCSP-34

感谢你的回复,因为我使用了WLCSP-34,没有多余的GPIO_UART1_CTS_PORT, GPIO_UART1_CTS_PIN引脚。无法使用硬件流控制。但是我需要ARCH_EXT_SLEEP_ON模式。我希望可以按键进入睡眠模式在需求方例程中。请问你有什么办法吗?我按照论坛的教程无法进入

马丁。通用电气
离线
最后看到:6个月2个星期前
工作人员
加入:14:51 2020-01-06 06:51
您好。

您好。

如果想要完整使用需求方例程,流控是必须的。如果去除流控功能,会导致功耗、数据接收方面的功能下降。

因此可以选择引脚更多的QFN封装。

关于进入延长睡眠模式,可以参考我们以下教程:

http://lpccs-docs.dialog-semiconductor.com/DA14531_Sleep_Mode + / extsleep_……

Br

马丁

蓝宝莹
离线
最后看到:5个月6天前
加入:2020-06-11 15:18
https://support.dialog