RTC簡介
實(shí)時(shí)時(shí)鐘(RTC)是一個(gè)獨(dú)立的 BCD 定時(shí)器/計(jì)數(shù)器。RTC 提供具有可編程鬧鐘中斷功能的日歷時(shí)鐘/日歷。RTC 還包含具有中斷功能的周期性可編程喚醒標(biāo)志。系統(tǒng)可以自動(dòng)將月份的天數(shù)補(bǔ)償為 28、29(閏年)、30和 31 天。只要芯片的備用電源一直供電,RTC上的時(shí)間會(huì)一直走。
新建工程
本章程序在串口printf工程的基礎(chǔ)上修改,復(fù)制串口printf的工程,修改文件夾名。點(diǎn)擊STM32F746I.ioc打開STM32cubeMX的工程文件重新配置。RTC選擇內(nèi)部喚醒(Internal WakeUp)開啟RTC。開啟外部低速晶振,PC14,PC15配置。 ???
RTC時(shí)鐘選擇為外部低速晶振(LSE),頻率為32.768。
在RTC配置中,設(shè)置時(shí)間和日期,其他為默認(rèn)設(shè)置。此處設(shè)置時(shí)間為2016/04/16 1649。 ????
生成報(bào)告以及代碼,編譯程序。
添加應(yīng)用程序
在rtc.c文件中可以看到ADC初始化函數(shù)。在stm32f7xx_hal_rtc.h頭文件中可以看到rtc時(shí)間和日期讀寫操作函數(shù)。
從操作函數(shù)中可以看到,時(shí)間和日期是以結(jié)構(gòu)體的形式讀寫的。所以在main.c文件前面申明兩個(gè)結(jié)構(gòu)體變量存儲(chǔ)讀取的時(shí)間和日期數(shù)據(jù)。
?
/*USERCODEBEGINPV*/ /*Privatevariables--------*/ RTC_DateTypeDefsdatestructure; RTC_TimeTypeDefstimestructure; /*USERCODEENDPV*/
在stm32f7xx_hal_rtc.h頭文件中,可以找到RTC_TimeTypeDef,RTC_DateTypeDef這兩個(gè)結(jié)構(gòu)體的成員變量。
![99d96b74-85ce-11ed-bfe3-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9F/F2/wKgaomToJemAFyvTAAB9nnOuN3Q045.png)
在while循環(huán)中添加應(yīng)用程序,讀取當(dāng)前的時(shí)間和日期,并通過串口發(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()讀取時(shí)間和日期,并保存到結(jié)構(gòu)體變量中,然后通過串口輸出讀取的時(shí)間和日期。注意:要先讀取時(shí)間再讀取日期,如果先讀取日期在讀取時(shí)間會(huì)導(dǎo)致讀取的時(shí)間不準(zhǔn)確,一直都是原來設(shè)置的時(shí)間。
實(shí)驗(yàn)效果
編譯程序并下載到開發(fā)板。打開串口調(diào)試助手。設(shè)置波特率為115200。串口助手上會(huì)顯示RTC的時(shí)間日期。
![99fad08e-85ce-11ed-bfe3-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9F/F2/wKgaomToJemAGZUyAAACS7uKNkU136.png)
審核編輯:湯梓紅
-
實(shí)時(shí)時(shí)鐘
+關(guān)注
關(guān)注
4文章
248瀏覽量
65965 -
計(jì)數(shù)器
+關(guān)注
關(guān)注
32文章
2261瀏覽量
94983 -
定時(shí)器
+關(guān)注
關(guān)注
23文章
3255瀏覽量
115371 -
RTC
+關(guān)注
關(guān)注
2文章
542瀏覽量
67030 -
stm32cubemx
+關(guān)注
關(guān)注
5文章
284瀏覽量
15003
原文標(biāo)題:STM32CubeMX-實(shí)時(shí)時(shí)鐘(RTC)
文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
基于STM32CubeMX的實(shí)時(shí)時(shí)鐘(RTC)配置
STM32 RTC實(shí)時(shí)時(shí)鐘(一)
![<b class='flag-5'>STM32</b> <b class='flag-5'>RTC</b><b class='flag-5'>實(shí)時(shí)時(shí)鐘</b>(一)](https://file1.elecfans.com/web2/M00/8D/81/wKgaomS7iAyAMPuaAAEdq86J5vQ877.jpg)
RTC實(shí)時(shí)時(shí)鐘簡介
如何去實(shí)現(xiàn)STM32的實(shí)時(shí)時(shí)鐘RTC的時(shí)間計(jì)算部分
如何去使用STM32的實(shí)時(shí)時(shí)鐘RTC呢
RTC實(shí)時(shí)時(shí)鐘怎么使用?
STM32F2技術(shù)培訓(xùn)_實(shí)時(shí)時(shí)鐘_RTC
STM32CubeMX-實(shí)時(shí)時(shí)鐘(RTC)
![<b class='flag-5'>STM32CubeMX-</b><b class='flag-5'>實(shí)時(shí)時(shí)鐘</b>(<b class='flag-5'>RTC</b>)](https://file.elecfans.com/web1/M00/C9/9A/o4YBAF-D99aALXhoAAAblRk5eHM247.png)
淺談RTC實(shí)時(shí)時(shí)鐘特征與原理
STM32CubeMX | 40 - 實(shí)時(shí)時(shí)鐘RTC的使用(日歷和鬧鐘)
![<b class='flag-5'>STM32CubeMX</b> | 40 - <b class='flag-5'>實(shí)時(shí)時(shí)鐘</b><b class='flag-5'>RTC</b>的使用(日歷和鬧鐘)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
stm32f4 RTC實(shí)時(shí)時(shí)鐘解析
![<b class='flag-5'>stm32</b>f4 <b class='flag-5'>RTC</b><b class='flag-5'>實(shí)時(shí)時(shí)鐘</b>解析](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32CubeMX系列|RTC實(shí)時(shí)時(shí)鐘
![<b class='flag-5'>STM32CubeMX</b>系列|<b class='flag-5'>RTC</b><b class='flag-5'>實(shí)時(shí)時(shí)鐘</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論