《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業界動態 > STM32的待機喚醒實驗分析(基于原子哥程序)

STM32的待機喚醒實驗分析(基于原子哥程序)

2017-07-11
關鍵詞: STM32 MCU Cortex-M3 PWR_CR

       前段時間我稍微涉及節能減排大賽、、倡導節能的社會、、沒錯了、你真是太聰明了、、知道了我今天要講關于STM32節能方面的模塊、、沒錯、、這標題已經告訴你了是吧、、哦,對,標題有寫、、所以、、言歸正傳、至于STM32如何達到節能的、、語文老師說要留下懸念、、跟著作者走下去、、也就是跟我啦、、

  大家翻開STM32的中文參考手冊(你們看就行了,我翻,然后截圖),里面關于STM32的低功耗模式有詳細的標注,突然不想截圖。。

  1、睡眠模式(Cortex?-M3內核停止,所有外設包括Cortex-M3核心的外設,如NVIC、系統時鐘(SysTick)等仍在運行)

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

  3、待機模式(1.8V電源關閉)(我們本博客中具體介紹的一種模式,也是功耗最低的模式)

  現附上三者照片、、望觀眾好好欣賞、、還有請稍微注意下我的涂鴉、、小弟感激不盡:

81af28f29ac6cad10822c9df428c50ed.png

  啊哈、、這照片是不是很神奇呀、、即把三個老家伙的家底進行了較為認真的比較,而且從照片中我們也可以看出,如何進入,如何喚醒他們、、而且有什么影響都跟我們透露了、、可謂是后生可畏呀、、所以我叫大家注意我美麗的涂鴉是有道理的、、哈、

  在本博客中,我們就利用WKUP引腳的上升沿來喚醒MCU、、不好意思哈、、老是把上升沿打成上小沈陽、、所以我們就具體來介紹待機喚醒的實現方法、、

  那我們要怎么來進入待機模式、、又要怎么喚醒呢?

2df240eaa70ad0f4a50069c7a82efa77.png

  看到“進入”中的紅色數字標號了吧、、沒錯了、、我們只要按照此步驟來設置相應的寄存器就行了、、那、、我打???的是什么呢??好了、、請容許我介紹下:

  1、 Cotex_M3系統控制寄存器中的SLEEPDEEP位到底在哪呢??大家請翻開《權威指南》第182頁可以看到表格、、當然這里不用你翻開、、因為我已截圖:

726a16d8d8a9e872716727de5c0a3e78.png

  2、電源控制寄存器(PWR_CR)中PDDS位:請看寄存器的位:

cca05b1eee1e1a04df424f668752e3c1.png

  3、電源控制/狀態寄存器(PWR_CSR)中EWUP位

63d688a2ef411de905bf97f14682c0e7.png

  至此、我們通過這三步、完成了進入待機模式的任務、、那我們怎么通過程序實現呢?啊哈、、庫神出現吧、、:::系統出現奔潰、、請稍后、、詳情請咨詢10086、、

  額、、出現了點意外、、不急哈、、那我們先來看看怎么退出待機模式:重現一張圖片:

