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的更多相关文章

  1. stm32——RTC实时时钟

    stm32——RTC实时时钟 一.关于时间 2038年问题 在计算机应用上,2038年问题可能会导致某些软件在2038年无法正常工作.所有使用UNIX时间表示时间的程序都将将受其影响,因为它们以自19 ...

  2. 关于STM32 RTC的使用

    直接上代码,很爽. 1.RTC的首次初始化问题 使能时钟:RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE) ...

  3. STM32的备份寄存器和控制状态寄存器

    STM32的备份寄存器和控制状态寄存器 1 备份寄存器用于RTC时钟 RTC时钟可以在掉电以后继续计数,保证时间的延续,但是重新上电以后需要配置,保证之前的计数不会被清除,可以借助备份寄存器实现,备份 ...

随机推荐

  1. 【2020.11.30提高组模拟】删边(delete)

    删边(delete) 题目 题目描述 给你一棵n个结点的树,每个结点有一个权值,删除一条边的费用为该边连接的两个子树中结点权值最大值之和.现要删除树中的所有边,删除边的顺序可以任意设定,请计算出所有方 ...

  2. 使用Docker快速部署各类服务

    使用Docker快速部署各类服务 一键安装Docker #Centos环境 wget -O- https://gitee.com/iubest/dinstall/raw/master/install. ...

  3. day3(django配置跨域)

    1.跨越原理 1. 首先浏览器安全策略限制js ajax跨域访问服务器 2. 如果服务器返回的头部信息中有当前域: // 允许 http://localhost:8080 这个网站打开的页面中的js访 ...

  4. 第11.6节 Python正则表达式的字符串开头匹配模式及元字符“^”(插入符、脱字符)功能介绍

    符号"^"为插入符,也称为脱字符,在Python中脱字符表示匹配字符串的开头,即字符串的开头满足匹配模式的要求.这个功能有点类似搜索函数match,只是这是通过搜索模式来指定,而m ...

  5. PyQt(Python+Qt)学习随笔:QAbstractItemView的SelectionBehavior属性

    老猿Python博文目录 老猿Python博客地址 一.概述 SelectionBehavior属性用于控制选择行为操作的数据单位,是指选择时选中数据是按行.按列还是按项来选择.SelectionBe ...

  6. zookeeper未授权访问渗透测试及修复方法

    zookeeper未授权访问危害 服务器信息泄露.集群被破坏 一. 四字命令未授权使用 1.1 测试 工具:netcat ,Linux或Windows都可以测 命令行输入echo envi | nc ...

  7. Springcloud之gateway配置及swagger集成

    前言 关于引入gateway的好处我网上找了下: 性能:API高可用,负载均衡,容错机制. 安全:权限身份认证.脱敏,流量清洗,后端签名(保证全链路可信调用),黑名单(非法调用的限制). 日志:日志记 ...

  8. v-clickoutsides

    //点击目标元素外侧触发特定事件 使用 v-clickoutsides="clickHandler" import Vue from 'vue' Vue.directive('cl ...

  9. PHash从0到1

    背景 在重复图识别领域,对于识别肉眼相同图片,PHash是很有用的,而且算法复杂度很低.它抓住了 " 人眼对于细节信息不是很敏感 " 的特性,利用DCT变换把高频信息去掉,再加上合 ...

  10. C++ 有关指针作为函数参数的问题,自定义内存分配函数传递二级指针的问题

    如题所示,我们主要讨论在自定义的内存分配函数中通常见到的代码如下所示: void Create(A** addr); 其中传递的参数是二级指针.为什么? 我们先看一下完整的动态内存分配函数的简单例子: ...