[mw_shl_code=c,true]u8 RTC_Init(void)

{

//检查是不是第一次配置时钟

u8 temp=0;

RTC_NVIC_Config();

//if(BKP->DR1!=0X5050)//第一次配置

if (BKP_ReadBackupRegister(BKP_DR1) != 0x5050)//从指定的后备寄存器中读出数据:读出了与写入的指定数据不相等

{

/* Enable PWR and BKP clocks */

RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);//使能PWR和BKP外设时钟

/* Allow access to BKP Domain */

PWR_BackupAccessCmd(ENABLE);//使能RTC和后备寄存器访问

/* Reset Backup Domain */

BKP_DeInit();//将外设BKP的全部寄存器重设为缺省值

/* Enable LSE */

RCC_LSEConfig(RCC_LSE_ON);//设置外部低速晶振(LSE),使用外设低速晶振

/* Wait till LSE is ready */

while (RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET)//检查指定的RCC标志位设置与否,等待低速晶振就绪

{

temp++;

delay_ms(10);

}

if(temp>=250)return 1;//初始化时钟失败,晶振有问题

/* Select LSE as RTC Clock Source */

RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);//设置RTC时钟(RTCCLK),选择LSE作为RTC时钟

/* Enable RTC Clock */

RCC_RTCCLKCmd(ENABLE);//使能RTC时钟

/* Wait for RTC registers synchronization */

RTC_WaitForSynchro();//等待最近一次对RTC寄存器的写操作完成

/* Wait until last write operation on RTC registers has finished */

RTC_WaitForLastTask();//等待最近一次对RTC寄存器的写操作完成

/* Enable the RTC Second */

RTC_ITConfig(RTC_IT_SEC, ENABLE);//使能RTC秒中断

/* Wait until last write operation on RTC registers has finished */

RTC_WaitForLastTask();//等待最近一次对RTC寄存器的写操作完成

/* Set RTC prescaler: set RTC period to 1sec */

/* RTC period = RTCCLK/RTC_PR = (32.768 KHz)/(32767+1) */

RTC_SetPrescaler(32767); //设置RTC预分频的值

/* Wait until last write operation on RTC registers has finished */

RTC_WaitForLastTask();//等待最近一次对RTC寄存器的写操作完成

RTC_Set(2011,12,20,10,0,0); //设置时间

BKP_WriteBackupRegister(BKP_DR1, 0X5050);//向指定的后备寄存器中写入用户程序数据

}

else//系统继续计时

{

/* Check if the Power On Reset flag is set */

if (RCC_GetFlagStatus(RCC_FLAG_PORRST) != RESET)//检查指定的RCC标志位设置与否

OR/PDR复位

{

//printf("\rPower On Reset occurred....");

}

/* Check if the Pin Reset flag is set */

else if (RCC_GetFlagStatus(RCC_FLAG_PINRST) != RESET)//检查指定的RCC标志位设置与否:管脚复位

{

//printf("\rExternal Reset occurred....");

}

//printf("\rNo need to configure RTC....");

/* Wait for RTC registers synchronization */

RTC_WaitForSynchro();//等待最近一次对RTC寄存器的写操作完成

/* Enable the RTC Second */

RTC_ITConfig(RTC_IT_SEC, ENABLE);//使能RTC秒中断

/* Wait until last write operation on RTC registers has finished */

RTC_WaitForLastTask();//等待最近一次对RTC寄存器的写操作完成

}

RTC_Get();//更新时间

/* Clear reset flags */

RCC_ClearFlag();//清除RCC的复位标志位

return 0; //ok

}[/mw_shl_code]

注意看这句,一般没有电池的时候就是2011年了。

RTC_Set(2011,12,20,10,0,0);  //设置时间

