Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >STM32中RTC简介以及使用方法

STM32中RTC简介以及使用方法

作者头像
李肖遥
发布于 2022-12-22 02:38:58
发布于 2022-12-22 02:38:58
87900
代码可运行
举报
运行总次数:0
代码可运行

素材来源:技术让梦想更伟大

作者:李肖遥

STM32H750 的实时时钟是一个独立的 BCD 定时器/计数器,且带了日历功能,它提供一个日历时钟、两个可编程闹钟中断,以及一个具有中断功能的周期性可编程唤醒标志。

此外RTC 还有自动唤醒单元,RTC还可以补偿闰年闰月等等,还有备份区域(BKP)写保护,这些这里不细说了。

RTC 的简化框图

时钟和分频

STM32H750 的 RTC 时钟源(RTCCLK)通过时钟控制器,可以从 LSE、LSI、HSE 时钟三选一,如图所示,有两个预分频器RTC_PRER

ck_spre 的时钟可由如下计算公式计算:

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

图中,ck_apre 也可作为 RTC 亚秒递减计数器(RTC_SSR)的时钟。

Fck_apre的计算公式如下:

Fck_apre=Frtcclk/( PREDIV_A+1)

当 RTC_SSR 寄存器递减到 0 的时候,会使用 PREDIV_S 的值重新装载 PREDIV_S,得到亚秒时间的精度是:1/256 秒,可以得到更加精确的时间数据。

STM32CubeIDE 配置

默认情况下是如图

一般情况下使用LSE,这里我们需要在RCC使能

然后在RTC中使能时钟源,如果需要日历闹钟功能的可以在这里也使能上。

公式如下:

RTC时钟频率 = RTC时钟源 / ((Asynchronous Predivider value + 1) * (Synchronous Predivider value + 1))= 1Hz,也就是1秒

之后到时钟配置里面可以看到已经使能了

初始化

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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里面有很多我们需要的函数,那么自己扩展就可以使用了

This function configures the hardware resources used in this example

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 */
  }

}

可以按需定制自己的实现方式,RTC是特别实用的一个模块了。

‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧ END ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-10-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 技术让梦想更伟大 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
STM32 RTC时钟
STM32 的 RTC 外设是一个掉电后还继续运行的定时器。 这里的掉电是指当主电源断开的时候,可以接上锂电池给RTC供电。RTC时钟具有计时和触发中断的功能,但是它比起其它外设强大在它的掉电可持续运行特性。
AnieaLanie
2021/12/08
1.6K0
STM32CubeMX | 40-实时时钟RTC的使用(日历和闹钟)
本篇详细的记录了如何使用STM32CubeMX配置STM32L431RCT6的 RTC 外设。
Mculover666
2021/07/23
5.1K1
STM32CubeMX | 40-实时时钟RTC的使用(日历和闹钟)
STM32如何计算RTC时钟异步预分频和同步预分频
实时时钟 (RTC) 是一个独立的 BCD 定时器/计数器,提供具有可编程闹钟中断功能的日历时钟/日历,可用于管理所有低功耗模式的自动唤醒单元。在配置RTC时钟时预分频器是关键指标,通过配置预分频器可以自定义计数周期。
不脱发的程序猿
2021/01/20
1.4K0
【STM32H7】第3章 ThreadX USBX协议栈移植到STM32H7
教程更新中:http://www.armbbs.cn/forum.php?mod=viewthread&tid=108546 第3章 ThreadX USBX协议栈移植到STM32H7 本章节为大
Simon223
2021/10/20
7250
【STM32H7教程】第16章 STM32H7必备的HAL库API(重要)
本章教程为大家讲解制作一个STM32H7的例子所需的最基本API函数,对于一些常用的API函数,一定要熟练掌握这些函数都是实现了什么功能,不常用的函数有个了解即可,用到的时候再去学。
Simon223
2019/05/15
2.4K0
【STM32H7教程】第16章       STM32H7必备的HAL库API(重要)
【STM32H7教程】第12章 STM32H7的HAL库框架设计学习
完整教程下载地址:http://forum.armfly.com/forum.php?mod=viewthread&tid=86980 第12章       STM32H7的HAL库框架设计学习 通过
Simon223
2019/05/10
1K0
【STM32H7教程】第12章    STM32H7的HAL库框架设计学习
STM32定时器US延时
STM32中有众多定时器,如图 25.1.1 所示。按所处的位置可分为核内定时器和外设定时器。核内定时器就是前面 “第11章 基础重点—SysTick定时器”介绍的SysTick定时器,该定时器位于Cortex-M3内核中。外设定时器由芯片半导体厂商设计,如STM32系列,包含常规定时器和专用定时器。常规定时器是本章重点介绍的介绍的内容,专用定时器在后面几章讲解。
韦东山
2022/05/09
1.4K0
STM32定时器US延时
STM32定时器—PWM 输出
PWM(Pulse Width Modulation,脉冲宽度调制)。是一种利用微处理器的数字输出来对模拟电路进行控制的技术,广泛应用在测量、通信、功率控制等诸多领域。
韦东山
2022/05/09
1.7K0
STM32定时器—PWM 输出
【STM32】CubeMX+HAL 点亮LED
【1.2】 在 STM32CubeMX 的主界面中,点击 “New Project” 功能框中的 “ACCESS TO MCU SELECTOR” 功能按钮,从 MCU 开始新的工程。
AXYZdong
2020/11/05
1.1K0
【STM32H7教程】第32章 STM32H7的TIM定时器基础知识和HAL库API
本章节为大家讲解TIM1 – TIM17(STM32H7没有TIM9,TIM10和TIM11)共计14个定时器的基础知识和对应的HAL库API。
Simon223
2019/07/27
3.7K0
基于STM32的智能粮仓系统设计
随着粮食质量要求的提高和储存方式的改变,对于粮仓环境的监测和控制也愈发重要。在过去的传统管理中,通风、防潮等操作需要定期人工进行,精度和效率都较低。而利用嵌入式技术和智能控制算法进行监测和控制,不仅能够实时掌握环境变化,还可以快速做出响应。
DS小龙哥
2023/07/08
8680
基于STM32的智能粮仓系统设计
STM32通信硬件 I2C
STM32F103系列的I²C控制器,可作为通信主机或从机,因此有四种工作模式可选择:主机发送模式、主机接收模式、从机发送模式、从机接收模式。
韦东山
2022/05/09
1.2K0
STM32通信硬件 I2C
用 STM32 通用定时器做微秒延时函数(STM32CubeMX版本)
在使用 DHT11 的时候,时序通信需要微秒来操作,STM32CubeMX 自带一个系统时钟,但是实现的是毫秒级别的。因此就自己用通用计时器实现一个。
嵌入式小屋
2022/04/27
3.9K0
用 STM32 通用定时器做微秒延时函数(STM32CubeMX版本)
STM32CubeMX学习笔记(26)——SDIO接口使用(读写SD卡)
SD卡除了SD-Micro卡之外,还有两种分别是SD和mini-SD,他们分别长这样:
全栈程序员站长
2022/11/10
3.7K0
STM32CubeMX学习笔记(26)——SDIO接口使用(读写SD卡)
【STM32H7教程】第63章 STM32H7的高分辨率定时器HRTIM基础知识和HAL库API
完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第63章       STM32H7的高分辨率定时器HRTIM基础知识
Simon223
2020/03/03
2.9K0
【STM32】CubeMX+HAL 输出PWM
前面的一些基础步骤可参见:【STM32】CubeMX+HAL 点亮LED 的【1.1】~【1.6】步骤。
AXYZdong
2020/11/05
2.7K0
【STM32H7教程】第46章 STM32H7的ADC应用之DMA方式多通道采样
完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第46章       STM32H7的ADC应用之DMA方式多通道采样
Simon223
2020/02/14
3.5K0
【STM32H7教程】第37章 STM32H7的LPTIM低功耗定时器应用之PWM
完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第37章       STM32H7的LPTIM低功耗定时器应用之PW
Simon223
2020/01/14
1.3K0
【STM32H7教程】第37章    STM32H7的LPTIM低功耗定时器应用之PWM
STM32之CAN通信
控制器局域网(Controller Area Network,CAN),是由德国BOSCH(博世)公司开发,是目前国际上应用最为广泛的现场总线之一。其特点是可拓展性好,可承受大量数据的高速通信,高度稳定可靠,因此常应用于汽车电子领域、工业自动化、医疗设备等高要求环境。
韦东山
2022/05/09
1.7K0
STM32之CAN通信
【STM32F429开发板用户手册】第16章 STM32F429必备的HAL库API(重要)
本章教程为大家讲解制作一个STM32F4的例子所需的最基本API函数,对于一些常用的API函数,一定要熟练掌握这些函数都是实现了什么功能,不常用的函数有个了解即可,用到的时候再去学。
Simon223
2020/07/14
9060
【STM32F429开发板用户手册】第16章       STM32F429必备的HAL库API(重要)
推荐阅读
相关推荐
STM32 RTC时钟
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验