国产亚洲精品久久久久久豆腐,国产精品久久久久久精品电影,国产午睡沙发,国产成人免费av片在线观看,国产精品,午夜福利

stm32單片機(jī)待機(jī)模式的設(shè)計(jì)

文章圖片

一 待機(jī)形式簡(jiǎn)介

stm32的低功耗形式中,待機(jī)形式能夠完成系統(tǒng)的最低功耗,在這種形式下,只需求2uA左右的電流

三 待機(jī)喚醒程序剖析

實(shí)驗(yàn)現(xiàn)象:

將程序下載到開(kāi)發(fā)板上后,LED燈會(huì)不時(shí)地亮滅,當(dāng)按下KEY2鍵超越3s時(shí),LED燈滅,標(biāo)志著單片機(jī)進(jìn)入待機(jī)形式,再按下KEY1鍵,這時(shí)喚醒單片機(jī),LED又開(kāi)端不時(shí)地亮滅亮滅。

程序中用到的一些宏定義

stm32單片機(jī)待機(jī)形式的設(shè)計(jì)

#definemacEXTI_GPIO_CLK(RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO)

#definemacEXTI_GPIO_PORTGPIOC

#definemacEXTI_GPIO_PINGPIO_Pin_13

#definemacEXTI_SOURCE_PORTGPIO_PortSourceGPIOC

#definemacEXTI_SOURCE_PINGPIO_PinSource13

#definemacEXTI_LINEEXTI_Line13

#definemacEXTI_IRQEXTI15_10_IRQn

#definemacEXTI_INT_FUNCTIONEXTI15_10_IRQHandler

主函數(shù):

intmain(void)

{

/*configtheled*/

LED_GPIO_Config();

/*extilineconfig*/

EXTI_Pxy_Config();//初始化中綴函數(shù)

USARTx_Config();

if(PWR_GetFlagStatus(PWR_FLAG_WU)==SET)

{

printf(“rn使能電源管理時(shí)鐘單元前的檢測(cè),待機(jī)喚醒復(fù)位rn”);

}

else

printf(“rn使能電源管理時(shí)鐘單元前的檢測(cè),上電復(fù)位rn”);

RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);

if(PWR_GetFlagStatus(PWR_FLAG_WU)==SET)

{

printf(“rn使能后檢測(cè),待機(jī)喚醒復(fù)位rn”);

}

else

printf(“rn使能后檢測(cè),上電復(fù)位rn”);

while(1)

{

LED1(ON);

Delay(0xFFFFF);

LED1(OFF);

LED2(ON);

Delay(0xFFFFF);

LED2(OFF);

LED3(ON);

Delay(0xFFFFF);

LED3(OFF);

}

}

剖析:在主函數(shù)中,除了用到一些必要的初始化之外,就是while循環(huán),在while循環(huán)中點(diǎn)亮LED燈,獨(dú)一不太熟習(xí)的是幾個(gè)printf語(yǔ)句,這里暫時(shí)不論,先看EXTI_Pxy_Config()函數(shù)。

EXTI_Pxy_Config()函數(shù)

voidEXTI_Pxy_Config(void)

{

GPIO_InitTypeDefGPIO_InitStructure;

EXTI_InitTypeDefEXTI_InitStructure;

/*configtheextilineclockandAFIOclock*/

RCC_APB2PeriphClockCmd(macEXTI_GPIO_CLK,ENABLE);//開(kāi)啟GPIO時(shí)鐘和AFIO時(shí)鐘

/*configtheNVIC*/

NVIC_Configuration();

/*EXTIlinegpioconfig*/

GPIO_InitStructure.GPIO_Pin=macEXTI_GPIO_PIN;

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPD;//配置為上拉輸入

GPIO_Init(macEXTI_GPIO_PORT,&GPIO_InitStructure);

/*EXTIlinemodeconfig*/

GPIO_EXTILineConfig(macEXTI_SOURCE_PORT,macEXTI_SOURCE_PIN);

EXTI_InitStructure.EXTI_Line=macEXTI_LINE;

EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;

EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Rising;//設(shè)置為上升沿觸發(fā)中綴?。?!,也就是當(dāng)單片機(jī)檢測(cè)到按鍵的上升沿時(shí)進(jìn)入中綴程序

EXTI_InitStructure.EXTI_LineCmd=ENABLE;

EXTI_Init(&EXTI_InitStructure);

}

剖析:在EXTI_Pxy_Config()函數(shù)中,先停止了KEY2按鍵的初始化,留意KEY2按鍵并不是WKUP按鍵,一定要留意。然后將KEY2按鍵的IO口配置為EXTI中綴形式,上升沿觸發(fā),也就是說(shuō)當(dāng)KEY2按鍵被按下時(shí)就會(huì)觸發(fā)中綴。然后我們?cè)倨饰霎?dāng)按鍵KEY2被按下時(shí),執(zhí)行的相應(yīng)中綴函數(shù)。

macEXTI_INT_FUNCTION()函數(shù)

///IO口線中綴,中綴口為PC13

voidmacEXTI_INT_FUNCTION(void)

{

if(EXTI_GetITStatus(macEXTI_LINE)!=RESET)//確保能否產(chǎn)生了EXTILine中綴

{

printf(“rn進(jìn)入EXTILine中綴rn”);

//K2鍵長(zhǎng)按進(jìn)入待機(jī)形式

if(PWR_Check_Standby())//PWR_Check_Standby()函數(shù)是用來(lái)判別按鍵時(shí)長(zhǎng)的,假如按鍵時(shí)間長(zhǎng)超越3S就返回1,否則返回0

{

//使能WKUP引腳的喚醒功用

PWR_WakeUpPinCmd(ENABLE);

億配芯zgjzwjg.cn)隸屬于深圳市新嘉盛工貿(mào)有限公司,成立于2013年并上線服務(wù),商城平臺(tái)主要特點(diǎn)“線上快捷交易配單+線下實(shí)體供應(yīng)交貨”兩全其美的垂直發(fā)展理念,是國(guó)內(nèi)電子元器件專業(yè)的電子商務(wù)平臺(tái)+實(shí)體店企業(yè)。未來(lái)發(fā)展及模式主要以(一站式配單,平臺(tái)寄售/處理閑置庫(kù)存達(dá)到資源共享雙贏,電子工程師交流社區(qū),硬件開(kāi)發(fā)與支持等互動(dòng)服務(wù)平臺(tái))在這個(gè)高效而發(fā)展迅猛的科技互聯(lián)網(wǎng)時(shí)代為大家提供精準(zhǔn)的大數(shù)據(jù)資源平臺(tái)。

相關(guān)文章

發(fā)表評(píng)論

評(píng)論

    暫無(wú)評(píng)論

?Copyright 2013-2025 億配芯城(深圳)電子科技有限公司 粵ICP備17008354號(hào)

Scroll