龙华网站制作要多少钱,网络营销方式有哪些 各有什么特点,营销型网站建设网站,做外贸有哪些好的网站STM32 待机模式 文章目录 STM32 待机模式第1章 低功耗模式简介第2章 待机模式简介2.1 进入待机模式2.1 退出待机模式 第3章 待机模式代码部分总结 第1章 低功耗模式简介
在 STM32 的正常工作中#xff0c;具有四种工作模式#xff1a;运行、睡眠、停止和待机模式。
在系统或…STM32 待机模式 文章目录 STM32 待机模式第1章 低功耗模式简介第2章 待机模式简介2.1 进入待机模式2.1 退出待机模式 第3章 待机模式代码部分总结 第1章 低功耗模式简介
在 STM32 的正常工作中具有四种工作模式运行、睡眠、停止和待机模式。
在系统或电源复位以后微控制器处于运行状态当CPU不需继续运行时可以利用多种低功耗模式来节省功耗。这些低功耗模式电源消耗不同、唤醒时间不同和唤醒源不同。 例如等待某个外部事件时用户需要根据最低电源消耗、最快速启动时间和可用的唤醒源等条件所以需要根据自身的需要选定一个最佳的低功耗模式。
STM32F1有三种低功耗模式 1、睡眠模式(Cortex™-M3内核停止所有外设包括Cortex-M3核心的外设如NVIC、系统时钟(SysTick)等仍在运行)。 2、停止模式(所有的时钟都已停止)。 3、待机模式(1.8V电源关闭)。
各种低功耗模式的对比如下表 说明 WFI和WFE都是系统指令WFI是表示中断WFE表示事件。
第2章 待机模式简介
待机模式下的输入/输出端口状态 在待机模式下所有的I/O引脚处于高阻态除了以下的引脚 1、复位引脚(始终有效)。 2、当被设置为防侵入或校准输出时的TAMPER引脚。 3、被使能的唤醒引脚。
待机模式可实现系统的最低功耗。该模式是在Cortex M3深睡眠模式时关闭电压调节器。整个1.8V供电区域被断电。PLL、HSI和HSE振荡器也被断电。SRAM和寄存器内容丢失只有备份的寄存器和待机电路维持供电。
2.1 进入待机模式
可以通过设置独立的控制位选择以下待机模式的功能 1、 独立看门狗(IWDG)可通过写入看门狗的键寄存器或硬件选择来启动IWDG。一旦启动了独立看门狗除了系统复位它不能再被停止。 2、 实时时钟(RTC)通过备用区域控制寄存器(RCC_BDCR)的RTCEN位来设置。 3、 内部RC振荡器(LSI RC)通过控制/状态寄存器(RCC_CSR)的LSION位来设置。 4、 外部32.768kHz振荡器(LSE)通过备用区域控制寄存器(RCC_BDCR)的LSEON位设置。
2.1 退出待机模式
当一个外部复位(NRST引脚)、IWDG复位、WKUP引脚上的上升沿或RTC闹钟事件的上升沿发生时微控制器从待机模式退出。
从待机唤醒后除了电源控制/状态寄存器(PWR_CSR)所有寄存器被复位。 从待机模式唤醒后的代码执行等同于复位后的执行(采样启动模式引脚、读取复位向量等)。电源控制/状态寄存器(PWR_CSR)将会指示内核由待机状态退出。
如何进入和退出待机模式细节参考如下表
第3章 待机模式代码部分 示例代码如下 void EXTI0_IRQHandler(void)
{delay_ms(20); /* 延时消抖 */if(EXTI_GetFlagStatus(EXTI_Line0) SET){printf(进入待机模式\r\n); if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0) 1)//PA0引脚触发高电平{RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);PWR_WakeUpPinCmd(ENABLE);//使能WKUP引脚的唤醒功能PWR_EnterSTANDBYMode();//进入待机模式}}EXTI_ClearITPendingBit(EXTI_Line0);/* 清除LINE0上的中断标志位 */
}中断引脚唤醒代码部分(略) 和前面退出睡眠模式的代码一样可以移步到睡眠模式文章参考即可。 总结
1、待机模式可实现系统的最低功耗在睡眠模式和停止模式基础上更加节省能耗。
2、在调试模式默认情况下如果在进行调试微处理器时使微处理器进入停止或待机模式将失去调试连接。所以需要退出这些低功耗模式后才可以进行程序调试和下载否则是无法进行连接的。
3、可以利用待机模式达到最低功耗这一特性来实现降低一些产品的功耗按键按下唤醒工作再按下时就进入待机避免不使用系统时的能量损耗类似于现在的手机开关机等。
特别提醒 以上的几篇文章都没有做寄存器的介绍若需要了解可以到芯片(中文)参考手册进行查阅学习。 睡眠模式文章 停止模式文章