0ac5b9e25a140151a50cc588b4c056c6.png

  看到了吧、、在這里我們就利用其中一種方式來喚醒:WKUP引腳的上升沿、、注意哈、、注意此上升沿三個字哈、、 至于為什么要注意上升沿、、在這里提出我也是有目的、、先記著哈、、你此時想的為什么要注意的原因肯定跟我待會提到的時候不一樣、、在此先奸笑下、、

  那我們要怎么來喚醒呢??

  親、、我們通過外部中斷觸發來喚醒、、所以請看代碼:

  1 void Wkup_Init(void)

  2 {

  7 EXTI_InitTypeDef EXTI_InitStructure;

  8 NVIC_InitTypeDef NVIC_InitStructure;

  9

  10 KEY_Init();//我的IO初始化在按鍵里已經初始化了

  11

  12 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);

  13

  14 GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource0);

  15

  16 EXTI_InitStructure.EXTI_Line = EXTI_Line0; //PA0

  17 EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;

  18 EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;

  19 EXTI_InitStructure.EXTI_LineCmd = ENABLE;

  20 EXTI_Init(&EXTI_InitStructure);

  21

  22 NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;

  23 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02;

  24 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x03;

  25 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

  26 NVIC_Init(&NVIC_InitStructure);

  27

  28 if(Check_up() == 0) //系統初始化后由于沒有按下按鍵、、所以系統直接進入了待機模式了,所以下載了程序沒有任何反應、、需要人為的喚醒:死豬,就知道睡,快醒、、

  29 {

  30 Sys_Standby(); //進入待機模式

  31 }

  32 }

  復制代碼

  復制代碼

  //正常模式下會運行中斷服務函數,而待機模式下則不會運行中斷服務函數、、因為待機模式下MCU不工作,所以上升沿的作用也僅僅是喚醒、、

  //在這里提醒:喚醒只需要上升沿、、所以從待機模式切換到正常模式下從始至終都不會執行中斷服務函數

  //在這里,知道我為什么要在上面提醒大家要注意上升沿了吧、(下面還有)、

  //至于為什么不會執行,待會我還會給出解釋、、

  3 void EXTI0_IRQHandler(void)

  4 {

  5 EXTI_ClearITPendingBit(EXTI_Line0);

  6 if(Check_up())

  7 {

  8 Sys_Enter_Standby();

  9 }

  10 }

       看到以上代碼會不會熟悉呢??在這里就不解釋了哈、、所以重點來講講步驟

  1、使能PWR的時鐘:RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);

  2 、使能喚醒的功能:PWR_WakeUpPinCmd(ENABLE);

  3、進入待機模式 : PWR_EnterSTANDBYMode();

  請看代碼:

  void Sys_Standby(void) //在喚醒初始化中調用

  {

  RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);

  PWR_WakeUpPinCmd(ENABLE);

  PWR_EnterSTANDBYMode();

  }

  void Sys_Enter_Standby(void)//在中斷函數里調用,用來復位,然后進入待機模式

  {

  RCC_APB2PeriphResetCmd(0X01FC,DISABLE); //在這里只是復位了IO口、、至于0x01fc是怎么來的、、大家請看RCC_APB2RSTR(下圖)

  Sys_Standby();

  }

f311bedf6e406a28d58c9e3260d51f8c.png

  最后我們給出按鍵檢測的處理程序、、在這里,3S只是一個效果、、也可以不用、、也可以長點、、看你個人哈(原子的程序,別告我盜版哈)

  u8 Check_up(void)

  {

  u8 t = 0;

  u8 tx = 0;

  LED0 = 0;

  while(1)

  {

  if(KEY3 == 1) //檢測到按鍵按下

  {

  t++;

  tx = 0;

  }

  else

  {

  tx++;

  if(tx > 3)

  {

  LED0 = 1;

  return 0; //錯誤按鍵或者按鍵時間不夠

  }

  }

  delay_ms(30);

  if(t > 100) //100*30ms = 3s

  {

  LED0 = 0;

  return 1;// 3s

  }

  }

  }

  看到這里、、可能有人會有些搞不懂在中斷服務函數那里的邏輯、、在這里我給出解釋哈:

  從正常運行模式切換到待機模式 按住wkup鍵 外部中斷0中斷被觸發 執行中斷服務函數 Check_up()函數開始檢測 如果時間沒超過3s 返回零 這時工作在正常運行模式 如果按住時間超過了3s 返回值為1 進入待機模式

  我們的程序在剛開始運行時就是沒有按鍵按下、、所以沒有上升沿,初始化函數里條件成立,從而進入了待機模式:請看初始化的代碼:

  if (Check_up() == 0)

  29 {

  30 Sys_Standby(); //進入待機模式

  31 }

  從待機模式切換到正常運行模式 按住wkup鍵的那一瞬間會有一個上升沿 而這個上升沿執行了喚醒功能但是沒有執行外部中斷0的中斷服務函數 待機模式下cpu是不工作的 從待機模式喚醒后的代碼執行等同于復位后的執行所以程序又會從頭開始執行(這句話很重要) 然后又會執行到 Check_up()函數檢測 如果按住鍵盤的時間沒有超過3s 還是會處于待機模式 加入超過了3s 返回值為1 條件不成立 就會切換到正常運行模式 所以結論就是外部中斷0的中斷服務程序在待機模式切換到正常運行模式的時候從始至終是不會運行的

  記住:喚醒中只是說需要上升沿、、并沒有說要進入中斷

  所以:

  1 、如果是正常運行,先執行中斷程序,判斷是否3秒,決定是否待機。

  2 、如果是待機狀態,則先復位并初始化,判斷是否3秒,決定是否開機。

  啊哈、、不知看到這里的你理解得怎么樣了、、我也是初學者,盡量用我所理解的來幫助你們理解、、用點自認為是幽默的風格來、、不會顯得那么的死板、、希望大家見諒哈、、初學者難免有理解上的失誤或者不懂或者講得不全面、、所以在這有寫錯的敬請原諒哈、、


