<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > STM32三種低功耗模式研究二

          STM32三種低功耗模式研究二

          作者: 時間:2016-11-28 來源:網(wǎng)絡 收藏
          停機模式:任一外部中斷可以喚醒,系統(tǒng)保存代碼運行狀態(tài),喚醒前后要分別進行電源管理配置和時鐘配置。
          如果不配置時鐘,它是自動切換到內(nèi)部時鐘的;當然,如果系統(tǒng)重啟或重新上電,則系統(tǒng)會從頭開 始,當然包括從頭配置時鐘。
          示例:
          停機模式進入之前:
          RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);
          printf("進入停止模式 ");
          PWR_EnterSTOPMode(PWR_Regulator_LowPower,PWR_STOPEntry_WFI);
          停機模式喚醒之后:
          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)
          {
          }
          }
          }
          為了驗證程序喚醒后是不是從進入停機模式那一條語句接著運行,我進行如下編程:
          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)根本不進入停機模式,文檔上寫著:為了進入停止模式,所有的外部中斷的請求位(掛起寄存器(EXTI_PR))和RTC的鬧鐘標志都必須被清除,否則停止模式的進入流程將會被跳過,程序繼續(xù)運行。我看看外部中斷的標志也都請了啊,怎么回事?進一步研究發(fā)現(xiàn),SysTick_Init()里面并沒有打開systick,而是在Delay_us(100000)里面打開的,那么我在進入停機之前應該關掉,所以把上述程序中的SysTick->CTRL &= ~ SysTick_CTRL_ENABLE_Msk打開就好啦,嘎嘎!



          關鍵詞: STM32低功耗模

          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();