问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

STM32待机唤醒实验,时钟问题求助

发布网友 发布时间:2022-05-06 13:57

我来回答

1个回答

热心网友 时间:2023-10-09 21:35

大家翻开STM32的中文参考手册(你们看就行了,我翻,然后截图),里面关于STM32的低功耗模式有详细的标注,突然不想截图。。

1、睡眠模式(Cortex™-M3内核停止,所有外设包括Cortex-M3核心的外设,如NVIC、系统时钟(SysTick)等仍在运行)

2、停止模式(所有的时钟都已停止)

3、待机模式(1.8V电源关闭)(我们本博客中具体介绍的一种模式,也是功耗最低的模式)

现附上三者照片、、望观众好好欣赏、、还有请稍微注意下我的涂鸦、、小弟感激不尽:

啊哈、、这照片是不是很神奇呀、、即把三个老家伙的家底进行了较为认真的比较,而且从照片中我们也可以看出,如何进入,如何唤醒他们、、而且有什么影响都跟我们透露了、、可谓是后生可畏呀、、所以我叫大家注意我美丽的涂鸦是有道理的、、哈、

在本博客中,我们就利用WKUP引脚的上升沿来唤醒MCU、、不好意思哈、、老是把上升沿打成上小沈阳、、所以我们就具体来介绍待机唤醒的实现方法、、

那我们要怎么来进入待机模式、、又要怎么唤醒呢?

看到“进入”中的红色数字标号了吧、、没错了、、我们只要按照此步骤来设置相应的寄存器就行了、、那、、我打???的是什么呢??好了、、请容许我介绍下:

1、 Cotex_M3系统控制寄存器中的SLEEPDEEP位到底在哪呢??大家请翻开《权威指南》第182页可以看到表格、、当然这里不用你翻开、、因为我已截图:

2、电源控制寄存器(PWR_CR)中PDDS位:请看寄存器的位:

3、电源控制/状态寄存器(PWR_CSR)中EWUP位

至此、我们通过这三步、完成了进入待机模式的任务、、那我们怎么通过程序实现呢?啊哈、、库神出现吧、、:::系统出现奔溃、、请稍后、、详情请咨询10086、、

额、、出现了点意外、、不急哈、、那我们先来看看怎么退出待机模式:重现一张图片:

看到了吧、、在这里我们就利用其中一种方式来唤醒:WKUP引脚的上升沿、、注意哈、、注意此上升沿三个字哈、、 至于为什么要注意上升沿、、在这里提出我也是有目的、、先记着哈、、你此时想的为什么要注意的原因肯定跟我待会提到的时候不一样、、在此先奸笑下、、

那我们要怎么来唤醒呢??

亲、、我们通过外部中断触发来唤醒、、所以请看代码:

1 void Wkup_Init(void)

2 {

7 EXTI_InitTypeDef EXTI_InitStructure;

8 NVIC_InitTypeDef NVIC_InitStructure;

9

10 KEY_Init();//我的IO初始化在按键里已经初始化了

11

12 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);

13

14 GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource0);

15

16 EXTI_InitStructure.EXTI_Line = EXTI_Line0; //PA0

17 EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;

18 EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;

19 EXTI_InitStructure.EXTI_LineCmd = ENABLE;

20 EXTI_Init(&EXTI_InitStructure);

21

22 NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;

23 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02;

24 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x03;

25 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

26 NVIC_Init(&NVIC_InitStructure);

27

28 if(Check_up() == 0) //系统初始化后由于没有按下按键、、所以系统直接进入了待机模式了,所以下载了程序没有任何反应、、需要人为的唤醒:死猪,就知道睡,快醒、、

29 {

30 Sys_Standby(); //进入待机模式

31 }

32 }

复制代码

复制代码

//正常模式下会运行中断服务函数,而待机模式下则不会运行中断服务函数、、因为待机模式下MCU不工作,所以上升沿的作用也仅仅是唤醒、、

//在这里提醒:唤醒只需要上升沿、、所以从待机模式切换到正常模式下从始至终都不会执行中断服务函数

//在这里,知道我为什么要在上面提醒大家要注意上升沿了吧、(下面还有)、

//至于为什么不会执行,待会我还会给出解释、、

3 void EXTI0_IRQHandler(void)

4 {

5 EXTI_ClearITPendingBit(EXTI_Line0);

6 if(Check_up())

7 {

8 Sys_Enter_Standby();

9 }

10 }

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
华为m330盒子突然没有图像重新开机指示灯也不闪什么原因 新买了个华为机顶盒,安装上去之后插上网线显示网络已经连接但是上不去... 90后的中文Hip-Hop启蒙(误) 内卷是什么意思?如何正确看待内卷? 两年检出5种病,它们之间有联系吗 暗黑地牢7601更新内容一览介绍_暗黑地牢7601更新内容一览是什么_百度知 ... 暗黑地牢实用mod推荐 04丨社区魔方数字底座中台功能:支付、结算和积分中台 暗黑地牢英雄各种状态效果是什么-暗黑地牢英雄全折磨与美德状态详细攻略... 壁虎咬人了该怎么办 很多芯片的额定电压都是5v的 怎么用stm32来控制 能写stm32的程序? 这两个电路求解原理 感谢!(STM32)? STM32H723VGH6是哪个类型的电子? STM32 EXTI多少个?分别接到什么中断源,GPIO的EXTI有多少个? STM23标题为什么右移后控制码要加0X8000 STM23 在电气系统图中代表什么意思? 在平安车贷,贷款三万六,二十四期,利息一万左右,这个利息高吗,应该是多少? *决定取消水利工程质量与安全监督员职业资格许可和认定,是不是说水利工程不需要设置专职安全员了? - 信息提示 新浪微博,直播吧还有几个页面打不开,其他网站都正常能打开 直播吧上的视频集锦 无法打开是怎么回事 请问为什么手机微博客户端打不开视频呢? 键盘是哪个键是顿号和书名号??貌似没有吧........ 手机下载的软件总显示停止运行怎么回事 下载后运行不了怎么回事? 手机丢了怎么登录 世界气候类型分布图怎样好记 怎样记忆世界气候类型的特点,成因,植被等 怎样快速记住世界气候带的形成原因及其分布 解答触发器与存储过程? 中国芦苇都分布在哪里 425分理科能上什么大学 西安芦苇荡在哪里 怎样做东北粘豆包 芦苇产地在哪 东营什么地方产芦苇? 我想知道中国生长芦苇的地方竟有哪里 谁知道芦苇的主要产地在哪里? 四百分理科能上什么大学? 天津地区成为世界面积最大芦苇荡的自然原因? .怎样做东北粘豆包 山东哪儿芦苇多? 东北豆包的做法家常做法 为什么洞庭湖芦苇特别多,而鄱阳湖芦苇却很少 东北粘豆包的做法步骤图,东北粘豆包怎么做 芦苇是在什么地方的? 正宗东北粘豆包怎么做如何做好 扬州哪里有芦苇 在上海浦东哪里有芦苇?