找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 798|回复: 4
打印 上一主题 下一主题
收起左侧

stm32f103单片机停止模式如何降低功耗

[复制链接]
跳转到指定楼层
楼主
ID:1099508 发表于 2023-12-5 11:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在研究低功耗,整个电路板上电后一测,停止模式下整板功耗也有30ma,高的吓人,赶紧从头一个个加外围电路测。发现大头是ldo静态电流过大,不过单片机本身休眠电流也不小。用万用表测量,不是像理想中27mA跳变到14uA,会慢腾腾往下走,有时候停在130uA,有时候会经过较长时间,稳定在30uA,也有时候会在60uA。一天早中晚几次上电都有差别。这个不明原因,和万用表有关吗?

使用的是hal库
HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON,PWR_STOPENTRY_WFI);//进入休眠停机模式
且在cubemx里选上了Set all free pins as analog (to optimize the power consumption) //将未使用引脚设为模拟输入

在查阅资料时候,有些疑惑:
1.有些人使用的不是hal库+cubeMX,似乎是标准库。他们在进入休眠前将引脚功能全部禁用,仅保留需要的。
   我是否需要这么操作?是否有相关的hal库函数?在唤醒后除了初始化时钟,还要把禁用的全部初始化吗?
2.有人提出引脚上下拉会消耗电流。
   所有IO管脚,如果高阻状态端口是高电平,就设成上拉输入,如果高阻状态是低电平,设成下拉输入,如果高阻是中间状态,设成模拟输入。
   我在设置时候勾选了模拟输入,那些引脚还要额外设置吗?在一个个加外围电路过程中,部分引脚如果悬空未连接,设置了上下拉也会耗电吗?
3.有提出将晶振脚和SW脚设成普通io的
   这两点听着有点离谱,能大幅降低功耗吗
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:600469 发表于 2023-12-5 15:29 | 只看该作者
硬件设计需要结合考虑
回复

使用道具 举报

板凳
ID:1099508 发表于 2023-12-5 16:22 | 只看该作者
换了个万用表,裸单片机功耗直接到4ma了。。。
回复

使用道具 举报

地板
ID:883242 发表于 2023-12-5 18:06 | 只看该作者
我劝你还是看《Cortex-M3权威指南》,这个问题不是STM32的,而是CM3的。
回复

使用道具 举报

5#
ID:1099508 发表于 2023-12-6 19:20 | 只看该作者
查了一下,确实是万用表问题。进入休眠前设置pin到模拟输入,能降低不少。问题是使用HSI会带来24ua功耗,这个怎么解决
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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