esp32 rtc 时钟设置不对_咱们RTC时钟案例的时间为什么开始的时候总是2014年,怎么改呢?...
[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年,怎么改呢?...相关推荐
- esp32 rtc 时钟设置不对_「STM32」实时时钟(RTC)实验
实时时钟的特征和原理 RTCCLK:时钟来源 RTC的时钟有哪些来源呢? 如图,有3个渠道 来自于外部的LSE也就是外部的晶振 来自于HSE的128分频 来自于LSI 一般情况下我们都是采用外部晶振来 ...
- esp32 rtc 时钟设置不对_STM32入门系列-STM32时钟系统,STM32时钟树
时钟对于单片机来说是非常重要的,它为单片机工作提供一个稳定的机器周期从而使系统能够正常运行.时钟系统犹如人的心脏,一旦有问题整个系统就崩溃.我们知道STM32属于高级单片机,其内部有很多的外设,但不是 ...
- 6410的系统时钟设置(上)---6410时钟控制逻辑框架分析
本文主要介绍6410内核和AHB.APB总线的时钟设置. 6410的时钟逻辑结构还是比较清晰的,配置起来并不难(曾让笔者极度抓狂的是Freescale Kinetis系列的片子,系统时钟配置起来很麻烦 ...
- 计算机的时钟设置错误,错误:系统时钟已被设置回过去的时间。 这是不允许的!...
错误:系统时钟已被设置回过去的时间. 这是不允许的! 错误消息 启动 Esri 软件产品可能会返回以下错误:错误: "系统时钟已被设置回过去的时间. 这是不允许的!" 原因 任何将 ...
- 32f407tim4时钟源频率_华为以太时钟同步原理介绍(一)
1.以太时钟同步简介 以太时钟同步功能,用来实现以太网上的频率同步.它可以从线路上恢复时钟信号,或者从外时钟BITS接口输入时钟信号,然后通过以太网把频率向下游网络传递下去.使用该功能,使得时钟频率可 ...
- new date.gettime 与传入时间相差毫秒数不对_给女票解释为什么日本时间比中国时间快一个小时?...
马上就要五一劳动节放假了,忙碌了半年,准备趁着假期出去放松放松,于是开始准备行程.女朋友听说日本5月份可以看樱花,于是她在看去日本的航班.我在旁边默默的看了下我的信用卡额度. 如上图,飞机13:40 ...
- 手机有一个时钟的标志_手机桌面时钟有这几款就够了
最近一直在研究怎么把家里闲置吃灰的旧手机拿出来透透气.就在苦苦寻找了几款桌面时钟APP拯救我吃灰的闲置手机没错!就是把旧手机做成一个全屏钟表,虽然我是一个没有时间观念的人,但是桌子上缺一个时钟来装饰一 ...
- python时钟编程教程_编程入门16:Python时间操作
Python标准库包含有一个time模块用于基本的时间处理,其中的time()函数会读取系统时钟并返回float类型的Unix纪元"时间戳"(Timestamp),即当前时间距离国 ...
- STM32系统时钟设置(标准库)
1.STM32F407时钟树 2.系统时钟相关的结构 HSE高速外部时钟信号 锁相环PLL 锁相环的主要作用就是对时钟进行倍频,然后把时钟输出到各个功能部件.PLL有两个,一个主PLL,另一个是专用的 ...
最新文章
- 按一行一行的方法将一个文本文件复制到另一个文件中_大文件上的结构化数据计算示例...
- 一步步学习SPD2010--第十一章节--处理母版页(10)--重置母版页到网站定义
- linux下sublime安装目录在那,linux下sublime text 3安装到配置
- 大圣魔方——美团点评酒旅BI报表工具平台开发实践
- Angular - ng-repeat高级用法
- linux sshd自动登录,SSH自动登录的几种方法
- 数据挖掘实践(金融风控)——task5:模型融合
- matlab卡方拟合优度检验,卡方拟合优度检验在教学中的应用及Matlab实现_刘泽显...
- BCB中利用剪贴板复制粘贴
- 专业的Windows鼠标右键菜单管理工具
- Unity (四) NavMeshAgent之:分离路面导航
- XP和Linux双系统启动菜单的修复
- win10系统桌面右键新建卡顿、反应慢问题
- 一文带你深入了解,什么是深度学习及其工作原理
- 绩效反馈评语:如何评估团队合作
- webpack的摇树、拆包、热更新、按需加载等难点
- python中的and_PYTHON中的“and”是什么意思
- Python Socket套接字编程
- C语言之简单的字母大小写转换
- flash mx拖拽实例_集成Flash MX 2004和Director MX 2004