RTC时钟操作

RTC(Real Time Clock):实时时钟
1、RTC是个独立的BCD定时计数器,提供一个日历时钟,两个可编程闹钟中断,以及一个具有中断功能的周期性可编程唤醒标志。RTC还包含用于管理低功耗模式的自动唤醒单元。
2、两个32位寄存器包含二进制码十进制格式(BCD)的秒,分钟,小时(12/24小时制),星期几,日期,月份和年份,此外还可以提供二进制的亚秒值。
3、系统还可以自动将月份的天数补偿为28、29(闰年),30,31天。并且还可以进行夏令时补偿


BCD码:亦称二进制十进数。用4位二进制数来表示1位十进制数中的0~9这10个数码。  

操作相关的库函数:
 
1、RTC时钟源和时钟操作函数;
     void RCC_RTCCLKConfig(uint32_t CLKSource);//时钟源选择;
     void RCC_RTCCLKCmd(FunctionalState NewState);//时钟使能;
2、RTC初始化函数
     ErrorStatus RTC_Init(RTC_InitTypeDef* RTC_InitStruct);
     trypedef struct
    {    
    uint32_t RTC_HourFormat;//小时格式:24/12
                uint32_t RTC_AsynchPrediv;//异步分频系数
    uint32_t RTC_SynchPrediv;//同步分频系数;
    }RTC_InitTypeDef;
3、日历配置相关函数
     ErrorStatus RTC_SetTime(uint32_t RTC_Format,RTC_TimeTypeDef* RTC_TimeStruct);
     void RTC_GetTime(uint32_t RTC_Format,RTC_TimeTypeDef* RTC_TimeStruct);
     ErrorStatus RTC_SetDate(uint32_t RTC_Format,RTC_Dae TypeDef* RTC_DataStruct);
     void RTC_GetDate(uint32_t RTC_Format,RTC_Date TypeDef* RTC_DateStruct);
     uint32_t RTC_GetSubSecond(void);
4、RTC闹钟相关函数
     ErrorStatus RTC_AlarmCmd(uint32_t RTC_Alarm,FunctionalState NewState);
     void RTC_SetAlarm();
     void RTC_GetAlarm();
     void RTC_AlarmSubSecondConfig();
     uint32_t RTC_GetAlarmSubSecond(uint32_t RTC_Alarm);
5、RTC周期唤醒相关函数:
     void RTC_WakeUpClockConfig();
     void RTC_SetWakeUpCounter();
     uint32_t RTC_GetWakeUpCounter(void);
     RTC_WakeUpCmd(DISABLE);//关闭WAKEUP
6、RTC中断配置以及状态相关函数
    void RTC_ITConfig();
    FlagStatus RTC_GetFlgStatus(uint32_t RTC_FLAG);
    void RTC_ClearFlag(uint32_t RTC_FLAG);
    ITStatus RTC_GetITStatus(uint32_t RTC_IT);
    void RTC_ClearITPendingBit(); 
7、RTC相关约束函数
     void RTC_WriteProtectionCmd();//取消写保护
     ErrorStatus RTC_EnterInitNode();//进入配hi模式,RTC_ISR_INITF位设置位1
     void RTC_ExitInitMode(void);//退出初始化模式
8、其他函数
     uint32_t RTC_ReadBackupRegister();
     void RTC_WriteBackupRegister();
     void RTC_ITConfig();

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值