您好对话框PM,
我正在通过SDK5.0.3和BLE_APP_PROFILE项目开发一个项目。在函数突出的程序序列后,芯片应该停止,只能停止外部中断可以唤醒系统。
int user_app_adv_timer_handler(ke_msg_id_t const msgid,
void const * param,
ke_task_id_t const dest_id,
ke_task_id_t const src_id)
{
app_easy_gap_advertise_stop();
ke_timer_clear(app_adv_timer,task_app);
ARCH_SET_EXTEDDE_SLEEP();
//禁用BLE和TIMER事件的唤醒。只有外部(GPIO)唤醒事件可以唤醒处理器。
ARCH_BLE_EXT_WAKEUP_ON();
user_app_button_enable();
return(ke_msg_consumed);
}
但我发现程序仍然运行主循环。正如我所理解的,芯片应该停止并等待外部中断以偏离功能。
//等待中断恢复操作
WFI();
//恢复操作
ARCH_RESUME_FROM_SLEEP();
你能给我一些建议还是支持?非常感谢你的帮助!
此致,
亚伦
设备:
嗨亚伦李,
你能解释一下你的意思是,“芯片应该停止”?您是否意味着设备应该进入扩展的睡眠模式,只有外部中断可以唤醒它?我明白了吗?请尝试描述您试图完成的内容,以便为您提供正确的指导方针。
谢谢,PM_DIALOG.
嗨对话框PM,
我的意思是设备应该进入扩展的睡眠模式并停止执行程序,直到外部中断唤醒。但我发现该设备仍然运行主循环。
嗨亚伦李,
请检查SDK的BLE_APP_SLEEPMODE示例。此示例演示如何使用睡眠模式API并在运行时更改睡眠模式。有关此SDK示例的更多信息,请阅读DA1458X软件开发人员指南9(UM-B-050)用户手册的8.50支柱5(睡眠模式)部分。此示例展示了您要开发的应用程序,因此请尝试在BLE_APP_PROFILE项目中实现扩展的休眠功能。此外,请注意BLE_APP_SLEEPMODE示例包括BLE_APP_PROFILE的实现。
谢谢,PM_DIALOG.
您好对话框PM,
让我只是我的问题。
1.如果程序执行了ARCH_SET_EXTED_SLEEP()函数,设备将进入扩展睡眠模式。程序不会运行主循环并停止在WFI(),直到外部中断调用,对右?
2.对于ARCH_SET_EXTEDDED_SLEEP()函数,有以下评论。它意味着偶数程序执行arch_set_extendend_sleep()函数,系统也可以在空闲/活动/延长睡眠模式下工作,对吧?如果是,如何确定系统工作的模式?
/ **
****************************************************************************************
* @brief激活扩展睡眠模式。该系统以空闲/活动/扩展睡眠模式运行。
* @param void.
* @return void.
****************************************************************************************
* /
void arch_set_extended_sleep(void)
嗨亚伦李,
是的,这是对的,系统正在等待中断并允许睡眠。请打开user_config文件夹下的user_config.h标头文件。然后,您应该将App_default_sleep_mode变量设置为您的设备运行的模式。
谢谢,PM_DIALOG.