国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

STM32F10x低功耗之待機模式詳解

嵌入式技術 ? 來源:嵌入式技術 ? 作者:嵌入式技術 ? 2022-06-08 09:16 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1.待機模式介紹

STM32F10x待機模式可實現系統的最低功耗。該模式是在Cortex-M3深睡眠模式時關閉電壓調節器。整個1.8V供電區域被斷電。 PLL、HSI和HSE振蕩器也被斷電。 SRAM寄存器內容丟失。只有備份的寄存器和待機電路維持供電。
在待機模式下,下列功能需要單獨設置:

1.獨立看門狗(IWDG):獨立看門狗一旦啟動,除了系統復位,它不能再被停止。可通過看門狗的鍵寄存器或硬件選擇來啟動IWDG。
2.實時時鐘(RTC):可通過區域控制寄存器(RCC_BDCR)中的RTCEN位來設置。
3.內部RC振蕩器(LSI RC):通過控制/狀態寄存器(RCC_CSR)的LSION位來設置。
4.外部低速時鐘LSE(32.768KHZ):通過備份域寄存器(RCC_BDCR)的LSEON位設置。

2.待機模式配置

退出待機模式
通過以下方式可退出待機模式:

  • 外部引腳復位引腳(NRST引腳)
  • 看門狗復位(IWDG)
  • WKUP引腳的上升沿觸發(PA0)
  • RTC鬧鐘事件的上升沿觸發

從待機模式喚醒后,除了電源控制/狀態寄存器(PWR_CSR),所有寄存器被復位;從待機模式喚醒的代碼等同于復位重啟。
進入待機模式配置步驟
1、設置Cortex?-M3系統控制寄存器中的SLEEPDEEP位(SCB_SCR參考Cortex-M3權威指南182頁)。
2、開啟PWR時鐘(RCC_APB1的PWR位)
3、設置電源控制寄存器(PWR_CR)的PDDS位
4、清除電源控制/狀態寄存器(PWR_CSR)中的WUF位
5、等待中斷觸發喚醒(WFI等待中斷或者WFE等待事件)

/************進入待機模式配置***************************
**
**注:使用待機模式若通過KEY_UP觸發這需要PWR_CSR的EWUP位
**
*******************************************************/
void SYS_standby_mode(void)
{
	SCB->SCR|=1<<2;//使能SLEEPDEEP位 Cortex-M3權威指南182頁	
	RCC->APB1ENR|=1<<28; //使能電源時鐘
	PWR->CSR|=1<<8;//設置WKUP喚醒(使用PA0喚醒需要配置)
	PWR->CR|=1<<1;//進入待機模式
	PWR->CR|=1<<2;//清除WUF喚醒位
	WFI_SET();//等待中斷觸發喚醒
}

WFI等待中斷函數

//THUMB指令不支持匯編內聯
//采用如下方法實現執行匯編指令WFI,等待下一個外部中斷觸發
void WFI_SET(void)
{
	__ASM volatile("wfi");		  
}

待機模式喚醒設置

待機模式喚醒通過檢測PA0引腳的上升沿信號

/*************待機模式喚醒設置*********************
**喚醒方式:WKUP(PA0)上升沿
**				 RTC鬧鐘事件的上升沿
**				 NRST引腳上外部復位
**				 IWDG復位
**配置PA0上升沿觸發中斷
**通過檢查PA0,按下3S退出待機模式,未按下進入待機模式
****************************************************/
void SYS_ExitStandyMode(void)
{
	RCC->APB2ENR|=1<<2;//開啟PA時鐘
	GPIOA->CRL&=0xFFFFFFF0;//清除原來寄存器中的值
	GPIOA->CRL|=0x00000008;//配置為上下拉輸入方式
	RCC->APB2ENR|=1<<0;//AFIO
	AFIO->EXTICR[0]&=~(0xf<<0*4);//PA0作為外部中斷0輸入源	
	EXTI->IMR|=1<<0;//開啟EXTI0中斷請求
	EXTI->RTSR|=1<<0;//允許EXTI0上升沿觸發
	STM32_NVIC_SetPriority(EXTI0_IRQn,1,1);//設置優先級	
	if(WKUP_Check()==0)SYS_standby_mode();	
}

WKUP按鍵檢測函數
判斷PA0引腳是否連續按下2S,連續按下2s則進入或退出待機模式。

/****************檢測WKUP按鍵****************/
u8 WKUP_Check(void)
{
	u16 t=0;
	LED2=0;
	while(1)
	{
		if(KEY1)//檢測是否按下
		{
			t++;
			Delay_Ms(10);
			if(t>=200)
			{
				LED2=1;
				return 1;
			}
		}
		else 
		{
			LED2=1;
			return 0;
		}
	}
}

主函數實現
1.系統初始化后直接進入待機模式
2.初始化通過RTC配置鬧鐘中斷30s后喚醒
3.通過檢測WKUP按鍵(PA0)持續按下3S后退出待機模式
4.在正常模式下可通過WKUP按鍵(PA0)持續按下3S進入待機模式或者通過按下KEY2進入待機模式

int main()
{
	u16 cnt=0;
	u8 key=0;
	Beep_Init();
	Led_Init();
	Key_Init();
	Usartx_Init(USART1,115200,72);
	TIMx_Init(TIM2,72,20*1000);
	printf("初始化完成\r\n");
	RTC_Init();//RTC配置
	Delay_Ms(1000);
	Delay_Ms(1000);
	SYS_ExitStandyMode();//待機模式設置
	while(1)
	{
		Delay_Ms(1);
		cnt++;
		if(cnt>=500)
		{
			cnt=0;
			LED1=!LED1;
		}
		key=Key_Scan();
		if(key==2)
		{
			SYS_standby_mode();//按鍵2按下進待機模式
		}
		if(usart1_flag)
		{
			usart1_rx_buff[usart1_cnt]='\0';
			printf("USART1:%s\r\n",usart1_rx_buff);
			usart1_flag=0;
			usart1_cnt=0;
		}
	}
}

