在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32速成筆記(13)—低功耗模式

冬至子 ? 來(lái)源:二土電子 ? 作者:二土電子 ? 2023-10-24 15:39 ? 次閱讀

一、STM32低功耗模式介紹

STM32提供了一些低功耗模式。默認(rèn)情況下,系統(tǒng)復(fù)位或上電復(fù)位后,微控制器進(jìn)入運(yùn)行模式。在運(yùn)行模式下,HCLK 為CPU提供時(shí)鐘,并執(zhí)行程序代碼。當(dāng) CPU 不需要繼續(xù)運(yùn)行(例如等待外部事件) 時(shí),可以利用多種低功耗模式來(lái)節(jié)省功耗。

STM32 提供了 3 種低功耗模式,以達(dá)到不同層次的降低功耗的目的

  • ? 睡眠模式 (內(nèi)核停止工作,外設(shè)仍在運(yùn)行)
  • ? 停止模式 (所有時(shí)鐘都停止)
  • ? 待機(jī)模式 ( 1.8 V 內(nèi)核電源關(guān)閉)

這三種模式所需的功耗是逐級(jí)遞減,也就是說(shuō)待機(jī)模式功耗是最低的。

在睡眠模式中,僅關(guān)閉了內(nèi)核時(shí)鐘,內(nèi)核停止運(yùn)行,但其片上外設(shè),CM3 核心的外設(shè)全都照常運(yùn)行 。在停止模式中,進(jìn)一步關(guān)閉了其它所有的時(shí)鐘,于是所有的外設(shè)都停止了工作,但由于其 1.8V 區(qū)域的部分申源沒(méi)有關(guān)閉,還保留了內(nèi)核的寄存器、內(nèi)存的信息,所以 從停止模式喚醒,并重新開(kāi)啟時(shí)鐘后,還可以從上次停止處繼續(xù)執(zhí)行代碼

在待機(jī)模式中,它除了關(guān)閉所有的時(shí)鐘,還把 1.8V 區(qū)域的電源也完全關(guān)閉了,也就是說(shuō), 從待機(jī)模式喚醒后,由于沒(méi)有之前代碼的運(yùn)行記錄,只能對(duì)芯片復(fù)位,重新檢測(cè)BOOT條件,從頭開(kāi)始執(zhí)行程序

另外,在運(yùn)行模式下也可以通過(guò)降低系統(tǒng)時(shí)鐘,關(guān)閉APB和AHB總線上未被使用的外設(shè)時(shí)鐘來(lái)降低功耗。

圖片

低功耗模式一覽表

二、睡眠模式

2.1 進(jìn)入睡眠模式

通過(guò)執(zhí)行WFI或WFE指令進(jìn)入睡眠狀態(tài)。根據(jù)Cortex-M3系統(tǒng)控制寄存器中的SLEEPONEXIT位的值,有兩種選項(xiàng)可用于選擇睡眠模式進(jìn)入機(jī)制

  • ? SLEEP-NOW 如果SLEEPONEXIT位被清除,當(dāng)WRI或WFE被執(zhí)行時(shí),微控制器立即進(jìn)入睡眠模式。
  • ? SLEEP-ON-EXIT 如果SLEEPONEXIT位被置位,系統(tǒng)從最低優(yōu)先級(jí)的中斷處理程序中退出時(shí),微控制器就立即進(jìn)入睡眠模式。

在睡眠模式下,所有的I/O引腳都保持它們?cè)谶\(yùn)行模式時(shí)的狀態(tài)。

2.2 退出睡眠模式

如果執(zhí)行WFI指令進(jìn)入睡眠模式 ,任意一個(gè)被嵌套向量中斷控制器(NVIC)響應(yīng)的外設(shè)中斷都能將系統(tǒng)從睡眠模式喚醒。也就是任意一個(gè)外部中斷都可以喚醒。

