精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

STM32低功耗模式之停止模式的配置步驟

嵌入式技術 ? 來源:嵌入式技術 ? 作者:嵌入式技術 ? 2022-06-07 08:26 ? 次閱讀

1.STM32F10xx低功耗模式

  • 睡眠模式:Cortex?-M3內核停止,所有外設包括Cortex-M3核心的外設,如NVIC、系統(tǒng)時鐘(SysTick)等仍在運行
  • 停止模式:所有的時鐘都已停止
  • 待機模式:1.8V電源關閉

2.STM32F10X停止模式的配置

停止模式是在Cortex?-M3的深睡眠模式基礎上結合了外設的時鐘控制機制,在停止模式下電壓調節(jié)器可運行在正常或低功耗模式。此時在1.8V供電區(qū)域的的所有時鐘都被停止, PLL、 HSI和HSE RC振蕩器的功能被禁止, SRAM寄存器內容被保留下來。

進入停止模式:

在停止模式下,通過設置電源控制寄存器(PWR_CR)的LPDS位使內部調節(jié)器進入低功耗模式,能夠降低更多的功耗。
如果正在進行閃存編程,直到對內存訪問完成,系統(tǒng)才進入停止模式。
如果正在進行對APB的訪問,直到對APB訪問完成,系統(tǒng)才進入停止模式。
在配置停止模式時,以下功能能需要獨立進行編程:
獨立看門狗(IWDG)一旦啟動除非系統(tǒng)復位,它不能再被停止;
實時時鐘(RTC)需要單獨通過備份欲寄存器(RCC_DBCR)的RTCEN來設置;
內部RC振蕩器(LSI RC):通過控制/狀態(tài)寄存器 (RCC_CSR)的LSION位來設置。
外部32.768kHz振蕩器(LSE):通過備份域控制寄存器 (RCC_BDCR)的LSEON位設置。
在停止模式下,如果在進入該模式前ADCDAC沒有被關閉,那么這些外設仍然消耗電流。通過設置寄存器ADC_CR2的ADON位和寄存器DAC_CR的ENx位為0可關閉這2個外設。
配置步驟
1、設置Cortex-M3系統(tǒng)控制寄存器中的SLEEPDEEP位(SCB_SCR參考Cortex-M3權威指南182頁)。
2、 清除電源控制寄存器(PWR_CR)中的PDDS位。
3、通過設置PWR_CR中LPDS位選擇電壓調節(jié)器的模式
4、執(zhí)行WFI或者WFE匯編指令
注:為了進入停止模式,所有的外部中斷的請求位(掛起寄存器(EXTI_PR))和RTC的鬧鐘標志都必須被清除,否則停止模式的進入流程將會被跳過,程序繼續(xù)運行。

//THUMB指令不支持匯編內聯(lián)
//采用如下方法實現(xiàn)執(zhí)行匯編指令WFI,等待下一個外部中斷觸發(fā)
void WFI_SET(void)
{
	__ASM volatile("wfi");		  
}
/******************進入停止模式*********************/
void SYS_StopMode(void)
{
	SCB->SCR|=1<<2;//使能SLEEPDEEP位 Cortex-M3權威指南182頁
	RCC->APB1ENR|=1<<28; //使能電源時鐘
	PWR->CR&=~(1<<1);//進入停機模式
	PWR->CR|=1<<0;//在停機模式下電壓調壓器處于低功耗模式
	WFI_SET();
}

退出停止模式
當一個中斷或喚醒事件導致退出停止模式時, HSI RC振蕩器被選為系統(tǒng)時鐘。
當電壓調節(jié)器處于低功耗模式下,當系統(tǒng)從停止模式退出時,將會有一段額外的啟動延時。如果在停止模式期間保持內部調節(jié)器開啟,則退出啟動時間會縮短,但相應的功耗會增加。
配置步驟
1、如果執(zhí)行WFI進入停止模式:設置任一外部中斷線為中斷模式(在NVIC中必須使能相應的外部中斷向量)。
2、如果執(zhí)行WFE進入停止模式:設置任一外部中斷線為事件模式。
這里以WFI模式為例,通過外部中斷線2下降沿觸發(fā)退出停止模式:
從停止模式退出時HSI RC振蕩器將作為系統(tǒng)時鐘。為了保證從停止模式退出后各項功能可以正常使用我們需要重新配置系統(tǒng)時鐘。

