在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > STM32三種低功耗模式研究二

            STM32三種低功耗模式研究二

            作者: 時(shí)間:2016-11-28 來(lái)源:網(wǎng)絡(luò) 收藏
            停機(jī)模式:任一外部中斷可以喚醒,系統(tǒng)保存代碼運(yùn)行狀態(tài),喚醒前后要分別進(jìn)行電源管理配置和時(shí)鐘配置。
            如果不配置時(shí)鐘,它是自動(dòng)切換到內(nèi)部時(shí)鐘的;當(dāng)然,如果系統(tǒng)重啟或重新上電,則系統(tǒng)會(huì)從頭開(kāi) 始,當(dāng)然包括從頭配置時(shí)鐘。
            示例:
            停機(jī)模式進(jìn)入之前:
            RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);
            printf("進(jìn)入停止模式 ");
            PWR_EnterSTOPMode(PWR_Regulator_LowPower,PWR_STOPEntry_WFI);
            停機(jī)模式喚醒之后:
            void SYSCLKConfig_STOP(void)
            {
            ErrorStatus HSEStartUpStatus;
            RCC_HSEConfig(RCC_HSE_ON);
            HSEStartUpStatus = RCC_WaitForHSEStartUp();
            if(HSEStartUpStatus == SUCCESS)
            {
            RCC_PLLCmd(ENABLE);
            while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
            {
            }
            RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
            while(RCC_GetSYSCLKSource() != 0x08)
            {
            }
            }
            }
            為了驗(yàn)證程序喚醒后是不是從進(jìn)入停機(jī)模式那一條語(yǔ)句接著運(yùn)行,我進(jìn)行如下編程:
            int main(void)
            {
            LED_GPIO_Config();
            EXTI_Key_Config();
            SysTick_Init();
            RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);//電源管理
            while(1)
            {
            LED1( ON );
            Delay_us(100000); // 10000 * 10us = 100ms
            LED1( OFF );
            // SysTick->CTRL &= ~ SysTick_CTRL_ENABLE_Msk;
            PWR_EnterSTOPMode(PWR_Regulator_LowPower,PWR_STOPEntry_WFI);
            LED2( ON );
            Delay_us(100000); // 10000 * 10us = 100ms
            LED2( OFF );
            LED3( ON );
            Delay_us(100000); // 10000 * 10us = 100ms
            LED3( OFF );
            }
            }
            發(fā)現(xiàn)根本不進(jìn)入停機(jī)模式,文檔上寫(xiě)著:為了進(jìn)入停止模式,所有的外部中斷的請(qǐng)求位(掛起寄存器(EXTI_PR))和RTC的鬧鐘標(biāo)志都必須被清除,否則停止模式的進(jìn)入流程將會(huì)被跳過(guò),程序繼續(xù)運(yùn)行。我看看外部中斷的標(biāo)志也都請(qǐng)了啊,怎么回事?進(jìn)一步研究發(fā)現(xiàn),SysTick_Init()里面并沒(méi)有打開(kāi)systick,而是在Delay_us(100000)里面打開(kāi)的,那么我在進(jìn)入停機(jī)之前應(yīng)該關(guān)掉,所以把上述程序中的SysTick->CTRL &= ~ SysTick_CTRL_ENABLE_Msk打開(kāi)就好啦,嘎嘎!



            關(guān)鍵詞: STM32低功耗模

            評(píng)論


            技術(shù)專(zhuān)區(qū)

            關(guān)閉