如果執(zhí)行WVFE指令進(jìn)入睡眠模式 ,則一旦發(fā)生喚醒事件時(shí),微處理器都將從睡眠模式退出。喚醒事件可以通過(guò)下述方式產(chǎn)生

  • ? 在外設(shè)控制寄存器中使能一個(gè)中斷,而不是在NVIC(嵌套向量中斷控制器)中使能,并且在Cortex-M3系統(tǒng)控制寄存器中使能SEVONPEND位。當(dāng)MCU從WFE中喚醒后,外設(shè)的中斷掛起位和外設(shè)的NVIC中斷通道掛起位(在NVIC中斷清除掛起寄存器中)必須被清除。
  • ? 配置一個(gè)外部或內(nèi)部的EXIT線為事件模式。當(dāng)MCU從WFE中喚醒后,因?yàn)榕c事件線對(duì)應(yīng)的掛起位未被設(shè)置,不必清除外設(shè)的中斷掛起位或外設(shè)的NVIC中斷通道掛起位。

該模式喚醒所需的時(shí)間最短,因?yàn)闆](méi)有時(shí)間損失在中斷的進(jìn)入或退出上。

圖片

SLEEP-NOW模式

圖片

SLEEP-ON-EXIT模式

三、停止模式

停止模式是在Cortex-M3的深睡眠模式基礎(chǔ)上結(jié)合了外設(shè)的時(shí)鐘控制機(jī)制,在停止模式下電壓調(diào)節(jié)器可運(yùn)行在正常或低功耗模式。此時(shí)在1.8V供電區(qū)域的的所有時(shí)鐘都被停止,PLL、HSI和HSE RC振蕩器的功能被禁止,SRAM和寄存器內(nèi)容被保留下來(lái)。

在停止模式下,所有的I/O引腳都保持它們?cè)谶\(yùn)行模式時(shí)的狀態(tài)。

3.1 進(jìn)入停止模式

在停止模式下,通過(guò)設(shè)置電源控制寄存器(PWR CR)的LPDS位使內(nèi)部調(diào)節(jié)器進(jìn)入低功耗模式能夠降低更多的功耗。

如果正在進(jìn)行閃存編程,直到對(duì)內(nèi)存訪問(wèn)完成,系統(tǒng)才進(jìn)入停止模式。如果正在進(jìn)行對(duì)APB的訪問(wèn),直到對(duì)APB訪問(wèn)完成,系統(tǒng)才進(jìn)入停止模式。在停止模式下,如果在進(jìn)入該模式前ADCDAC沒(méi)有被關(guān)閉,那么這些外設(shè)仍然消耗電流。通過(guò)設(shè)置寄存器ADC CR2的ADON位和寄存器DAC CR的ENx位為0可關(guān)閉這2個(gè)外設(shè)。

3.2 退出停止模式

當(dāng)一個(gè)中斷或喚醒事件導(dǎo)致退出停止模式時(shí),HSI RC振蕩器被選為系統(tǒng)時(shí)鐘。當(dāng)電壓調(diào)節(jié)器處于低功耗模式下,當(dāng)系統(tǒng)從停止模式退出時(shí),將會(huì)有一段額外的啟動(dòng)延時(shí)。如果在停止模式期間保持內(nèi)部調(diào)節(jié)器開(kāi)啟,則退出啟動(dòng)時(shí)間會(huì)縮短,但相應(yīng)的功耗會(huì)增加。

圖片

停止模式

四、待機(jī)模式

待機(jī)模式可實(shí)現(xiàn)系統(tǒng)的最低功耗。該模式是在Corex-M3深睡眠模式時(shí)關(guān)閉電壓調(diào)節(jié)器。整個(gè)1.8V供電區(qū)域被斷電。PLL、HSI和HSE振蕩器也被斷電。SRAM和寄存器內(nèi)容丟失。只有備份的寄存器和待機(jī)電路維持供電。

待機(jī)模式的進(jìn)出方法如下

圖片

待機(jī)模式

五、程序設(shè)計(jì)

