历时四天终于成功搞定rtc实时时钟在stm32显示屏上显示。
首先:
1:初始化rtc
RTC_HandleTypeDef RTC_Handler; //rtc句柄 要初始化的句柄,包含外设名字和设置rtc的寄存器的结构体函数等等
{
if(HAL_RTC_Init(&RTC_Handler)!=HAL_OK) return 1;
//********************HAL自带的初始化库函数,进去可以看到主要就是确定一些rtc-handlertypedef结构体成员的一些参数的范围:比如assert_param(IS_RTC_ALL_INSTANCE(hrtc->Instance));......成功初始化就返回一***************************//
if(HAL_RTCEx_BKUPRead(&rtc_handletypedef,RTC_BKP_DR1)!=0x5050)
{
RTC_Set(2015,3,24,4,12,10);
HAL_RTCEx_BKUPWrite(&rtc_handletypedef,RTC_BKP_DR1,0x5050);
}
//****************RTC是一个独立的定时器
//当程序下载进去时,如果先前没有系统复位过,那么此时备份区域(BKP)有0x5050,因为上一次复位之后再下载程序写入了0x5050 错
BKP 当系统在待机模式下被唤醒,或系统复位或 电源复位时,他们也不会被复位。
也即是说第一次下载程序后在设置时间必须得在这个if语句外调用
**********************************************//