Firefly开源社区

标题: 怎么进入sleep功耗模式? [打印本页]

作者: longdelu    时间: 2016-4-13 13:55
标题: 怎么进入sleep功耗模式?
我调用 sleep_set_pm 这个API,发现测得的电流还是很大,是ma级别,我只用一个最小核心板,上面只有晶振,没有其它的外设,是怎么回事?设置功耗模式还需要做其它细节吗?请教各位大牛
作者: 安安    时间: 2016-4-13 14:31
本帖最后由 安安 于 2016-4-13 14:38 编辑

既然电流这么大,你一定是没有成功进入低功耗模式的。
请注意看函数sleep_set_pm说明,此函数的功能是标志允许系统进入低功耗模式,但是并不代表调用就一定可以进入低功耗模式。能否进入低功耗模式有诸多条件要检查。你可以看一下数据手册详细了解一下进入低功耗模式的条件,然后结合main函数调度器以后的代码看看是否真正进入到低功耗模式。

作者: longdelu    时间: 2016-4-13 14:42
安安 发表于 2016-4-13 14:31
既然电流这么大,你一定是没有成功进入低功耗模式的。
请注意看函数sleep_set_pm说明,此函数的功能是标志 ...

有定时任务产生,会阻碍进入低功耗吗?
作者: longdelu    时间: 2016-4-13 14:47
安安 发表于 2016-4-13 14:31
既然电流这么大,你一定是没有成功进入低功耗模式的。
请注意看函数sleep_set_pm说明,此函数的功能是标志 ...

我用的是qpps的工程,使用QPRINTF打印语句,打印用户功耗模式的状态,usr_sleep_st一直是2,是对的,而ble_sleep_st 为0 与 2交替 变化,不知道是怎么回事
作者: 安安    时间: 2016-4-13 14:56
longdelu 发表于 2016-4-13 14:42
有定时任务产生,会阻碍进入低功耗吗?

会的,具体的要详细查看数据手册,数据手册有详细的各种睡眠模式需要关闭的模块,一旦有任务需要用到该模块,那就不能进入低功耗模式了。
作者: 安安    时间: 2016-4-13 14:58
longdelu 发表于 2016-4-13 14:47
我用的是qpps的工程,使用QPRINTF打印语句,打印用户功耗模式的状态,usr_sleep_st一直是2,是对的,而ble ...

可以查看main函数,系统进入第几级睡眠是由系统任务和BLE协议栈同时决定的,你只设定系统的低功耗允许标志,是不能进入低功耗的,并且最好不要强制进入低功耗,进不了低功耗肯定是有其他东西在运作,强制进入的话,必定系统有某些地方会乱的。
作者: longdelu    时间: 2016-4-13 15:16
安安 发表于 2016-4-13 14:56
会的,具体的要详细查看数据手册,数据手册有详细的各种睡眠模式需要关闭的模块,一旦有任务需要用到该模 ...

好的,我再看看,谢谢
作者: littlecheng8    时间: 2016-5-28 14:58
那正常情况下,待机电流大概是多少呢?我想了解一个大概值先,谢了!




欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1