這里介紹一下進(jìn)入待機(jī)模式并喚醒的程序設(shè)計(jì)。配置進(jìn)入待機(jī)模式有以下步驟

  • ? 使能PWR外設(shè)時(shí)鐘
  • ? 使能喚醒管腳
  • ? 進(jìn)入待機(jī)模式

庫(kù)函數(shù)中提供了進(jìn)入待機(jī)模式的函數(shù)

/**
 * @brief  Enters STANDBY mode.
 * @param  None
 * @retval None
  */
void PWR_EnterSTANDBYMode(void)
{
  /* Clear Wake-up flag */
  PWR- >CR |= PWR_CR_CWUF;
  /* Select STANDBY mode */
  PWR- >CR |= PWR_CR_PDDS;
  /* Set SLEEPDEEP bit of Cortex System Control Register */
  SCB- >SCR |= SCB_SCR_SLEEPDEEP;
/* This option is used to ensure that store operations are completed */
#if defined ( __CC_ARM   )
  __force_stores();
#endif
  /* Request Wait For Interrupt */
  __WFI();
}

使能喚醒管腳的函數(shù)

/**
  * @brief  Enables or disables the WakeUp Pin functionality.
  * @param  NewState: new state of the WakeUp Pin functionality.
  *   This parameter can be: ENABLE or DISABLE.
  * @retval None
  */
void PWR_WakeUpPinCmd(FunctionalState NewState)
{
  /* Check the parameters */
  assert_param(IS_FUNCTIONAL_STATE(NewState));
  *(__IO uint32_t *) CSR_EWUP_BB = (uint32_t)NewState;
}

測(cè)試代碼如下

int main(void)
{
    Med_Mcu_Iint();   // 系統(tǒng)初始化
    
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);   // 使能PWR外設(shè)時(shí)鐘
    PWR_WakeUpPinCmd(ENABLE);   // 使能喚醒管腳 使能或者失能喚醒管腳功能
    
    while(1)
  {
        printf ("Time: 5 rn");
        delay_ms(1000);
        
        printf ("Time: 4 rn");
        delay_ms(1000);
        
        printf ("Time: 3 rn");
        delay_ms(1000);
        
        printf ("Time: 2 rn");
        delay_ms(1000);
        
        printf ("Time: 1 rn");
        delay_ms(1000);
        
        printf ("進(jìn)入待機(jī)模式rn");
        PWR_EnterSTANDBYMode();   // 進(jìn)入待機(jī)模式
    }
}

測(cè)試結(jié)果如下

圖片

待機(jī)喚醒測(cè)試結(jié)果

串口輸出完“進(jìn)入待機(jī)模式”后,串口不再輸出。當(dāng)按下WK UP時(shí),重新開(kāi)始倒計(jì)時(shí),進(jìn)入待機(jī)模式。

