STM32F030使用RTC周期性唤醒STOP模式

首先,F030与F072的RTC唤醒功能是不一样的,在相关定义文件stm32f0xx_exti.h中有如下定义:

#define EXTI_Line17      ((uint32_t)0x00020000)  /*!< Internal interrupt line 17 
                                                      Connected to the RTC Alarm 
                                                      event */

#define EXTI_Line20      ((uint32_t)0x00100000)   /*!< Internal interrupt line 20
                                                      Connected to the RTC wakeup
                                                      event, only applicable for 
                                                      STM32F072 devices  */

也就是最好用最正宗的RTC唤醒功能(EXTI_Line20)只能用在F072上,不能用于F030,所以只能使用RTC Alarm( EXTI_Line17) 方式来唤醒RTC。

RTC设置流程如下:

1.初始设置RTC的秒时钟:

    RTC_InitStructure.RTC_AsynchPrediv
    RTC_InitStructure.RTC_SynchPrediv 

计算方法:LSI=40000HZ;

  LSI/(RTC_AsynchPrediv+1)/(RTC_SynchPrediv +1) =1

2.开启RTC中断及NVIC

    /* EXTI configuration */
    EXTI_ClearITPendingBit(EXTI_Line17);
    EXTI_InitStructure.EXTI_Line = EXTI_Line17;
    EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
    EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
    EXTI_InitStructure.EXTI_LineCmd = ENABLE;

    NVIC_InitStruct.NVIC_IRQChannel = RTC_IRQn;
    NVIC_InitStruct.NVIC_IRQChannelPriority = 1;
    NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;


3.每次进入休眠之前,都要设置闹钟RTC Alarm

    RTC_AlarmStructure.RTC_AlarmTime.RTC_H12     = RTC_H12_AM;
    RTC_AlarmStructure.RTC_AlarmTime.RTC_Hours   = 0x01;
    RTC_AlarmStructure.RTC_AlarmTime.RTC_Minutes = 0x00;
    RTC_AlarmStructure.RTC_AlarmTime.RTC_Seconds = nDelayCNT;//0x05;
    RTC_AlarmStructure.RTC_AlarmDateWeekDay = 0x31;

其中nDelayCNT就是需要达到的唤醒时间长度,单位是秒(s).

至此,就算是把RTC唤醒搞定了 ,当然还有包括其他比如时钟RCC的设置,暂时以官方例程为准。
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值