A41 STM32_HAL库函数 之 Rtc通用驱动 所有函数的介绍及使用

本文详细介绍了STM32HAL库中的RTC通用驱动函数,包括初始化、反初始化、外设初始化/去初始化、设置时间和日期、设置闹钟、获取时间日期、中断处理等,并提供了代码示例。
摘要由CSDN通过智能技术生成

1 该驱动函数预览

序号函数名描述
1HAL_RTC_Init()初始化RTC(实时时钟)。
2HAL_RTC_DeInit()反初始化RTC。
3HAL_RTC_MspInit()初始化MCU外设相关的RTC引脚或资源。
4HAL_RTC_MspDeInit()反初始化MCU外设相关的RTC引脚或资源。
5HAL_RTC_SetTime()设置RTC的时间。
6HAL_RTC_GetTime()获取RTC的时间。
7HAL_RTC_SetDate()设置RTC的日期。
8HAL_RTC_GetDate()获取RTC的日期。
9HAL_RTC_SetAlarm()设置RTC的闹钟。
10HAL_RTC_SetAlarm_IT()设置RTC的闹钟并启用中断。
11HAL_RTC_GetAlarm()获取RTC的闹钟。
12HAL_RTC_DeactivateAlarm()停用RTC的闹钟。
13HAL_RTC_AlarmIRQHandler()RTC闹钟中断处理程序。
14HAL_RTC_AlarmAEventCallback()RTC闹钟事件A回调函数。
15HAL_RTC_PollForAlarmAEvent()轮询RTC闹钟事件A。
16HAL_RTC_GetState()获取RTC的状态。
17HAL_RTC_WaitForSynchro()等待RTC的同步。

以下是使用模板:

#include "stm32f4xx_hal.h"

int main(void) {
    // HAL初始化
    HAL_Init();
    
    // 初始化MCU外设相关的RTC引脚或资源
    HAL_RTC_MspInit();
    
    // 初始化RTC(实时时钟)
    HAL_RTC_Init();
    
    // 设置RTC的时间
    HAL_RTC_SetTime();
    
    // 设置RTC的日期
    HAL_RTC_SetDate();
    
    // 设置RTC的闹钟
    HAL_RTC_SetAlarm();
    
    // 启用RTC的闹钟中断
    HAL_RTC_SetAlarm_IT();
    
    // 进行其他操作...
    
    // 获取RTC的时间
    HAL_RTC_GetTime();
    
    // 获取RTC的日期
    HAL_RTC_GetDate();
    
    // 获取RTC的闹钟
    HAL_RTC_GetAlarm();
    
    // 反初始化RTC
    HAL_RTC_DeInit();
    
    // 反初始化MCU外设相关的RTC引脚或资源
    HAL_RTC_MspDeInit();
    
    return 0;
}

1.1 HAL_RTC_Init

函数名HAL_RTC_Init
函数原形HAL_StatusTypeDef HAL_RTC_Init(RTC_HandleTypeDef *hrtc)
功能描述初始化RTC
输入参数hrtc:RTC句柄结构体指针
输出参数
返回值HAL_StatusTypeDef:函数执行状态
先决条件
被调用函数

1.2 HAL_RTC_DeInit

函数名HAL_RTC_DeInit
函数原形HAL_StatusTypeDef HAL_RTC_DeInit(RTC_HandleTypeDef *hrtc)
功能描述复位RTC设置
输入参数hrtc:RTC句柄结构体指针
输出参数
返回值HAL_StatusTypeDef:函数执行状态
先决条件
被调用函数

1.3 HAL_RTC_MspInit

函数名HAL_RTC_MspInit
函数原形void HAL_RTC_MspInit(RTC_HandleTypeDef *hrtc)
功能描述RTC外设底层驱动初始化
输入参数hrtc:RTC句柄结构体指针
输出参数
返回值
先决条件
被调用函数

1.4 HAL_RTC_MspDeInit

函数名HAL_RTC_MspDeInit
函数原形void HAL_RTC_MspDeInit(RTC_HandleTypeDef *hrtc)
功能描述RTC外设底层驱动去初始化
输入参数hrtc:RTC句柄结构体指针
输出参数
返回值
先决条件
被调用函数

