0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32入門(mén)學(xué)習(xí)筆記之RTC實(shí)驗(yàn)(上)

jf_78858299 ? 來(lái)源:滑小稽筆記 ? 作者:電子技術(shù)園地 ? 2023-02-16 11:22 ? 次閱讀

12.1 概述

實(shí)時(shí)時(shí)鐘Real TimeClock(簡(jiǎn)稱RTC),實(shí)時(shí)時(shí)鐘芯片是日常生活中應(yīng)用最為廣泛的消費(fèi)類電子產(chǎn)品之一。它為人們提供精確的實(shí)時(shí)時(shí)間,或者為電子系統(tǒng)提供精確的時(shí)間基準(zhǔn),目前實(shí)時(shí)時(shí)鐘芯片大多采用精度較高的晶體振蕩器作為時(shí)鐘源。有些時(shí)鐘芯片為了在主電源掉電時(shí),還可以工作,需要外加電池供電。

現(xiàn)在的ARM體系處理器基本都會(huì)內(nèi)置RTC模塊,STM32也不例外。STM32內(nèi)部RTC結(jié)構(gòu)如下圖所示。

圖片

RTC主要有兩個(gè)部分組成,第一部分的APB1接口用來(lái)和APB1總線相連,此單元還包含一組16位寄存器,可通過(guò)APB1總線對(duì)其進(jìn)行讀寫(xiě)操作。另一部分由一組可編程計(jì)數(shù)器組成,分成兩個(gè)主要模塊。第一個(gè)模塊是RTC的預(yù)分頻模塊,它可編程產(chǎn)生最長(zhǎng)為1秒的RTC時(shí)間基準(zhǔn)TR_CLK。RTC的預(yù)分頻模塊包含了一個(gè)20位的可編程分頻器。如果在RTC_CR寄存器中設(shè)置了相應(yīng)的允許位,則在每個(gè)TR_CLK周期中RTC產(chǎn)生一個(gè)中斷。第二個(gè)模塊是一個(gè)32位的可編程計(jì)數(shù)器,可被初始化為當(dāng)前的系統(tǒng)時(shí)間。系統(tǒng)時(shí)間按TR_CLK周期累加并與存儲(chǔ)在RTC_ALR寄存器中的可編程時(shí)間相比較,如果RTC_CR控制寄存器中設(shè)置了相應(yīng)允許位,比較匹配時(shí)將產(chǎn)生一個(gè)鬧鐘中斷。

RTC模塊和時(shí)鐘配置系統(tǒng)是在后備區(qū)域,即在系統(tǒng)復(fù)位或從待機(jī)模式喚醒后RTC的設(shè)置和時(shí)間維持不變。但是在系統(tǒng)復(fù)位后,會(huì)自動(dòng)禁止訪問(wèn)后備寄存器和RTC,以防止對(duì)后備區(qū)域的意外寫(xiě)操作。所以在要設(shè)置時(shí)間之前,先要取消備份區(qū)域?qū)懕Wo(hù)。

12.2 相關(guān)寄存器

12.2.1 控制寄存器1:RTC_CRH

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
- OWIE ALRIE SECIE

Bit 2:允許溢出中斷位

0:屏蔽溢出中斷

1:允許溢出中斷

Bit 1:允許鬧鐘中斷

0:屏蔽鬧鐘中斷

1:允許鬧鐘中斷

Bit 0:允許秒中斷

0:屏蔽秒中斷

1:允許秒中斷

12.2.2 控制寄存器2:RTC_CRL

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
- RTOFF CNF RSF OWF ALRF SECF

Bit 5:RTC操作關(guān)閉

0:寫(xiě)操作未完成

1:操作已完成

Bit 4:配置標(biāo)志

0:退出配置模式

1:進(jìn)入配置模式

Bit 3:RTC同步標(biāo)志

RTC_CNT寄存器和RTC_DIV寄存器由軟件更新或清0時(shí),此位由硬件置1。在APB1復(fù)位后,或APB1時(shí)鐘停止后,此位必須由軟件清0。要進(jìn)行任何的讀操作之前,用戶程序必須等待這位被硬件置1

0:寄存器尚未被同步

1:寄存器已經(jīng)被同步

Bit 2:溢出標(biāo)志

當(dāng)32位可編程計(jì)數(shù)器溢出時(shí),此位由硬件置1。此位只能由軟件清0

0:無(wú)溢出

1:32位可編程計(jì)數(shù)器溢出

Bit 1:鬧鐘標(biāo)志

當(dāng)32位可編程計(jì)數(shù)器達(dá)到RTC_ALR寄存器所設(shè)置的預(yù)定值,此位由硬件置1。此位只能由軟件清0。

0:無(wú)鬧鐘

1:有鬧鐘

Bit 0:秒標(biāo)志

