野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 15110|回复: 5

STM32L151RC standby模式闹钟唤醒不成功

[复制链接]
发表于 2015-6-17 16:13:10 | 显示全部楼层 |阅读模式
STM32L151RC standby模式闹钟唤醒不成功,不知道什么原因了,

void Rtc_Init(void)
{
        RTC_InitTypeDef RTC_InitStructure;
  // Enable the PWR clock //
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);
  // Allow access to RTC //
  PWR_RTCAccessCmd(ENABLE);
       
  // Reset RTC Domain //
  RCC_RTCResetCmd(ENABLE);
  RCC_RTCResetCmd(DISABLE);

  RCC_LSEConfig(RCC_LSE_ON);
  while(RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET){}       
  // Select the RTC Clock Source //
  RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);
               
        RTC_InitStructure.RTC_AsynchPrediv = 0x7F;
        RTC_InitStructure.RTC_SynchPrediv = 0x7FFF;
        RTC_InitStructure.RTC_HourFormat = RTC_HourFormat_24;
        RTC_Init(&RTC_InitStructure);               
  // Enable the RTC Clock //
  RCC_RTCCLKCmd(ENABLE);
  // Wait for RTC APB registers synchronisation //
  RTC_WaitForSynchro();
       
        RtcAlarm_Init();
}

void RtcAlarm_Init(void)
{
  EXTI_InitTypeDef EXTI_InitStructure;
  NVIC_InitTypeDef NVIC_InitStructure;

  /* 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;
  EXTI_Init(&EXTI_InitStructure);

  /* Enable the RTC Alarm Interrupt */
  NVIC_InitStructure.NVIC_IRQChannel = RTC_Alarm_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);

  RTC_ITConfig(RTC_IT_ALRA, DISABLE);
  RTC_AlarmCmd(RTC_Alarm_A, DISABLE);

}

//闹钟测试函数
void SetnStartAlarmTest(uint16_t sec)
{
        RTC_TimeTypeDef RTC_TimeStructure;
        RTC_AlarmTypeDef  RTC_AlarmStructure;
       
        RTC_AlarmCmd(RTC_Alarm_A, DISABLE); //禁用Alarm
        PWR_RTCAccessCmd(ENABLE);//启用访问RTC备份寄存器
       
        RTC_GetTime(RTC_Format_BIN, &RTC_TimeStructure);

        RTC_AlarmStructure.RTC_AlarmTime.RTC_Hours = RTC_TimeStructure.RTC_Hours;
  RTC_AlarmStructure.RTC_AlarmTime.RTC_Minutes = RTC_TimeStructure.RTC_Minutes;
  RTC_AlarmStructure.RTC_AlarmTime.RTC_Seconds = RTC_TimeStructure.RTC_Seconds+sec;
  RTC_AlarmStructure.RTC_AlarmDateWeekDay = 0x31;
  RTC_AlarmStructure.RTC_AlarmDateWeekDaySel = RTC_AlarmDateWeekDaySel_Date;
  RTC_AlarmStructure.RTC_AlarmMask = RTC_AlarmMask_DateWeekDay;
  RTC_SetAlarm(RTC_Format_BIN, RTC_Alarm_A, &RTC_AlarmStructure);
       
        RTC_ITConfig(RTC_IT_ALRA, ENABLE);
        RTC_AlarmCmd(RTC_Alarm_A, ENABLE);
}




主函数 这样调用的
int main(void)
{
        RTC_TimeTypeDef RTC_TimeStruct;
        RccHSI_Init();
//        HardwareInit();
        SysTick_Init();//systick
        Rtc_Init();//rtc
        RtcAlarm_Init();//alarm       
        StateLed_Init();//led

        RTC_TimeStruct.RTC_Hours=0;
        RTC_TimeStruct.RTC_Minutes=0;
        RTC_TimeStruct.RTC_Seconds=0;
        RTC_SetTime(RTC_Format_BIN,&RTC_TimeStruct);
       
        STATELEDON();
        SystickDelay(100);
        STATELEDOFF();
        SystickDelay(100);
        RTC_GetTime(RTC_Format_BIN,&RTC_TimeStruct);
       
       
        SetnStartAlarmTest(10);
  while (1)
  {
               
  }
}

搞了 一整天了 ,没有一点眉目,,求助来了
回复

使用道具 举报

 楼主| 发表于 2015-6-17 16:15:26 | 显示全部楼层
奥,while(1)  前面还有一句 进入standby
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-17 16:16:50 | 显示全部楼层
RTC_Enter_StandbyMode();


目的是 灯闪烁之后 进入standby  然后 用闹钟唤醒,唤醒之后 能看到灯又闪烁      现在的现象是  进入standby之后 就不能再起来了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-17 16:19:02 | 显示全部楼层
啊  起来了  起来了     找到问题了,代码 没问题的   卧槽,坑爹啊
回复 支持 反对

使用道具 举报

发表于 2015-6-17 16:21:30 | 显示全部楼层
是什么问题?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-17 16:49:05 | 显示全部楼层

初始化代码是没问题的,写了个测试函数,结果调用的正常函数,正常函数是4个小时才唤醒。测试函数是10s唤醒。所以一直以为是配置问题。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-23 06:34 , Processed in 0.078237 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表