您的位置 首页 培训

STM32 的待机唤醒功用

STM32待机模式简介很多单片机都有低功耗模式,STM32也不例外。在系统或电源复位以后,微控制器处于运行状态。运行状态下的HCLK为CPU提供时…

STM32待机形式简介

许多单片机都有低功耗形式,STM32也不破例。在体系或电源复位今后,微操控器处于运转状况。运转状况下的HCLK为CPU供给时钟,内核履行程序代码。当CPU不需持续运转时,能够运用多个低功耗形式来节约功耗,例如等候某个外部事情时。用户需求依据最低电源耗费,最快速发动时刻和可用的唤醒源等条件,选定一个最佳的低功耗形式。STM32的3种低功耗模

STM32的低功耗形式有3种:

1)睡觉形式(CM3内核中止,外设依然运转)

2)中止形式(一切时钟都中止)

3)待机形式(1.8V内核电源封闭)

在这三种低功耗形式中,最低功耗的是待机形式,在此形式下,最低只需求2uA左右的电流。停机形式是次低功耗的,其典型的电流耗费在20uA左右。最终便是睡觉形式了。用户能够依据自己的需求来决议运用哪种低功耗形式。

进入待机形式履行过程

有4种办法能够退出待机形式,即当一个外部复位(NRST引脚)、IWDG复位、WKUP引脚上的上升沿或RTC闹钟事情产生时,微操控器从待机形式退出。从待机唤醒后,除了电源操控/状况寄存器(PWR_CSR),一切寄存器被复位。

从待机形式唤醒后的代码履行等同于复位后的履行(采样发动形式引脚,读取复位向量等)。电源操控/状况寄存器(PWR_CSR)将会指示内核由待机状况退出。

在进入待机形式后,除了复位引脚以及被设置为防侵入或校准输出时的TAMPER引脚和被使能的唤醒引脚(WK_UP脚),其他的IO引脚都将处于高阻态。

进入待机形式的办法,以及设置WK_UP引脚用于把STM32从待机形式唤醒的办法。具体过程如下:

1)使能电源时钟。

由于要装备电源操控寄存器,所以必须先使能电源时钟。在库函数中,使能电源时钟的办法是:

RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);//使能PWR外设时钟

2)设置WK_UP引脚作为唤醒源。

使能时钟之后后再设置PWR_CSR的EWUP位,使能WK_UP用于将CPU从待机形式唤醒。在库函数中,设置使能WK_UP用于唤醒CPU待机形式的函数是:

PWR_WakeUpPinCmd(ENABLE);//使能唤醒管脚功用

3)设置SLEEPDEEP位,设置PDDS位,履行WFI指令,进入待机形式。

进入待机形式,首先要设置SLEEPDEEP位,接着咱们经过PWR_CR设置PDDS位,使得CPU进入深度睡觉时进入待机形式,最终履行WFI指令开端进入待机形式,并等候WK_UP中止的到来。在库函数中,进行上面三个功用进入待机形式是在函数PWR_EnterSTANDBYMode中完成的:

voidPWR_EnterSTANDBYMode(void);

4)最终编写WK_UP中止函数。

由于咱们经过WK_UP中止(PA0中止)来唤醒CPU,所以咱们有必要设置一下该中止函数,一起咱们也经过该函数里边进入待机形式。

经过以上几个过程的设置,咱们就能够运用STM32的待机形式了,而且能够经过WK_UP来唤醒CPU

  1. voidSys_Standby(void)
  2. {
  3. RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);//使能PWR外设时钟
  4. PWR_WakeUpPinCmd(ENABLE);//使能唤醒管脚功用
  5. PWR_EnterSTANDBYMode();//进入待命(STANDBY)形式
  6. }
  7. //体系进入待机形式
  8. voidSys_Enter_Standby(void)
  9. {
  10. RCC_APB2PeriphResetCmd(0X01FC,DISABLE);//复位一切IO口
  11. Sys_Standby();
  12. }

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/peixun/275301.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部