1 Unix时间戳
Unix 时间戳(Unix Timestamp)定义为从UTC/GMT的1970年1月1日0时0分0秒开始所经过的秒数,不考虑闰秒
时间戳存储在一个秒计数器中,秒计数器为32位/64位的整型变量
世界上所有时区的秒计数器相同,不同时区通过添加偏移来得到当地时间
2 UTC/GMT
GMT(Greenwich Mean Time)格林尼治标准时间是一种以地球自转为基础的时间计量系统。它将地球自转一周的时间间隔等分为24小时,以此确定计时标准
UTC(Universal Time Coordinated)协调世界时是一种以原子钟为基础的时间计量系统。它规定铯133原子基态的两个超精细能级间在零磁场下跃迁辐射9,192,631,770周所持续的时间为1秒。当原子钟计时一天的时间与地球自转一周的时间相差超过0.9秒时,UTC会执行闰秒来保证其计时与地球自转的协调一致
3 时间戳转换
C语言的time.h模块提供了时间获取和时间戳转换的相关函数,可以方便地进行秒计数器、日期时间和字符串之间的转换
1 BKP简介
BKP(Backup Registers)备份寄存器
BKP可用于存储用户应用程序数据。当VDD(2.0~3.6V)电源被切断,他们仍然由VBAT(1.8~3.6V)维持供电。当系统在待机模式下被唤醒,或系统复位或电源复位时,他们也不会被复位
TAMPER引脚产生的侵入事件将所有备份寄存器内容清除
RTC引脚输出RTC校准时钟、RTC闹钟脉冲或者秒脉冲
存储RTC时钟校准寄存器
用户数据存储容量:20字节(中容量和小容量)/ 84字节(大容量和互联型)
2 BKP基本结构
橙色部分为STM32的后备区域,当VDD主电源掉电时后备区域仍然可以由VBAT的备用电池供电,当VDD主电源上电时后备区域供电会由VBAT切换到VDD,此时VBAT不会用到节省电池电量。BKP处于后备区域,BKP主要有数据寄存器、控制寄存器、状态寄存器和RTC时钟校准寄存器。每个数据寄存器都是16位,即一个数据寄存器可以存两个字节。侵入检测可以从PC13的TAMPER引脚引入一个检测信号,当TAMPER产生一个上升沿或下降沿时清除BKP所有内容以保证安全。时钟输出可以将RTC的时钟从PC13的RTC引脚输出供外部使用,输出校准时钟时再配合校准寄存器可以对RTC的