1. 程式人生 > >分享一個低功耗專案的小小心得

分享一個低功耗專案的小小心得

http://bbs.elecfans.com/jishu_1635024_1_1.html

關於STM32進入低功耗,我簡單的總結了一下:
1.管腳設定,這個很關鍵,還是跟你電路有關係,外加上拉、下拉電阻切記不能隨便加
2.STM32的systick clock、DMA、TIM什麼的,能關就全都關掉,STM32低功耗很簡單,關鍵是外圍電路功耗是關鍵
3.選擇一個低功耗的LDO,這個專案用到的LDO功耗就很不錯,靜態功耗10uA都不到。
4.確定STM32設定沒問題,進入低功耗有好幾種情況可以選擇(睡眠、停機、待機),我還是推薦選擇STOP模式,這個我覺的比較好是因為可以任意外部中斷都可以喚醒,而且管腳可以保留之前的設定,進入停機模式的程式碼使用庫函式自帶的,就一句:
PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI);
意思是,在進入停機模式之前,也關掉電壓調節器,進一步降低功耗,使用WFI指令(任意中斷喚醒),但是經過測試,使用WFE(任事件喚醒)指令效果、功耗一模一樣。
最後一步是從STOP模式怎麼恢復了,恢復其實也很簡單,外部中斷來了會進入中斷函式,然後STM32就被喚醒,喚醒還要做一些工作,需要開啟外部晶振(當然你也可以選擇使用內部自帶振盪器)、開啟你需要的外設等等。
總之,低功耗關鍵我覺得還是在於管腳配置,以及你對於外圍電路的掌握。