SDK: telink_b85m_ble_single_connection_sdk_v3.4.2.1
芯片:8250
工程及问题描述:
1、在825x_ble_sample基础上,修改广播采用Ext_adv模式,如下图初始化及启动广播
2、初始化软件定时器及开启一个1s的软件定时器;
3、工程配置改成32K模式;
4、在休眠进入函数,打印定时器的唤醒tick、当前时间tick、要设置的唤醒tick,如图
5、设备启动后,手机连接设备,连接30秒之后,手机断开与设备的连接,设备进入休眠,发现计算的唤醒
tick值不正确,如下图
如何处理此问题?
8250 |
广播间隔及时更改 |
BLE OTA |
广播参数不能及时改变 |
OTA process |
广播模式的切换 |
精确定时 |
你好,
如果你的设备断开连接后,状态为非广播和连接态的空闲状态时,协议栈的休眠管理交给用户,所以在空闲状态下当你设置了软件定时器的值时,需要自行调用cpu_sleep_wakeup_32k_rc来设置唤醒时间,同时你在初始化设置了1s定时器,他会在1s后就执行,为什么要在30s后再判断呢。
hi Soyo
你可能还没明白具体问题是什么,问题是SDK进入休眠了,但是唤醒tick值计算的不对(这个tick是SDK计算的,非用户,用户没有调用
cpu_sleep_wakeup_32k_rc进入休眠)。
第一,目前程序未处理空闲状态的休眠,但是断开连接后,还是广播状态,所以用户不需要处理休眠这块。
第二,为什么要30s后,手机主动断开,那是因为在30s内断开连接,不会出现SDK计算的唤醒tick不正确的情况。
有没有FAE支持的联系方式,直接发工程,你们可以试下,为什么出现这问题。
你好,
可以和原始工程比对一下修改,可以在首页获得FAE联系方式。
hi Soyo
是在下面位置联系吗?