RTC_Configuration
Void RTC_Configuration(void)//
实时时钟的初始化配置
{
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR
|
RCC_APB1Periph_BKP,ENABLE);
//
使能
APB1
外设
PWR
(电源控制寄存器)
BKP
(备份寄存器)时钟。
PWR_BackupAccessCmd(ENABLE);
//
允许访问
BKP
域
BKP_DeInit();
//
复位备份域。
#ifdef
RTCClockSource_LSI
RCC_LSICmd(ENABLE);
//
使能内部低速晶振。
While(RCC_GetFlagStatus(RCC_Flag_LSIRDY)==RESET)//
等待
LSI
准备好
{
}
RCC_RTCCLKConfig(RCC_RTCCLKSource_LSI);//
选择
LSI
为
RTC
时钟
#elif
define
RTCClockSource_LSI
RCC_LSEConfig(RCC_LSE_ON);
//LSE
晶振
ON
While(RCC_GetFlagStatus(RCC_Flag_LSERAY)==RESET)//
等待
LSE
准备好
{
}
RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);//
选择
LSE
为
RTC
时钟
#endif
RCC_RTCCLKCmd(ENABLE);
//
使能
RTC
时钟
#ifdef
RTC_ClockOutput_ENABLE
//
禁止
Tamper
引脚
BKP_TamperPinCmd(DISABLE);//
为了将
RTCCLK/64
在
Tamper
引脚上输出,
Tamper
功能必
须被禁止
BKP_RTCCalibrationClockOutputCmd(ENABLE);//
允许
RTC
时钟在
Tamper
上输出
#endif
RTC_WaitForSynchro();//
等待寄存器同步
RTC_WaitForLastTask();//
等待上次寄存器写操作完成
RTC_ITConfig(RTC_IT_SEC,ENABLE);//
允许
RTC
秒中断
RTC_WaitForLastTask();//
等待上次寄存器写操作完成
#ifdef RTC_ClockSource_LSI//
设置分频系数
RTC_SetPrescalor(31999);//RTC
周期
=RTCCLK/RTC_PR=(32.000KHz/(31999+1))
#elif define RTC_ClockSource_LSE
RTC_SetPrescaler(32767);// RTC
周期
=RTCCLK/RTC_PR=(32.768KHz/(32767+1))
#endif
RTC_WaitForLastTask();//
等待最近一次对
RTC
寄存器的写操作的完成。
}
RTC_Configuration的更多相关文章
- stm32——RTC实时时钟
stm32——RTC实时时钟 一.关于时间 2038年问题 在计算机应用上,2038年问题可能会导致某些软件在2038年无法正常工作.所有使用UNIX时间表示时间的程序都将将受其影响,因为它们以自19 ...
- 关于STM32 RTC的使用
直接上代码,很爽. 1.RTC的首次初始化问题 使能时钟:RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE) ...
- STM32的备份寄存器和控制状态寄存器
STM32的备份寄存器和控制状态寄存器 1 备份寄存器用于RTC时钟 RTC时钟可以在掉电以后继续计数,保证时间的延续,但是重新上电以后需要配置,保证之前的计数不会被清除,可以借助备份寄存器实现,备份 ...
随机推荐
- Mac MySQL 8.0 (免安装版) 主从集群搭建
一.下载解压包 打开 MySQL 官网地址:https://dev.mysql.com/downloads/mysql/ ,选择面安装版本. 二.解压文件 下载到合适文件夹,解压压缩包. 解压 mys ...
- Spring Cloud 学习 (五) Zuul
Zuul 作为路由网关组件,在微服务架构中有着非常重要的作用,主要体现在以下 6 个方面: Zuul, Ribbon 以及 Eureka 相结合,可以实现智能路由和负载均衡的功能,Zuul 能够将请求 ...
- 赶紧收藏吧!MyBatis-Plus万字长文图解笔记,错过了这个村可就没这个店了
简介 MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发.提高效率而生 愿景 我们的愿景是成为 MyBatis 最好的搭档 ...
- Promise自定义,看我如何征服你
自定义代码 这里是我自定义的Promise,如果想看原版,可以跳过最后有符合PromiseA+规范的源码 class 承诺 { constructor(处理器函数) { //1. 处理器函数是在_ne ...
- java并发编程实战《五》死锁
一不小心就死锁了,怎么办? 在上一篇文章中,我们用 Account.class 作为互斥锁,来解决银行业务里面的转账问题,虽然这个方案不存在并发问题,但是所有账户的转账操作都是串行的,性能太差. 向现 ...
- 第11.23节 Python 中re模块的搜索替换功能:sub及subn函数
一. 引言 在<第11.3节 Python正则表达式搜索支持函数search.match.fullmatch.findall.finditer>重点介绍了几个搜索函数,除了搜索,re模块也 ...
- Hive基本原理及配置Mysql作为Hive的默认数据库
Hive是什么? Hive是基于Hadoop之上的数据仓库: Hive是一种可以存储.查询.分析存储在hadoop中的大规模数据 Hive定义了简单的类SQL查询语言,成为HQL,它允许熟悉SQL的用 ...
- FM解析(因子分解机,2010)
推荐参考:(知乎) https://zhuanlan.zhihu.com/p/37963267 要点理解: 1.fm应用场景,为什么提出了fm(和lr的不同点) ctr预测,特征组合,fm的隐向量分解 ...
- Oracle批量新增数据最佳实践
一.需求描述 现在的项目改造过程中,从国产的Gbase数据库改造为Oracle数据库,遇到一个问题有的业务操作需要批量新增数据. 这也是一个比较常规的操作,有很多地方确实需要一次性新增多条数据.Gba ...
- 百度前端技术学院-基础-day17-18
JavaScript小练习 task 1 基于上一个任务中,关于加减乘除的任务,加上对于特殊情况的判断,比如判断两个输入框是否都是正常输入了数字类型的内容,比如除法的时候除数是否为0,当判断到输入有异 ...