低功耗要软硬件一起来实现:
硬件上蓝牙模块是否需要一直上电,是否可以通过按键唤醒的方式让蓝牙模块上电,工作一段时间后再掉电。
软件上定时器中断设置的间隔是多少?是否频繁唤醒?唤醒后做哪些任务?任务执行后是否再次进入低功耗模式。
一般低功耗的思路是:尽量让系统处于低功耗状态,如果有外部唤醒源,尽量用外部唤醒源(比如按键)没有外部唤醒源,则需要一个内部定时器,定时唤醒系统,系统检测是否有任务执行,没有任务执行马上进入休眠模式。
你可以使用硬件仿真试试。
估计是你的低功耗被其他的中断唤醒了
你的代码基本上没有问题,那么问题出在别的地方
你的硬件里有MCU 有蓝牙 有按键这三样
首先你的MCU设置了低功耗,假设它正常,那么耗电的就是蓝牙(按键不用不耗电)
然后你测试两个模式,先测试没有低功耗的时候,电路总电流多少。然后再测MCU进入了低功耗后(假设能进入),电路电流多大
最后就是比较咯,电流差不多,那么是你的MCU没有进入低功耗,电流不同,那么是你的蓝牙耗电太大,要做处理