當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]Ⅰ、概述接著上一篇文章來講述關(guān)于RTC的計(jì)數(shù)功能,我們以實(shí)例RTC日歷(讀寫年、月、日、星期、時(shí)、分、秒)來講述該章節(jié)。STM32F1系列芯片的RTC功能和其他系列(F0、F2、F4等)相比來說,功能要弱一點(diǎn),原因在于F1系

Ⅰ、概述

接著上一篇文章來講述關(guān)于RTC的計(jì)數(shù)功能,我們以實(shí)例RTC日歷(讀寫年、月、日、星期、時(shí)、分、秒)來講述該章節(jié)。

STM32F1系列芯片的RTC功能和其他系列(F0、F2、F4等)相比來說,功能要弱一點(diǎn),原因在于F1系列的RTC日歷功能需要我們通過軟件進(jìn)行處理(換算RTC計(jì)數(shù)值)才能真正實(shí)現(xiàn)RTC日歷的功能,而其他系列芯片不用這么麻煩,可直接讀取日歷值。

該文和上一篇文章的區(qū)別:1、RTC時(shí)鐘源選擇LSE(外部低速時(shí)鐘); 2、分頻值是32768; 3、讀寫了RTC_CNT(計(jì)數(shù)值),用于RTC日歷。

本文章提供的實(shí)例工程,其實(shí)驗(yàn)效果是:

主函數(shù)間隔0.5秒LED變化一次;

間隔1秒中斷:讀取日歷并打印出來。

電腦串口調(diào)試助手接收到數(shù)據(jù):年月日星期時(shí)分秒

關(guān)于本文的更多詳情請往下看。

Ⅱ、實(shí)例工程下載

筆者針對于初學(xué)者提供的例程都是去掉了許多不必要的功能,精簡了官方的代碼,對初學(xué)者一看就明白,以簡單明了的工程供大家學(xué)習(xí)。

筆者提供的實(shí)例工程都是在板子上經(jīng)過多次測試并沒有問題才上傳至360云盤,歡迎下載測試、參照學(xué)習(xí)。

提供下載的軟件工程是基于Keil(MDK-ARM)v5版本、STM32F103ZE芯片,但F1其他型號也適用(適用F1其他型號: 關(guān)注微信,回復(fù)“修改型號”)。

STM32F10x_RTC日歷(LSE)實(shí)例源代碼工程:

https://yunpan.cn/cBDwPJcChZRFE訪問密碼

STM32F10x_RTC日歷(LSI)實(shí)例源代碼工程:

https://yunpan.cn/cBDwSikRhZ2Nk訪問密碼

STM32F1資料:

https://yunpan.cn/crBUdUGdYKam2訪問密碼ca90

Ⅲ、原理描述

以筆者個(gè)人學(xué)習(xí)經(jīng)歷來說,想要掌握其真正原理,最好還是查看參考手冊(現(xiàn)在有很多都翻譯為中文了),里面模塊的框圖,從框圖中大概就可以看到該模塊有些什么功能及其工作的原理。

RTC框圖:

從上面系統(tǒng)框圖來分析“RTC秒中斷”和“RTC_CNT計(jì)數(shù)”的原理:

1.RTC時(shí)鐘源,總共有三類:

RCC_RTCCLKSource_LSE

RCC_RTCCLKSource_LSI

RCC_RTCCLKSource_HSE_Div128

本文實(shí)例代碼是:RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);

重點(diǎn):

細(xì)心的朋友可能會發(fā)現(xiàn):筆者還提供了一個(gè)實(shí)例“STM32F10x_RTC日歷(LSI)”。對,這個(gè)實(shí)例是以LSI內(nèi)部低速時(shí)鐘作為RTC時(shí)鐘源。

先問兩個(gè)問題:1、為什么不建議使用LSI作為時(shí)鐘源來設(shè)計(jì)日歷? 2、兩個(gè)實(shí)例工程之間的差別? 將實(shí)例中使用“LSE”時(shí)鐘改為“LSI”時(shí)鐘,其他地方不該可以嗎?【在下面解答】

2.RTC分頻:

本文實(shí)例代碼是:RTC_SetPrescaler(32768-1);

外部低速時(shí)鐘頻率為32.768K,我們要達(dá)到1秒計(jì)數(shù)(RTC_CNT)一次,則需要分頻32768.

3.RTC中斷:

RTC中斷有三種:

RTC_IT_SEC秒中斷

RTC_IT_ALR鬧鐘中斷

RTC_IT_OW(計(jì)數(shù))溢出中斷

本文實(shí)例是:RTC_ITConfig(RTC_IT_SEC, ENABLE);

使能RTC_IT_SEC秒中斷,間隔1秒中斷一次,打印日歷。

再次強(qiáng)調(diào):

這里的“秒中斷”是概念上的秒中斷,它的中斷間隔時(shí)間是根據(jù)你選擇的時(shí)鐘源和分頻值決定的,并非真正的1秒鐘中斷一次。本文提供的實(shí)例是1秒鐘中斷一次。

4.RTC日歷的來由:

在文章開頭已經(jīng)說了,F(xiàn)1系列中RTC只要RTC_CNT寄存器,不像F0、F4等有現(xiàn)成的日歷(年月日時(shí)分秒)寄存器,因此,我們是通過軟件換算而得來的日歷。

Ⅳ、源代碼分析

