有讀者問:如何在STM32F1上實現(xiàn)日歷功能?
一、關(guān)于RTC
RTC:Real TimeClock,實時時鐘,記錄當前時間的計算機時鐘。
RTC 不僅應(yīng)用于個人計算機、服務(wù)器和嵌入式系統(tǒng),幾乎所有需要準確計時的電子設(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ù)字校準、同步、時間戳和高級入侵檢測等。
三、日歷功能
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ā)送到極性可配置的特定輸出引腳。
·具有專用的鬧鐘標志和中斷。
五、其他
RTC功能還有很多重要功能,這里只簡單說了常用、重要的日歷和鬧鐘。更多RTC知識可參看MCU對應(yīng)的參考手冊。
最后,標題中“不建議用STM32F1的RTC實現(xiàn)日歷功能”,就是因為F1不具備RTC功能,軟件實現(xiàn)復雜,同時也不具備一些高級功能。
額外:RTC屬于一個計時器,也可實現(xiàn)定時器的一些基本功能。
-
寄存器
+關(guān)注
關(guān)注
31文章
5426瀏覽量
123683 -
STM32
+關(guān)注
關(guān)注
2290文章
11018瀏覽量
362959 -
RTC
+關(guān)注
關(guān)注
2文章
614瀏覽量
68443
發(fā)布評論請先 登錄
小馬哥STM32F1主控720空心杯四軸飛行器資料(包含源代碼和相關(guān)教程)
小安派BW21-CBV-Kit教程——基礎(chǔ)RTC例程與簡易RTC鬧鐘

STM32F1能使用11.059Mhz外部晶振嗎?怎么設(shè)置系統(tǒng)頻率和PLL?
Arduino中可以使用STM32F1或者STM32F4系列芯片的內(nèi)置看門狗嗎?
使用Keil開發(fā)環(huán)境和STM32F103RCT6實現(xiàn)RTC功能時,總提示\"RTC_InitTypeDef\" is undefined,為什么?
【瑞薩RA2L1入門學習】03. RTC 時鐘日歷&鬧鐘&周期性中斷
如何利用RTC外設(shè)實現(xiàn)萬年歷功能
【瑞薩RA2L1入門學習】06、低功耗桌面日歷擺件的實現(xiàn)
【瑞薩RA2L1入門學習】03、RTC日歷及串口設(shè)置時間
通過stm32F1單片機的PWM功能產(chǎn)生兩個時鐘,從Dout讀取到的數(shù)據(jù)位都是0,這個是怎么回事呢?
使用STM32F1輸入捕獲功能時,TIM6和TIM7無法實現(xiàn)輸入捕獲是哪里的問題?
【GD32 MCU 入門教程】GD32 MCU 常見外設(shè)介紹(14)RTC 模塊介紹

評論