STM32的低功耗设置
因为产品需求,系统功耗是一个很重要的考虑方面。好好看下STM32F103的低功耗问题,以便编写驱动。
1、STM32的电源
1.1 STM32电源框图

上面的电源中需要注意的是后备供电区域,这个部分由VBAT独立供电,跟软件有关的是后备寄存器、RCC_BDCR寄存器、整个RTC模块(包括很多寄存器后面介绍)。
当使用电池或者其他电源连接到VBAT上时,当VDD断电时,可以保持后备寄存器中的内容和维持RTC功能。BVAT与VDD之间的切换由复位模块中的掉电复位功能控制。
1.2 电压调节器

STM32的3种工作模式,运转模式和3种低功耗模式--停止模式和待机模式,还有个睡眠模式,他们都和电压调节器有关。停机模式消耗电流大约在mA级别,而待机模式消耗电流在uA级别。注意上面的说明:“调节器停止供电。除了备用电路和备份域外,寄存器和SRAM的内容全部丢失”。这句话意味着,从待机模式回到正常运转模式时,程序先前配置过的寄存器都将恢复到默认值。比如,你配置了串口,而从待机模式叫醒时,需要重新配置串口,程序里使用的SRAM区域变量全部不能使用了。这就需要 当我们进入到待机模式前,可以把必要的数据保存到备份供电区域。备份区域就是给你这么用的。
STM32的低功耗设置的更多相关文章
- STM32启动地址设置及从非0x800000 开始调试程序
首先设置程序的启动地址,STM32默认的启动地址是从0x8000000开始的,现在我要设置程序向后偏移10K地址,也就是从0x8002800启动. 需要分两步完成上面操作: 一.Keil MDK设置: ...
- MSP430主系统时钟以及430的低功耗设置
如何将系统时钟设置到外部高频晶体振荡器,430的MCLK默认的是DCO的,如何安全的从DCO切换到外部晶体振荡器,这是一个很重要的步骤,因为经过此步骤,可以极大地提高430的处理能力,DCO在内部,可 ...
- STM32 CAN 波特率设置及采样点设置
一.CAN波特率 STM32 位时间定义: ● 同步段(SYNC_SEG):通常期望位的变化发生在该时间段内.其值固定为1个时间单元(1 x tCAN).● 时间段1(BS1):定义采样点的位置.它包 ...
- zigbee ------ JN5169低功耗设置
低功耗睡眠设置Power Manager (PWRM) PWRM_vInit() 如果进入睡眠模式,设置芯片进入何种睡眠模式 PWRM_eScheduleActivity()设置进入睡眠多长时间(时钟 ...
- STM32的低功耗模式
一 待机模式standby和STOP模式的区别: 进入低功耗模式:都一样,都是先关闭相应时钟,关闭相应外设,配置相应所有IO口(浮动输入),然后配置相应的唤醒中断源,中断影响的O口,然后调用相应函数进 ...
- STM32内部时钟设置-寄存器版
STM32寄存器版本——内部时钟设置 同时要记得把延时初始化函数设置好 //系统时钟初始化函数 //pll:选择的倍频数,从2开始,最大值为16 //pll:选择的倍频数,这里使用内部时钟,PLL为4 ...
- IAR STM32 ------ CSTACK HEAP 设置一次可用栈的大小,HardFault_Hander
CSTACK:限制函数中定义数组的最大值,否则进入HardFault_Hander HEAP:限制动态分配内存(C函数库中的malloc)的大小,不用可以设置为0
- CC2530低功耗设置(针对终端设备)
一. 终端设备只完成发送数据 1.开启POWER_SAVING 预编译 2.f8wConfig_cfg 中的RFD_RCVC_ALWAYS_ON=FALSE 3.f8wConfig_cfg中四个DPo ...
- STM32串口的设置和库函数的介绍
串口设置的一般步骤可以总结为如下几个: 1) 串口时钟使能, GPIO时钟使能 2) 串口复位 3)GPIO 端口模式设置 4) 串口参数初始化 5) 开启中断并且初始化 NVIC(如果需要开启中 ...
随机推荐
- GFS, HDFS, Blob File System架构对比
分布式文件系统很多,包括GFS,HDFS,淘宝开源的TFS,Tencent用于相册存储的TFS (Tencent FS,为了便于区别,后续称为QFS),以及Facebook Haystack.其中,T ...
- JSON与字符串互相转换的几种方法
1 2 3 4 5 6 7 8 字符串转对象(strJSON代表json字符串) var obj = eval(strJSON); var obj = strJSON.parseJSON(); ...
- shell的函数的简单入门
shell的函数的简单入门 语法: function funcname(){} 示例: #!/bin/bash #定义将参数转化为大写的函数 function strToUpper(){ | tr ' ...
- dedecms--需要注意的细节
在系统的系统配置参数里面修改一些参数 1:站点设置: (1):站点根网址:本地测试的话:就是你设置的虚拟主机:http://www.abc.cc (2):网页主页链接:为空 2:核心设置: DedeC ...
- Delphi中的操作二进制文件的两个重要函数
Delphi中的操作二进制文件的两个重要函数 对于通过Byte数组进行文件操作的,在FTP中经常会使用到,我也是在Delphi调用Web Service进行文件的上传和下载时找到这两个函数的,挺好用的 ...
- 关于FileZilla Server的安装问题
网上很多FileZilla Server教程到最后一步在本机上测试访问成功就没了,实际上还是不完整的,一般情况下外网还是访问不了,外网访问同样很重要. 可能有点童鞋会说安装的时候防火墙提示的时候我也点 ...
- gdb源码安装过程中的问题:no termcap library found
gdb使用源码安装的时候遇到错误:no termcap library found ./configure --> make --> make install 解决办法,下载termca ...
- 数据库系统学习(六)-SQL语言基本操作
第六讲 SQL语言概述 基本命名操作 关系代数是集合的思想 关系演算是逻辑的思想(数学公式) SQL-86,SQL-89,SQL-92,SQL-99,SQL-2003,2008...发展过程标准 SQ ...
- [Binary Hacking] ABI and EABI
Following are some general papers about ABI and EABI. Entrance https://en.wikipedia.org/wiki/Applica ...
- invlpg 指令简单介绍
invlpg 指令简单介绍 void tlb_invalidate(pde_t *pgdir, void *va) { // Flush the entry only if we're modifyi ...