stm32L151低功耗学习——Alarm闹钟周期唤醒(10s/10min/10h)

本文介绍了在stm32L151C8T6项目中,利用Alarm功能实现低功耗待机模式周期唤醒的过程。通过设置Alarm,设备理论上每10秒唤醒一次,但实际唤醒时间略有偏差。文章讨论了可能的时钟不准确问题,并提醒在初始化和中断处理中清除标志位的重要性。
摘要由CSDN通过智能技术生成

一、最近在搞stm32L151C8T6的低功耗模式。

项目场景:

提示:这里简述项目相关背景:
LoRa低功耗,用到stm32L151C8T6+sx1278,SPI通信。本文主要讲述stm32L151低功耗问题——待机模式。
以下代码理论10s唤醒一次,时间可自由设置,详细配置之代码注释有


问题描述:

不废话直接上代码:
LowPower.c文件:

#include "LowPower.h"
#include "stm32l1xx_rtc.h"
#include "stm32l1xx.h"
#include "stm32l1xx_exti.h"
#include "misc.h"
#include "stm32l1xx_rcc.h"
#include "stm32l1xx_pwr.h"

//RTC 时钟配置
void rtc_init(void) {
   
    RTC_InitTypeDef RTC_InitStructure;
	RTC_TimeTypeDef  RTC_TimeStruct;
    EXTI_InitTypeDef EXTI_InitStructure;
    NVIC_InitTypeDef NVIC_InitStructure;
    
    /* Enable the PWR clock */
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);
    /* Allow access to RTC */
    PWR_RTCAccessCmd(ENABLE);
    RTC_WaitForSynchro();
	 /* Reset RTC Domain */
    RCC_RTCResetCmd(ENABLE);
    RCC_RTCResetCmd(DISABLE);
    /* Enable the LSI OSC */
    RCC_LSICmd(ENABLE);
    /* Wait till LSE is ready */
    while (RCC_GetFlagStatus(RCC_FLAG_LSIRDY) == RESET);
	/* Select the RTC Clock Source */
    RCC_RTCCLKConfig(RCC_RTCCLKSource_LSI)<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值