(1)3时钟模式

①睡眠模式②停止模式③待机模式

1.睡眠模式:Cortex-M3内核(理解为CPU)停止工作,CPU供电1.8V有着,周边任何执行。执行

2.停机模式:全部时钟都停止,CPU电源1.8V没断。唤醒后从原来位置运行

3.待机模式:时钟全断,CPU电源1.8V也断,唤醒后程序又一次运行

可形象參考:

CPU:皇上

CPU电源1.8V:皇后

外设:将军

那么:

1.睡眠模式:仅仅有皇上睡觉

2.停机模式:皇上,将军睡觉

3.待机模式:皇上,皇后。将军全睡觉了

(原则:皇后不睡觉,程序可被保留,唤醒后从原来位置运行)

(二)程序简单介绍(库函数)

1.睡眠模式

	while(1)
{
/* wait interrupt */
LED1( ON );
Delay(0xFFFFF);
LED1( OFF ); LED2( ON );
Delay(0xFFFFF);
LED2( OFF ); LED3( ON );
Delay(0xFFFFF);
LED3( OFF ); __WFI();
}

__WFI(); 进入睡眠模式,随意中断唤醒。唤醒后不用再配置时钟

2.停止模式

①/*由于要使用其外设时钟等。故需用到pwr*/

#include "stm32f10x_pwr.h"

②/*使能电源管理单元的时钟*/

RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);

③进入停止模式

PWR_EnterSTOPMode(PWR_Regulator_LowPower,PWR_STOPEntry_WFI);

④唤醒:外部中断

由于将军睡了,(及外设时钟关了,因此须要又一次配置)唤醒后须要又一次启动HSE

SYSCLKConfig_STOP();

void SYSCLKConfig_STOP(void)
{
ErrorStatus HSEStartUpStatus;
/* 使能 HSE */
RCC_HSEConfig(RCC_HSE_ON); /* 等待HSE准备就绪*/
HSEStartUpStatus = RCC_WaitForHSEStartUp(); if(HSEStartUpStatus == SUCCESS)
{ /* 使能 PLL */
RCC_PLLCmd(ENABLE); /* 等待 PLL 准备就绪 */
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
{
} /* 选择PLL作为系统时钟源*/
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); /*等待PLL被选择为系统时钟源 */
while(RCC_GetSYSCLKSource() != 0x08)
{
}
}
}

3.待机模式

①/*由于要使用其外设时钟等,故需用到pwr*/

#include "stm32f10x_pwr.h"

②/*使能电源管理单元的时钟*/

RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);

③进入待机模式

/*使能WKUP引脚的唤醒功能,WKUP是第二功能。不用配置它的输出模式(不是太懂)*/
PWR_WakeUpPinCmd (ENABLE);
/*进入待机模式*/
PWR_EnterSTANDBYMode();

④唤醒,复位唤醒。PA0上升沿唤醒

⑤检測是复位唤醒还是PA0上升沿唤醒

if(PWR_GetFlagStatus(PWR_FLAG_WU) == SET)
{
  printf("\r\n PA0上升沿唤醒\r\n"); }
else
  printf("\r\n 其它\r\n");

由于待机唤醒程序从头运行,故不用多加配置时钟的函数了

                                                      狂人用脑子

版权声明:本文博主原创文章。博客,未经同意不得转载。