本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          久久久久一区二区| 亚洲视频在线观看视频| 亚洲精品三级| 欧美美女视频| 午夜精品国产更新| 亚洲靠逼com| 亚洲美女精品久久| 欧美私人啪啪vps| 先锋a资源在线看亚洲| 国内精品视频666| 国产精品一区二区在线| 欧美一区二区三区另类| 亚洲欧美日韩精品在线| 亚洲视频欧美视频| 日韩视频免费在线观看| 亚洲欧美福利一区二区| 红桃视频亚洲| 亚洲人成人99网站| 亚洲欧美成人一区二区三区| 国内精品伊人久久久久av一坑| 国产精品久久久久久久久动漫| 欧美日韩网址| 国产精品毛片a∨一区二区三区|国| 精东粉嫩av免费一区二区三区| 久久久久久久久久久久久9999| 91久久久久久久久| 一区二区精品| 国产精品国产自产拍高清av王其| 在线国产亚洲欧美| 欧美成人福利视频| 免费一级欧美片在线观看| 99视频一区| 亚洲精品小视频在线观看| 国产精品毛片a∨一区二区三区|国| 欧美在线999| 亚洲激情一区二区| 国产乱理伦片在线观看夜一区| 欧美日韩国产专区| 免费日韩av电影| 久久免费国产精品| 午夜视频一区在线观看| 国产精品私人影院| 久久久午夜视频| 激情成人中文字幕| 一卡二卡3卡四卡高清精品视频| 激情欧美日韩一区| 欧美精品一区视频| 欧美激情一区二区三区四区| 午夜免费久久久久| 国产欧美亚洲一区| 亚洲女人av| 午夜精彩国产免费不卡不顿大片| 亚洲一区二区在线| 99精品国产福利在线观看免费| 男女精品视频| 国产精品99久久99久久久二8| 亚洲一区二区在线播放| 久久精品女人的天堂av| 99国产精品国产精品毛片| 老司机精品视频一区二区三区| 欧美日韩1区2区| 久久国内精品自在自线400部| 国产精品久久久久9999吃药| 日韩视频免费观看高清在线视频| 欧美日韩天堂| 99re热这里只有精品免费视频| 亚洲九九爱视频| 国产精品一区久久久久| 欧美日韩激情小视频| 91久久精品一区二区三区| 一区二区三区精品视频在线观看| 欧美日韩国产精品一卡| 日韩系列欧美系列| 国产精品久久久久影院亚瑟| 欧美视频一区二| 可以看av的网站久久看| 国产一区999| 国产视频一区欧美| 久久www免费人成看片高清| 欧美日韩情趣电影| 欧美日韩不卡合集视频| 午夜亚洲性色视频| 麻豆成人91精品二区三区| 亚洲欧美激情一区二区| 欧美精品一区二区久久婷婷| 欧美激情视频免费观看| 亚洲国产成人午夜在线一区| 宅男66日本亚洲欧美视频| 欧美日韩不卡合集视频| 久久久伊人欧美| 日韩视频免费大全中文字幕| 国内精品亚洲| 国产精品美女久久久久久久| 亚洲国产精品美女| 亚洲女女做受ⅹxx高潮| 亚洲黄网站在线观看| 久久狠狠婷婷| 欧美在线91| 国产日韩免费| 91久久久久久久久| 蜜桃av一区二区| 欧美精选一区| 久久久精品欧美丰满| 亚洲天堂成人在线观看| 欧美日韩国产综合视频在线观看| 亚洲伦理自拍| 国产一区二区三区久久悠悠色av| 9色porny自拍视频一区二区| 麻豆精品精华液| 国产亚洲高清视频| 一区二区三区四区五区在线| 欧美人与性动交cc0o| 欧美日韩中文另类| 一区二区三区精品久久久| 欧美日本韩国一区| 亚洲国产婷婷香蕉久久久久久| 国产精品自在欧美一区| 国产精品任我爽爆在线播放| 欧美日韩亚洲视频| 欧美亚洲一区三区| 国产老女人精品毛片久久| 国产亚洲在线| 欧美亚洲免费| 国产精品色一区二区三区| 亚洲性色视频| 国产一区二区三区精品久久久| 一二美女精品欧洲| 欧美日韩999| 欧美一级电影久久| 性欧美超级视频| 亚洲激情校园春色| 午夜久久黄色| 亚洲精品乱码久久久久久| 亚洲高清视频在线观看| 99视频国产精品免费观看| 亚洲人成人一区二区三区| 欧美日韩国产小视频在线观看| 国产在线观看精品一区二区三区| 日韩一区二区福利| 亚洲日韩第九十九页| 国产亚洲精品久久久久动| 欧美国产一区二区| 亚洲永久在线| 欧美日韩精品一区二区在线播放| 久久精品国产精品| 雨宫琴音一区二区在线| 一区二区亚洲精品国产| 日韩视频在线免费观看| 亚洲日本va午夜在线影院| 国产一区二区三区四区五区美女| 久久久久久婷| 国产一区二区三区视频在线观看| 另类国产ts人妖高潮视频| 亚洲一区二区三区777| av成人福利| 欧美亚日韩国产aⅴ精品中极品| 欧美一区二区在线| 欧美日产一区二区三区在线观看| 欧美日韩国产不卡在线看| 国产精品乱人伦中文| 国产精品久久久久久妇女6080| 国产一二精品视频| 亚洲精品免费在线观看| 尤物九九久久国产精品的特点| 欧美激情第二页| 国产日韩视频一区二区三区| 国产精品欧美日韩一区二区| 精品96久久久久久中文字幕无| 欧美日韩国产不卡在线看| 国产精品国产三级欧美二区| 久久av一区二区三区漫画| 欧美性猛交xxxx免费看久久久| 麻豆九一精品爱看视频在线观看免费| 欧美日韩精品福利| 宅男噜噜噜66一区二区66| 亚洲高清二区| 久久久久久久一区| 亚洲图片在区色| 国产精品综合色区在线观看| 男男成人高潮片免费网站| 免费国产自线拍一欧美视频| 亚洲成色777777女色窝| 蜜乳av另类精品一区二区| 一本色道久久加勒比精品| 亚洲午夜女主播在线直播| 久久综合给合久久狠狠色| 精品成人久久| 欧美有码视频| 欧美肥婆bbw| 欧美精品福利在线| 美女日韩在线中文字幕| 久久久九九九九| 欧美一区视频在线| 久热精品视频在线观看| 亚洲人成在线播放| 国产精品黄色| 国产一区二区精品丝袜| 美女主播精品视频一二三四| 午夜精品免费| 国产欧美在线播放| 亚洲黄色在线看| 夜夜嗨网站十八久久| 性色av一区二区三区红粉影视| 久久国产乱子精品免费女| 国产视频一区在线| 久久久噜噜噜久噜久久| 中文精品99久久国产香蕉| 国产精品99一区二区| 久久精品国产清自在天天线| 久久久高清一区二区三区| 欧美成人精品激情在线观看| 久久高清一区| 欧美在线三区| 日韩视频在线一区二区三区| 99v久久综合狠狠综合久久| 国产精品大片wwwwww| 久久国产88| 欧美调教vk| 在线日本成人| 国产精品sm| 韩日欧美一区| 国产精品免费看久久久香蕉| 亚洲精品欧洲精品| 久久精品人人做人人爽电影蜜月| 欧美日韩一区在线观看视频| 国产精品一区二区女厕厕| 尤物九九久久国产精品的分类| 美女图片一区二区| 国产日韩精品一区二区三区在线| 狠狠综合久久| 一区二区三区我不卡| 精品999网站| 欧美阿v一级看视频| 国内精品国语自产拍在线观看| 国产一区高清视频| 国产麻豆91精品| 韩国美女久久| 国产午夜精品久久久久久免费视| 亚洲精品三级| 亚洲国产精品999| 久久久精品国产99久久精品芒果| 国产日韩欧美自拍| 免费在线观看一区二区| 在线综合欧美| 男女视频一区二区| 夜夜爽99久久国产综合精品女不卡| 亚洲一区日韩| 亚洲欧美综合v| 久久久久久久一区二区三区| 亚洲精品久久久久| 欧美国产日韩在线观看| 亚洲激情欧美激情| 国产一区二区福利| 亚洲图片在线| 欧美日韩一区二区三区在线| 欧美在线播放视频| 亚洲私人黄色宅男| 欧美午夜电影在线| 亚洲综合视频1区| 韩国一区二区三区在线观看| 国产亚洲一区二区在线观看| 欧美三级在线视频| 国产麻豆午夜三级精品| 午夜视频在线观看一区二区三区| 亚洲自拍偷拍网址| 伊人久久大香线蕉av超碰演员| 亚洲精品人人| 久久久久国产一区二区三区四区| 欧美连裤袜在线视频| 亚洲性线免费观看视频成熟| 久久精品一区二区三区不卡| 一本久久青青| 裸体女人亚洲精品一区| 亚洲午夜在线视频| 亚洲国产精品美女| 欧美黄色影院| 麻豆成人小视频| 国产精品日韩精品| 国产精品香蕉在线观看| 欧美福利视频一区| 久久影院亚洲| 欧美久久影院| 久久se精品一区精品二区| 正在播放欧美一区| 久久久精品国产免大香伊| 激情综合色综合久久综合| 国产日韩欧美91| 欧美激情一区二区三区高清视频| 国产偷国产偷亚洲高清97cao| 经典三级久久| 欲香欲色天天天综合和网| 一本色道88久久加勒比精品| 亚洲综合国产精品| 国产精品三上| 伊人精品成人久久综合软件| 久久精品夜色噜噜亚洲aⅴ| 午夜精品视频在线观看| 亚洲国产第一页| 欧美精品网站| 国产精品久久久久毛片大屁完整版| 伊人久久亚洲热| 午夜影院日韩| 欧美绝品在线观看成人午夜影视| 亚洲尤物视频网| 国产精品久久久久久久7电影| 欧美+亚洲+精品+三区| 欧美在线观看网址综合| 欧美精品二区三区四区免费看视频| 亚洲人成人77777线观看| 国产精品系列在线播放| 亚洲综合欧美| 国产精品日韩精品欧美在线| 国精品一区二区三区| 久久综合狠狠| 日韩小视频在线观看专区| 国产精品v欧美精品v日本精品动漫| 久久精品二区三区| 亚洲激情综合| 亚洲人精品午夜在线观看| 国产精品视频xxx| 精品盗摄一区二区三区| 国产精品免费一区豆花| 欧美久久久久久久| 91久久精品日日躁夜夜躁欧美| 欧美性猛交xxxx乱大交退制版| 伊人影院久久| 国产精品久久久久免费a∨大胸| 欧美在线精品免播放器视频|