鬧鐘中斷觸發喚醒,或者按鍵觸發喚醒

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDQ1MzY5NA==,size_16,color_FFFFFF,t_70

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

    關注

    2309

    文章

    11162

    瀏覽量

    373413
  • STM32F10x
    +關注

    關注

    2

    文章

    82

    瀏覽量

    21356
  • 低功耗
    +關注

    關注

    12

    文章

    3438

    瀏覽量

    106688
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    STM32L072xx:超低功耗32位MCU的卓越

    STM32L072xx:超低功耗32位MCU的卓越選 在當今的電子設備設計中,低功耗、高性能的微控制器(MCU)是眾多應用的核心需求。ST公司的S
    的頭像 發表于 03-03 17:35 ?1048次閱讀

    STM32L062x8:超低功耗32位MCU的卓越

    STM32L062x8:超低功耗32位MCU的卓越選 在當今的電子設計領域,低功耗、高性能的微控制器(MCU)是眾多應用的核心需求。STMicroelectronics推出的
    的頭像 發表于 03-02 15:20 ?102次閱讀

    STM32L072xx系列微控制器:低功耗設計的優選

    STM32L072xx系列微控制器:低功耗設計的優選選 在當今的電子設備設計中,低功耗、高性能的微控制器是眾多工程師追求的目標。STMicroelectronics推出的
    的頭像 發表于 02-28 11:35 ?240次閱讀

    STM32L052x6/8:超低功耗32位MCU的卓越

    STM32L052x6/8:超低功耗32位MCU的卓越選 在當今的電子設備設計中,低功耗、高性能的微控制器(MCU)是眾多應用的核心需求。STM3
    的頭像 發表于 02-11 15:20 ?143次閱讀

    STM32F070CB/RB/C6/F6:高效低功耗32位微控制器的卓越

    STM32F070CB/RB/C6/F6:高效低功耗32位微控制器的卓越選 在當今電子設備飛速發展的時代,高性能、低功耗的微控制器需求日益
    的頭像 發表于 02-10 15:35 ?143次閱讀

    STM32L053x6/8:超低功耗32位MCU的卓越

    STM32L053x6/8:超低功耗32位MCU的卓越選 在電子設計領域,對于高性能、低功耗微控制器的需求與日俱增。STMicroelectronics推出的
    的頭像 發表于 02-10 11:25 ?194次閱讀

    CW32L052的低功耗模式

    CW32L052工作溫度為-40℃~85℃,寬工作電壓1.65V~5.5V,支持Sleep和DeepSleep兩種低功耗工作模式,在DeepSleep模式下工作電流僅為500nA,從這一模式
    發表于 01-07 07:45

    深入解析CC430系列SoC:低功耗無線通信的理想

    深入解析CC430系列SoC:低功耗無線通信的理想選 在當今的電子設計領域,低功耗無線通信技術的需求日益增長。TI的CC430系列SoC(System-on-Chip)憑借其卓越的性能和豐富的功能
    的頭像 發表于 01-06 10:15 ?496次閱讀

    CC2640R2L:低功耗藍牙5.1無線MCU的卓越

    CC2640R2L在功耗方面表現出色,具備多種低功耗模式。在待機模式下,僅需1.5μA(RTC運行且RAM/CPU保留);關
    的頭像 發表于 12-22 11:25 ?1986次閱讀

    什么是低功耗設計,如何評估低功耗MCU性能?

    每一個細節來考慮降低功率消耗,從而盡可能地延長電池使用時間。 因此,大部分芯片都會有低功耗模式。從MCU端來講,低功耗的MCU性能一般有以下幾個參數指標來衡量: ·MCU處于深度休眠模式
    發表于 12-12 07:43

    芯源低功耗的MCU最高頻率是多少?待機功耗最少多少?長待機一般多長時間?

    芯源低功耗的MCU最高頻率是多少?待機功耗最少多少?長待機一般多長時間?
    發表于 11-14 07:29

    CW32 UART低功耗模式詳解

    ,往往是靠電池來供電,所以設計人員從每一個細節來考慮降低功率消耗,從而盡可能地延長電池使用時間。因此,大部分芯片都會有低功耗模式,以CW32L083為例,它就是一個32位低功耗微控制器。 一、芯片
    發表于 11-12 07:24

    【RA4M2-SENSOR】+低功耗模式功耗測試

    RA4M2-SENSOR開發板提供了電源管理,所提供的三種低功耗模式為:睡眠模式(Sleep Mode)、軟件待機模式(Software S
    發表于 10-01 09:13

    【RA4M2-SENSOR】5、外部中斷按鍵+低功耗模式+功耗測量

    運行,并盡量降低器件的功耗。 RA4M2 支持3種低功耗模式:睡眠模式(Sleep Mode)、軟件待機
    發表于 09-01 20:53

    【RA4L1-SENSOR】07 低功耗待機模式功耗實測

    從控制功耗入手, 提高設備的續行時間。 因此,RA芯片有專門管理設備的運行模式,確保系統正常運行,并盡量降低器件的功耗。 RA2L1支持3種低功耗
    發表于 06-20 09:36