程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> STM32電源管理,stm32變頻電源

STM32電源管理,stm32變頻電源

編輯:關於C語言

STM32電源管理,stm32變頻電源


(1)3鐘模式

①睡眠模式②停止模式③待機模式

1.睡眠模式:Cortex-M3內核(可理解成CPU)停止工作,CPU供電1.8V有,外設任在運行,喚醒後從原來位置執行

2.停機模式:所有時鐘都停止,CPU電源1.8V沒斷,喚醒後從原來位置執行

3.待機模式:時鐘全斷,CPU電源1.8V也斷,喚醒後程序重新執行

可形象參考:

CPU:皇上

CPU電源1.8V:皇後

外設:將軍

那麼:

1.睡眠模式:只有皇上睡覺

2.停機模式:皇上,將軍睡覺

3.待機模式:皇上,皇後,將軍全睡覺了

(原則:皇後不睡覺,程序可被保留,喚醒後從原來位置執行)

 

(二)程序簡介(庫函數)

1.睡眠模式

	while(1)                            
	{			
		/* wait interrupt */
		LED1( ON );			
		Delay(0xFFFFF);
		LED1( OFF );		  

		LED2( ON );			  
		Delay(0xFFFFF);
		LED2( OFF );		  

		LED3( ON );			 
		Delay(0xFFFFF);
		LED3( OFF );		  	   
		
		__WFI();					
	}

 __WFI(); 進入睡眠模式,任意中斷喚醒,喚醒後不用再配置時鐘

2.停止模式

①/*因為要使用其外設時鐘等,故需用到pwr*/

#include "stm32f10x_pwr.h" 

②/*使能電源管理單元的時鐘*/

RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);

③進入停止模式

PWR_EnterSTOPMode(PWR_Regulator_LowPower,PWR_STOPEntry_WFI);

 

④喚醒:外部中斷

因為將軍睡了,(及外設時鐘關了,因此需要重新配置)喚醒後需要重新啟動HSE

SYSCLKConfig_STOP(); 

void SYSCLKConfig_STOP(void)
{
	ErrorStatus HSEStartUpStatus;
  /* 使能 HSE */
  RCC_HSEConfig(RCC_HSE_ON);

  /* 等待HSE准備就緒*/
  HSEStartUpStatus = RCC_WaitForHSEStartUp();

  if(HSEStartUpStatus == SUCCESS)
  {

    /* 使能 PLL */ 
    RCC_PLLCmd(ENABLE);

    /* 等待 PLL 准備就緒 */
    while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
    {
    }

    /* 選擇PLL作為系統時鐘源*/
    RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);

    /*等待PLL被選擇為系統時鐘源 */
    while(RCC_GetSYSCLKSource() != 0x08)
    {
    }
  }
}

 3.待機模式

①/*因為要使用其外設時鐘等,故需用到pwr*/

#include "stm32f10x_pwr.h" 

 

②/*使能電源管理單元的時鐘*/

RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);

③進入待機模式

/*使能WKUP引腳的喚醒功能,WKUP是第二功能,不用配置它的輸出模式(不是太懂)*/
PWR_WakeUpPinCmd (ENABLE);
/*進入待機模式*/
PWR_EnterSTANDBYMode();

④喚醒,復位喚醒,PA0上升沿喚醒

⑤檢測是復位喚醒還是PA0上升沿喚醒

if(PWR_GetFlagStatus(PWR_FLAG_WU) == SET)
{
  printf("\r\n PA0上升沿喚醒\r\n");

}
else
  printf("\r\n 其他\r\n");

 因為待機喚醒程序從頭執行,故不用多加配置時鐘的函數了


STM32系列(Cortex-M3)電源控制的研究 畢業設計,各種指導,本人小白

首先用STM32做控制單片機是老師規定的還是自己選擇的?我覺得STM32做電源控制太屈才了。51的stc的很多都可以做的很好,只需要選擇有AD的就可以了。你說速度?也沒問題!如果是你老師要求用STM32做?那我無語了,只能說你這個導師真的腦殼有點...
然後了,在各種無奈的情況下選擇STM32做畢設,現在時間差不多了,自己馬買一塊STM32的
學習板,有當然就另說了。
最後,自己慢慢學呗,我估計你那程序肯定不難。大不了用STM32做采樣,然後反饋控制。頂多加上一個屏幕做UI,或者低級一點的數碼管(估計老師都愛這口,用屏,他也不懂)。
 

STM32電源內部是相連的?

我也遇到了, 64引腳封裝的也是這樣,但是不是全部連接的,有一個被孤立了
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved