< div class = "字段field-name-taxonomy-forums field-type-taxonomy-term-reference field-label-above”> < div class = "字段标签" >论坛:,< / div > < div class = "字段条目" > < div class =”field-item甚至“rel = " sioc: has_container " > < a href = " /论坛/ dialog-smartbond-bluetooth-low-energy - % E2 % 80% 93 -软件”“=“sioc:容器sioc:论坛”属性=“rdfs: label skos: prefLabel”数据类型= " " >对话框Smartbond蓝牙低能量——软件< / > < / div > < / div > < / div > < div class =”字段field-name-body field-type-text-with-summary field-label-hidden”> < div class = "字段条目" > < div class =”field-item甚至“财产= "内容:编码" > < p >嗨对话框中,< / p > < p > 1。我使用“app_easy_gap_undirected_advertise_with_timeout_start (uint16_t延迟,无效(* timeout_callback)(空白)”做广告,然后关闭它10秒(延迟是10 s)后,我添加一个“arch_set_sleep_mode (ARCH_DEEP_SLEEP_ON)”在“静态空app_easy_gap_advertise_stop_handler(空白)”DA14580进入深度睡眠,但它不进入深度睡眠。有其他进程或功能之前,我需要关闭DA14580可以去深度睡眠?< / p > < p >这是我固件代码摘录:< br / >空白app_easy_gap_undirected_advertise_with_timeout_start (uint16_t延迟,无效(* timeout_callback)(空白))< br / > {< / p > < p > / / < br / >如果停止当前正在运行的计时器(adv_timer_id ! = EASY_TIMER_INVALID_TIMER) < br / > app_easy_timer_cancel (adv_timer_id); < br / >如果(timeout_callback ! = NULL) < br / > adv_timeout_callback = timeout_callback; < / p > < p > adv_timer_id = app_easy_timer(延迟,app_easy_gap_advertise_stop_handler); < br / > app_easy_gap_undirected_advertise_start ();} < p > < / p > < / p > < p >静态孔隙app_easy_gap_advertise_stop_handler (void) < br / > {< br / > app_easy_gap_advertise_with_timeout_stop (); < / p > < p > app_easy_gap_advertise_stop (); < / p > < p > adv_timer_id = app_easy_timer (SLEEP_TIMEOUT app_timeout_callback);< / p > < p > arch_set_sleep_mode (ARCH_DEEP_SLEEP_ON); < br / >} < / p > < p > 2。如果我改变“app_easy_gap_undirected_advertise_start ()”“app_easy_gap_non_connectable_advertise_start()”,然后DA14580可以成功地进入深度睡眠模式。做不同的广告类型定义睡眠或空闲模式可以遵循?< / p > < p > 3。我觉得这段代码使DA14580在空闲模式。我怎么知道哪个内核事件仍在(防止深度睡眠模式)?< / p > < p > rwip。c (Line323) < br / > / * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * < br / > * * * * * * * * * * * * * *检查内核事件* * * * * * * * * * * * * * < br / > * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * / < br / > / /检查一些内核处理正在进行< br / >如果(! ke_sleep_check ()) < br / >打破;< / p > < p > / /处理器睡眠可以启用< br / > proc_sleep = mode_idle; < / p > < p > DBG_SWDIAG(睡眠、藻类、1);< / p > < p > 4。 Can I terminate the KERNEL EVENTS directly to enter deep sleep mode if I know which event is still on-going? 5. Can I force deep sleep mode even if I cannot identify or terminate the Kernel Events?
SDK5.0.3
Thanks