當(dāng)32位可編程預(yù)分頻器溢出時(shí),此位由硬件置1,同時(shí)RTC計(jì)數(shù)器加1。此位只能由軟件清除。

0:秒標(biāo)志條件不成立

1:秒標(biāo)志條件成立

12.2.3 預(yù)分頻裝載寄存器1:RTC_PRLH

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
- PRL[19:16]

Bit 3~Bit 0:RTC預(yù)分頻裝載值高位

12.2.4 預(yù)分頻裝載寄存器2:RTC_PRLL

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PRL[15:0]

Bit 15~Bit 0:RTC預(yù)分頻裝載值低位

注:RTC時(shí)鐘頻率根據(jù)預(yù)分頻寄存器的值有如下計(jì)算公式。

圖片

其中RTCCLK代表的RTC的輸入時(shí)鐘,一般默認(rèn)32.768kHz。

12.3 實(shí)驗(yàn)例程

功能:讀取RTC的日期顯示在LCD上面。

(1)創(chuàng)建rtc.h文件輸入以下代碼。

/*********************************************************************************************************
                RTC    驅(qū)    動(dòng)    文    件
*********************************************************************************************************/
#ifndef _RTC_H_
#define _RTC_H_


#include "sys.h"
/*********************************************************************************************************
                  數(shù)    據(jù)    結(jié)    構(gòu)
*********************************************************************************************************/
typedef struct
{
  u8 year;                    //年
  u8 month;                    //月
  u8 date;                    //日
  u8 hour;                    //時(shí)
  u8 minute;                    //分
  u8 second;                    //秒
}RTC_Data;
extern RTC_Data RTC_Time;
/*********************************************************************************************************
                  函    數(shù)    列    表
*********************************************************************************************************/
void RTC_Init( void ) ;                                          //RTC初始化
void RTC_Set_Time( u8 year, u8 month, u8 date, u8 hour, u8 minute, u8 second ) ;            //設(shè)置時(shí)間
void RTC_Get_Time( void ) ;                                        //獲取時(shí)間


