新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > STM32學(xué)習(xí)之路(五)——RTC系統(tǒng)時(shí)鐘

        STM32學(xué)習(xí)之路(五)——RTC系統(tǒng)時(shí)鐘

        作者: 時(shí)間:2016-12-02 來源:網(wǎng)絡(luò) 收藏

        STM32的CPU有一個(gè)RTC引腳,用于連接電池。當(dāng)系統(tǒng)掉電后,自動(dòng)由電池給RTC供電,完成時(shí)間計(jì)數(shù)。
        對RTC的訪問是通過APB1接口進(jìn)行的。APB1剛被開啟的時(shí)候,從APB1讀來的RTC寄存器的第一個(gè)值可能是被破壞了的。因此在程序中,先等待RTC_CRL寄存器中的RSF位被硬件置1,然后才開始讀操作。對于寫操作,在每一次寫操作必須保證前一次寫操作完成,即通過查詢RTC_CR寄存器中的RTOFF狀態(tài)位,判斷RTC寄存器是否處于更新狀態(tài)中。只有當(dāng)RTOFF狀態(tài)位是1,才可以寫RTC寄存器。
        RTC模塊的寄存器實(shí)際上只有5個(gè):控制寄存器RTC_CR,預(yù)分頻裝在寄存器RTC_PRL,預(yù)分頻余數(shù)寄存器RTC_DIV,計(jì)數(shù)器寄存器RTC_CNT,鬧鐘寄存器RTC_ALR。
        第一次配置需要做的工作包括:
        1.打開電源管理和備份寄存器時(shí)鐘。注意一定要打開備份寄存器時(shí)鐘。正是通過備份寄存器寫固定的數(shù)據(jù)來判斷芯片是否是第一次使用RTC,從而在系統(tǒng)運(yùn)行時(shí)提示配置時(shí)鐘。
        2.使能RTC和備份寄存器的訪問(復(fù)位默認(rèn)是關(guān)閉的)。
        3.選擇外部低速晶體為RTC時(shí)鐘,并使能時(shí)鐘。
        4.使能秒中斷。程序里在秒中斷里置位標(biāo)志位來通知主程序顯示時(shí)間數(shù)據(jù),同時(shí)在32位計(jì)數(shù)器到23:59:59時(shí)清零。
        5.設(shè)置RTC預(yù)分頻器,產(chǎn)生1秒信號計(jì)算公式。FTR_CLK=FRTCCLK/(PRL+1)設(shè)置32767產(chǎn)生秒信號。
        通過RTC_GetConter();獲取計(jì)數(shù)值,然后把這個(gè)計(jì)數(shù)值分別用小時(shí)、分鐘、秒來表示,最后還需要調(diào)用Printf函數(shù)把它顯示在超級終端窗口或相應(yīng)的其它顯示函數(shù)。

        本文引用地址:http://www.104case.com/article/201612/325073.htm

        效果圖見http://v.youku.com/v_show/id_XNTk5MTM4MjY4.html,比較有意思的一段小視頻。重點(diǎn)看后面的時(shí)間是按秒更新的。



        關(guān)鍵詞: STM32RTC系統(tǒng)時(shí)

        評論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 鹤壁市| 东乌珠穆沁旗| 大兴区| 绥宁县| 彭泽县| 武冈市| 台前县| 德阳市| 北京市| 镇江市| 通山县| 沈阳市| 汤原县| 芦溪县| 宝丰县| 曲靖市| 名山县| 广州市| 南城县| 乐安县| 开鲁县| 高清| 紫阳县| 中山市| 嘉禾县| 绥棱县| 棋牌| 镇雄县| 华容县| 武邑县| 汨罗市| 长阳| 邵武市| 柞水县| 阿尔山市| 封开县| 荃湾区| 曲沃县| 五河县| 英德市| 耒阳市|