简单说明:

/*****************************************************************************************************

1、RTC模块和时钟配置系统(RCC_BDCR寄存器)处于后备区域中。其断电时靠备份电源供电可继续维持其功能。所以RTC的使用同时涉及到BKP(备份寄存器)和PWR(电源控制),还需对它们进行配置。

2、由于RTC之前可能已配置(不是第一次使用),它断电时若有备份电源时,其仍在工作,若如此,我们上电后的程序就要考虑是否还要重新配置,若重新配置,之前的就会“灰飞烟灭”;所以,当我们是第一次使用或没有备份时,我们就配置RTC,若之前已配置,我们就不调用,直接使用。在本例中写一个值到BKP_DR1中以标示RTC是否已配置,在启动之后程序检查BKP_DR1的值。(1)若BKP_DR1的值不正确:(BKP_DR1的值有误或者由于是第一次运行值还未写进去),则需要配置RTC(2) 若BKP_DR1的值正确,则意味着RTC已配置.

******************************************************************************************************************/

1.首先,需要用到BKP和PWR,则当然要使能其时钟咯。
因为RTC的一些设置是保存在后备域中的,so,操作RTC的设置寄存器前,要打开后备域模块中的写保护功能。调用函数PWR_BackupAccessCmd(ENABLE);

2.接着,我们使用LSE作为RTC的时钟,则需要进行相应时钟的配置;配置完后就可以开启RTC时钟;开启后,还需等待APB1时钟与RTC时钟同步(调用RTC_WaitForSynchro())才能读写RTC寄存器;

3.我们对RTC进行写入操作之前,都要检查命令有没有完成,调用RTC_WaitForLastTas()即可;我们要对寄存器写入哪些值呢?分频数、操作中断等。

4.因为我们要在BKP中加入RTC校验功能,所以还需调用函数BKP_TamperPinCmd(DISABLE)失能侵入检测功能。RTC时钟经64分频输出到侵入检测引脚TAMPER上,可调用BKP_RTCOutputConfig(BKP_RTCOutputSource_CalibClock)来实现;

5.当然,要用到中断、串口,肯定要进行相应配置的。

6.中断函数在stm32f10x_it.c文件中编写,注意每一种中断都有其指定的中断服务函数名称,如果自己胡乱该名称,编译器是不能识别是该类中断的。

7.注意:不管我们是否需要重新配置RTC,每次系统复位都需要执行如下操作:打开PWR和BKP外设时钟、打开后备区域的写保护功能(系统复位后,对后备寄存器和RTC的访问被禁止)、使能RTC时钟();具体函数如下:RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR
| RCC_APB1Periph_BKP, ENABLE);
PWR_BackupAccessCmd(ENABLE);
RCC_RTCCLKCmd(ENABLE);(若不调用该函数,就会在 RTC_WaitForSynchro()
函数中死循环,等待RTC时钟同步)。

(七)STM32的RTC简单操作的更多相关文章

  1. Python初学者第七天 字符串及简单操作

    7day 数据类型:字符串 1.定义 字符串是一个有序的字符的集合,用于储存和表示基本的文本信息.单.双.三引号之间的内容称之为字符串: a = ‘hello world!’ b = "你好 ...

  2. x01.MagicCube: 简单操作

    看最强大脑,发现魔方还是比较好玩的,便买了一个,对照七步还原法,居然也能成功还原. 为什么不写一个魔方程序呢?在网上找了找,略作修改,进行简单操作,还是不错的,其操作代码如下: protected o ...

  3. MySQL基本概念以及简单操作

    一.MySQL   MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MyS ...

  4. 进击的Python【第十二章】:mysql介绍与简单操作,sqlachemy介绍与简单应用

    进击的Python[第十二章]:mysql介绍与简单操作,sqlachemy介绍与简单应用 一.数据库介绍 什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,每个数 ...

  5. mysql、MariaDB的简单操作

    mysql的简单操作 一.查看数据库 SHOW DATABASES; 例如: MariaDB [(none)]> show databases; +--------------------+ | ...

  6. 关于在Arduino下STM32编程——RTC函数解析

    注意:相关RTC基础知识这里不提! 该库头文件引用: #include <RTClock.h>   该库所在Arduino位置: 初始化RTC相关时钟 Arduino版的库里初始化配置PW ...

  7. 四、C#简单操作MinIO

    MinIO的官方网站非常详细,以下只是本人学习过程的整理 一.MinIO的基本概念 二.Windows安装与简单使用MinIO 三.Linux部署MinIO分布式集群 四.C#简单操作MinIO He ...

  8. js简单操作Cookie

    贴一段js简单操作Cookie的代码: //获取指定名称的cookie的值 function getCookie(objName) { var arrStr = document.cookie.spl ...

  9. GitHub学习心得之 简单操作

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 前言 本文对Github的基本操作进行了总结, 主要基于以下文章: http://gitre ...

随机推荐

  1. Erlang第二课 ---- bit串

    Erlang是被设计来用在电信设备中的,这意味着需要处理大量的二进制数据.也正因为如此,Erlang把binary和binary string提升到了一个相当高的位置,提供了极为丰富的操作机制.当然, ...

  2. Mysql 学习-索引的设计原则

    索引的设计不合理或者缺少索引都会对数据库和应用程序的性能造成障碍.高效的索引对获的良好性能非常重要.设计索引是,应该考虑一下准则: (1)索引并非语讹夺越好,若一个表中有大量索引,不仅占用磁盘空间,而 ...

  3. Matalab IFS分形算法

    IFS 算法代码 function IFS_draw(M,p) N=; :length(p); eval(['a',num2str(k),'=reshape(M(',num2str(k),',:),2 ...

  4. 二、Ubuntu14.04下安装Hadoop2.4.0 (伪分布模式)

    在Ubuntu14.04下安装Hadoop2.4.0 (单机模式)基础上配置 一.配置core-site.xml /usr/local/hadoop/etc/hadoop/core-site.xml ...

  5. pthread 学习系列 case1-- 共享进程数据 VS 进程

    #include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <pthread.h& ...

  6. C#设计模式-1、适配器模式(Adapter Pattern)(转载)

    概述 在软件系统中,由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用,但是新环境要求的接口是这些现存对象所不满足的.那么如何应对这种“迁移的变化”?如何既能利用现有对象的良好实现,同 ...

  7. U盘10分钟安装linux系统

    说来可能不信,10分钟包括创建U盘启动盘,用U盘启动,安装,不联网,不更新,不安装语言包,等装好系统再更新. Windows系统硬盘分区 如果你用的是Windows系统,现有的硬盘没有未分配的空间,需 ...

  8. BI就是报表?

    实际上,报表只是BI的一部分,虽然BI应用的结果通常需要通过报表来展示,但是,BI绝对不仅仅是报表.其实,大家对这些概念的理解,如同15年前的ERP一样.1998年,国内两大巨头金蝶与用友都开始宣称从 ...

  9. PHP访问,增删改查,小结

    PHP访问数据,增,删,改,查 增: 1,add.php 显示页面,利用 <form> 表单添加数据,数据添加到 name 中. 2,addchuli.php 处理页面,定义变量接受 $_ ...

  10. HDU 1018 Big Number (数学题)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1018 解题报告:输入一个n,求n!有多少位. 首先任意一个数 x 的位数 = (int)log10(x ...