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