guanjiao
2018-10-07 dca9d1109b42085df12402d6b54006a23a9aaa75
源码/核心板/Src/OnChipDevices/RTC.c
@@ -1,15 +1,20 @@
#include "RTC.h"
void RTC_SET_ALARM(u32 sec)
{
//DEBUG_COM_STREAM("-??-",NULL);
RTC_SetAlarm(RTC_GetCounter()+sec);
//DEBUG_COM_STREAM("-??1-",NULL);
RTC_WaitForLastTask();
//DEBUG_COM_STREAM("-??2-",NULL);
RTC_ITConfig(RTC_FLAG_ALR,ENABLE);
   //DEBUG_COM_STREAM("-??-",NULL);
   RTC_SetAlarm(RTC_GetCounter()+sec);
   //DEBUG_COM_STREAM("-??1-",NULL);
   RTC_WaitForLastTask();
   //DEBUG_COM_STREAM("-??2-",NULL);
   RTC_ITConfig(RTC_FLAG_ALR,ENABLE);
}
void RTC_Configuration(void)
{
   EXTI_InitTypeDef EXTI_InitStructure;
   /* Enable PWR and BKP clocks */
   RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);
@@ -46,9 +51,18 @@
   RTC_ITConfig(RTC_IT_ALR,ENABLE); //?? RTC ???  
      RTC_WaitForLastTask();
   /* Set RTC prescaler: set RTC period to 1sec */
   RTC_SetPrescaler(40000); /* RTC period = RTCCLK/RTC_PR = (32.768 KHz)/(32767+1) */
   RTC_SetPrescaler(10000); /* RTC period = RTCCLK/RTC_PR = (32.768 KHz)/(32767+1) */
   /* Wait until last write operation on RTC registers has finished */
   RTC_WaitForLastTask();
   RTC_SET_ALARM(1);
}
   //RTC澶栭儴涓柇浣胯兘
   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);
}