14 STM32标准库函数 之 实时时钟(RTC) 所有函数的介绍及使用
- 1 RTC的库函数预览
-
- 1.1 函数RTC_ITConfig
- 1.2 函数RTC_EnterConfigMode
- 1.3 函数RTC_ExitConfigMode
- 1.4 函数RTC_GetCounter
- 1.5 函数RTC_SetCounter
- 1.6 函数RTC_SetPrescaler
- 1.7 函数RTC_ SetAlarm
- 1.8 函数RTC_GetDivider
- 1.9 函数RTC_WaitForLastTask
- 1.10 函数RTC_WaitForSynchro
- 1.11 函数RTC_ GetFlagStatus
- 1.12 函数RTC_ClearFlag
- 1.13 函数RTC_GetITStatus
- 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) 所有函数的介绍及使用的内容。
有不明白的地方欢迎留言;有建议欢迎留言,我后面编写文档好改进。
创作不容,如果文档对您有帮助,记得给个赞。