CubeMX 配置
-
打开外部时钟
-
激活时钟和日历
-
更改RCC时钟为外部低速时钟
以上在CubeMX中的配置就已经完成,点击生成代码即可。
4.这里我需要使用串口进行调试,因此打开了串口一
工程修改
以上配置后,RCC可以正常走时运行,但是当单片机复位后,RCC时钟会清零,这可不符合我们的目的。
因此,在RCC初始化函数中我们添加这两行代码:
开启BKP备用寄存器时钟和取消其写保护。
之后在我们添加55行56行57行和83行代码进行是否第一次设置时间进行判断,如果是第一次进行时间的初始化,然后将标志位改变,之后无论如何操作,复位,关闭电源,这个标志位都不会改变。
实现基本时间走时并读取
- 在主函数中定义两个保存时间和数据的结构体,并配置时间和日期等数据
- 写入时间数据
HAL_RTC_SetTime(&hrtc, &RtcTime, RTC_FORMAT_BIN)
HAL_RTC_SetDate(&hrtc, &RtcDate, RTC_FORMAT_BIN)
- 读取时间数据
HAL_RTC_GetTime(&hrtc, &RtcTime,RTC_FORMAT_BIN);
HAL_RTC_GetDate(&hrtc, &RtcDate,RTC_FORMAT_BIN);