/*系統(tǒng)時鐘配置*/
void STM32_Clock_Init(u8 PLL)
{
	u8 temp;
	RCC->CR|=1<<16;//開啟HSE時鐘
	while(!(RCC->CR>>17));//等待外部時鐘就緒
	RCC->CFGR|=0x4<<8;//APB1時鐘由系統(tǒng)時鐘2分頻
	PLL-=2;//實際倍頻數(shù)和填入?yún)?shù)差2,9倍頻寫入的數(shù)值為7
	RCC->CFGR|=PLL<<18;//PLL時鐘9倍頻
	RCC->CFGR|=1<<16;	  //HSE作為PLL時鐘輸入源
	FLASH->ACR|=0x32;	  //FLASH 2個延時周期
	RCC->CR|=1<<24;//PLL時鐘使能
	while(!(RCC->CR>>25));//等待PLL鎖定
	RCC->CFGR|=0x2<<0;//PLL輸出作為系統(tǒng)時鐘
	while(1)
	{
		temp=(RCC->CFGR>>2)&0x3;
		if(temp==0x2)break;
	}	
}
/********************退出停止模式***********************/
void SYS_ExitStopMode(void)
{
	RCC->APB2ENR|=1<<0;//AFIO
	/*PA5配置外部中斷模式*/
	AFIO->EXTICR[0]|=(0X4<<2*4);//PE2作為外部中斷5輸入源
	EXTI->IMR|=1<<2;//開啟EXTI2中斷請求
	EXTI->FTSR|=1<<2;//允許EXTI2下降沿觸發(fā)
	STM32_NVIC_SetPriority(EXTI2_IRQn,1,1);//設置優(yōu)先級		
}
void EXTI2_IRQHandler(void)
{
	STM32_Clock_Init(9);//時鐘配置,從停止模式喚醒時默認選擇的為HSI作為系統(tǒng)時鐘源
	printf("退出停止模式rn");
	EXTI->PR|=1<<2;//清除標志
}

主函數(shù)實現(xiàn)
通過按鍵進入停止模式,外部中斷2下降沿觸發(fā)退出停止模式。

int main()
{
	u16 cnt=0;
	u8 key=0;
	Beep_Init();
	Led_Init();
	Key_Init();
	SYS_ExitStopMode();
	Usartx_Init(USART1,115200,72);
	TIMx_Init(TIM2,72,20*1000);
	printf("USART1初始化完成rn");
	while(1)
	{
		Delay_Ms(1);
		cnt++;
		if(cnt>=500)
		{
			cnt=0;
			LED1=!LED1;
		}
		key=Key_Scan();
		if(key==1)
		{
			printf("進入停止模式rn");
			LED1=1;
			SYS_StopMode();
		}
		if(usart1_flag)
		{
			usart1_rx_buff[usart1_cnt]='?';
			printf("USART1:%srn",usart1_rx_buff);
			usart1_flag=0;
			usart1_cnt=0;
		}
	}
}

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • STM32
    +關注

    關注

    2266

    文章

    10873

    瀏覽量

    354844
  • STM32F10x
    +關注

    關注

    1

    文章

    81

    瀏覽量

    20658
