当前位置: 首页 > 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
http://www.lryc.cn/news/346848.html

相关文章:

  • 【大数据·Hadoop】从词频统计由浅入深介绍MapReduce分布式计算的设计思想和原理
  • win10建立共享文件夹和ipad共享文件
  • 手机在网状态多方面重要性
  • Multitouch for Mac:手势自定义,提升工作效率
  • IDEA创建springboot项目时不能选择java 8或者java 11等等版本的问题,解决方案
  • SpringCloudAlibaba:4.3云原生网关higress的JWT 认证
  • 【机器学习】Reinforcement Learning-强化学习基本概念
  • vim编辑器---(1)vim编辑器介绍?
  • 解密 Unix 中的 “rc“ 后缀:自定义你的工作环境
  • Java使用csv导出多字段大数据文件(无需写实体映射,自动遍历)
  • Redis 本机无法访问
  • 【论文笔记】Training language models to follow instructions with human feedback B部分
  • stm32——OLED篇
  • 重卡生产流程的可视化管理与优化
  • 软考-软件工程
  • Agent AI智能体:未来社会的角色、发展路径与挑战
  • Vue 3.x组件生命周期
  • onnx模型截取部分
  • 中职智慧校园建设内容规划
  • GitLab CI/CD的原理及应用详解(一)
  • Python混淆矩阵用例
  • 【负载均衡式在线OJ项目day6】源文件路由功能及文件版题库构建
  • 841.钥匙和房间
  • 【OceanBase 系列】—— 什么是冻结和转储
  • 智慧园区能耗管控系统,3D可视化开发都需要哪些技术栈?
  • Spring之推断构造方法源码解析
  • 【计算机网络】计算机网络的定义和分类
  • 天机学堂—学习辅助功能(含场景问答和作业)
  • Stable Diffusion AI绘画
  • linux性能监控之sar