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备份寄存器操作

    • 调用 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/8820.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一步成像:Hyper-SD在图像合成中的创新与应用

一、摘要: 论文:https://arxiv.org/pdf/2404.13686 代码:https://huggingface.co/ByteDance/Hyper-SD 在生成人工智能领域,扩散模型(Diffusion Models, DMs)因其出色的图像生成质量而备受关注,但…

itext5.5.13 PDF预览权限问题

PdfUtils.htFile.createNewFile() createNewFile 创建文件错误错误原因方式一方式二实例代码-生成PDF表格数据 createNewFile 创建文件错误 ht getResourceBasePath() "\\templates\\ht.pdf"; htFile new File(ht);代码含义是创建源文件路…

【大学物理】双语笔记

7.5 angular momentu(角动量)_哔哩哔哩_bilibili 6.4Energy in Rotation Motion 有质量有速度的物体有动能,是不是很有道理 international system(from French systeme international,acronym,SI)of ineria kg*m^2 转…

Google Earth Engine——删除和复制指定ASSETS中的文件信息(JavaScript 和python版本)

如果你和我一样,有大量资产上传到 Earth Engine。随着上传的资产越来越多,管理这些数据变得相当繁琐。Earth Engine 提供了一个便捷的命令行工具,可以帮助进行资产管理。虽然命令行工具非常有用,但在涉及批量数据管理任务时,它就显得力不从心了。 如果你想重新命名一个图…

上位机图像处理和嵌入式模块部署(树莓派4b和mcu的分工与配合)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 树莓派4b从广义上来说,它本身就是一个mini小电脑。我们需要什么软件,就可以apt install去下载即可。这和之前嵌入式linux开…

8G显存玩转AI换衣IDM-VTON(支持MAC、WIN)

最近AI换衣项目IDM-VTON挺火哈,我也火速体验了一把。效果也是很不错,相对OOTDiffusion的换衣效果提升了不少。 那部署的时候遇到比较大的问题是高显存占用!太吃配置了!24G的显卡占用了18G左右。于是花了点时间改成 使用了低精度模…

Python图形界面(GUI)Tkinter笔记(二):标签Label的基本应用

Label()方法用于在根窗口(根窗口可以想象成一个容器,一个画布,一个电路板;而标签Label()等等这些方法也叫控件或元件或组件,它们可以想象成装进容器的物品,或是想象成画在画布上的图形,或是想象成焊接在电路板上的电子元件)内建立“文字”或“图像”标签。 其余笔记:…

Wireshark Lua插件开发实战:应对TCP粘包问题

0. 概述 Wireshark提供了tcp_dissect_pdus()函数,可以帮助用户处理TCP粘包问题 1. 粘包问题的基本原理 TCP粘包问题本质上是数据包拼接和拆分的问题。当多个应用层数据包被封装成同一个TCP段时,就发生了粘包现象。在解析时,我们需要将粘在…

【linux kernel】杂项(misc)设备驱动总结

文章目录 一、杂项设备简介二、杂项设备API1、注册杂项设备2、注销杂项设备3、杂项设备模块助手函数 三、杂项设备初始化四、杂项设备示例五、杂项设备和字符设备 👉相关文件: drivers/char/misc.cinclude/linux/miscdevice.h 一、杂项设备简介 Linux …

吴恩达2022机器学习专项课程C2(高级学习算法)W1(神经网络):2.5 更复杂的神经网络

目录 示例填写第三层的层数1.问题2.答案 公式:计算任意层的激活值激活函数 示例 层数有4层,不包括输入层。 填写第三层的层数 1.问题 你能把第二个神经元的上标和下标填写出来吗? 2.答案 根据公式g(wxb),这里的x对应的是上…

Nacos支持哪些集群部署模式?

Nacos集群部署模式详解 在微服务架构中,服务注册与发现、配置管理以及服务治理是确保系统稳定、高效运行的关键环节。Nacos作为阿里巴巴开源的一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台,为微服务架构提供了强大的支持。 一、Na…

pdf2htmlEX:pdf 转 html,医学指南精细化处理第一步

pdf2htmlEX:pdf 转 html,医学指南精细化处理第一步 单文件转换多文件转换 代码:https://github.com/coolwanglu/pdf2htmlEX 拉取pdf2htmlEX 的 Docker: docker pull bwits/pdf2htmlex # 拉取 bwits/pdf2htmlex不用进入容器&…

mysql oceanbase数据库alter语句阻塞,解决方案

获取当前阻塞事件 select d.trx_started, a.thread_id, b.processlist_id, a.SQL_text from performance_schema.events_statements_current ajoin performance_schema.threads b on a.thread_id b.thread_idjoin information_schema.processlist c on b.processlist_id c.i…

最稳定的VPS有哪些?2024年稳定服务器推荐

最稳定的VPS有:DigitalOcean、萤光云、Vultr、Linode、AWS。 VPS的硬件质量、网络稳定性、数据中心设施、数据中心位置等都是评估VPS好坏的重要条件,接下来为一起来看看5个2024年稳定服务器厂商,大家可以自己对比一下。 2024年稳定服务器推荐…

【Vue3】setup通过defineProps获取props为null

我做的功能是父组件往子组件传值 父组件&#xff1a; <MapComponent :zbx"zbx" :zby"zby" /> 子组件&#xff1a; setup(props) {// 定义接收到的 propsconst propsObj defineProps({zbx: Number,zby: Number});console.log(propsObj) // null …

MySql表的增删查改(CRUD)

对表中的数据操作分为4大类&#xff0c;增加数据&#xff0c;删除数据&#xff0c;查找数据&#xff0c;修改数据。对表中的数据进行增删查改操作简称为CRUD。Create(增),Retrieve(查找),Updata(修改&#xff09;,Delete(删除)CRUD的操作是对表中的数据进行操作的&#xff0c;是…

【Ajax零基础教程】-----第三课 FastJson

一、Fastjson 是什么 Fastjson 是阿里巴巴的开源jSON解析库&#xff0c;它可以解析JSON格式的字符串&#xff0c;支持将javaBean序列化为JSON字符串&#xff0c;也可以从jSON字符串反序列化到javaBean。 二、Fastjson使用场景 Fastjson已经被广泛使用在各种场景&#xff0c;包…

【随笔】Git 高级篇 -- 上传命令的参数 (下)git push(三十七)

&#x1f48c; 所属专栏&#xff1a;【Git】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢迎大…

探索Java 18:未来技术趋势与革新之路

Java&#xff0c;作为一门历史悠久而又历久弥新的编程语言&#xff0c;始终站在技术发展的前沿&#xff0c;引领着软件开发的潮流。随着Java 18的发布&#xff0c;我们再次见证了这门语言的自我迭代与革新。本文将深入探讨Java 18带来的新特性、技术趋势&#xff0c;以及它如何…

Java反射机制的实战应用:探索其魅力与局限

引言 Java作为一种面向对象的编程语言&#xff0c;其灵活性和强大的功能使其成为众多开发者的首选。而Java反射机制作为Java语言中的一项重要特性&#xff0c;为程序员提供了一种在运行时检查和操作类、方法、属性等信息的能力。本文旨在深入探讨Java反射机制的实战应用&#…