STM32實現待機喚醒 庫函式版

2021-10-09 06:36:28 字數 1027 閱讀 6837

很多微控制器都有低功耗模式,stm32 也不例外。在系統或電源復位以後,微控制器處於運

行狀態。執行狀態下的 hclk 為 cpu 提供時鐘,核心執行程式**。當 cpu 不需繼續執行時,

可以利用多個低功耗模式來節省功耗,例如等待某個外部事件時。使用者需要根據最低電源消耗,

最快速啟動時間和可用的喚醒源等條件,選定乙個最佳的低功耗模式。

stm32 的低功耗模式有 3 種:

1)睡眠模式(cm3 核心停止,外設仍然執行)

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

3)待機模式(1.8v 核心電源關閉)

在這三種低功耗模式中,最低功耗的是待機模式,在此模式下,最低只需要 2ua 左右的電

流。停機模式是次低功耗的,其典型的電流消耗在 20ua 左右。最後就是睡眠模式了。使用者可

以根據自己的需求來決定使用哪種低功耗模式。

而本文實現待機模式,

進入待機模式,主要根據開發手冊提供的圖

實現步驟如下:

外設使能(在apb1)

清除wakeup標誌

pwr使能

進入待機模式

實現**如下

#include "wakeup.h"

//待機模式

void wakeup_stand(void)

主函式如下

#include "stm32f10x.h"

#include "uart.h"

#include "wakeup.h"

#include "systick.h"

#include "led.h"

int main()

}

下篇介紹暫存器版本實現關機功能點此

STM32實現待機喚醒 暫存器版

上篇使用了庫函式實現 待機喚醒 本文將使用暫存器版本實現關機模式 暫存器版本跟庫函式版本實現基本一致,可以通過檢視庫函式版 去看底層 更方便去理解暫存器版本 暫存器操作 根據上兩張圖可以進行操作 相關步驟 設定 sleepdeep 位 使能電源時鐘,設定 wk up 引腳作為喚醒源。設定 pdds ...

STM32 實現PWM 庫函式版

tim1和tim7沒有pwm輸出 tim0和tim8 有七路pwm輸出 27 14 通用定時器 都有4個 pwm 44 16 一共有30個pwm輸出 圖中,我們假定定時器工作在向上計數 pwm 模式,且當 cnt ccrx 時輸出 1。那麼就可以得到如上的 pwm示意圖 當 cnt 值小於 ccrx...

STM32學習筆記 待機喚醒實驗

我指的是正點原子提供的,stm32手冊 庫函式版本 中的第十九章 待機喚醒實驗。我只想說的是,為什麼我一開始沒看出程式是怎麼喚醒的。原因是 待機喚醒僅僅是需要按下wk up鍵即可,而不需要什麼中斷。待機喚醒效果等同於重啟程式,程式重新執行。實驗的程式設定成 從執行開始就會判斷,如果沒有按3秒就自動進...