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

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

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

STM32中RTC簡介及使用方式

jf_78858299 ? 來源:技術(shù)讓夢想更偉大 ? 作者:技術(shù)讓夢想更偉大 ? 2023-05-26 16:43 ? 次閱讀

STM32H750 的實(shí)時(shí)時(shí)鐘是一個(gè)獨(dú)立的 BCD 定時(shí)器/計(jì)數(shù)器,且?guī)Я巳諝v功能,它提供一個(gè)日歷時(shí)鐘、兩個(gè)可編程鬧鐘中斷,以及一個(gè)具有中斷功能的周期性可編程喚醒標(biāo)志。

此外RTC 還有自動喚醒單元,RTC還可以補(bǔ)償閏年閏月等等,還有備份區(qū)域(BKP)寫保護(hù),這些這里不細(xì)說了。

RTC 的簡化框圖

圖片

時(shí)鐘和分頻

STM32H750 的 RTC 時(shí)鐘源(RTCCLK)通過時(shí)鐘控制器,可以從 LSE、LSI、HSE 時(shí)鐘三選一,如圖所示,有兩個(gè)預(yù)分頻器RTC_PRER

ck_spre 的時(shí)鐘可由如下計(jì)算公式計(jì)算:

Fck_spre = Frtcclk/[(PREDIV_S+1)*( PREDIV_A+1)]

圖中,ck_apre 也可作為 RTC 亞秒遞減計(jì)數(shù)器(RTC_SSR)的時(shí)鐘。

Fck_apre的計(jì)算公式如下:

Fck_apre=Frtcclk/( PREDIV_A+1)

當(dāng) RTC_SSR 寄存器遞減到 0 的時(shí)候,會使用 PREDIV_S 的值重新裝載 PREDIV_S,得到亞秒時(shí)間的精度是:1/256 秒,可以得到更加精確的時(shí)間數(shù)據(jù)。

STM32CubeIDE 配置

默認(rèn)情況下是如圖

圖片

一般情況下使用LSE,這里我們需要在RCC使能

圖片

然后在RTC中使能時(shí)鐘源,如果需要日歷鬧鐘功能的可以在這里也使能上。圖片

公式如下:

RTC時(shí)鐘頻率 = RTC時(shí)鐘源 / ((Asynchronous Predivider value + 1) * (Synchronous Predivider value + 1))= 1Hz,也就是1秒

之后到時(shí)鐘配置里面可以看到已經(jīng)使能了

圖片

初始化

static void MX_RTC_Init(void)
{

  /* USER CODE BEGIN RTC_Init 0 */

  /* USER CODE END RTC_Init 0 */

  /* USER CODE BEGIN RTC_Init 1 */

  /* USER CODE END RTC_Init 1 */
  /** Initialize RTC Only
  */
  hrtc.Instance = RTC;
  hrtc.Init.HourFormat = RTC_HOURFORMAT_24;
  hrtc.Init.AsynchPrediv = 127;
  hrtc.Init.SynchPrediv = 255;
  hrtc.Init.OutPut = RTC_OUTPUT_DISABLE;
  hrtc.Init.OutPutPolarity = RTC_OUTPUT_POLARITY_HIGH;
  hrtc.Init.OutPutType = RTC_OUTPUT_TYPE_OPENDRAIN;
  hrtc.Init.OutPutRemap = RTC_OUTPUT_REMAP_NONE;
  if (HAL_RTC_Init(&hrtc) != HAL_OK)
  {
    Error_Handler();
  }
  /* USER CODE BEGIN RTC_Init 2 */

  /* USER CODE END RTC_Init 2 */

}

可以看到outline里面有很多我們需要的函數(shù),那么自己擴(kuò)展就可以使用了

圖片

This function configures the hardware resources used in this example

void HAL_RTC_MspInit(RTC_HandleTypeDef* hrtc)
{
  RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
  if(hrtc->Instance==RTC)
  {
  /* USER CODE BEGIN RTC_MspInit 0 */

  /* USER CODE END RTC_MspInit 0 */
  /** Initializes the peripherals clock
  */
    PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC;
    PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSE;
    if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
    {
      Error_Handler();
    }

    /* Peripheral clock enable */
    __HAL_RCC_RTC_ENABLE();
  /* USER CODE BEGIN RTC_MspInit 1 */

  /* USER CODE END RTC_MspInit 1 */
  }

}

最后,可以按需定制自己的實(shí)現(xiàn)方式,RTC是特別實(shí)用的一個(gè)模塊了。

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

    關(guān)注

    2263

    文章

    10849

    瀏覽量

    353905
  • 計(jì)數(shù)器
    +關(guān)注

    關(guān)注

    32

    文章

    2248

    瀏覽量

    94199
  • 定時(shí)器
    +關(guān)注

    關(guān)注

    23

    文章

    3228

    瀏覽量

    114202
