当前位置: 首页 > news >正文

hal_stm32_RTC函数

1设置当前时间:


调用 HAL_RTC_SetTime 来设置小时、分钟、秒和亚秒。
调用 HAL_RTC_SetDate 来设置年、月、日和星期。

HAL_StatusTypeDef HAL_RTC_SetTime(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTime, uint32_t Format);
HAL_StatusTypeDef HAL_RTC_SetDate(RTC_HandleTypeDef *hrtc, RTC_DateTypeDef *sDate, uint32_t Format);

HAL_RTC_SetTime

这个函数用于设置RTC的时间,包括小时、分钟、秒和亚秒。

  • hrtc:指向RTC_HandleTypeDef结构体的指针,该结构体包含了RTC模块的配置信息。
  • sTime:指向RTC_TimeTypeDef结构体的指针,该结构体用于存储时间信息。//自己创建
  • Format:这个参数指定了时间数据的格式,可以是RTC_FORMAT_BIN(二进制格式)或RTC_FORMAT_BCD(BCD格式)。

HAL_RTC_SetDate

这个函数用于设置RTC的日期,包括年、月、日和星期。

  • hrtc:指向RTC_HandleTypeDef结构体的指针,该结构体包含了RTC模块的配置信息。
  • sDate:指向RTC_DateTypeDef结构体的指针,该结构体用于存储日期信息。//自己创建
  • Format:这个参数指定了日期数据的格式,可以是RTC_FORMAT_BIN(二进制格式)或RTC_FORMAT_BCD(BCD格式)。

 2获取当前时间:


调用 HAL_RTC_GetTime 来获取当前时间。
调用 HAL_RTC_GetDate 来获取当前日期。
 

HAL_StatusTypeDef HAL_RTC_GetTime(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTime, uint32_t Format);
HAL_StatusTypeDef HAL_RTC_GetDate(RTC_HandleTypeDef *hrtc, RTC_DateTypeDef *sDate, uint32_t Format);

HAL_RTC_GetTime

这个函数用于获取RTC的当前时间,包括小时、分钟、秒和亚秒。

  • hrtc:指向RTC_HandleTypeDef结构体的指针,该结构体包含了RTC模块的配置信息。
  • sTime:指向RTC_TimeTypeDef结构体的指针,该结构体用于存储获取的时间信息。
  • Format:这个参数指定了时间数据的格式,可以是RTC_FORMAT_BIN(二进制格式)或RTC_FORMAT_BCD(BCD格式)。

HAL_RTC_GetDate

这个函数用于获取RTC的当前日期,包括年、月、日和星期。

  • hrtc:指向RTC_HandleTypeDef结构体的指针,该结构体包含了RTC模块的配置信息。
  • sDate:指向RTC_DateTypeDef结构体的指针,该结构体用于存储获取的日期信息。
  • Format:这个参数指定了日期数据的格式,可以是RTC_FORMAT_BIN(二进制格式)或RTC_FORMAT_BCD(BCD格式)。

  1. 3配置闹钟

    • 调用 HAL_RTC_SetAlarm 来设置闹钟A或B的时间。
    • 调用 HAL_RTC_GetAlarm 来获取闹钟的当前设置。
HAL_StatusTypeDef HAL_RTC_SetAlarm(RTC_HandleTypeDef *hrtc, RTC_AlarmTypeDef *sAlarm, uint32_t Format);
HAL_StatusTypeDef HAL_RTC_GetAlarm(RTC_HandleTypeDef *hrtc, RTC_AlarmTypeDef *sAlarm, uint32_t Alarm, uint32_t Format);

HAL_RTC_SetAlarm

这个函数用于设置RTC的闹钟时间。

  • hrtc:指向RTC_HandleTypeDef结构体的指针,该结构体包含了RTC模块的配置信息。
  • sAlarm:指向RTC_AlarmTypeDef结构体的指针,该结构体用于存储闹钟时间信息。
  • Format:这个参数指定了时间数据的格式,可以是RTC_FORMAT_BIN(二进制格式)或RTC_FORMAT_BCD(BCD格式)。

HAL_RTC_GetAlarm