#endif
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 電源
    +關(guān)注

    關(guān)注

    184

    文章

    17426

    瀏覽量

    248868
  • 晶體振蕩器
    +關(guān)注

    關(guān)注

    9

    文章

    611

    瀏覽量

    28990
  • 時(shí)鐘芯片
    +關(guān)注

    關(guān)注

    2

    文章

    242

    瀏覽量

    39791
  • RTC
    RTC
    +關(guān)注

    關(guān)注

    2

    文章

    519

    瀏覽量

    66151
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    STM32學(xué)習(xí)筆記(初學(xué)者快速入門(mén))

    本帖最后由 eehome 于 2013-1-5 10:08 編輯 STM32學(xué)習(xí)筆記(初學(xué)者快速入門(mén))
    發(fā)表于 08-18 21:35

    STM32學(xué)習(xí)筆記(初學(xué)者快速入門(mén))

    STM32學(xué)習(xí)筆記(初學(xué)者快速入門(mén))資料來(lái)自網(wǎng)絡(luò)資源
    發(fā)表于 06-11 20:23

    STM32RTC實(shí)時(shí)時(shí)鐘實(shí)驗(yàn)講解,從入門(mén)到放棄 精選資料分享

    STM32RTC實(shí)時(shí)時(shí)鐘實(shí)驗(yàn)講解,從入門(mén)到放棄。文章目錄STM32RTC實(shí)時(shí)時(shí)鐘實(shí)驗(yàn)講解,從入門(mén)
    發(fā)表于 08-03 06:38

    Stm32RTC時(shí)鐘

    Stm32RTC時(shí)鐘1.時(shí)鐘框圖:先將之前沒(méi)做筆記的時(shí)候的時(shí)間框架圖補(bǔ)上:同樣源自正點(diǎn)原子的PPT,圖中紅框的部分為RTC的時(shí)鐘源,有三種
    發(fā)表于 08-11 07:04

    CubeMX入門(mén)STM32 HAL庫(kù)的學(xué)習(xí)筆記

    STM32CubeMX是ST官方開(kāi)發(fā)的一款很好用的軟件,主要用于STM32系列單片機(jī)的硬件驅(qū)動(dòng)層的配置。網(wǎng)上也有一些關(guān)于STM32CubeMX的相關(guān)教程,對(duì)它的相關(guān)操作進(jìn)行說(shuō)明。從今天起,小柯希望能將自己從CubeMX
    發(fā)表于 08-17 06:55

    STM32入門(mén)學(xué)習(xí)筆記 精選資料分享

    STM32入門(mén)學(xué)習(xí)筆記本文為筆者入門(mén)學(xué)習(xí)過(guò)程的記錄,只是零散的記錄了一些個(gè)人不太懂得,覺(jué)得需要經(jīng)
    發(fā)表于 08-24 07:56

    DSPRTC教程

    DSPRTC教程,很好的DSP自學(xué)資料,快來(lái)學(xué)習(xí)吧。
    發(fā)表于 04-15 14:14 ?14次下載

    STM32各模塊學(xué)習(xí)筆記

    STM32個(gè)模塊學(xué)習(xí)筆記 目錄 STM32筆記之一 中斷優(yōu)先級(jí).......................................
    發(fā)表于 11-30 03:32 ?3120次閱讀

    STM32學(xué)習(xí)筆記1——軟硬件基礎(chǔ)keil5編程與GPIO開(kāi)發(fā)

    STM32學(xué)習(xí)筆記1——軟硬件基礎(chǔ)keil5編程與GPIO開(kāi)發(fā)
    發(fā)表于 11-30 12:36 ?4次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b>1——軟硬件基礎(chǔ)<b class='flag-5'>之</b>keil5編程與GPIO開(kāi)發(fā)

    STM32學(xué)習(xí)——入門(mén)小項(xiàng)目

    STM32學(xué)習(xí)——入門(mén)小項(xiàng)目
    發(fā)表于 12-07 17:21 ?72次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>學(xué)習(xí)</b>——<b class='flag-5'>入門(mén)</b>小項(xiàng)目

    STM32內(nèi)部RTC時(shí)鐘脈沖實(shí)驗(yàn)參考程序

    STM32內(nèi)部RTC時(shí)鐘脈沖實(shí)驗(yàn)參考程序
    發(fā)表于 12-30 10:45 ?13次下載

    STM32入門(mén)學(xué)習(xí)筆記基礎(chǔ)定時(shí)器實(shí)驗(yàn)

    STM32內(nèi)部共有8個(gè)定時(shí)器,其中Timer1和Timer8屬于高級(jí)定時(shí)器,Timer2~Timer5屬于通用定時(shí)器,8個(gè)定時(shí)器的資源獨(dú)立,互不影響。
    的頭像 發(fā)表于 02-16 10:14 ?1124次閱讀
    <b class='flag-5'>STM32</b><b class='flag-5'>入門(mén)</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b><b class='flag-5'>之</b>基礎(chǔ)定時(shí)器<b class='flag-5'>實(shí)驗(yàn)</b>(<b class='flag-5'>上</b>)

    STM32入門(mén)學(xué)習(xí)筆記RTC實(shí)驗(yàn)(下)

    實(shí)時(shí)時(shí)鐘Real TimeClock(簡(jiǎn)稱RTC),實(shí)時(shí)時(shí)鐘芯片是日常生活中應(yīng)用最為廣泛的消費(fèi)類電子產(chǎn)品之一。它為人們提供精確的實(shí)時(shí)時(shí)間,或者為電子系統(tǒng)提供精確的時(shí)間基準(zhǔn),目前實(shí)時(shí)時(shí)鐘芯片大多采用精度較高的晶體振蕩器作為時(shí)鐘源。有些時(shí)鐘芯片為了在主電源掉電時(shí),還可以工作,需要外加電池供電。
    的頭像 發(fā)表于 02-16 11:22 ?495次閱讀

    STM32學(xué)習(xí)筆記RTC實(shí)時(shí)時(shí)鐘1

    STM32 的實(shí)時(shí)時(shí)鐘(RTC)是一個(gè)獨(dú)立的定時(shí)器。 STM32RTC 模塊擁有一組連續(xù)計(jì)數(shù)的計(jì)數(shù)器,在相應(yīng)軟件配置下,可提供時(shí)鐘日歷的功能。修改計(jì)數(shù)器的值可以重新設(shè)置系統(tǒng)當(dāng)前的
    的頭像 發(fā)表于 05-26 14:26 ?1794次閱讀
    <b class='flag-5'>STM32</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b><b class='flag-5'>之</b><b class='flag-5'>RTC</b>實(shí)時(shí)時(shí)鐘1

    STM32學(xué)習(xí)筆記RTC實(shí)時(shí)時(shí)鐘2

    STM32 的實(shí)時(shí)時(shí)鐘(RTC)是一個(gè)獨(dú)立的定時(shí)器。 STM32RTC 模塊擁有一組連續(xù)計(jì)數(shù)的計(jì)數(shù)器,在相應(yīng)軟件配置下,可提供時(shí)鐘日歷的功能。修改計(jì)數(shù)器的值可以重新設(shè)置系統(tǒng)當(dāng)前的
    的頭像 發(fā)表于 05-26 14:26 ?1083次閱讀
    <b class='flag-5'>STM32</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b><b class='flag-5'>之</b><b class='flag-5'>RTC</b>實(shí)時(shí)時(shí)鐘2