14 STM32标准库函数 之 实时时钟(RTC) 所有函数的介绍及使用
- [1 RTC的库函数预览](#1 RTC的库函数预览)
-
- [1.1 函数RTC_ITConfig](#1.1 函数RTC_ITConfig)
- [1.2 函数RTC_EnterConfigMode](#1.2 函数RTC_EnterConfigMode)
- [1.3 函数RTC_ExitConfigMode](#1.3 函数RTC_ExitConfigMode)
- [1.4 函数RTC_GetCounter](#1.4 函数RTC_GetCounter)
- [1.5 函数RTC_SetCounter](#1.5 函数RTC_SetCounter)
- [1.6 函数RTC_SetPrescaler](#1.6 函数RTC_SetPrescaler)
- [1.7 函数RTC_ SetAlarm](#1.7 函数RTC_ SetAlarm)
- [1.8 函数RTC_GetDivider](#1.8 函数RTC_GetDivider)
- [1.9 函数RTC_WaitForLastTask](#1.9 函数RTC_WaitForLastTask)
- [1.10 函数RTC_WaitForSynchro](#1.10 函数RTC_WaitForSynchro)
- [1.11 函数RTC_ GetFlagStatus](#1.11 函数RTC_ GetFlagStatus)
- [1.12 函数RTC_ClearFlag](#1.12 函数RTC_ClearFlag)
- [1.13 函数RTC_GetITStatus](#1.13 函数RTC_GetITStatus)
- [1.14 函数RTC_ClearITPendingBit](#1.14 函数RTC_ClearITPendingBit)
- 该文档修改记录:
- 总结
1 RTC的库函数预览
函数名 | 描述 |
---|---|
RTC_ITConfig | 使能或者失能指定的 RTC 中断 |
RTC_EnterConfigMode | 进入 RTC 配置模式 |
RTC_ExitConfigMode | 退出 RTC 配置模式 |
RTC_GetCounter | 获取 RTC 计数器的值 |
RTC_SetCounter | 设置 RTC 计数器的值 |
RTC_SetPrescaler | 设置 RTC 预分频的值 |
RTC_SetAlarm | 设置 RTC 闹钟的值 |
RTC_GetDivider | 获取 RTC 预分频分频因子的值 |
RTC_WaitForLastTask | 等待最近一次对 RTC 寄存器的写操作完成 |
RTC_WaitForSynchro | 等待 RTC 寄存器(RTC_CNT, RTC_ALR and RTC_PRL)与 RTC 的 APB 时钟同步 |
RTC_GetFlagStatus | 检查指定的 RTC 标志位设置与否 |
RTC_ClearFlag | 清除 RTC 的待处理标志位 |
RTC_GetITStatus | 检查指定的 RTC 中断发生与否 |
RTC_ClearITPendingBit | 清除 RTC 的中断待处理位 |
1.1 函数RTC_ITConfig
函数名 | RTC_ITConfig |
---|---|
函数原形 | void RTC_ITConfig(u16 RTC_IT, FunctionalState NewState) |
功能描述 | 使能或者失能指定的 RTC 中断 |
输入参数 1 | RTC_IT:待使能或者失能的 RTC 中断源 |
参阅 Section:RTC_IT 查阅更多该参数允许取值范围 | |
输入参数 2 | NewState:RTC 中断的新状态 |
这个参数可以取:ENABLE 或者 DISABLE | |
输出参数 | 无 |
返回值 | 无 |
先决条件 | 在使用本函数前必须先调用函数 RTC_WaitForLastTask(),等待标志位 RTOFF 被设置 |
被调用函数 | 无 |
RTC_IT
输入参数 RTC_IT 使能或者失能 RTC 的中断。
RTC_IT | 描述 |
---|---|
RTC_IT_OW | 溢出中断使能 |
RTC_IT_ALR | 闹钟中断使能 |
RTC_IT_SEC | 秒中断使能 |
例:
/* Wait until last write operation on RTC registers is terminated /
RTC_WaitForLastTask();
/ Alarm interrupt enabled */ RTC_ITConfig(RTC_IT_ALR, ENABLE);
1.2 函数RTC_EnterConfigMode
函数名 | RTC_EnterConfigMode |
---|---|
函数原形 | void RTC_EnterConfigMode(void) |
功能描述 | 进入 RTC 配置模式 |
输入参数 | 无 |
输出参数 | 无 |
返回值 | 无 |
先决条件 | 无 |
被调用函数 | 无 |
例:
/* Enable the configuration mode */
RTC_EnterConfigMode();
1.3 函数RTC_ExitConfigMode
函数名 | RTC_ExitConfigMode |
---|---|
函数原形 | void RTC_ExitConfigMode(void) |
功能描述 | 该函数用于退出RTC配置模式,将RTC从配置模式切换为运行模式。 |
输入参数 | 无 |
输出参数 | 无 |
返回值 | 无 |
先决条件 | 无 |
调用函数 | 无 |
例:
/* Exit the configuration mode */
RTC_ExitConfigMode();
1.4 函数RTC_GetCounter
函数名 | RTC_GetCounter |
---|---|
函数原形 | u32 RTC_GetCounter(void) |
功能描述 | 获取 RTC 计数器的值 |
输入参数 | 无 |
输出参数 | 无 |
返回值 | RTC 计数器的值 |
先决条件 | 无 |
被调用函数 | 无 |
例:
/* Gets the counter value */
u32 RTCCounterValue;
RTCCounterValue = RTC_GetCounter();
1.5 函数RTC_SetCounter
函数名 | RTC_SetCounter |
---|---|
函数原形 | void RTC_SetCounter(u32 CounterValue) |
功能描述 | 设置 RTC 计数器的值 |
输入参数 | CounterValue:新的 RTC 计数器值 |
输出参数 | 无 |
返回值 | 无 |
先决条件 | 在使用本函数前必须先调用函数 RTC_WaitForLastTask(),等待标志位 RTOFF 被设置 |
被调用函数 | RTC_EnterConfigMode() |
RTC_ExitConfigMode() |
例:
/* Wait until last write operation on RTC registers is terminated /
RTC_WaitForLastTask();
/ Sets Counter value to 0xFFFF5555 */
RTC_SetCounter(0xFFFF5555);
1.6 函数RTC_SetPrescaler
函数名 | RTC_SetPrescaler |
---|---|
函数原形 | void RTC_SetPrescaler(u32 PrescalerValue) |
功能描述 | 设置 RTC 预分频的值 |
输入参数 | PrescalerValue:新的 RTC 预分频值 |
输出参数 | 无 |
返回值 | 无 |
先决条件 | 在使用本函数前必须先调用函数 RTC_WaitForLastTask(),等待标志位 RTOFF 被设置 |
被调用函数 | RTC_EnterConfigMode() |
RTC_ExitConfigMode() |
例:
/* Wait until last write operation on RTC registers is terminated /
RTC_WaitForLastTask();
/ Sets Prescaler value to 0x7A12 */
RTC_SetPrescaler(0x7A12);
1.7 函数RTC_ SetAlarm
函数名 | RTC_SetAlarm |
---|---|
函数原形 | void RTC_SetAlarm(u32 AlarmValue) |
功能描述 | 设置 RTC 闹钟的值 |
输入参数 | AlarmValue:新的 RTC 闹钟值 |
输出参数 | 无 |
返回值 | 无 |
先决条件 | 在使用本函数前必须先调用函数 RTC_WaitForLastTask(),等待标志位 RTOFF 被设置 |
被调用函数 | RTC_EnterConfigMode() |
RTC_ExitConfigMode() |
例:
/* Wait until last write operation on RTC registers is terminated /
RTC_WaitForLastTask();
/ Sets Alarm value to 0xFFFFFFFA */
RTC_SetAlarm(0xFFFFFFFA);
1.8 函数RTC_GetDivider
函数名 | RTC_GetDivider |
---|---|
函数原形 | u32 RTC_GetDivider(void) |
功能描述 | 获取 RTC 预分频分频因子的值 |
输入参数 | 无 |
输出参数 | 无 |
返回值 | RTC 预分频分频因子的值 |
先决条件 | 无 |
被调用函数 | 无 |
例:
/* Gets the current RTC Divider value */
u32 RTCDividerValue;
RTCDividerValue = RTC_GetDivider();
1.9 函数RTC_WaitForLastTask
函数名 | RTC_WaitForLastTask |
---|---|
函数原形 | void RTC_WaitForLastTask(void) |
功能描述 | 等待最近一次对 RTC 寄存器的写操作完成 |
输入参数 | 无 |
输出参数 | 无 |
返回值 | 无 |
先决条件 | 无 |
被调用函数 | 无 |
例:
/* Wait until last write operation on RTC registers is terminated /
RTC_WaitForLastTask();
/ Sets Alarm value to 0x10 */
RTC_SetAlarm(0x10);
1.10 函数RTC_WaitForSynchro
函数名 | RTC_WaitForSynchro |
---|---|
函数原形 | void RTC_WaitForSynchro(void) |
功能描述 | 等待最近一次对 RTC 寄存器的写操作完成 |
输入参数 | 无 |
输出参数 | 无 |
返回值 | 无 |
先决条件 | 无 |
被调用函数 | 无 |
例:
/* Wait until the RTC registers are synchronized with RTC APB clock */
RTC_WaitForSynchro();
1.11 函数RTC_ GetFlagStatus
函数名 | RTC_GetFlagStatus |
---|---|
函数原形 | FlagStatus RTC_GetFlagStatus(u16 RTC_FLAG) |
功能描述 | 检查指定的 RTC 标志位设置与否 |
输入参数 2 | RTC_FLAG:待检查的 RTC 标志位 |
参阅 Section | RTC_FLAG 查阅更多该参数允许取值范围 |
输出参数 | 无 |
返回值 | RTC_FLAG 的新状态(SET 或者 RESET) |
先决条件 | 无 |
被调用函数 | 无 |
RTC_FLAG
函数RTC_ GetFlagStatus检查的标志位列表
RTC_FLAG | 描述 |
---|---|
RTC_FLAG_RTOFF | RTC 操作 OFF 标志位 |
RTC_FLAG_RSF | 寄存器已同步标志位 |
RTC_FLAG_OW | 溢出中断标志位 |
RTC_FLAG_ALR | 闹钟中断标志位 |
RTC_FLAG_SEC | 秒中断标志位 |
例:
/* Gets the RTC overflow interrupt status */
FlagStatus OverrunFlagStatus;
OverrunFlagStatus = RTC_GetFlagStatus(RTC_Flag_OW);
1.12 函数RTC_ClearFlag
函数名 | RTC_ClearFlag |
---|---|
函数原形 | void RTC_ClearFlag(u16 RTC_FLAG) |
功能描述 | 清除 RTC 的待处理标志位 |
输入参数 | RTC_FLAG:待清除的 RTC 标志位 |
参阅 Section | I2C_FLAG 查阅更多该参数允许取值范围 |
注意 | 标志位RTC_FLAG_RTOFF 不能用软件清除, 标志位RTC_FLAG_RSF 只有在 APB 复位,或者 APB 时钟停止后,才可以清除 |
输出参数 | 无 |
返回值 | 无 |
先决条件 | 在使用本函数前必须先调用函数 RTC_WaitForLastTask(), 等待标志位 RTOFF 被设置 |
被调用函数 | 无 |
例:
/* Wait until last write operation on RTC registers is terminated /
RTC_WaitForLastTask();
/ Clears the RTC overflow flag */
RTC_ClearFlag(RTC_FLAG_OW);
1.13 函数RTC_GetITStatus
函数名 | RTC_GetITStatus |
---|---|
函数原形 | ITStatus RTC_GetITStatus(u16 RTC_IT) |
功能描述 | 检查指定的 RTC 中断发生与否 |
输入参数 2 | RTC_IT:待检查的 RTC 中断 |
参阅 Section | RTC_IT 查阅更多该参数允许取值范围 |
输出参数 | 无 |
返回值 | RTC_IT 的新状态(SET 或者 RESET) |
先决条件 | 无 |
被调用函数 | 无 |
例:
/* Gets the RTC Second interrupt status */
ITStatus SecondITStatus;
SecondITStatus = RTC_GetITStatus(RTC_IT_SEC);
1.14 函数RTC_ClearITPendingBit
函数名 | RTC_ClearITPendingBit |
---|---|
函数原形 | void RTC_ClearITPendingBit(u16 RTC_IT) |
功能描述 | 清除 RTC 的中断待处理位 |
输入参数 2 | RTC_IT:待清除的 RTC 中断待处理位 |
参阅 Section | RTC_IT 查阅更多该参数允许取值范围 |
输出参数 | 无 |
返回值 | 无 |
先决条件 | 在使用本函数前必须先调用函数 RTC_WaitForLastTask(),等待标志位 RTOFF 被设置 |
被调用函数 | 无 |
例:
/* Wait until last write operation on RTC registers is terminated /
RTC_WaitForLastTask();
/ Clears the RTC Second interrupt */
RTC_ClearITPendingBit(RTC_IT_SEC);
该文档修改记录:
修改时间 | 修改说明 |
---|---|
2024年1月27日 | 第一次发布,介绍了 14 STM32标准库函数 之 实时时钟(RTC) 所有函数的介绍及使用 |
总结
以上就是 14 STM32标准库函数 之 实时时钟(RTC) 所有函数的介绍及使用的内容。
有不明白的地方欢迎留言;有建议欢迎留言,我后面编写文档好改进。
创作不容,如果文档对您有帮助,记得给个赞。