这个函数用于获取RTC的当前闹钟设置。

  • hrtc:指向RTC_HandleTypeDef结构体的指针,该结构体包含了RTC模块的配置信息。
  • sAlarm:指向RTC_AlarmTypeDef结构体的指针,该结构体用于存储获取的闹钟信息。
  • Alarm:这个参数指定了要获取的闹钟,可以是RTC_ALARM_ARTC_ALARM_B
  • Format:这个参数指定了时间数据的格式,可以是RTC_FORMAT_BIN(二进制格式)或RTC_FORMAT_BCD(BCD格式)。

闹钟A(Alarm A)

闹钟A是一个功能强大的闹钟,它可以配置为在特定的日期和时间触发,或者忽略日期,仅根据时间触发。它还可以配置为在每周的特定日子触发。闹钟A可以用来实现各种复杂的闹钟功能,比如每天的闹钟、每周特定日子的闹钟或者特定日期的闹钟。

闹钟B(Alarm B)

闹钟B是一个简单的秒闹钟,它可以在设定的秒数后触发。闹钟B通常用于实现周期性的事件,比如每秒、每分钟或每小时触发一次。闹钟B不支持基于日期的触发,它只能根据时间(小时、分钟和秒)来触发。

  1. 4处理闹钟中断

    • 在闹钟中断服务函数中调用 HAL_RTC_AlarmIRQHandler 来处理闹钟中断事件。

  1. 5配置唤醒定时器

    • 调用 HAL_RTCEx_SetWakeUpTimer 来配置唤醒定时器,用于低功耗模式下的定时唤醒。
    • HAL_StatusTypeDef HAL_RTCEx_SetWakeUpTimer(RTC_HandleTypeDef *hrtc, uint32_t WakeUpCounter, uint32_t WakeUpClock);
      

    • hrtc:指向RTC_HandleTypeDef结构体的指针,该结构体包含了RTC模块的配置信息。
    • WakeUpCounter:唤醒定时器的计数值。这个值决定了唤醒定时器在唤醒事件发生之前会等待的时钟周期数。计数值的计算取决于唤醒时钟源的选择。
    • WakeUpClock:唤醒定时器的时钟源。这个参数可以是RTC_WAKEUPCLOCK_RTCCLK_DIV16RTC_WAKEUPCLOCK_RTCCLK_DIV8RTC_WAKEUPCLOCK_RTCCLK_DIV4RTC_WAKEUPCLOCK_RTCCLK_DIV2RTC_WAKEUPCLOCK_CK_SPRE_16BITSRTC_WAKEUPCLOCK_CK_SPRE_17BITS,用于选择唤醒定时器的时钟分频。
  2. 6处理唤醒定时器中断

    • 在唤醒定时器中断服务函数中调用 HAL_RTCEx_WakeUpTimerIRQHandler 来处理定时器中断事件。
  3. 7防篡改(Tamper)功能

    • 调用 HAL_RTCEx_SetTamper 来配置防篡改功能。
    • 调用 HAL_RTCEx_TamperGetStatus 来获取防篡改状态。
    • HAL_StatusTypeDef HAL_RTCEx_SetTamper(RTC_HandleTypeDef *hrtc, uint32_t Tamper, uint32_t TamperPinActiveLevel);
      HAL_StatusTypeDef HAL_RTCEx_TamperGetStatus(RTC_HandleTypeDef *hrtc, uint32_t Tamper, uint32_t *TamperStatus);
      

      HAL_RTCEx_SetTamper 

    • hrtc:指向RTC_HandleTypeDef结构体的指针,该结构体包含了RTC模块的配置信息。
    • Tamper:这个参数指定了要配置的防篡改引脚。它可以是RTC_TAMPER_1RTC_TAMPER_2RTC_TAMPER_3
    • TamperPinActiveLevel:这个参数指定了防篡改引脚的激活电平。它可以是RTC_TAMPERPIN_ACTIVE_HIGH(高电平激活)或RTC_TAMPERPIN_ACTIVE_LOW(低电平激活)。
    • HAL_RTCEx_TamperGetStatus

    • hrtc:指向RTC_HandleTypeDef结构体的指针,该结构体包含了RTC模块的配置信息。
    • Tamper:这个参数指定了要查询的防篡改输入。它可以是RTC_TAMPER_1RTC_TAMPER_2RTC_TAMPER_3RTC_TAMPER_ALL
    • TamperStatus:指向uint32_t类型的指针,用于存储获取的防篡改状态
  4. 8备份寄存器操作//一个节点为 uint32_t最大存储数字ffff  65535

    • 调用 HAL_RTCEx_BKUPWrite 来向备份寄存器写入数据。
    • 调用 HAL_RTCEx_BKUPRead 来从备份寄存器读取数据。
    • HAL_StatusTypeDef HAL_RTCEx_BKUPWrite(RTC_HandleTypeDef *hrtc, uint32_t BackupRegister, uint32_t Data)
      

    • hrtc: 一个指向RTC_HandleTypeDef结构体的指针,该结构体包含了RTC模块的配置和状态信息。
    • BackupRegister: 要写入的备份寄存器的编号。STM32微控制器通常有多个备份寄存器,编号从0开始。
    • Data: 要写入备份寄存器的数据。这个参数的类型通常是uint32_t,即无符号32位整数。
    • uint32_t HAL_RTCEx_BKUPRead(RTC_HandleTypeDef *hrtc, uint32_t BackupRegister)
      

    • hrtc: 同上,指向RTC_HandleTypeDef结构体的指针。
    • BackupRegister: 要读取的备份寄存器的编号。
  5. 9校准RTC

    • 调用 HAL_RTCEx_SetCalibrationOutPut 来配置RTC的校准输出。
    • 调用 HAL_RTCEx_SetCalibration 来设置RTC的校准值。
    • HAL_RTCEx_SetCalibrationOutPut

      HAL_StatusTypeDef HAL_RTCEx_SetCalibrationOutPut(RTC_HandleTypeDef *hrtc, uint32_t CalibOutput, uint32_t CalibOutputPolarity, uint32_t CalibOutputFrequency)
      
    • hrtc: 指向RTC_HandleTypeDef结构体的指针,包含了RTC的配置和状态信息。
    • CalibOutput: 用于启用或禁用RTC校准输出。通常是一个布尔值,例如RTC_CALIBOUTPUT_ENABLERTC_CALIBOUTPUT_DISABLE
    • CalibOutputPolarity: 用于设置校准输出的极性。可以是RTC_CALIBOUTPUT_POLARITY_HIGHRTC_CALIBOUTPUT_POLARITY_LOW
    • CalibOutputFrequency: 用于设置校准输出的频率。可以是RTC_CALIBOUTPUT_FREQ_512HZRTC_CALIBOUTPUT_FREQ_1HZ等。
    • 这个函数用于配置RTC的校准输出。校准输出是一个可以被用于外部时钟校准的信号。返回值是一个HAL_StatusTypeDef枚举类型的值,指示操作是否成功。

      HAL_RTCEx_SetCalibration

      HAL_StatusTypeDef HAL_RTCEx_SetCalibration(RTC_HandleTypeDef *hrtc, uint32_t CalibSign, uint32_t Value)
      
    • hrtc: 同上,指向RTC_HandleTypeDef结构体的指针。
    • CalibSign: 用于设置校准值的符号。可以是RTC_CALIBSIGN_POSITIVERTC_CALIBSIGN_NEGATIVE
    • Value: 要设置的校准值。这个值决定了校准的幅度。
    • 这个函数用于设置RTC的校准值。RTC校准功能允许微调时钟频率,以补偿晶体的偏差。返回值是一个HAL_StatusTypeDef枚举类型的值,指示操作是否成功。

  6. 10时间戳功能

    • 调用 HAL_RTCEx_SetTimeStamp 来配置时间戳功能。
    • 调用 HAL_RTCEx_GetTimeStamp 来获取时间戳值。