1.5 HAL_RTC_SetTime

函数名HAL_RTC_SetTime
函数原形HAL_StatusTypeDef HAL_RTC_SetTime(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTime, uint32_t Format)
功能描述设置RTC时间
输入参数 1hrtc:RTC句柄结构体指针
输入参数 2sTime:RTC时间结构体指针
输入参数 3Format:时间格式
输出参数
返回值HAL_StatusTypeDef:函数执行状态
先决条件
被调用函数

1.6 HAL_RTC_GetTime

函数名HAL_RTC_GetTime
函数原形HAL_StatusTypeDef HAL_RTC_GetTime(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTime, uint32_t Format)
功能描述获取RTC时间
输入参数 1hrtc:RTC句柄结构体指针
输入参数 2sTime:RTC时间结构体指针
输入参数 3Format:时间格式
输出参数
返回值HAL_StatusTypeDef:函数执行状态
先决条件
被调用函数

1.7 HAL_RTC_SetDate

函数名HAL_RTC_SetDate
函数原形HAL_StatusTypeDef HAL_RTC_SetDate(RTC_HandleTypeDef *hrtc, RTC_DateTypeDef *sDate)
功能描述设置RTC日期
输入参数 1hrtc:RTC句柄结构体指针
输入参数 2sDate:RTC日期结构体指针
输出参数
返回值HAL_StatusTypeDef:函数执行状态
先决条件
被调用函数

1.8 HAL_RTC_GetDate

函数名HAL_RTC_GetDate
函数原形HAL_StatusTypeDef HAL_RTC_GetDate(RTC_HandleTypeDef *hrtc, RTC_DateTypeDef *sDate)
功能描述获取RTC日期
输入参数 1hrtc:RTC句柄结构体指针
输入参数 2sDate:RTC日期结构体指针
输出参数
返回值HAL_StatusTypeDef:函数执行状态
先决条件
被调用函数

1.9 HAL_RTC_SetAlarm

函数名HAL_RTC_SetAlarm
函数原形HAL_StatusTypeDef HAL_RTC_SetAlarm(RTC_HandleTypeDef *hrtc, RTC_AlarmTypeDef *sAlarm, uint32_t Format)
功能描述设置RTC报警时间
输入参数 1hrtc:RTC句柄结构体指针
输入参数 2sAlarm:RTC报警结构体指针
输入参数 3Format:时间格式
输出参数
返回值HAL_StatusTypeDef:函数执行状态
先决条件
被调用函数

1.10 HAL_RTC_SetAlarm_IT

函数名HAL_RTC_SetAlarm_IT
函数原形HAL_StatusTypeDef HAL_RTC_SetAlarm_IT(RTC_HandleTypeDef *hrtc, RTC_AlarmTypeDef *sAlarm, uint32_t Format)
功能描述设置RTC报警时间并使能中断
输入参数 1hrtc:RTC句柄结构体指针
输入参数 2sAlarm:RTC报警结构体指针
输入参数 3Format:时间格式
输出参数
返回值HAL_StatusTypeDef:函数执行状态
先决条件
被调用函数

1.11 HAL_RTC_GetAlarm

函数名HAL_RTC_GetAlarm
函数原形HAL_StatusTypeDef HAL_RTC_GetAlarm(RTC_HandleTypeDef *hrtc, RTC_AlarmTypeDef *sAlarm, uint32_t Format)
功能描述获取RTC报警时间
输入参数 1hrtc:RTC句柄结构体指针
输入参数 2sAlarm:RTC报警结构体指针
输入参数 3Format:时间格式
输出参数
返回值HAL_StatusTypeDef:函数执行状态
先决条件
被调用函数

1.12 HAL_RTC_DeactivateAlarm

函数名HAL_RTC_DeactivateAlarm
函数原形HAL_StatusTypeDef HAL_RTC_DeactivateAlarm(RTC_HandleTypeDef *hrtc, uint32_t Alarm)
功能描述关闭RTC报警
输入参数 1hrtc:RTC句柄结构体指针
输入参数 2Alarm:RTC报警编号
输出参数
返回值HAL_StatusTypeDef:函数执行状态
先决条件
被调用函数