STM32电源管理的更多相关文章

  1. linux驱动编写(电源管理驱动)

    对于嵌入式设备来说,合适的电源管理,不仅可以延长电池的寿命,而且可以省电,延长设备运行时间,在提高用户体验方面有很大的好处.所以,各个soc厂家在这方面花了很多的功夫.下面,我们可以看看linux是如 ...

  2. 第42章 电源管理—实现低功耗—零死角玩转STM32-F429系列

    第42章     电源管理—实现低功耗 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fir ...

  3. [专业名词·硬件] 2、DC\DC、LDO电源稳压基本常识(包含基本原理、高效率模块设计、常见问题、基于nRF51822电源管理模块分析等)·长文

    综述先看这里 第一节的1.1简单介绍了DC/DC是什么: 第二节是关于DC/DC的常见的疑问答疑,非常实用: 第三节是针对nRF51822这款芯片电源管理部分的DC/DC.LDO.1.8的详细分析,对 ...

  4. Linux电源管理(11)_Runtime PM之功能描述

    转自:http://www.wowotech.net/pm_subsystem/rpm_overview.html 1. 前言 终于可以写Runtime PM(后面简称RPM)了,说实话,蜗蜗有点小激 ...

  5. USB电源管理

    在USB总线接口协议中,由于涉及电源供电,因此协议中规定了完整的电源管理方案.通过USB电源管理可以实现USB设备的激活.挂起.空闲和睡眠等,从而降低无效的功率消耗,实现系统电源的有效使用和合理分配. ...

  6. Android电源管理-休眠简要分析

    一.开篇 1.Linux 描述的电源状态 - On(on)                                                 S0 -  Working - Standb ...

  7. exynos 4412 电源管理芯片PMIC 的配置及使用方法

    /** ****************************************************************************** * @author    Maox ...

  8. linux电源管理系列(一)

    本系列将逐步介绍linux电源管理相关的知识,涉及到常见电源管理机制.linux电源管理机制.linux驱动中有关电源管理的相关接口.内核文档中关于Linux电源管理架构文档的分析.以下将以此来介绍相 ...

  9. linux驱动程序之电源管理之Run-time PM 详解(4)

    Run-time PM. 每个device或者bus都会向run-time PM core注册3个callback   struct dev_pm_ops { ... int (*runtime_su ...

随机推荐

  1. JavaScript 常见陷阱

    JavaScript中的一些特性和通常我们想象的不太一样.这里我总结了一些有悖直觉的语言特性. 1 数组 1.1 数组的遍历 在直接支持for a in b的语言中,比方Python/Ruby里的a的 ...

  2. Ibatis之3个不经常使用的Query方法

    1.queryForObject /** * Executes a mapped SQL SELECT statement that returns data to populate * the su ...

  3. python进阶八_警告和异常

    心情有点纠结,怎么说呢,倒不是由于其它学习上的事情,反而是由于生活上狗血的剧情逼着人偏离,渐行渐远,人跟人之间有误会也是正常的,可能是由于交流不够,彼此不够了解吧,希望能尽快度过这一段纠结的日子,简单 ...

  4. NLB+Application Request Route 网路负载均衡

    NLB网路负载均衡管理器详解   序言 在上一篇配置iis负载均衡中我们使用啦微软的ARR,我在那篇文章也中提到了网站的高可用性,但是ARR只能做请求入口的消息分发服务,这样如果我们的消息分发服务器给 ...

  5. android studio 怎样正确导入jar

    近期又開始做android,使用android studio中遇到导入jar没有反应的问题,查了下资料实践攻克了,现特地写一下博客.希望对刚刚的使用的android studio的朋友有帮助. 1.先 ...

  6. java计算器 图形用户界面 精简版

    package com.rgy.entity; import java.awt.*; import java.awt.event.*; @SuppressWarnings("serial&q ...

  7. Maven学习笔记(三) :Maven使用入门

    编写POM:      Maven项目的核心是pom.xml.POM(Project Object Model,项目对象模型)定义了项目的基本信息,用于描写叙述项目怎样构建,声明项目依赖,等等.   ...

  8. 组态Log4j(非常具体的)

    来自哪里: http://www.blogjava.net/zJun/archive/2006/06/28/55511.html Log4J的配置文件(Configuration File)就是用来设 ...

  9. RH033读书笔记(6)-Lab 7 Standard I/O and Pipes

    Lab 7 Standard I/O and Pipes 1. [student@stationX ~]$ cat /proc/cpuinfo /proc/meminfo 2. [student@st ...

  10. UI —— 计算器

    #import <UIKit/UIKit.h> @interface MyViewController :UIViewController { NSInteger _firstName; ...