亲爱的员工对话框:
对于我的项目,我已经在SDK 5.0.4中修改了ble_app_peripheral。我已经测试了我的项目使用DA14580基本开发板和SPI Flash。它将正常工作。我现在需要添加睡眠模式代码。我想添加睡眠模式功能从ble_app_sleepmode项目到我的项目。最初的尝试失败了。
当测试ble_app_sleepmode时,深度睡眠在10s后被激活,广告停止。在我的项目中,广告仍在继续,所以我认为深度睡眠从未被激活。
下面是我从ble_app_sleepmode项目复制的代码:
*********************************************************************************
const static sleep_state_t app_default_sleep_mode = ARCH_DEEP_SLEEP_ON;
*********************************************************************
空白user_app_adv_start(空白)
{
/ * * /代码
arch_set_deep_sleep ();//在广告时间设置深度睡眠
/ * * /代码
}
**************************************************
# undef CFG_MEM_MAP_EXT_SLEEP
#定义CFG_MEM_MAP_DEEP_SLEEP
*****************************************************************
* Scatterfile:内存映射
*/
#如果定义了(CFG_MEM_MAP_EXT_SLEEP) || !
#define REINIT_DESCRIPT_BUF 0 //0: keep in RetRAM, 1: re-init is required(当使用Extended Sleep时设置为0)
#定义USE_MEMORY_MAP EXT_SLEEP_SETUP
其他#
#define REINIT_DESCRIPT_BUF 0 //0: keep in RetRAM, 1: re-init is required(当使用Extended Sleep时设置为0)
#定义USE_MEMORY_MAP DEEP_SLEEP_SETUP
#定义DB_HEAP_SZ 1024
#定义ENV_HEAP_SZ 328
#定义MSG_HEAP_SZ 1312
#定义NON_RET_HEAP_SZ 1024
# endif
关于唤醒按钮,我还没有添加这段代码。我计划增加一个外部按钮,连接DA14580基本板。也许没有这个按钮代码是问题所在?
在接触Dialog之前,我已经阅读了所有与睡眠模式相关的文档。我感谢你提供的任何支持。
嗨,格柏,
关于系统如何工作的一些事情,所以,当设备在睡眠模式下运行,这意味着它将在BLE事件(BLE事件被认为是发布事件,连接事件,BLE计时器)之间进入睡眠。你的设备不停地打广告并不意味着它不会休眠,因为设备使广告这意味着你从来没有取消广告经营(ble_app_sleepmode设置内核定时器使用app_easy_timer(),将调用的回调app_easy_gap_advertise_stop堆栈(),然后尽快回复,广告已经停止将设置按钮,检查user_app_adv_undirect_complete)。由于广告被停止,设备没有即将到来的BLE事件,设备将永远不会唤醒,直到外部中断(一个按钮)唤醒系统。清楚了就告诉我。
由于MT_dialog
谢谢你的解释。这很有帮助。我有更多的问题在这个主题,但将张贴他们在一个新的线程要求在答复说明。
肖恩
嗨,格柏,
很高兴它帮助。
MT_dialog问好