91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 3KB
    文件類型: .rar
    金幣: 2
    下載: 2 次
    發布日期: 2021-11-29
  • 語言: 其他
  • 標簽: 低功耗??STM32??rtc??

資源簡介

使用RTC喚醒低功耗三種模式,實測功耗為1UA左右,sleep模式下功耗為1MA左右。

資源截圖

代碼片段和文件信息

/*
*********************************************************
**?Filename:?stop_mode.c
**?Abstract:?使用STM32L151C8T6MCU,使用RTC喚醒STOP和STANDBY模式下的低功耗低功耗時長可以人為的進行設置
** 設置低功耗時長時請參考頭文件中關于時長的宏定義
**?使用注意事項:使用CubeMX生成函數時,在main()函數后會自動生成SystemClock_Config()函數,此程序中調用了該函數。
** 如果該函數在其他文件中,請將該.h文件加入,以免發生錯誤;
**?Date?:?2018-01-04?
**?Author:王翔武
*********************************************************
*/

/*?Includes?------------------------------------------------------------------*/
#include?“pwr_mode_rtc.h“
#include?“main.h“

RTC_HandleTypeDef?RTCHandle; //RTC結構體變量

//進入STOP模式低功耗,使用RTC功能喚醒,其中stoptime單位為S,如設置1,低功耗1秒后喚醒
void?enter_stop_rtc(float?stoptime)
{
uint32_t?i; //局部變量,用于計算低功耗時長
system_power_config();

????/*?Disable?Wakeup?Counter?*/
????HAL_RTCEx_DeactivateWakeUpTimer(&RTCHandle);

/*To?configure?the?wake?up?timer?to?4s?the?WakeUpCounter?is?set?to?0x242B:
RTC_WAKEUPCLOCK_RTCCLK_DIV?=?RTCCLK_Div16?=?16?
Wakeup?Time?base?=?16?/(~37KHz)?=?~0432?ms
Wakeup?Time?=?~5s?=?0432ms??*?WakeUpCounter
==>?WakeUpCounter?=?~5s/0432ms?=?11562?*/
i?=?stoptime*2396;
????HAL_RTCEx_SetWakeUpTimer_IT(&RTCHandle?i?RTC_WAKEUPCLOCK_RTCCLK_DIV16);
????
????/*?Enter?Stop?Mode?*/
????HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON?PWR_STOPENTRY_WFI);
SystemClock_Config();
}

//進入STANDBY模式低功耗,使用RTC功能喚醒,其中standbytime單位為S,如設置1,低功耗1秒后喚醒
void?enter_standby_rtc(float?standbytime)
{
uint32_t?i; //局部變量,用于計算低功耗時長
system_power_config();

if(__HAL_PWR_GET_FLAG(PWR_FLAG_SB)?!=?RESET)
{
/*?Clear?Standby?flag?*/
__HAL_PWR_CLEAR_FLAG(PWR_FLAG_SB);?
}
??
????/*?Disable?Wakeup?Counter?*/
????HAL_RTCEx_DeactivateWakeUpTimer(&RTCHandle);

/*To?configure?the?wake?up?timer?to?4s?the?WakeUpCounter?is?set?to?0x242B:
RTC_WAKEUPCLOCK_RTCCLK_DIV?=?RTCCLK_Div16?=?16?
Wakeup?Time?base?=?16?/(~37KHz)?=?~0432?ms
Wakeup?Time?=?~5s?=?0432ms??*?WakeUpCounter
==>?WakeUpCounter?=?~5s/0432ms?=?11562?*/
i?=?standbytime*2396;
????HAL_RTCEx_SetWakeUpTimer_IT(&RTCHandle?i?RTC_WAKEUPCLOCK_RTCCLK_DIV16);
????
/*?Clear?all?related?wakeup?flags?*/
__HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);

?/*?Enter?the?Standby?mode?*/
HAL_PWR_EnterSTANDBYMode();
}

//進入SLEEP模式低功耗,使用RTC功能喚醒,其中sleeptime單位為S,如設置1,低功耗1秒后喚醒
void?enter_sleep_rtc(float?sleeptime)
{
uint32_t?i; //局部變量,用于計算低功耗時長


system_power_config();

????/*?Disable?Wakeup?Counter?*/
????HAL_RTCEx_DeactivateWakeUpTimer(&RTCHandle);

/*To?configure?the?wake?up?timer?to?4s?the?WakeUpCounter?is?set?to?0x242B:
RTC_WAKEUPCLOCK_RTCCLK_DIV?=?RTCCLK_Div16?=?16?
Wakeup?Time?base?=?16?/(~37KHz)?=?~0432?ms
Wakeup?Time?=?~5s?=?0432ms??*?WakeUpCounter
==>?WakeUpCounter?=?~5s/0432ms?=?11562?*/
i?=?sleeptime*2396;
????HAL_RTCEx_SetWakeUpTimer_IT(&RTCHandle?i?RTC_WAKEUPCLOCK_RTCCLK_DIV16);
????
????/*Suspend?Tick?increment?to?prevent?wakeup?by?Systick?interrupt.?
????Otherwise?the?Systick?interrupt?will?wake?up?the?device?within?1ms?(HAL?time?bas

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????5920??2018-01-04?18:18??PWR_RTC低功耗模式代碼\pwr_mode_rtc.c

?????文件????????428??2018-01-04?18:14??PWR_RTC低功耗模式代碼\pwr_mode_rtc.h

?????文件????????337??2018-01-04?19:13??PWR_RTC低功耗模式代碼\低功耗介紹.txt

?????目錄??????????0??2018-01-04?18:22??PWR_RTC低功耗模式代碼

-----------?---------??----------?-----??----

?????????????????6685????????????????????4


評論

共有 條評論