数码之家

 找回密码
 立即注册
搜索
查看: 1920|回复: 13

[STM] Arduino下给STM32F103C8T6编程,怎么降低运行时钟频率和进入低功耗模式?

[复制链接]
发表于 2023-3-2 10:09:02 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

您需要 登录 才可以下载或查看,没有账号?立即注册

x
最近在做个东西,电池供电,需要尽可能的省电。测了一下STM32F103C8T6的正常运行功耗大概有25-30ma,太大了,需要尽可能的降低。降低的方法我知道可以用降低频率(这个地方性能要求极低)和进入低功耗模式(SleepMode睡眠模式、Lowerpower run低功耗运行模式、StopMode停机模式、StandbyMode待机模式)这两种方法。


其中进入低功耗模式中的SleepMode睡眠模式、StopMode停机模式、StandbyMode待机模式三种可以通过SSTM32LowPower库实现。但是引入STM32LowPower库之后编译的固件一下子变大好多……STM32本来就没多少flash空间这一下子就不够用了。所以想问问论坛里的大神们有没有不用STM32LowPower库也能进入低功耗模式的方法和例程?顺便问下STM32F103C8T6到底有没有Lowerpower run低功耗运行模式的?


最后就是降低运行时时钟频率的方法,查了2天资料貌似有些方法可以用,但是都不是Arduino里的,尝试移植过来编译出错。无奈我是个小白只会Arduino,所以也求一个能在Arduino上用的降低运行时钟频率的例程


先感谢各位大神
发表于 2023-3-2 15:04:12 | 显示全部楼层
性能要求极低?那用STM32F103C8T6干啥,随便搞个51用用。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-3-2 15:56:38 | 显示全部楼层
kkstun 发表于 2023-3-2 15:04
性能要求极低?那用STM32F103C8T6干啥,随便搞个51用用。

用51也可以啊,但是我不会。再说51又不便宜,价格差不多的情况下我选择一个高性能的MCU,高性能能用在低性能的地方,低性能的在高性能需求的地方没法用。
回复 支持 反对

使用道具 举报

发表于 2023-3-2 16:29:04 | 显示全部楼层
进它的文件夹看看有没有相关文件,感觉是没有。
回复 支持 反对

使用道具 举报

发表于 2023-3-2 19:21:15 | 显示全部楼层
lemontreenm 发表于 2023-3-2 15:56
用51也可以啊,但是我不会。再说51又不便宜,价格差不多的情况下我选择一个高性能的MCU,高性能能用在低 ...

51也有arduino的,在这个论坛找找,或者VSCODE+platform可以有51的类似arduino
回复 支持 反对

使用道具 举报

发表于 2023-3-2 20:30:55 | 显示全部楼层
Arduino都是人家造出来的代码框架,应用进来是方便,但不能灵活,基本功能就行,应用深层的功能不行。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-3-2 20:43:23 | 显示全部楼层
bg4rff 发表于 2023-3-2 19:21
51也有arduino的,在这个论坛找找,或者VSCODE+platform可以有51的类似arduino

我知道有的,但是那样就变成要适应51和STM32两套东西维护两套代码体系了,太麻烦了
回复 支持 反对

使用道具 举报

发表于 2023-3-2 23:42:15 来自手机浏览器 | 显示全部楼层
本帖最后由 kkstun 于 2023-3-2 23:43 编辑
lemontreenm 发表于 2023-3-2 15:56
用51也可以啊,但是我不会。再说51又不便宜,价格差不多的情况下我选择一个高性能的MCU,高性能能用在低 ...


51才几毛钱……你也不说你是什么需求,有没有外设,什么工作条件。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-3-3 11:07:29 | 显示全部楼层
kkstun 发表于 2023-3-2 23:42
51才几毛钱……你也不说你是什么需求,有没有外设,什么工作条件。

肯定有外设呀,SPI驱动LCD/OLED屏幕。I2C连接另一个芯片,有几路模拟量需要ADC测量,有几个按键需要用到中断,TTL用于通信和升级。
51再便宜也没到几毛钱,别拿捡垃圾或者捡到垃圾拆芯片的价格说事
回复 支持 反对

使用道具 举报

发表于 2023-3-3 23:10:23 | 显示全部楼层
lemontreenm 发表于 2023-3-3 11:07
肯定有外设呀,SPI驱动LCD/OLED屏幕。I2C连接另一个芯片,有几路模拟量需要ADC测量,有几个按键需要用到 ...

LCD屏至少需要几毫安,OLED屏估计需要几十毫安,STM32F103C8T6就算跑8MHz也要8毫安,如果CPU不休眠、不对外设供电控制,这些应用对电池来说就是电老虎,用不了多久的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-3-4 05:06:05 | 显示全部楼层
本帖最后由 lemontreenm 于 2023-3-4 05:09 编辑
mmxx2015 发表于 2023-3-3 23:10
LCD屏至少需要几毫安,OLED屏估计需要几十毫安,STM32F103C8T6就算跑8MHz也要8毫安,如果CPU不休眠、不对 ...

你太想当然了,LCD屏幕昨天我刚测过,1ma以下的,具体多少电流我现有设备已经测不出来了。STM32F103C8T6跑8M也不需要8ma,实测大概是4ma多点,当然可以休眠降低到ua级别。外设供电控制,要用的东西肯定不能断电,要不然我还做这个东西干嘛。是不是电老虎,和STM32连接那个芯片几十ma的用电量,但是就是要用啊。这个东西的要求是能连续工作10个小时以上,目前的耗电情况完全符合我的设计初衷和预期。
回复 支持 反对

使用道具 举报

发表于 2023-3-4 07:27:58 来自手机浏览器 | 显示全部楼层
本帖最后由 mmxx2015 于 2023-3-4 07:31 编辑
lemontreenm 发表于 2023-3-4 05:06
你太想当然了,LCD屏幕昨天我刚测过,1ma以下的,具体多少电流我现有设备已经测不出来了。STM32F103C8T6跑 ...


你的LCD屏那么省电啊,我点256160黑白屏,刷新率比较低,加背光要5毫安呢。STM32F103C8T6那个电流是规格书上说的。
不过,你只要求工作十几个小时,不高。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-3-4 21:07:32 | 显示全部楼层
mmxx2015 发表于 2023-3-4 07:27
你的LCD屏那么省电啊,我点256160黑白屏,刷新率比较低,加背光要5毫安呢。STM32F103C8T6那个电流是规格 ...

背光灯的电流不好说的,看屏幕大小,还要看你点多亮。我测的是不开背光的时候的电流,我手上最小只有200ma量程的表,动都不动,所以我已经测不出来了,这个表1ma是能动一点点的,这个液晶屏是真的一点都不动。
还有,我说的STM32F103C8T6在8M时候大约4ma多点的电流是我实测的。
回复 支持 反对

使用道具 举报

发表于 2023-3-5 19:07:57 | 显示全部楼层
LCD不点背光的话电流不大,一开就几十ma。0.96之类的OLED也不低,手册上写的二十几ma,没有实际测过。
回复 支持 反对

使用道具 举报

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

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-5-2 12:18 , Processed in 0.249600 second(s), 12 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

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