休眠时调用了arch_ble_ext_wakeup_on()仍有广播发出

6个职位/ 0个新职位
最后发表
莫蒂默
离线
最后看到:1年5个月前
加入:2017-07-19 02:59
休眠时调用了arch_ble_ext_wakeup_on()仍有广播发出

您好,定义休眠模式为扩展休眠模式:
#定义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);

为什么呢?

关键词:
设备:
Qinjiny_Dialog
离线
最后看到:1周3天前
工作人员
加入:2016-11-01 05:47
580年的逻辑是即时没有蓝牙事件,祝福

580年的逻辑是即时没有蓝牙事件,祝福核心也会每隔几秒钟醒来一次。arch_ble_ext_wakeup_on了以后就不会有这个动作了。

如果在调用后仍然有蓝牙事件,是不会强行关掉绒的核心。

莫蒂默
离线
最后看到:1年5个月前
加入:2017-07-19 02:59
您好,按您的意思是:我调用arch_ble_ext

您好,按您的意思是:我调用arch_ble_ext_wakeup_on后有蓝牙事件,没有关闭BLE核心,所以造成调用arch_ble_ext_wakeup_on休眠后仍有广播包发出,对吗?
那麻烦帮忙指导下,在调用arch_ble_ext_wakeup_on之前,我都需要做哪些工作来确保没有蓝牙事件吗?
谢谢!!

Qinjiny_Dialog
离线
最后看到:1周3天前
工作人员
加入:2016-11-01 05:47
如你之前所做的,断开连接,停止广播就行了。arch_ble

如你之前所做的,断开连接,停止广播就行了。arch_ble_ext_wakeup_on只是为了确保没有任何蓝牙活动的时候BLE core不会自己每10秒醒来一次

莫蒂默
离线
最后看到:1年5个月前
加入:2017-07-19 02:59
关于此问题,我已经清楚了,麻烦这个问题帮忙看下,谢谢!

关于此问题,我已经清楚了,麻烦这个问题帮忙看下,谢谢!
问题链接:https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bl..。

莫蒂默
离线
最后看到:1年5个月前
加入:2017-07-19 02:59
您好,我又遇到了新的问题:

您好,我又遇到了新的问题:
按照您上边的说法,我断开连接,停止广播,休眠后的确没有广播了,但休眠醒来后有时候也会没有广播
1:是不是需要在唤醒时手动打开广播?
2:我在唤醒后调用:
静态孔隙app_wakeup_cb(空白)

//如果state不是idle,则忽略该消息
//if (ke_state_get(TASK_APP) == APP_CONNECTABLE)

EXECUTE_DEFAULT_OPERATION_VOID (default_operation_adv);


仍然没有广播,我该怎么做?