<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > STM32 的待機喚醒功能

STM32 的待機喚醒功能

作者: 時(shí)間:2016-11-11 來(lái)源:網(wǎng)絡(luò ) 收藏
STM32待機模式簡(jiǎn)介

很多單片機都有低功耗模式,STM32也不例外。在系統或電源復位以后,微控制器處于運行狀態(tài)。運行狀態(tài)下的HCLK為CPU提供時(shí)鐘,內核執行程序代碼。當CPU不需繼續運行時(shí),可以利用多個(gè)低功耗模式來(lái)節省功耗,例如等待某個(gè)外部事件時(shí)。用戶(hù)需要根據最低電源消耗,最快速啟動(dòng)時(shí)間和可用的喚醒源等條件,選定一個(gè)最佳的低功耗模式。STM32的3種低功耗模

本文引用地址:http://dyxdggzs.com/article/201611/317045.htm

STM32的低功耗模式有3種:

1)睡眠模式(CM3內核停止,外設仍然運行)

2)停止模式(所有時(shí)鐘都停止)

3)待機模式(1.8V內核電源關(guān)閉)

在這三種低功耗模式中,最低功耗的是待機模式,在此模式下,最低只需要2uA左右的電流。停機模式是次低功耗的,其典型的電流消耗在20uA左右。最后就是睡眠模式了。用戶(hù)可以根據自己的需求來(lái)決定使用哪種低功耗模式。

進(jìn)入待機模式執行步驟

有4種方式可以退出待機模式,即當一個(gè)外部復位(NRST引腳)、IWDG復位、WKUP引腳上的上升沿或RTC鬧鐘事件發(fā)生時(shí),微控制器從待機模式退出。從待機喚醒后,除了電源控制/狀態(tài)寄存器(PWR_CSR),所有寄存器被復位。

從待機模式喚醒后的代碼執行等同于復位后的執行(采樣啟動(dòng)模式引腳,讀取復位向量等)。電源控制/狀態(tài)寄存器(PWR_CSR)將會(huì )指示內核由待機狀態(tài)退出。

在進(jìn)入待機模式后,除了復位引腳以及被設置為防侵入或校準輸出時(shí)的TAMPER引腳和被使能的喚醒引腳(WK_UP腳),其他的IO引腳都將處于高阻態(tài)。

進(jìn)入待機模式的方法,以及設置WK_UP引腳用于把STM32從待機模式喚醒的方法。具體步驟如下:

1)使能電源時(shí)鐘。

因為要配置電源控制寄存器,所以必須先使能電源時(shí)鐘。在庫函數中,使能電源時(shí)鐘的方法是:

RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);//使能PWR外設時(shí)鐘

2)設置WK_UP引腳作為喚醒源。

使能時(shí)鐘之后后再設置PWR_CSR的EWUP位,使能WK_UP用于將CPU從待機模式喚醒。在庫函數中,設置使能WK_UP用于喚醒CPU待機模式的函數是:

PWR_WakeUpPinCmd(ENABLE);//使能喚醒管腳功能

3)設置SLEEPDEEP位,設置PDDS位,執行WFI指令,進(jìn)入待機模式。

進(jìn)入待機模式,首先要設置SLEEPDEEP位,接著(zhù)我們通過(guò)PWR_CR設置PDDS位,使得CPU進(jìn)入深度睡眠時(shí)進(jìn)入待機模式,最后執行WFI指令開(kāi)始進(jìn)入待機模式,并等待WK_UP中斷的到來(lái)。在庫函數中,進(jìn)行上面三個(gè)功能進(jìn)入待機模式是在函數PWR_EnterSTANDBYMode中實(shí)現的:

voidPWR_EnterSTANDBYMode(void);

4)最后編寫(xiě)WK_UP中斷函數。

因為我們通過(guò)WK_UP中斷(PA0中斷)來(lái)喚醒CPU,所以我們有必要設置一下該中斷函數,同時(shí)我們也通過(guò)該函數里面進(jìn)入待機模式。

通過(guò)以上幾個(gè)步驟的設置,我們就可以使用STM32的待機模式了,并且可以通過(guò)WK_UP來(lái)喚醒CPU

  1. voidSys_Standby(void)
  2. {
  3. RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);//使能PWR外設時(shí)鐘
  4. PWR_WakeUpPinCmd(ENABLE);//使能喚醒管腳功能
  5. PWR_EnterSTANDBYMode();//進(jìn)入待命(STANDBY)模式
  6. }
  7. //系統進(jìn)入待機模式
  8. voidSys_Enter_Standby(void)
  9. {
  10. RCC_APB2PeriphResetCmd(0X01FC,DISABLE);//復位所有IO口
  11. Sys_Standby();
  12. }



關(guān)鍵詞: STM32待機喚醒功

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>