问题描述:
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 ();
你好,蓝宝莹,
我想你的目的是使数据传输的情况稳定。
在你看来数据传输不稳定的原因是打开了休眠。
其实不是这样。并且需求方例程无法去除流控。
按照标准的需求方例程,如果硬件连接,软件设置都准确的情况下,数据传输是很稳定的。
如果出现不稳定的情况,麻烦请描述一下测试环境以及测试步骤。
Br
马丁
感谢你的回复,因为我使用了WLCSP-34,没有多余的GPIO_UART1_CTS_PORT, GPIO_UART1_CTS_PIN引脚。无法使用硬件流控制。但是我需要ARCH_EXT_SLEEP_ON模式。我希望可以按键进入睡眠模式在需求方例程中。请问你有什么办法吗?我按照论坛的教程无法进入
您好。
如果想要完整使用需求方例程,流控是必须的。如果去除流控功能,会导致功耗、数据接收方面的功能下降。
因此可以选择引脚更多的QFN封装。
关于进入延长睡眠模式,可以参考我们以下教程:
http://lpccs-docs.dialog-semiconductor.com/DA14531_Sleep_Mode + / extsleep_……
Br
马丁
https://support.dialog-semiconductor.com/%E5%85%B3%E4%BA%8E%E5%B7%A5%E7%..。