收藏 人收藏

    評論

    相關推薦

    第21章 RTX低功耗睡眠模式

    STM32F103和STM32F407的低功耗方式睡眠模式在RTX操作系統(tǒng)上面的實現(xiàn)方法(RTX本身支持的tickless
    發(fā)表于 10-08 17:40

    STM32低功耗模式

    STM32低功耗模式1.睡眠模式2.停止模式3.待機模式
    發(fā)表于 08-11 07:35

    STM32低功耗模式

    STM32低功耗模式共有三個:睡眠模式-(sleep): 睡眠模式功耗是mA級別,一般在實際
    發(fā)表于 08-12 08:15

    如何使用MAXQ3180的低功耗測量模式停止模式

    如何使用MAXQ3180的低功耗測量模式停止模式:1. MAXQ3180 的多種工作模式.........................
    發(fā)表于 10-31 07:58 ?16次下載

    探究STM32低功耗的幾種模式

    低功耗模式 本文討論下STM32低功耗模式,先看如下手冊。 對比了 STM32F0 和
    的頭像 發(fā)表于 07-26 17:49 ?1.1w次閱讀
    探究<b class='flag-5'>STM32</b><b class='flag-5'>低功耗</b>的幾種<b class='flag-5'>模式</b>

    MCU學習筆記_STM32低功耗模式概述

    MCU學習筆記電源管理系統(tǒng)1. STM32低功耗模式概述2. 寄存器和庫函數(shù)配置3. HAL庫配置PVD實例1.
    發(fā)表于 10-28 17:36 ?9次下載
    MCU學習筆記_<b class='flag-5'>STM32</b><b class='flag-5'>低功耗</b><b class='flag-5'>模式</b>概述

    STM32低功耗模式待機模式

    上周完成了一個小項目,項目涉及到stm32低功耗的待機模式,特在此記錄下32的待機模式。 芯片:STM32f030F4 庫:HAL庫
    發(fā)表于 12-07 16:21 ?8次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>低功耗</b><b class='flag-5'>模式</b><b class='flag-5'>之</b>待機<b class='flag-5'>模式</b>

    STM32 低功耗停機模式(STOP)管腳事件(EVENT)喚醒實現(xiàn)及優(yōu)化

    STM32 低功耗停止模式(STOP)管腳事件喚醒實現(xiàn)及優(yōu)化1. 介紹STM32具有多種低功耗
    發(fā)表于 12-07 16:21 ?11次下載
    <b class='flag-5'>STM32</b> <b class='flag-5'>低功耗</b>停機<b class='flag-5'>模式</b>(STOP)管腳事件(EVENT)喚醒實現(xiàn)及優(yōu)化

    STM32低功耗入門停止模式

    一. 認識停止模式STM32L4 系列提供了 3 種停止模式:stop0 , stop1 , stop2.
    發(fā)表于 12-07 18:06 ?11次下載
    <b class='flag-5'>STM32</b>超<b class='flag-5'>低功耗</b>入門<b class='flag-5'>之</b><b class='flag-5'>停止</b><b class='flag-5'>模式</b>

    PWR-低功耗模式-STM32F4

    狀態(tài)之下,HCLK為CPU提供時鐘,內核執(zhí)行代碼。當CPU不需要繼續(xù)運行時,可以利用多種低功耗模式來節(jié)省功耗,例如等待某個事件觸發(fā)。1、STM32的3種
    發(fā)表于 12-28 19:25 ?9次下載
    PWR-<b class='flag-5'>低功耗</b><b class='flag-5'>模式</b>-<b class='flag-5'>STM32</b>F4

    STM32低功耗模式的調試

    低功耗模式的調試型號:STM32L452RET6規(guī)格:64PINSTM32支持3種低功耗模式:1
    發(fā)表于 12-31 19:01 ?2次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>低功耗</b><b class='flag-5'>模式</b>的調試

    STM32 低功耗STOP模式,RTC喚醒

    STM32低功耗運行模式之一,該模式下CPU會停止工作,但RAM中的數(shù)據(jù)仍然保留。待中斷或事件觸發(fā)后程序可以繼續(xù)運行。note:1、ST
    發(fā)表于 12-31 19:06 ?45次下載
    <b class='flag-5'>STM32</b> <b class='flag-5'>低功耗</b>STOP<b class='flag-5'>模式</b>,RTC喚醒

    STM32 低功耗睡眠模式(SLEEP)事件(EVENT)喚醒實現(xiàn)及優(yōu)化

    STM32 低功耗睡眠模式(SLEEP)事件(EVENT)喚醒實現(xiàn)及優(yōu)化1. 介紹STM32具有多種低功耗
    發(fā)表于 12-31 19:08 ?34次下載
    <b class='flag-5'>STM32</b> <b class='flag-5'>低功耗</b>睡眠<b class='flag-5'>模式</b>(SLEEP)事件(EVENT)喚醒實現(xiàn)及優(yōu)化

    STM32低功耗模式有哪些?

    低功耗模式有三種:睡眠模式停止模式、待機模式。一般做開發(fā)大多都是選擇停機
    發(fā)表于 02-08 15:53 ?12次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>低功耗</b><b class='flag-5'>模式</b>有哪些?

    PWR低功耗模式介紹

    低功耗模式介紹 默認情況下,微控制器在系統(tǒng)或電源復位后處于運行模式。當 CPU 不需要保持運行時,例如等待外部事件時,可以使用多種低功耗模式
    發(fā)表于 03-23 14:30 ?1263次閱讀
    PWR<b class='flag-5'>低功耗</b><b class='flag-5'>模式</b>介紹