有讀者問:如何在STM32F1上實現(xiàn)日歷功能?
一、關(guān)于RTC
RTC:Real TimeClock,實時時鐘,記錄當(dāng)前時間的計算機時鐘。
RTC 不僅應(yīng)用于個人計算機、服務(wù)器和嵌入式系統(tǒng),幾乎所有需要準(zhǔn)確計時的電子設(shè)備也都會使用。
支持 RTC 的微控制器可用于精密計時器、鬧鐘、手表、小型電子記事薄以及其它多種設(shè)備。
在實際項目中,運用時間戳的地方很多,比如:存儲數(shù)據(jù)、日志消息、系統(tǒng)故障等。
二、STM32的RTC
在所有STM32處理器中,都集成了一個RTC模塊,是一個獨立的 BCD 定時器 / 計數(shù)器。
但是,在STM32F1系列中,RTC模塊的功能相對比較簡單(也許是最前推出的原因)。其中,一個重要的功能,日歷功能在F1系列中是不具備的。
F1的RTC可以實現(xiàn)1秒累計計數(shù),很早之前,我自己通過軟件實現(xiàn)日歷功能,其中包含閏年、月份28、29天的處理。我之前進行過多次驗證,但也不敢保證完全沒問題。
RTC功能概述:
處理STM32F1,其它系列的RTC基本具有很多高級功能,比如:日歷、鬧鐘、定時喚醒單元、數(shù)字校準(zhǔn)、同步、時間戳和高級入侵檢測等。
三、日歷功能
RTC最重要,最常用的功能就是日歷功能,但F1系列中的RTC模塊不具備。
打開F1手冊,你在RTC框圖,你會發(fā)現(xiàn)沒有日歷(Calendar)相關(guān)的寄存器。而且其他系列就有:
除F1系列,可輕松配置和顯示下列日歷數(shù)據(jù)字段:
·含有下列字段的日歷:
– 亞秒 (不可編程)
– 秒
– 分
– 時 ( 12 小時或 24 小時格式)
– 星期
– 日
– 月
– 年
·二進碼十進數(shù) ( BCD)格式的日歷
·自動管理天數(shù)為 28、 29 (閏年)、 30 和 31 的月份
·夏令時調(diào)整可用軟件編程
四、鬧鐘功能
相對F1系列,其他系列的鬧鐘功能自然也更高級了。STM32鬧鐘基于日歷基礎(chǔ)之上,只需簡單簡單編程即可實現(xiàn)鬧鐘功能。
鬧鐘單元均具有以下功能:
·支持對鬧鐘自由編程:亞秒 (稍后討論)、秒、分鐘、小時和日期字段可以單獨選擇或屏蔽,以實現(xiàn)多種鬧鐘組合。
·能夠在發(fā)生鬧鐘事件時使器件退出低功耗模式。
·可將鬧鐘事件發(fā)送到極性可配置的特定輸出引腳。
·具有專用的鬧鐘標(biāo)志和中斷。
五、其他
RTC功能還有很多重要功能,這里只簡單說了常用、重要的日歷和鬧鐘。更多RTC知識可參看MCU對應(yīng)的參考手冊。
最后,標(biāo)題中“不建議用STM32F1的RTC實現(xiàn)日歷功能”,就是因為F1不具備RTC功能,軟件實現(xiàn)復(fù)雜,同時也不具備一些高級功能。
額外:RTC屬于一個計時器,也可實現(xiàn)定時器的一些基本功能。
-
寄存器
+關(guān)注
關(guān)注
31文章
5295瀏覽量
119824 -
STM32
+關(guān)注
關(guān)注
2264文章
10854瀏覽量
354308 -
RTC
+關(guān)注
關(guān)注
2文章
523瀏覽量
66228
發(fā)布評論請先 登錄
相關(guān)推薦
評論