1.13 HAL_RTC_AlarmIRQHandler

函数名HAL_RTC_AlarmIRQHandler
函数原形void HAL_RTC_AlarmIRQHandler(RTC_HandleTypeDef *hrtc)
功能描述RTC报警中断服务程序
输入参数hrtc:RTC句柄结构体指针
输出参数
返回值
先决条件
被调用函数

1.14 HAL_RTC_AlarmAEventCallback

函数名HAL_RTC_AlarmAEventCallback
函数原形void HAL_RTC_AlarmAEventCallback(RTC_HandleTypeDef *hrtc)
功能描述RTC报警事件回调函数
输入参数hrtc:RTC句柄结构体指针
输出参数
返回值
先决条件
被调用函数

1.15 HAL_RTC_PollForAlarmAEvent

函数名HAL_RTC_PollForAlarmAEvent
函数原形HAL_StatusTypeDef HAL_RTC_PollForAlarmAEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout)
功能描述轮询RTC报警事件
输入参数 1hrtc:RTC句柄结构体指针
输入参数 2Timeout:超时时间(毫秒)
输出参数
返回值HAL_StatusTypeDef:函数执行状态
先决条件
被调用函数

1.16 HAL_RTC_GetState

函数名HAL_RTC_GetState
函数原形HAL_RTCStateTypeDef HAL_RTC_GetState(RTC_HandleTypeDef *hrtc)
功能描述获取RTC状态
输入参数hrtc:RTC句柄结构体指针
输出参数
返回值HAL_RTCStateTypeDef:RTC状态
先决条件
被调用函数

1.17 HAL_RTC_WaitForSynchro

函数名HAL_RTC_WaitForSynchro
函数原形HAL_StatusTypeDef HAL_RTC_WaitForSynchro(RTC_HandleTypeDef *hrtc)
功能描述等待RTC时钟同步
输入参数hrtc:RTC句柄结构体指针
输出参数
返回值HAL_StatusTypeDef:函数执行状态
先决条件
被调用函数

该文档修改记录:

修改时间修改说明
2024年4月30日第一次发布,介绍了该博客驱动所有函数的介绍及使用

总结

以上就是该博客驱动所有函数的介绍及使用的内容。
有不明白的地方欢迎留言;有建议欢迎留言,我后面编写文档好改进。
创作不容,如果文档对您有帮助,记得给个赞。

STM32HAL库中的RTC是指实时时钟(Real-Time Clock),用于提供精确的时间和日期信息。在STM32HAL库中,可以使用一些函数来设置和获取RTC的参数。 引用\[1\]中提到了一些设置和获取RTC参数的函数。例如,使用HAL_RTC_GetDate函数可以获取RTC的日期参数,使用HAL_RTC_GetTime函数可以获取RTC的时间参数。而使用HAL_RTC_SetTime函数可以设置RTC的时间参数,使用HAL_RTC_SetDate函数可以设置RTC的日期参数。 引用\[2\]中提到了RTC寄存器的一些信息。RTC寄存器包含了秒、分钟、小时、星期几、日期、月份和年份等信息。此外,RTC还可以提供亚秒值,并且可以自动补偿月份的天数。 引用\[3\]中提到了RTC的复位过程。除了一些特定的寄存器外,其他系统寄存器都会在系统复位或电源复位时进行异步复位。而RTC的特定寄存器(RTC_PRL、RTC_ALR、RTC_CNT和RTC_DIV)只能通过备份域复位信号进行复位。 综上所述,STM32HAL库中的RTC提供了设置和获取时间日期参数的函数,并且有相应的寄存器来存储这些参数。在复位过程中,RTC的特定寄存器可以通过备份域复位信号进行复位。 #### 引用[.reference_title] - *1* [【STM32HAL库开发教程(五)—RTC使用](https://blog.csdn.net/weixin_44064233/article/details/108326975)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [STM32日历读取,设置和输出](https://blog.csdn.net/qq_45874317/article/details/121697122)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

常驻客栈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值