收藏 人收藏

    評論

    相關(guān)推薦

    RTC簡介

    簡介RTC—real time clock,實(shí)時(shí)時(shí)鐘,主要包含日歷、鬧鐘和自動喚醒這三部分的功能,其中的日歷功能我們使用的最多。日歷包含兩個(gè) 32bit 的時(shí)間寄存器,可直接輸出時(shí)分秒,星期、月、日
    發(fā)表于 08-10 06:24

    stm32RTC時(shí)鐘源有三個(gè)方式

    stm32RTC時(shí)鐘源有三個(gè)方式(截圖來源正點(diǎn)原子資料)1.HSE分頻過來2.LSE 32.768K晶體3.LSI內(nèi)部RC振蕩器下面示例采用的是HSE時(shí)鐘源1.RTC時(shí)鐘源配置#de
    發(fā)表于 08-10 08:02

    STM32_HAL庫開發(fā)RTC的使用

    STM32_HAL庫開發(fā)RTC的使用。目錄前言一、RTC簡介1.時(shí)鐘與分頻2.開發(fā)步驟二、STM32
    發(fā)表于 08-11 07:29

    RTC實(shí)時(shí)時(shí)鐘簡介

    RTC實(shí)時(shí)時(shí)鐘1. RTC實(shí)時(shí)時(shí)鐘簡介2. 硬件設(shè)計(jì)3. 軟件設(shè)計(jì)3.1 STM32CubeMX設(shè)置3.2 MDK-ARM編程4. 下載驗(yàn)證
    發(fā)表于 08-18 06:55

    stm32時(shí)鐘硬件設(shè)計(jì)簡介

    文章目錄題目及要求硬件設(shè)計(jì)stm32時(shí)鐘簡介(1)RTC實(shí)時(shí)時(shí)鐘RTC的一般設(shè)置作品展示題目及要求1.數(shù)字鐘。使用ARM Cotex M3 核MCU的定時(shí)器產(chǎn)生秒鐘發(fā)生器。把數(shù)字鐘的秒
    發(fā)表于 08-18 06:58

    STM32 RTC時(shí)鐘介紹

    STM32 RTC 時(shí)鐘簡介
    發(fā)表于 08-18 06:32

    STM32CubeMX RTC簡介

    一、RTC簡介實(shí)時(shí)時(shí)鐘(RTC) 是一個(gè)獨(dú)立的 BCD 定時(shí)器/計(jì)數(shù)器。 RTC 提供具有可編程鬧鐘中斷功能的日歷時(shí)鐘/日歷。RTC 還包含
    發(fā)表于 08-18 06:37

    STM32RTC簡介

    STM32RTC學(xué)習(xí)筆記Mcu:STM32F103RBT61、RTC簡介RTC(Real Ti
    發(fā)表于 03-01 06:47

    STM32_RTC程序

    STM32 RTC程序,很好的學(xué)習(xí)資料,快來下載啊
    發(fā)表于 02-16 15:56 ?34次下載

    STM32單片機(jī)RTC模塊的分析

    今天給大家介紹一下 STM32 單片機(jī)的 RTC 模塊和它的后備區(qū)域寄存器,我們在使用 51 單片機(jī)的時(shí)候,如果需要用到 RTC 實(shí)時(shí)時(shí)鐘,通常會使用一顆外置的 RTC實(shí)時(shí)時(shí)鐘芯片,你
    發(fā)表于 11-11 15:51 ?36次下載

    STM32F10x_ RTC日歷

    STM32F10x_RTC日歷
    的頭像 發(fā)表于 03-25 11:39 ?3308次閱讀
    <b class='flag-5'>STM32</b>F10x_ <b class='flag-5'>RTC</b>日歷

    淺談STM32_RTC鬧鐘

    STM32_RTC鬧鐘
    的頭像 發(fā)表于 04-08 11:14 ?1w次閱讀
    淺談<b class='flag-5'>STM32_RTC</b>鬧鐘

    STM32開發(fā) -- RTC詳解

    RTC實(shí)時(shí)時(shí)鐘部分,之前也是有講到過的。Hi3516A開發(fā)–RTC電路接下來看一下STM32RTC該怎么配置一、RTC實(shí)時(shí)時(shí)鐘特征與原理查
    發(fā)表于 11-30 13:06 ?27次下載
    <b class='flag-5'>STM32</b>開發(fā) -- <b class='flag-5'>RTC</b>詳解

    STM32CubeMX系列|RTC實(shí)時(shí)時(shí)鐘

    RTC實(shí)時(shí)時(shí)鐘1. RTC實(shí)時(shí)時(shí)鐘簡介2. 硬件設(shè)計(jì)3. 軟件設(shè)計(jì)3.1 STM32CubeMX設(shè)置3.2 MDK-ARM編程4. 下載驗(yàn)證
    發(fā)表于 12-24 19:15 ?16次下載
    <b class='flag-5'>STM32</b>CubeMX系列|<b class='flag-5'>RTC</b>實(shí)時(shí)時(shí)鐘

    AN3371_如何使用STM32硬件RTC

    AN3371_如何使用STM32硬件RTC
    發(fā)表于 11-21 17:07 ?1次下載
    AN3371_如何使用<b class='flag-5'>STM32</b>硬件<b class='flag-5'>RTC</b>