STM32使用HAL库配置RTC时钟
RTC时钟介绍
- RTC是个独立的定时器
RTC模块拥有一个连续计数的计数器。在相应的软件配置下,可以提供时钟日历的功能。修改计数器的值可以重新设置当前时间和日期 RTC还包含用于管理低功耗模式的自动唤醒单元。
在断电情况下 RTC仍可以独立运行 只要芯片的备用电源一直供电,RTC上的时间会一直走。RTC实质是一个掉电后还继续运行的定时器,从定时器的角度来看,相对于通用定时器TIM外设,它的功能十分简单,只有计时功能(也可以触发中断)。但其高级指出也就在于掉电之后还可以正常运行。
CubemxRTC时钟配置
本文不包括rtc中断(rtc闹钟的配置)
以下框内为主要调节的参数,包括时间的格式与第一次上电时的初始值
代码
在进行读取RTC前,我们需要定义两个特定的结构体
RTC_TimeTypeDef GetTime;
RTC_DateTypeDef GetDate;
我们获取的RTC时间将会保存到这两个RTC的结构体中,接下来是获取时间和日期的函数。
HAL_RTC_GetTime(&hrtc,&GetTime,RTC_FORMAT_BIN);
HAL_RTC_GetDate(&hrtc,&GetDate,RTC_FORMAT_BIN);
> 注意:这两行代码必须一起使用,我们获取完时间后必须再获取一次日期,(无论你是否需要RTC日期)。如果你没有获取RTC的日期,那么你可能只能调用一次RTC时间。
sprintf(text,"%d:%d:%d\n",GetTime.Hours,GetTime.Minutes,GetTime.Seconds);