(stm32)Unix时间戳

(stm32)Unix时间戳_第1张图片

 时间戳计时系统和常用的年月日时分秒计时系统有很大差别

时间戳:只计算从1970年1月1日0点整为0秒,只用最基本的秒来计时,用不进位。

常用计时系统:60秒进位1分钟,60分钟进位1小时,24小时进位1天,依次年月日。

c程序内封装的time.h文件中封装了相关函数

(stm32)Unix时间戳_第2张图片

 中国在东八区   GMT+8

 

(stm32)Unix时间戳_第3张图片

备份寄存器

(stm32)Unix时间戳_第4张图片

 

bkp结构

(stm32)Unix时间戳_第5张图片

 

RTC(real time clock)实时时钟

(stm32)Unix时间戳_第6张图片

 

框图

(stm32)Unix时间戳_第7张图片

 灰色背景模块可以使用vbat供电

(stm32)Unix时间戳_第8张图片

 开启RTC时钟的方式和普通外设不一样,RTC没有专门开启的函数,需要使能APB1的pwr和bkp时钟。并设置pwr_cr的dbp位,使能对bkp和rtc的访问。

因为APB1总线的时钟是36MHz,RTC的时钟是32.768Hz,为了避免数据不同步问题,初始化时需要调用等待同步函数,等待RTC时钟和总线同步。

要配置RTC需要先把配置的标志位置1。才能开启RTC的配置模式。在库函数中,每个写寄存器的操作都会自动加上这个置位操作,所以不需要我们单独操作。    

你可能感兴趣的:(stm32,嵌入式硬件,单片机)