找回密码
 立即注册

微信扫码登录

查看: 665|回复: 4

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

[复制链接]

21

主题

19

回帖

209

积分

华贵铂金

积分
209
发表于 2025-4-7 15:50:01 | 显示全部楼层 |阅读模式 来自 浙江嘉兴
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

主题

188

回帖

797

积分

版主

积分
797
发表于 2025-4-8 09:41:48 | 显示全部楼层 来自 上海
你使用的定时器指的是什么?Timer?

21

主题

19

回帖

209

积分

华贵铂金

积分
209
 楼主| 发表于 2025-4-8 11:25:23 | 显示全部楼层 来自 浙江嘉兴
TL_SW 发表于 2025-4-8 09:41
你使用的定时器指的是什么?Timer?

是的,指的是timer0 timer1timer2这三个,我用的是timer0

48

主题

188

回帖

797

积分

版主

积分
797
发表于 2025-4-11 14:48:53 | 显示全部楼层 来自 上海
从你的描述上,看不出来是什么问题导致的。连接后是否广播是逻辑控制的,和PM并没有绑定关系。烧录和timer0也是一样,和PM没有关系

21

主题

19

回帖

209

积分

华贵铂金

积分
209
 楼主| 发表于 2025-4-12 13:02:20 | 显示全部楼层 来自 浙江嘉兴
TL_SW 发表于 2025-4-11 14:48
从你的描述上,看不出来是什么问题导致的。连接后是否广播是逻辑控制的,和PM并没有绑定关系。烧录和timer0 ...

是连接后断开连接,不是连接后,连接后是没有广播的,但是断开之后应该是能继续广播的吧,但是我确实是注释掉定时器初始化,情况就消失了,我的定时器初始化就是按照demo来的,平常程序定时器也很正常没有问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Telink forum ( 沪ICP备17008231号-1 )

GMT+8, 2025-6-3 00:50 , Processed in 0.087219 second(s), 21 queries .

Powered by Telink 隐私政策

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

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