想做个闹钟低功耗唤醒的,可以闹钟的配置有问题,始终无法进入闹钟的中断,求各位大神看看,配置上哪里有问题了。接下来贴代码 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); 求指导, |
一直看英文文档, 看的感觉要疯了,关键是看了,还不明白表达的什么意思。。
点评
怎么解决?