HAL_RTCEx_SetTimeStamp

HAL_StatusTypeDef HAL_RTCEx_SetTimeStamp(RTC_HandleTypeDef *hrtc, uint32_t TimeStampEdge, uint32_t RTC_TimeStampPin)
  • hrtc: 同上,指向RTC_HandleTypeDef结构体的指针。
  • TimeStampEdge: 用于设置时间戳的触发边沿。可以是RTC_TIMESTAMPEDGE_RISINGRTC_TIMESTAMPEDGE_FALLING
  • RTC_TimeStampPin: 用于选择时间戳功能的输入引脚。可以是RTC_TIMESTAMPPIN_DEFAULT

这个函数用于配置RTC的时间戳功能。时间戳功能允许在指定的引脚上检测到边沿事件时捕获当前时间。返回值是一个HAL_StatusTypeDef枚举类型的值,指示操作是否成功。

HAL_RTCEx_GetTimeStamp

HAL_StatusTypeDef HAL_RTCEx_GetTimeStamp(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTimeStamp, RTC_DateTypeDef *sTimeStampDate, uint32_t Format)
  • hrtc: 同上,指向RTC_HandleTypeDef结构体的指针。
  • sTimeStamp: 指向RTC_TimeTypeDef结构体的指针,用于存储获取的时间戳时间。
  • sTimeStampDate: 指向RTC_DateTypeDef结构体的指针,用于存储获取的时间戳日期。
  • Format: 用于指定时间戳的格式。可以是RTC_FORMAT_BINRTC_FORMAT_BCD

