学习笔记06

Unix时间戳

GMT/UTC

时间戳转换

#include<stdio.h>
#include<time.h>

time_t time_cnt;
struct tm time_data;
char* time_str;

int main()
{
	time(&time_cnt);
	printf("%d\n", time_cnt);

	time_data = *gmtime(&time_cnt);
	printf("%d年%d月%d日 %d时%d分%d秒\n", 1900+time_data.tm_year, 1+time_data.tm_mon, 
												time_data.tm_mday, time_data.tm_hour,
												time_data.tm_min, time_data.tm_sec);

	time_data = *localtime(&time_cnt);
	printf("%d年%d月%d日 %d时%d分%d秒\n", 1900 + time_data.tm_year, 1 + time_data.tm_mon, 
													time_data.tm_mday, time_data.tm_hour,
													time_data.tm_min, time_data.tm_sec);

	time_cnt = mktime(&time_data);
	printf("%d\n", time_cnt);
	
	time_str = ctime(&time_cnt);
	printf(time_str);

	time_str = asctime(&time_data);
	printf(time_str);

	char t[50];
	strftime(t,50,"%Y-%m-%d %H:%M:%S",&time_data);
	printf(t);

	return 0;
}

BKP(RAM)

备用电源来保持掉电不丢失

BKP基本结构

橙色:后备区域-当VDD(主电源)掉电时,后备区域仍可由VBAT(备用电源)供电,主电源恢               复时切回。

RTC(Real Time Clock实时时钟)

32768 = 2^15 LSE时钟(RTC专用)

HSE和LSI在电源断电后停止运行

框图

灰色部分处于后备区域

RTC_PRL设重装值,每进入一个时钟RTC_DIV减一(自减计数器,可保持为0,即首个时钟到来后溢出,转为重装值继续计数)

RTC基本结构

硬件电路(备用电源电路设计)

注意事项

PWR电源控制

电源框图

电压调节器给1.8V区域供电

低功耗模式

唤醒事件:

在外设控制寄存器中使能一个中断,而不是在NVIC(嵌套向量中断控制器)中使能,并且在
Cortex-M3系统控制寄存器中使能SEVONPEND位。当MCU从WFE中唤醒后,外设的中断
挂起位和外设的NVIC中断通道挂起位(在NVIC中断清除挂起寄存器中)必须被清除。


配置一个外部或内部的EXIT线为事件模式。当MCU从WFE中唤醒后,因为与事件线对应的
挂起位未被设置,不必清除外设的中断挂起位或外设的NVIC中断通道挂起位。
该模式唤醒所需的时间最短,因为没有时间损失在中断的进入或退出上。

PDDS = 0 -> 停机模式     PDDS = 1 -> 待机模式 

LPDS = 0 -> 电压调节器开启   LPDS = 1 -> 电压调节器进入低功耗

 

退出停止模式后HSI被选为系统时钟-SystemInit

程序会从头开始

WDG看门狗(自动复位电路)

独立看门狗的时钟为LSI内部低速时钟、窗口看门狗为APB1

IWDG

框图

看门狗的重装计数器->自动重装计数器->喂狗

如果独立看门狗由硬件选项火软件启动,LSI振荡器将强制在打开状态,并且不能被关闭

键寄存器(防止误操作)

IWDG超时时间

FLSI = 40K 

窗口看门狗

框图

T6位一旦为0即复位    写入WWDG_CR->喂狗

WWDG超时时间

IWDG/WWDG差别

FLSAH闪存

基本结构图

FLSH解锁(防止误操作)

访问存储器(读写)

读->可直接读   写->需要先解锁

volatile 防止编译器优化

程序寄存器擦除/写入(先擦除->写入)

字->32位   半字->16位  字节->8位

选项字节

选项字节擦除/写入

器件电子签名

程序代码范围限定

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值