esp32 rtc 时钟设置不对_咱们RTC时钟案例的时间为什么开始的时候总是2014年,怎么改呢?...相关推荐

  1. esp32 rtc 时钟设置不对_「STM32」实时时钟(RTC)实验

    实时时钟的特征和原理 RTCCLK:时钟来源 RTC的时钟有哪些来源呢? 如图,有3个渠道 来自于外部的LSE也就是外部的晶振 来自于HSE的128分频 来自于LSI 一般情况下我们都是采用外部晶振来 ...

  2. esp32 rtc 时钟设置不对_STM32入门系列-STM32时钟系统,STM32时钟树

    时钟对于单片机来说是非常重要的,它为单片机工作提供一个稳定的机器周期从而使系统能够正常运行.时钟系统犹如人的心脏,一旦有问题整个系统就崩溃.我们知道STM32属于高级单片机,其内部有很多的外设,但不是 ...

  3. 6410的系统时钟设置(上)---6410时钟控制逻辑框架分析

    本文主要介绍6410内核和AHB.APB总线的时钟设置. 6410的时钟逻辑结构还是比较清晰的,配置起来并不难(曾让笔者极度抓狂的是Freescale Kinetis系列的片子,系统时钟配置起来很麻烦 ...

  4. 计算机的时钟设置错误,错误:系统时钟已被设置回过去的时间。 这是不允许的!...

    错误:系统时钟已被设置回过去的时间. 这是不允许的! 错误消息 启动 Esri 软件产品可能会返回以下错误:错误: "系统时钟已被设置回过去的时间. 这是不允许的!" 原因 任何将 ...

  5. 32f407tim4时钟源频率_华为以太时钟同步原理介绍(一)

    1.以太时钟同步简介 以太时钟同步功能,用来实现以太网上的频率同步.它可以从线路上恢复时钟信号,或者从外时钟BITS接口输入时钟信号,然后通过以太网把频率向下游网络传递下去.使用该功能,使得时钟频率可 ...

  6. new date.gettime 与传入时间相差毫秒数不对_给女票解释为什么日本时间比中国时间快一个小时?...

    马上就要五一劳动节放假了,忙碌了半年,准备趁着假期出去放松放松,于是开始准备行程.女朋友听说日本5月份可以看樱花,于是她在看去日本的航班.我在旁边默默的看了下我的信用卡额度. 如上图,飞机13:40 ...

  7. 手机有一个时钟的标志_手机桌面时钟有这几款就够了

    最近一直在研究怎么把家里闲置吃灰的旧手机拿出来透透气.就在苦苦寻找了几款桌面时钟APP拯救我吃灰的闲置手机没错!就是把旧手机做成一个全屏钟表,虽然我是一个没有时间观念的人,但是桌子上缺一个时钟来装饰一 ...

  8. python时钟编程教程_编程入门16:Python时间操作

    Python标准库包含有一个time模块用于基本的时间处理,其中的time()函数会读取系统时钟并返回float类型的Unix纪元"时间戳"(Timestamp),即当前时间距离国 ...

  9. STM32系统时钟设置(标准库)

    1.STM32F407时钟树 2.系统时钟相关的结构 HSE高速外部时钟信号 锁相环PLL 锁相环的主要作用就是对时钟进行倍频,然后把时钟输出到各个功能部件.PLL有两个,一个主PLL,另一个是专用的 ...

最新文章

  1. 按一行一行的方法将一个文本文件复制到另一个文件中_大文件上的结构化数据计算示例...
  2. 一步步学习SPD2010--第十一章节--处理母版页(10)--重置母版页到网站定义
  3. linux下sublime安装目录在那,linux下sublime text 3安装到配置
  4. 大圣魔方——美团点评酒旅BI报表工具平台开发实践
  5. Angular - ng-repeat高级用法
  6. linux sshd自动登录,SSH自动登录的几种方法
  7. 数据挖掘实践(金融风控)——task5:模型融合
  8. matlab卡方拟合优度检验,卡方拟合优度检验在教学中的应用及Matlab实现_刘泽显...
  9. BCB中利用剪贴板复制粘贴
  10. 专业的Windows鼠标右键菜单管理工具
  11. Unity (四) NavMeshAgent之:分离路面导航
  12. XP和Linux双系统启动菜单的修复
  13. win10系统桌面右键新建卡顿、反应慢问题
  14. 一文带你深入了解,什么是深度学习及其工作原理
  15. 绩效反馈评语:如何评估团队合作
  16. webpack的摇树、拆包、热更新、按需加载等难点
  17. python中的and_PYTHON中的“and”是什么意思
  18. Python Socket套接字编程
  19. C语言之简单的字母大小写转换
  20. flash mx拖拽实例_集成Flash MX 2004和Director MX 2004

热门文章

  1. 困难时拉你一把的图片_2019早上好表情图片合集 早晨祝福语动画
  2. php 整数 比较,php中字符串和整数比较
  3. Class类---反射学习笔记(一)
  4. Linux查看网卡UUID另一方法
  5. 设置隐藏文件的显示与隐藏方法
  6. 数组按逆向求最大差值的算法
  7. 说说我的工作——桌面支持
  8. 图解Android - Android GUI 系统 (2) - 窗口管理 (View, Canvas, Window Manager)
  9. 数据中心扩张和产能计划
  10. centos压缩和解压缩