相关文章:

hal_stm32_RTC函数

1设置当前时间: 调用 HAL_RTC_SetTime 来设置小时、分钟、秒和亚秒。 调用 HAL_RTC_SetDate 来设置年、月、日和星期。 HAL_StatusTypeDef HAL_RTC_SetTime(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTime, uint32_t Format); HAL_StatusTypeDef HAL_RTC_SetDat…...

【大数据·Hadoop】从词频统计由浅入深介绍MapReduce分布式计算的设计思想和原理

一、引入:词频统计问题 假如我们有一亿份文档,需要统计这一亿份文档的词频。我们会怎么做,有以下思路 使用单台PC执行:能不能存的下不说,串行计算,一份一份文档读,然后进行词频统计&#xff0…...

win10建立共享文件夹和ipad共享文件

win10端设置 查看自己的局域网IP 在任意地方新建一个文件夹 打开文件夹的属性,点到共享的地方 点击高级共享 然后点击应用,确认 再回到之前哪个地方,点击共享 把Everyone的权限改为读取/写入 最后点击共享就欧克了 失败的可能原因 ipad端设置 然后回出现一个要输入用户名和…...

手机在网状态多方面重要性

手机在网状态的重要性体现在多个方面,它是现代社会中人们保持联系、获取信息以及进行日常活动不可或缺的一部分。以下是一些关于手机在网状态重要性的详细解释: 通信联系: 手机是在现代社会中进行通信联系的主要工具。当手机处于在网状态时&…...

Multitouch for Mac:手势自定义,提升工作效率

Multitouch for Mac作为一款触控板手势增强软件,其核心功能在于手势的自定义和与Mac系统的深度整合。通过Multitouch,用户可以轻松设置各种手势,如三指轻点、四指左右滑动等,来执行常见的任务,如打开应用、切换窗口、滚…...

IDEA创建springboot项目时不能选择java 8或者java 11等等版本的问题,解决方案

文章目录 1. Project JDK 和 Java 的区别2. 没有 java 8 或 java 11 等版本2.1 方案一2.2 方案二2.3 方案三 1. Project JDK 和 Java 的区别 我们在利用 idea 创建 spring boot 项目时,会有以上两个选项,这两个选项有什么区别? 答&#xff…...

SpringCloudAlibaba:4.3云原生网关higress的JWT 认证

概述 简介 JWT是一种用于双方之间传递安全信息的简洁的、URL安全的声明规范。 定义了一种简洁的,自包含的方法用于通信双方之间以Json对象的形式安全的传递信息,特别适用于分布式站点的单点登录(SSO)场景 session认证的缺点 1.安…...

【机器学习】Reinforcement Learning-强化学习基本概念

1、Q值与V值 1.1 Q值和V值的定义 Q值:也称为动作价值函数,评估动作的价值,它代表了智能体选择这个动作后,一直到最终状态奖励总和的期望,表示为Q(s, a),其中 s是状态,a是动作。 V值&#xff…...

vim编辑器---(1)vim编辑器介绍?

(1)vim编辑器介绍? 1 目录 (a)IC简介 (b)vim简介 (c)Verilog简介 (d)vim编辑器介绍? (e)结束 1 IC简介…...

解密 Unix 中的 “rc“ 后缀:自定义你的工作环境

在文件名中,rc 通常表示 “run commands”(运行命令)或者 “runtime configuration”(运行时配置)。这种命名惯例源自早期的 Unix 系统,用于指示这些文件包含了一系列要在程序运行时执行的命令或配置选项。…...

Java使用csv导出多字段大数据文件(无需写实体映射,自动遍历)

csv工具类CsvUtils 此处使用LinkedHashMap链表哈希表,实现键值中值为空时仍存在数据以及保证顺序与sql顺序一致。 package com.xxx.xxx.utils;import lombok.val; import org.springframework.util.CollectionUtils; import javax.servlet.http.HttpServletRespons…...

