日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]本文將驗(yàn)證STM32L32在stop模式下的低功耗電流。在ST官網(wǎng)的STM32L152RE芯片介紹上明確有說(shuō)明此芯片在stop模式下可以達(dá)到560nA,納安!并且還可以支持16個(gè)外部中斷喚醒。真的這么強(qiáng)!下面來(lái)驗(yàn)證一下。采用NUCLEO-L152板

本文將驗(yàn)證STM32L32在stop模式下的低功耗電流。


在ST官網(wǎng)的STM32L152RE芯片介紹上明確有說(shuō)明此芯片在stop模式下可以達(dá)到560nA,納安!并且還可以支持16個(gè)外部中斷喚醒。

真的這么強(qiáng)!下面來(lái)驗(yàn)證一下。

采用NUCLEO-L152板子進(jìn)行驗(yàn)證,使用CubeMx生成工程代碼。

在CubeMx中選擇STM32L152RE這款芯片,pinout如下設(shè)置:

如上圖,只是簡(jiǎn)單地將PC13,PB9,PB5,PB4,PD2,PA12,PB15,PB1設(shè)置為外部中斷。

為了得到最低功耗,時(shí)鐘樹采用芯片內(nèi)部時(shí)鐘HSI:


在configuration下,將GPIO都設(shè)置為下拉,PC13在NUCLEO板子上是按鍵,設(shè)為上拉。

生成代碼。main函數(shù)稍作修改:


intmain(void)

{

/*USERCODEBEGIN1*/

/*USERCODEEND1*/

/*MCUConfiguration----------------------------------------------------------*/

/*Resetofallperipherals,InitializestheFlashinterfaceandtheSystick.*/

HAL_Init();

/*Configurethesystemclock*/

SystemClock_Config();

/*Initializeallconfiguredperipherals*/

MX_GPIO_Init();

/*USERCODEBEGIN2*/

HAL_PWREx_EnableUltraLowPower();

HAL_PWREx_EnableFastWakeUp();

/*USERCODEEND2*/

/*Infiniteloop*/

/*USERCODEBEGINWHILE*/

while(1)

{

/*USERCODEENDWHILE*/

/*USERCODEBEGIN3*/

HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON,PWR_STOPENTRY_WFI);

/*Configuressystemclockafterwake-upfromSTOP:enableHSI,PLLandselect

PLLassystemclocksource(HSIandPLLaredisabledautomaticallyinSTOPmode)*/

SystemClockConfig_STOP();

HAL_Delay(200);

}

/*USERCODEEND3*/

}

SystemClockConfig_STOP函數(shù)如下配置:


staticvoidSystemClockConfig_STOP(void)

{

RCC_ClkInitTypeDefRCC_ClkInitStruct={0};

RCC_OscInitTypeDefRCC_OscInitStruct={0};

/*EnablePowerControlclock*/

__HAL_RCC_PWR_CLK_ENABLE();

/*Thevoltagescalingallowsoptimizingthepowerconsumptionwhenthedeviceis

clockedbelowthemaximumsystemfrequency,toupdatethevoltagescalingvalue

regardingsystemfrequencyrefertoproductdatasheet.*/

__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);

/*PollVOSFbitofinPWR_CSR.Waituntilitisresetto0*/

while(__HAL_PWR_GET_FLAG(PWR_FLAG_VOS)!=RESET){};

/*GettheOscillatorsconfigurationaccordingtotheinternalRCCregisters*/

HAL_RCC_GetOscConfig(&RCC_OscInitStruct);

/*Afterwake-upfromSTOPreconfigurethesystemclock:EnableHSIandPLL*/

RCC_OscInitStruct.OscillatorType=RCC_OSCILLATORTYPE_HSI;

RCC_OscInitStruct.HSEState=RCC_HSE_OFF;

RCC_OscInitStruct.HSIState=RCC_HSI_ON;

RCC_OscInitStruct.PLL.PLLState=RCC_PLL_ON;

RCC_OscInitStruct.PLL.PLLSource=RCC_PLLSOURCE_HSI;

RCC_OscInitStruct.HSICalibrationValue=RCC_HSICALIBRATION_DEFAULT;

RCC_OscInitStruct.PLL.PLLMUL=RCC_PLL_MUL6;

RCC_OscInitStruct.PLL.PLLDIV=RCC_PLL_DIV3;

if(HAL_RCC_OscConfig(&RCC_OscInitStruct)!=HAL_OK)

{

Error_Handler();

}

/*SelectPLLassystemclocksourceandconfiguretheHCLK,PCLK1andPCLK2

clocksdividers*/

RCC_ClkInitStruct.ClockType=RCC_CLOCKTYPE_SYSCLK;

RCC_ClkInitStruct.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK;

if(HAL_RCC_ClockConfig(&RCC_ClkInitStruct,FLASH_LATENCY_1)!=HAL_OK)

{

Error_Handler();

}

}


編譯燒錄后使用電流表進(jìn)行測(cè)試:

0.3uA! 看來(lái)所言非虛,300nA,按下按鍵,發(fā)現(xiàn)電流變大了,如下:

電流變?yōu)?1mA,這個(gè)位為工作電流,這說(shuō)明外部中斷生效了。



STM32L152在低功耗這塊,確實(shí)還不錯(cuò)!實(shí)測(cè)stop模式下300nA的電流,比手冊(cè)上所示的560nA還低,看來(lái)ST還是比較保守。


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