找回密码
 立即注册

微信扫码登录

查看: 21|回复: 2

[BLE SDK] 低功耗管理,有长时间困扰的问题

[复制链接]

13

主题

15

回帖

119

积分

荣耀黄金

积分
119
发表于 昨天 15:50 | 显示全部楼层 |阅读模式
Information
说明:   建议参照本版块置顶帖内容输入必要信息
芯片型号: 8258
SDK及版本: B85M_SINGLE_BLE_SDK
请大佬解惑,首先我斗胆猜测是自己的应用程序和低功耗管理模块哪里冲突了。问题是这样的,我目前是禁用了低功耗模块,具体操作是 将该宏置0,BLE_APP_PM_ENABLE。同时注释了功率管理函数:blt_pm_proc() 。如此项目的功能是开机能够被蓝牙调试助手搜索到并能够稳定连接。但是手机端在连接上之后主动断开连接,蓝牙状态机并没有重新回到广播状态,而是停留在了待命状态。几番操作,修改系统注册的回调函数 : bls_app_registerEventCallback (BLT_EV_FLAG_TERMINATE, &task_terminate) 发现没有作用。

机缘巧合之下尝试置位宏BLE_APP_PM_ENABLE,发现奏效,手机主动断开后依旧能够在广播界面搜索到该板子的蓝牙广播信号。但是出现新的问题:1.程序定时器出现计时紊乱不稳定问题,2.程序烧录经常出现active后依旧无法解锁flash并烧录的情况。辗转反侧,几经修改后,依旧无法解决问题,只能勉强定位到 低功耗管理函数: bls_pm_setSuspendMask ();,此函数内容影响大致如下:设置为SUSPEND_DISABLE 定时器和烧录没问题,断开后广播异常。设置为SUSPEND_ADV | DEEPSLEEP_RETENTION_ADV | SUSPEND_CONN | DEEPSLEEP_RETENTION_CONN ,则定时器和烧录异常,断开后广播正常。

48

主题

181

回帖

743

积分

版主

积分
743
发表于 5 小时前 | 显示全部楼层
你使用的定时器指的是什么?Timer?

13

主题

15

回帖

119

积分

荣耀黄金

积分
119
 楼主| 发表于 3 小时前 | 显示全部楼层
TL_SW 发表于 2025-4-8 09:41
你使用的定时器指的是什么?Timer?

是的,指的是timer0 timer1timer2这三个,我用的是timer0
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Telink forum ( 沪ICP备17008231号-1 )

GMT+8, 2025-4-8 15:15 , Processed in 0.085748 second(s), 21 queries .

Powered by Telink 隐私政策

泰凌微电子版权所有 © 。保留所有权利。 2024

快速回复 返回顶部 返回列表