很多微控制器都有低功耗模式,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秒就自動進...