筆者以F1標(biāo)準(zhǔn)外設(shè)庫(同時(shí)也建議初學(xué)者使用官方的標(biāo)準(zhǔn)外設(shè)庫)為基礎(chǔ)建立的工程,主要以庫的方式來講述(若您的F1芯片與提供工程不一樣,可微信回復(fù)“修改型號”)。

下面將講述關(guān)于“RTC秒中斷”重要的、容易弄錯的幾點(diǎn):

1.RCC時(shí)鐘源

該函數(shù)位于bsp.c文件下面;

RCC是很多初學(xué)者,甚至已經(jīng)工作的朋友容易遺漏的地方,有很多朋友覺得它使用的外設(shè)不正常,很大部分是沒有配置RCC導(dǎo)致的。

重點(diǎn)注意:

A.外設(shè)RCC時(shí)鐘的配置要在其外設(shè)初始化的前面;

B.匹配對應(yīng)時(shí)鐘。

比如:RCC_APB2外設(shè)不要配置在RCC_APB1時(shí)鐘里面

【如:RCC_APB1PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);這樣能編譯通過,但這是錯誤的代碼】

2. RTC配置

該函數(shù)位于rtc.c文件下面;

該函數(shù)請結(jié)合參考手冊(框圖和寄存器)理解。

注意4點(diǎn):

A.使能后備區(qū)域:PWR_BackupAccessCmd(ENABLE);

從系統(tǒng)框圖可以看見RTC有陰影部分,其實(shí)這部分就是后備區(qū)域。因此,需要使能,這也是為什么上面需要配置RCC時(shí)鐘的原因。

B.選擇RTC時(shí)鐘源:RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);

在原理描述中說了,RTC時(shí)鐘源有三種:

RCC_RTCCLKSource_LSE

RCC_RTCCLKSource_LSI

RCC_RTCCLKSource_HSE_Div128

可以在源代碼中查看其參數(shù),也是有3中可以選擇。

C.使能RTC鬧鐘中斷:RTC_ITConfig(RTC_IT_SEC, ENABLE);

RTC有三類中斷:

RTC_IT_SEC秒中斷

RTC_IT_ALR鬧鐘中斷

RTC_IT_OW(計(jì)數(shù))溢出中斷

上一篇文章提供的拓展功能“RTC鬧鐘”就是使用鬧鐘中斷,可以下載實(shí)例工程查看源代碼。

D.RTC分頻:RTC_SetPrescaler(32767);

我們是為了得到真正的1秒鐘中斷一次。

3. RTC初始化

該函數(shù)位于rtc.c文件下面;

A.我們使用BKP保存“標(biāo)志位”數(shù)據(jù)(第一次才初始化,后面就不用初始化了)。我們初始化時(shí)間為:2016年7月18日 18:00:00(假如為當(dāng)前值)。 如果有電池,則會按照這個(gè)時(shí)間一直持續(xù)下去,系統(tǒng)掉電之后也不會影響時(shí)鐘的計(jì)數(shù)。

B.第二次及以后上電需要等待RTC與RTC_APB時(shí)鐘同步。

C.使能RTC秒中斷,我們用于測試并打印RTC日歷數(shù)據(jù)。如果你的應(yīng)用是直接讀取RTC日歷,不是想我們實(shí)例那樣中斷打印數(shù)據(jù),則可以不開啟該中斷。

4. RTC讀寫描述

該結(jié)構(gòu)體位于rtc.h文件下面;

這要就是用于讀寫用(這樣直接傳遞一個(gè)參數(shù)就行了,不用傳遞“一串”整形變量)

該函數(shù)位于rtc.c文件下面;

RTC日歷寫(設(shè)置)函數(shù),這個(gè)函數(shù)是筆者整理并經(jīng)過項(xiàng)目驗(yàn)證的,可直接調(diào)用。

注意:

參數(shù)不能越界(超出范圍),超出范圍會返回錯誤。

該函數(shù)位于rtc.c文件下面;

RTC日歷讀(獲?。┖瘮?shù),這個(gè)函數(shù)是筆者整理并經(jīng)過項(xiàng)目驗(yàn)證的,可直接調(diào)用。

注意:

需要配置RTC并初始化RTC值才會讀出正確的日歷值。

Ⅴ、解答問題

上面筆者留下的問題或許對于初學(xué)者不是很關(guān)心,但對于在工作中,需要實(shí)際項(xiàng)目的開發(fā)的人應(yīng)該比較有幫助。

1、為什么不建議使用LSI作為時(shí)鐘源來設(shè)計(jì)日歷?

原因在于LSI不是屬于后備區(qū)域,而RTC日歷部分是屬于后備局域(見上圖),也就是說系統(tǒng)一旦掉電,RTC時(shí)鐘就不能工作了。

2、兩個(gè)實(shí)例工程之間的差別? 將實(shí)例中使用“LSE”時(shí)鐘改為“LSI”時(shí)鐘,其他地方不該可以嗎?

這個(gè)地方和第一個(gè)問題有關(guān)聯(lián),修改后的工程程序會死在等待時(shí)鐘同步的地方。

Ⅵ、說明

這篇文章是結(jié)合前幾篇文章來講述的,可以在微信“歷史消息”中查看。

關(guān)于筆者提供的軟件工程實(shí)例,可關(guān)注微信,在會話框回復(fù)“關(guān)于工程”,有關(guān)于工程結(jié)構(gòu)描述、型號修改等講述。

以上總結(jié)僅供參考,若有不對之處,敬請諒解。


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