Redis 本机无法访问

问题 我在服务器上有两个 Redis 实例,服务端口号分别是 6379 和 6380,Redis 服务器地址假设为 10.0.0.12。其中 6379 这个实例不需要密码即可访问,6380 需要密码访问。 在正常使用几天后,本机突然无法访问 6379 这个实例&#x…...

【论文笔记】Training language models to follow instructions with human feedback B部分

Training language models to follow instructions with human feedback B 部分 回顾一下第一代 GPT-1 : 设计思路是 “海量无标记文本进行无监督预训练少量有标签文本有监督微调” 范式;模型架构是基于 Transformer 的叠加解码器(掩码自注意…...

stm32——OLED篇

技术笔记! 一、OLED显示屏介绍(了解) 1. OLED显示屏简介 二、OLED驱动原理(熟悉) 1. 驱动OLED驱动芯片的步骤 2. SSD1306工作时序 三、OLED驱动芯片简介(掌握) 1. 常用SSD1306指令 2. …...

重卡生产流程的可视化管理与优化

重卡车间可视化是一个将车间内部生产流程、设备状态及人员配置直观展现的技术手段,确保制造过程的每个环节都在最优状态下运行。 在重卡制造领域,从底盘组装、车身焊接、涂装到最终的总装和检验,每一个工作过程都至关重要,对于保…...

软考-软件工程

软件工程概述 软件工程指的是应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来解决软件 问题的工程,目的是提高软件生产率、提高软件质量、降低软件成本。 概述: 软件开发模型:指导软件开发的体系 需求分析确定软件…...

Agent AI智能体:未来社会的角色、发展路径与挑战

目录 引言 一、Agent AI智能体的发展路径 1. 技术进步与智能化水平提升 2. 应用场景拓展与普及 二、Agent AI智能体在未来社会中的角色 1. 提高生产效率与生活品质 2. 促进社会进步与发展 三、Agent AI智能体可能带来的挑战 1. 隐私与安全问题 2. 就业与社会结构变革 …...

Vue 3.x组件生命周期

一、Vue 2 VS Vue 3 从 Vue 2 升级到 Vue 3 ,在保留对 Vue 2 的生命周期支持的同时,Vue 3 也带来了一定的调整。Vue 2 的生命周期写法名称是 Options API (选项式 API ), Vue 3 新的生命周期写法名称是 Composition API (组合式 API )。 Vue 3 组件默认支持 Options A…...

onnx模型截取部分

这个是有需求的,比如有多个输入节点,我只用其中几个,或有多个输出节点,我只用其中几个。 比如这个输入,我们可以直接把transpose去掉,用类pytorch的N,C,H,W的格式输入。 还有如下输出: tran…...

中职智慧校园建设内容规划

1. 渠道先行 1) IT根底设施渠道是支撑智慧学校使用体系所必需的运转环境,是首要需求建造的内容,但是要遵从有用准则,IT设备开展很快,更新很快,不要片面追求全而新; 2) 使用根底渠道是支撑智慧学校使用体系作…...

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别

UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...

YSYX学习记录(八)

C语言&#xff0c;练习0&#xff1a; 先创建一个文件夹&#xff0c;我用的是物理机&#xff1a; 安装build-essential 练习1&#xff1a; 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后…...

蓝桥杯 2024 15届国赛 A组 儿童节快乐

P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡&#xff0c;轻快的音乐在耳边持续回荡&#xff0c;小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下&#xff0c;六一来了。 今天是六一儿童节&#xff0c;小蓝老师为了让大家在节…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

MMaDA: Multimodal Large Diffusion Language Models

CODE &#xff1a; https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA&#xff0c;它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

Java 加密常用的各种算法及其选择

在数字化时代&#xff0c;数据安全至关重要&#xff0c;Java 作为广泛应用的编程语言&#xff0c;提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景&#xff0c;有助于开发者在不同的业务需求中做出正确的选择。​ 一、对称加密算法…...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 &#x1f4dd; 在上一篇文章中&#xff0c;我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源&#xff0c;方便后续将资源打包到一个可执行文件中。 2.embed介绍 &#x1f3af; Go 1.16 引入了革命性的 embed 包&#xff0c;彻底改变了静态资源管理的…...

Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信

文章目录 Linux C语言网络编程详细入门教程&#xff1a;如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket&#xff08;服务端和客户端都要&#xff09;2. 绑定本地地址和端口&#x…...