在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 牛人業(yè)話 > STM32的待機喚醒實驗分析(基于原子哥程序)

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

            作者: 時間:2016-10-10 來源:網(wǎng)絡(luò) 收藏

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

            本文引用地址:http://www.biyoush.com/article/201610/311123.htm

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

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

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

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

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

              

             

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

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

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

              

             

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

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

              

             

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

              

             

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

              

             

              至此、我們通過這三步、完成了進入待機模式的任務(wù)、、那我們怎么通過程序?qū)崿F(xiàn)呢?啊哈、、庫神出現(xiàn)吧、、:::系統(tǒng)出現(xiàn)奔潰、、請稍后、、詳情請咨詢10086、、

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

              

             

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

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

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

              1 void Wkup_Init(void)

              2 {

              7 EXTI_InitTypeDef EXTI_InitStructure;

              8 NVIC_InitTypeDef NVIC_InitStructure;

              9

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

              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) //系統(tǒng)初始化后由于沒有按下按鍵、、所以系統(tǒng)直接進入了待機模式了,所以下載了程序沒有任何反應(yīng)、、需要人為的喚醒:死豬,就知道睡,快醒、、

              29 {

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

              31 }

              32 }

              復(fù)制代碼

              復(fù)制代碼

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

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

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

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

              3 void EXTI0_IRQHandler(void)

              4 {

              5 EXTI_ClearITPendingBit(EXTI_Line0);

              6 if(Check_up())

              7 {

              8 Sys_Enter_Standby();

              9 }

              10 }


            上一頁 1 2 下一頁

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

            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