您好,定义休眠模式为扩展休眠模式:
#定义CFG_MEM_MAP_EXT_SLEEP
# undef CFG_MEM_MAP_DEEP_SLEEP
在休眠时调用函数如下:
空白set_sleep(空白)
{
arch_ble_ext_wakeup_on ();
arch_set_sleep_mode (ARCH_EXT_SLEEP_ON);
}
休眠可以进入,但休眠时仍有广播发出;
arch_ble_ext_wakeup_on();不永久的睡眠是“把祝福的核心。只有一个外部事件可以唤醒它。”吗?也就是让祝福核心永久休眠,只有外部时间可以唤醒吗?现,在仍有广播说明BLE核心还是会被唤醒的,为什么呢?
但我在休眠时时调用停止广播就没有广播发出了,祝福核心也不在唤醒了,如下:
空白set_sleep(空白)
{
app_easy_gap_advertise_stop ();
arch_ble_ext_wakeup_on ();
arch_set_sleep_mode (ARCH_EXT_SLEEP_ON);
}
为什么呢?
关键词:
设备:
580年的逻辑是即时没有蓝牙事件,祝福核心也会每隔几秒钟醒来一次。arch_ble_ext_wakeup_on了以后就不会有这个动作了。
如果在调用后仍然有蓝牙事件,是不会强行关掉绒的核心。
您好,按您的意思是:我调用arch_ble_ext_wakeup_on后有蓝牙事件,没有关闭BLE核心,所以造成调用arch_ble_ext_wakeup_on休眠后仍有广播包发出,对吗?
那麻烦帮忙指导下,在调用arch_ble_ext_wakeup_on之前,我都需要做哪些工作来确保没有蓝牙事件吗?
谢谢!!
如你之前所做的,断开连接,停止广播就行了。arch_ble_ext_wakeup_on只是为了确保没有任何蓝牙活动的时候BLE core不会自己每10秒醒来一次
关于此问题,我已经清楚了,麻烦这个问题帮忙看下,谢谢!
问题链接:https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bl..。
您好,我又遇到了新的问题:
按照您上边的说法,我断开连接,停止广播,休眠后的确没有广播了,但休眠醒来后有时候也会没有广播
1:是不是需要在唤醒时手动打开广播?
2:我在唤醒后调用:
静态孔隙app_wakeup_cb(空白)
{
//如果state不是idle,则忽略该消息
//if (ke_state_get(TASK_APP) == APP_CONNECTABLE)
{
EXECUTE_DEFAULT_OPERATION_VOID (default_operation_adv);
}
}
仍然没有广播,我该怎么做?