STM32L151内部RTC时钟

23 篇文章 3 订阅
STM32L151内部RTC时钟

STM32L151系列CPU内置低功耗RTC日历。RTC时钟源可以是LSE、LSI、HSE。为了降低功耗,预分频器被分成两个预分频器。一个7为的异步预分频器,一个13位同步预分频器。
Fclk=32768/[(PREDIV_S+1)*(PREDIV_A+1)]


void RTC_Config(void)


 {


RTC_InitTypeDef RTC_InitStruct;


RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);


PWR_RTCAccessCmd(ENABLE);


#if defined RTC_CLOCK_SOURCE_LSI


RTC_LSICmd(ENABLE);


 while(RCC_GetFlagStatus(RCC_FLAG_LSIRDY) == RESET);


RCC_RTCCLKConfig(RCC_RTCCLKSource_LSI);


#elif defined RTC_CLOCK_SOURCE_LSE


RTC_LSEConfig(RCC_LSE_ON);


while(RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET);


RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);


 #else #error Please select the RTC Clock Source inside the main.c file


#endif


RCC_RTCCLKCmd(ENABLE);


RTC_WaitForSynchro();


 RTC_InitStruct.RTC_HourFormat = RTC_HourFormat_24;


RTC_InitStruct.RTC_AsynchPrediv = 0x7F;


RTC_InitStruct.RTC_SynchPrediv = 0xFF;


 RTC_Init(&RTC_InitStruct);


}


void RTC_TimeRegulate(void)


 {


RTC_TimeTypeDef RTC_TimeStruct;


RTC_DateTypeDef RTC_DateStruct;


RTC_TimeStruct.RTC_Hours = 23;


RTC_TimeStruct.RTC_Minutes = 59;


RTC_TimeStruct.RTC_Seconds = 59;


RTC_TimeStruct.RTC_H12 = RTC_H12_AM;


RTC_SetTime(RTC_Format_BIN,&RTC_TImeStruct);


RTC_DateStruct.RTC_Year = 12;


RTC_DateStruct.RTC_Date = 31;


RTC_DateStruct.RTC_Month = 12;


RTC_DateStruct.RTC_WeekDay = 1;


RTC_SetDate(RTC_Format_BIN,&RTC_DateStruct);


}


void RTC_TimeShow(unsigned char *pDate)


{


RTC_TimeTypeDef RTC_TimeStruct;


RTC_DateTypeDef RTC_DateStruct;


RTC_GetTime(RTC_Format_BIN,&RTC_TImeStruct);


RTC_GetDate(RTC_Format_BIN,&RTC_DateStruct);


pDate[0] = RTC_TimeStruct.RTC_Hours;


pDate[1] = RTC_TimeStruct.RTC_Minutes;


pDate[2] = RTC_TimeStruct.RTC_Seconds ;


pDate[3] = RTC_DateStruct.RTC_Year;


pDate[4] = RTC_DateStruct.RTC_Date;


pDate[5] = RTC_DateStruct.RTC_Month ;


pDate[6] = RTC_DateStruct.RTC_WeekDay ;


}
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值