RTC簡介
實時時鐘(RTC)是一個獨立的 BCD 定時器/計數(shù)器。RTC 提供具有可編程鬧鐘中斷功能的日歷時鐘/日歷。RTC 還包含具有中斷功能的周期性可編程喚醒標志。系統(tǒng)可以自動將月份的天數(shù)補償為 28、29(閏年)、30和 31 天。只要芯片的備用電源一直供電,RTC上的時間會一直走。
新建工程
本章程序在串口printf工程的基礎上修改,復制串口printf的工程,修改文件夾名。點擊STM32F746I.ioc打開STM32cubeMX的工程文件重新配置。RTC選擇內部喚醒(Internal WakeUp)開啟RTC。開啟外部低速晶振,PC14,PC15配置。 ???
RTC時鐘選擇為外部低速晶振(LSE),頻率為32.768。
在RTC配置中,設置時間和日期,其他為默認設置。此處設置時間為2016/04/16 1649。 ????
生成報告以及代碼,編譯程序。
添加應用程序
在rtc.c文件中可以看到ADC初始化函數(shù)。在stm32f7xx_hal_rtc.h頭文件中可以看到rtc時間和日期讀寫操作函數(shù)。
從操作函數(shù)中可以看到,時間和日期是以結構體的形式讀寫的。所以在main.c文件前面申明兩個結構體變量存儲讀取的時間和日期數(shù)據。
?
/*USERCODEBEGINPV*/ /*Privatevariables--------*/ RTC_DateTypeDefsdatestructure; RTC_TimeTypeDefstimestructure; /*USERCODEENDPV*/
在stm32f7xx_hal_rtc.h頭文件中,可以找到RTC_TimeTypeDef,RTC_DateTypeDef這兩個結構體的成員變量。

在while循環(huán)中添加應用程序,讀取當前的時間和日期,并通過串口發(fā)送到電腦上顯示。
/*USERCODEBEGINWHILE*/ while(1) { /*USERCODEENDWHILE*/ /*USERCODEBEGIN3*/ /*GettheRTCcurrentTime,mustgettimefirst*/ HAL_RTC_GetTime(&hrtc,&stimestructure,RTC_FORMAT_BIN); /*GettheRTCcurrentDate*/ HAL_RTC_GetDate(&hrtc,&sdatestructure,RTC_FORMAT_BIN); /*DisplaydateFormat:yy/mm/dd*/ printf("%02d/%02d/%02d ",2000+sdatestructure.Year,sdatestructure.Month,sdatestructure.Date); /*DisplaytimeFormat:hhss*/ printf("%02d:%02d:%02d ",stimestructure.Hours,stimestructure.Minutes,stimestructure.Seconds); printf(" "); HAL_Delay(1000); } /*USERCODEEND3*/
程序中使用HAL_RTC_GetTime(),HAL_RTC_GetDate()讀取時間和日期,并保存到結構體變量中,然后通過串口輸出讀取的時間和日期。注意:要先讀取時間再讀取日期,如果先讀取日期在讀取時間會導致讀取的時間不準確,一直都是原來設置的時間。
實驗效果
編譯程序并下載到開發(fā)板。打開串口調試助手。設置波特率為115200。串口助手上會顯示RTC的時間日期。

審核編輯:湯梓紅
-
實時時鐘
+關注
關注
4文章
324瀏覽量
67663 -
計數(shù)器
+關注
關注
32文章
2302瀏覽量
97199 -
定時器
+關注
關注
23文章
3347瀏覽量
120975 -
RTC
+關注
關注
2文章
635瀏覽量
70358 -
stm32cubemx
+關注
關注
5文章
287瀏覽量
16850
原文標題:STM32CubeMX-實時時鐘(RTC)
文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發(fā)】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
基于STM32CubeMX的實時時鐘(RTC)配置
RTC實時時鐘簡介
如何去實現(xiàn)STM32的實時時鐘RTC的時間計算部分
STM32CubeMX-實時時鐘(RTC)

STM32CubeMX | 40 - 實時時鐘RTC的使用(日歷和鬧鐘)

stm32f4 RTC實時時鐘解析

STM32CubeMX系列|RTC實時時鐘

評論