历史上的今天
今天是:2025年07月10日(星期四)
2019年07月10日 | STM32小白入门(第15天)-------低功耗
2019-07-10 来源:eefocus
一、低功耗模式
1、概述
2. 身边应用的例子
A. 电脑
A. 小米手环
二、睡眠模式
三、停止模式


关于PWR_EnterSTOPMode的参数PWR_MainRegulator_ON与PWR_LowPowerRegulator_ON的区别:
#define PWR_MainRegulator_ON ((uint32_t)0x00000000)
#define PWR_LowPowerRegulator_ON PWR_CR_LPDS
#define PWR_CR_LPDS ((uint32_t)0x00000001) /*!< Low-Power Deepsleep */
执行PWR_EnterSTOPMode函数并传递PWR_LowPowerRegulator_ON参数表示连为SRAM、寄存器供电的调压器也进入低功耗模式,可参考以下PWR_CR寄存器的描述:
PWR_MainRegulator_ON表示停止模式下调压器还是在开启状态。
四、待机模式

注意事项,当使用停止模式或待机模式下,如果要使用JLink烧录程序,必须得按一下复位键,然后立即点击下载键才能进行下载,原因在于唤醒的时候需要时间过长,导致超时不能进行正确地下载!
思考题:
在红外接收解码的程序当中,添加LED灯的控制、蜂鸣器的控制,并结合低功耗模式的使用。思考当低功耗模式为睡眠模式和停止模式,这两种有什么区别?区别是什么?
答:在睡眠模式下,红外数据能够正确地接收!在停止模式下,由于重新唤醒CPU,且切换时钟,导致接收红外数据超时,所以红外数据不能够正确地接收!
五、程序设计
1、睡眠模式
唤醒时间短,执行_WFI(); 内核停止,外设依然工作
printf("This is sleep testrn");
while(1)
{
printf("cpu run into sleep....rn");
//执行__WFI指令,让CPU进入睡眠模式,立即停止运行指令
__WFI();
//延时500ms
//delay_ms(500);
printf("cpu wake up from sleep...rn");
//延时500ms
//delay_ms(500);
}
2、停止模式
printf("This is stop testrn");
while(1)
{
printf("cpu run into stop....rn");
//添加一个小延时,原因在进入停止模式的时候,串口缓冲区还有部分的数据,但是串口时钟已经开始不准确
delay_us(100);
//让CPU进入停止模式,CPU不仅仅停止运行任何指令,而且所有的时钟都停止
//内部的SRAM与寄存器的内容都会保留、PWR_LowPowerRegulator_ON参数表示连为SRAM、寄存器供电的调压器也进入低功耗模式
PWR_EnterSTOPMode(PWR_LowPowerRegulator_ON, PWR_STOPEntry_WFI);
//退出停止模式之后,M4会自动选择内部的HSI RC振荡器作为时钟源,但是实际上我们之前的代码都是使用到PLL,得重新初始化所有时钟
SystemInit();
printf("cpu wake up from stop...rn");
}
3、待机模式
printf("This is standby testrn");
while(1)
{
printf("cpu run into standby....rn");
//添加一个小延时,原因在进入待机模式的时候,串口缓冲区还有部分的数据,但是串口时钟已经开始不准确
//delay_us(100);
//让CPU进入待机模式,CPU不仅仅停止运行任何指令,而且所有的时钟都停止,1.2V域断电 RAM断电,唤醒效果相当于复位
PWR_EnterSTANDBYMode(); //RTC闹钟事件可唤醒
printf("cpu wake up from standby...rn");
}
史海拾趣
|
《社区大讲堂》DO-254中的高设计可靠性的逻辑综合(五)--冗余逻辑 缺省的逻辑综合目标都是减小面积,提高性能,而冗余电路和这一目标刚好相反。设计中的任何冗余都使设计面积增加,性能降低。 因此,逻辑综合工具缺省的设置都是寻找优化的方法来减少冗余,而不会自动的认识到冗余对设计可靠性的好处 ...… 查看全部问答> |
|
我编了一个小的中断程序,运行成功了,可是有的时候又不行?这是为什么? 另外我在中断服务子程序中点亮了一个灯,按说灯只要亮就说明进了中断,我这里会出现灯亮,PIVR向量却为0,且time也没有加1,这种情况是算进了中断了还是没进中断呢?出现这 ...… 查看全部问答> |
|
各位大神,哪位有GTP的例化到调用的全过程的资料啊?例化倒还可以,但是后面的modelsim或者ise simulator仿真的时候就不知道怎么弄了?急求这方面的资料教程~~~哪位大神行行好,拉小弟一把!!! 邮箱:834710955@qq.com… 查看全部问答> |
|
各位大哥大神大侠,请帮帮我,搞了一天,要奔溃了。我是初学者,这是视频教程的一个hello的内核模块,用arm-linux-gcc-4.3.2编译时,总说找不到linux/init.h和linux/module.h, 我locate了一下,这两个文件在 /usr/src/kernels/2.6.35.6-45.fc14.i ...… 查看全部问答> |
|
学习电子元器件的重磅资源---电子工程师必备:元器件应用宝典。胡斌老师抗鼎力作! 关于本书的评论 《电子工程师必备:元器件应用宝典》是一本元器件应用技术手册。全书介绍了各种常用元器件的基础知识和典型应用电路,具体内容包括电路符号信息解说,外形及型号识别方法,引脚分布规律及识别方法,引脚极性识别方法,主要特性讲解 ...… 查看全部问答> |
|
比如两个不同回路,大致看来都有滤波电容,电感之类的元器件,滤波类型也差不多,那如何判定哪个滤波效果好呢,是否是看电容,电感的数量或者电容,电感的容量大小,还是?… 查看全部问答> |