值得注意的是,進(jìn)入待機(jī)模式被喚醒后,程序是重新開(kāi)始運(yùn)行的。對(duì)于一些只需要第一次開(kāi)機(jī)才顯示的頁(yè)面或者一些第一次開(kāi)機(jī)校準(zhǔn)參數(shù)的程序,可以通過(guò)第一次開(kāi)機(jī)向Flash固定地址寫(xiě)入數(shù)據(jù),下次復(fù)位讀取對(duì)應(yīng)地址的數(shù)據(jù),來(lái)判斷是否是第一次開(kāi)機(jī)的方法,避免它們?cè)诖龣C(jī)喚醒后再次被執(zhí)行。`

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7925

    瀏覽量

    153856
  • STM32
    +關(guān)注

    關(guān)注

    2290

    文章

    11018

    瀏覽量

    362912
  • 中斷處理
    +關(guān)注

    關(guān)注

    0

    文章

    94

    瀏覽量

    11212
  • Cortex-M3
    +關(guān)注

    關(guān)注

    9

    文章

    276

    瀏覽量

    60158
  • 上電復(fù)位
    +關(guān)注

    關(guān)注

    1

    文章

    43

    瀏覽量

    16021
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    詳解STM32低功耗模式

    本文討論下STM32低功耗模式,先看如下手冊(cè)。
    的頭像 發(fā)表于 11-08 12:18 ?2683次閱讀

    STM32低功耗模式

    很多單片機(jī)都有低功耗模式STM32 也不例外。當(dāng) CPU 不需繼續(xù)運(yùn)行時(shí),可以利用多個(gè)低功耗模式來(lái)節(jié)省
    發(fā)表于 08-20 07:55

    基于STM32單片機(jī)低功耗模式機(jī)制詳細(xì)解析

    本文主要解讀STM32低功耗模式的機(jī)制,并不側(cè)重STM32低功耗的程序?qū)崿F(xiàn),而且借助STM32
    發(fā)表于 10-24 16:16 ?2w次閱讀
    基于<b class='flag-5'>STM32</b>單片機(jī)<b class='flag-5'>低功耗</b><b class='flag-5'>模式</b>機(jī)制詳細(xì)解析

    探究STM32低功耗的幾種模式

    低功耗模式 本文討論下STM32低功耗模式,先看如下手冊(cè)。 對(duì)比了 STM32F0 和
    的頭像 發(fā)表于 07-26 17:49 ?1.1w次閱讀
    探究<b class='flag-5'>STM32</b><b class='flag-5'>低功耗</b>的幾種<b class='flag-5'>模式</b>

    MCU學(xué)習(xí)筆記_STM32低功耗模式概述

    MCU學(xué)習(xí)筆記電源管理系統(tǒng)1. STM32低功耗模式概述2. 寄存器和庫(kù)函數(shù)配置3. HAL庫(kù)配置PVD實(shí)例1. STM32
    發(fā)表于 10-28 17:36 ?9次下載
    MCU學(xué)習(xí)<b class='flag-5'>筆記</b>_<b class='flag-5'>STM32</b><b class='flag-5'>低功耗</b><b class='flag-5'>模式</b>概述

    stm32低功耗模式

    前言在做很多產(chǎn)品的時(shí)候,功耗是必須要考慮的一項(xiàng)因素,一定程度上決定了你的產(chǎn)品是否有競(jìng)爭(zhēng)力,降低功耗可以從硬件上和軟件上進(jìn)行處理,而軟件上進(jìn)入低功耗模式是降
    發(fā)表于 12-07 15:51 ?12次下載
    三 <b class='flag-5'>stm32</b><b class='flag-5'>低功耗</b><b class='flag-5'>模式</b>

    STM32學(xué)習(xí)筆記 | 電源管理及低功耗設(shè)計(jì)要點(diǎn)

    STM32學(xué)習(xí)筆記 | 電源管理及低功耗設(shè)計(jì)要點(diǎn)
    發(fā)表于 12-07 16:06 ?19次下載
    <b class='flag-5'>STM32</b>學(xué)習(xí)<b class='flag-5'>筆記</b> | 電源管理及<b class='flag-5'>低功耗</b>設(shè)計(jì)要點(diǎn)

    STM32低功耗模式之待機(jī)模式

    上周完成了一個(gè)小項(xiàng)目,項(xiàng)目涉及到stm32低功耗的待機(jī)模式,特在此記錄下32的待機(jī)模式。 芯片:STM32f030F4 庫(kù):HAL庫(kù)
    發(fā)表于 12-07 16:21 ?8次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>低功耗</b><b class='flag-5'>模式</b>之待機(jī)<b class='flag-5'>模式</b>

    PWR-低功耗模式-STM32F4

    使用芯片===>STM32F429IGT6(制作不易,希望大佬能給個(gè)贊支持下小丁)目錄1、低功耗模式簡(jiǎn)介很多單片機(jī)有低功耗模式
    發(fā)表于 12-28 19:25 ?9次下載
    PWR-<b class='flag-5'>低功耗</b><b class='flag-5'>模式</b>-<b class='flag-5'>STM32</b>F4

    STM32 低功耗待機(jī)(STANDBY) 和關(guān)機(jī)(SHUTDOWN) 專用管腳喚醒 (EWUP)

    專用管腳喚醒的實(shí)現(xiàn)(HAL庫(kù))。2. 低功耗模式STM32L4的低功耗模式,相比其它系列的芯片,多了幾種:3.
    發(fā)表于 12-31 18:59 ?37次下載
    <b class='flag-5'>STM32</b> <b class='flag-5'>低功耗</b>待機(jī)(STANDBY) 和關(guān)機(jī)(SHUTDOWN) 專用管腳喚醒 (EWUP)

    STM32低功耗模式的調(diào)試

    低功耗模式的調(diào)試型號(hào):STM32L452RET6規(guī)格:64PINSTM32支持3種低功耗模式:1
    發(fā)表于 12-31 19:01 ?2次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>低功耗</b><b class='flag-5'>模式</b>的調(diào)試

    STM32低功耗模式測(cè)試

    stm32單片機(jī)低功耗模式共用3中,下來(lái)對(duì)3中低功耗進(jìn)行分析測(cè)試。先看手冊(cè)上相關(guān)低功耗資料介紹:先來(lái)分析睡眠
    發(fā)表于 12-31 19:05 ?10次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>低功耗</b><b class='flag-5'>模式</b>測(cè)試

    STM32 低功耗STOP模式,RTC喚醒

    芯片:STM32L071CB開(kāi)發(fā)環(huán)境:STM32CubeMX + keil5.33使用實(shí)時(shí)時(shí)鐘RTC的 WakeUpTimer定時(shí)器產(chǎn)生的中斷將STM32從STOP低功耗
    發(fā)表于 12-31 19:06 ?45次下載
    <b class='flag-5'>STM32</b> <b class='flag-5'>低功耗</b>STOP<b class='flag-5'>模式</b>,RTC喚醒

    STM32 低功耗睡眠模式(SLEEP)事件(EVENT)喚醒實(shí)現(xiàn)及優(yōu)化

    STM32 低功耗睡眠模式(SLEEP)事件(EVENT)喚醒實(shí)現(xiàn)及優(yōu)化1. 介紹STM32具有多種低功耗
    發(fā)表于 12-31 19:08 ?36次下載
    <b class='flag-5'>STM32</b> <b class='flag-5'>低功耗</b>睡眠<b class='flag-5'>模式</b>(SLEEP)事件(EVENT)喚醒實(shí)現(xiàn)及優(yōu)化

    AN2629 STM32F1低功耗模式

    AN2629 STM32F1低功耗模式
    發(fā)表于 11-24 08:30 ?0次下載
    AN2629 <b class='flag-5'>STM32</b>F1<b class='flag-5'>低功耗</b><b class='flag-5'>模式</b>
    主站蜘蛛池模板: 78m-78模成视频在线 | 天天摸夜班摸天天碰 | 日本精品高清一区二区2021 | 美女张开腿露尿口给男人亲 | 黄色片香蕉视频 | 大尺度在线 | 国产精品资源站 | www.a级片 | 中出丰满大乳中文字幕 | 久久天天躁狠狠躁夜夜不卡 | 69国产成人精品午夜福中文 | 日本免费不卡在线一区二区三区 | 伊人五月婷婷 | 亚洲资源最新版在线观看 | 日日操夜夜 | 中文字幕在线播放不卡 | 免费看片免 | 欧美日韩一卡2卡三卡4卡新区 | 色老头免费视频 | www.五月天| 亚洲一区免费视频 | 国产精品嫩草影院一二三区 | 婷婷99视频精品全部在线观看 | 色婷婷一区 | 欧美成人午夜精品一区二区 | 亚洲国产成人久久三区 | bt天堂电影 | 欧美一二 | 欧美一级视频高清片 | 亚洲福利一区二区三区 | 中文字幕一区二区三区四区五区人 | 三级a黄| 精品欧美一区二区三区在线观看 | 日本一级成人毛片免费观看 | 色在线免费 | 黄色免费在线网址 | 久草色播| 国产福利小视频在线观看 | 成人爽爽激情在线观看 | 国产色秀视频在线观看 | 四虎影视永久在线观看 |