taozefeng1 发表于 2018-8-15 18:40:26

RTC闹钟低功耗唤醒

想做个闹钟低功耗唤醒的,可以闹钟的配置有问题,始终无法进入闹钟的中断,求各位大神看看,配置上哪里有问题了。接下来贴代码
void Calendar_Init(void)
{
//选择LSE(32.768KHz)作为时钟源
//CLK_RTCClockConfig(CLK_RTCCLKSource_LSE, CLK_RTCCLKDiv_1);   

RTC_DeInit(); //初始化默认状态

//选择LSI(38KHz)作为时钟源
CLK_RTCClockConfig(CLK_RTCCLKSource_LSI, CLK_RTCCLKDiv_1);   

//打开RTC 时钟
CLK_PeripheralClockConfig(CLK_Peripheral_RTC, ENABLE);
/* RTC 时钟源:LSE,计时时间:32768/128/256 = 1S */
RTC_InitStr.RTC_HourFormat = RTC_HourFormat_24;//24 小时制
//RTC_InitStr.RTC_AsynchPrediv = 0x7F; //异步分频器128 分频
//RTC_InitStr.RTC_SynchPrediv = 0x00FF; //同步分频器256 分频

/* RTC 时钟源:LSI,计时时间:38000/38/1000 = 1S */
RTC_InitStr.RTC_AsynchPrediv = 0x25;   //异步分频器38 分频
RTC_InitStr.RTC_SynchPrediv = 0x03E7;    //同步分频器1000 分频

RTC_Init(&RTC_InitStr); //初始化RTC 参数
/* 初始化RTC_DateStr 结构体,设置日期数据*/
RTC_DateStructInit(&RTC_DateStr); //初始化RTC_DateStr 结构体   
RTC_DateStr.RTC_WeekDay = RTC_Weekday_Thursday;//星期四
RTC_DateStr.RTC_Date = 03; //3 日
RTC_DateStr.RTC_Month = RTC_Month_January; //1 月
RTC_DateStr.RTC_Year = 18; //2018 年
RTC_SetDate(RTC_Format_BIN, &RTC_DateStr); //设置日期数据
/* 初始化RTC_TimeStr 结构体,设置时间数据*/
RTC_TimeStructInit(&RTC_TimeStr);//初始化RTC_TimeStr 结构体
RTC_TimeStr.RTC_Hours = 23; //23H
RTC_TimeStr.RTC_Minutes = 55; //55 分      
RTC_TimeStr.RTC_Seconds = 00; //0 秒
RTC_SetTime(RTC_Format_BIN, &RTC_TimeStr); //设置时间数据
RTC_AlarmStructInit(&RTC_AlarmStr);   
RTC_AlarmStr.RTC_AlarmTime.RTC_Hours = 23;
RTC_AlarmStr.RTC_AlarmTime.RTC_Minutes = 55;      
RTC_AlarmStr.RTC_AlarmTime.RTC_Seconds = 30;
RTC_AlarmStr.RTC_AlarmMask = RTC_AlarmMask_Hours | RTC_AlarmMask_Minutes | RTC_AlarmMask_Seconds;
RTC_SetAlarm(RTC_Format_BIN,&RTC_AlarmStr);

RTC_GetAlarm(RTC_Format_BIN,&RTC_AlarmStr);
RTC_AlarmSubSecondConfig(100,RTC_AlarmSubSecondMask_None);

RTC_AlarmCmd(ENABLE);   
RTC_ITConfig(RTC_IT_ALRA,ENABLE);
}


中断部分代码
if(RTC_GetITStatus(RTC_IT_ALRA) != RESET)
    {
      RTC_ClearITPendingBit(RTC_IT_ALRA);
    }
    else if(RTC_GetITStatus(RTC_IT_WUT) != RESET)
    {
      RTC_WakeUpCmd(DISABLE);
      RTC_ClearITPendingBit(RTC_IT_WUT);
    }
    RTC_ClearITPendingBit(RTC_IT_ALRA);



求指导,

taozefeng1 发表于 2018-8-15 19:33:41

没人做过这个东东么?

taozefeng1 发表于 2018-8-15 19:34:09

taozefeng1 发表于 2018-8-15 19:33
没人做过这个东东么?

一直看英文文档, 看的感觉要疯了,关键是看了,还不明白表达的什么意思。。

taozefeng1 发表于 2018-8-15 20:12:17

已解决。

jiekechoo 发表于 2018-8-27 01:37:48

taozefeng1 发表于 2018-8-15 20:12
已解决。

怎么解决?

robter 发表于 2018-10-14 20:17:33

很好的资料,学习了

纯牛奶yq 发表于 2019-4-11 15:02:16

楼主闹钟中断可以唤醒halt模式吗?我用wakeup中断可以唤醒,闹钟唤醒是怎么实现的
页: [1]
查看完整版本: RTC闹钟低功耗唤醒