|
本帖最后由 jeasey 于 2016-7-28 20:50 编辑
最近使用STM32F407的RTC,配置如下:
void bsp_InitRTC(void)
{
RTC_InitTypeDef RTC_InitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);
PWR_BackupAccessCmd(ENABLE);//ÔÊÐí·ÃÎÊRTC
#if defined (RTC_CLOCK_SOURCE_LSI)
RCC_LSICmd(ENABLE);
while(RCC_GetFlagStatus(RCC_FLAG_LSIRDY) == RESET);
RCC_RTCCLKConfig(RCC_RTCCLKSource_LSI);
RCC_RTCCLKCmd(ENABLE);
RTC_WaitForSynchro();
#endif
#if defined (RTC_CLOCK_SOURCE_LSE)
RCC_LSEConfig(RCC_LSE_ON);
while(RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET);
RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);
RCC_RTCCLKCmd(ENABLE);
RTC_WaitForSynchro();
RTC_InitStructure.RTC_AsynchPrediv = 0x7F;
RTC_InitStructure.RTC_SynchPrediv = 0xFF;
RTC_InitStructure.RTC_HourFormat = RTC_HourFormat_24;
RTC_Init(&RTC_InitStructure);
#endif
if(RTC_ReadBackupRegister(RTC_BKP_DR0) != 0x32F2)
{
RTC_WriteProtectionCmd(DISABLE);
RTC_EnterInitMode();
RTC_TimeStructure.RTC_Seconds = 0;
RTC_TimeStructure.RTC_Minutes = 0;
RTC_TimeStructure.RTC_Hours = 0;
RTC_TimeStructure.RTC_H12 = RTC_H12_AM;
RTC_SetTime(RTC_Format_BIN,&RTC_TimeStructure);
RTC_DateStructure.RTC_Date = 1;
RTC_DateStructure.RTC_Month = 1;
RTC_DateStructure.RTC_WeekDay= RTC_Weekday_Thursday;
RTC_DateStructure.RTC_Year = 10;
RTC_SetDate(RTC_Format_BIN,&RTC_DateStructure);
RTC_ExitInitMode();
RTC_WriteBackupRegister(RTC_BKP_DR0,0x32F2);
RTC_WriteProtectionCmd(ENABLE);
RTC_WriteBackupRegister(RTC_BKP_DR0,0x32F2);
}
PWR_BackupAccessCmd(DISABLE);
}
每秒输出一下时钟:
void RTC_DateTimeShow(void)
{
RTC_GetDate(RTC_Format_BIN, &RTC_DateStructure);
printf("20%0.2d-%0.2d-%0.2d ", RTC_DateStructure.RTC_Year,
RTC_DateStructure.RTC_Month,
RTC_DateStructure.RTC_Date,
RTC_DateStructure.RTC_WeekDay);
RTC_GetTime(RTC_Format_BIN, &RTC_TimeStructure);
printf("%0.2d:%0.2d:%0.2d\r\n", RTC_TimeStructure.RTC_Hours,
RTC_TimeStructure.RTC_Minutes,
RTC_TimeStructure.RTC_Seconds);
}
输出的时间在夸天时怎么是这样呢???
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!
|