RTC
简介
RTC模块提供了一个包含日期(年/月/日)和时间(时/分/秒/亚秒)的日历功能。除亚秒用二进制码显示外,时间和日期都以BCD码的形式显示。RTC可以进行夏令时补偿。RTC可以工作在省电模式下,并通过软件配置来智能唤醒。RTC支持外接更高精度的低频时钟,用以达到更高的日历精度。
主要特性

常用库函数
GD32F470 的 RTC 库提供了一系列函数用于配置和控制 RTC 模块。以下是一些常用的功能和函数:
1. 备份域访问控制
在配置 RTC 之前,必须先使能电源时钟(PMU)并允许对备份域进行写访问。这是因为 RTC 位于备份域中。
1 2 3 4
| rcu_periph_clock_enable(RCU_PMU);
pmu_backup_write_enable();
|
2. 时钟源配置
RTC 可以使用 LSE(外部低速时钟)、LSI(内部低速时钟)或 HSE(外部高速时钟)的分频作为时钟源。通常为了精度和低功耗,推荐使用 LSE(32.768kHz)。
1 2 3 4 5 6 7 8
| rcu_osci_on(RCU_LSE);
rcu_osci_stab_wait(RCU_LSE);
rcu_rtc_clock_config(RCU_RTCSRC_LSE);
rcu_periph_clock_enable(RCU_RTC);
|
3. RTC 初始化
RTC 需要配置预分频器以生成 1Hz 的时钟用于日历更新。通常 LSE 为 32.768kHz,设置异步预分频器为 127 (0x7F),同步预分频器为 255 (0xFF)。
计算公式:$f_{ck_spre} = \frac{f_{rtc_clk}}{(PREDIV_A + 1) \times (PREDIV_S + 1)}$
1 2 3 4 5 6 7 8 9 10 11
| rtc_parameter_struct rtc_initpara;
rtc_register_sync_wait();
rtc_initpara.rtc_factor_asyn = 0x7F; rtc_initpara.rtc_factor_syn = 0xFF; rtc_initpara.rtc_year = 0x16; rtc_initpara.rtc_display_format = RTC_24HOUR; rtc_init(&rtc_initpara);
|
4. 时间与日期设置
使用 rtc_current_time_get() 和 rtc_current_date_get() 获取时间,使用 rtc_time_config() 和 rtc_date_config() 设置时间。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| rtc_parameter_struct rtc_initpara;
rtc_initpara.rtc_am_pm = RTC_AM; rtc_initpara.rtc_hour = 0x12; rtc_initpara.rtc_minute = 0x00; rtc_initpara.rtc_second = 0x00; rtc_time_config(&rtc_initpara);
rtc_initpara.rtc_year = 0x26; rtc_initpara.rtc_month = RTC_FEB; rtc_initpara.rtc_date = 0x28; rtc_initpara.rtc_day_of_week = RTC_SATURDAY; rtc_date_config(&rtc_initpara);
|
5. 闹钟设置
RTC 支持两个闹钟(Alarm 0 和 Alarm 1),可以配置在特定的时间触发中断。
1 2 3 4 5 6 7 8 9 10 11
| rtc_alarm_struct rtc_alarm;
rtc_alarm.rtc_alarm_mask = RTC_ALARM_DATE_MASK | RTC_ALARM_HOUR_MASK | RTC_ALARM_MINUTE_MASK; rtc_alarm.rtc_alarm_second = 0x30; rtc_alarm_config(RTC_ALARM0, &rtc_alarm);
rtc_alarm_enable(RTC_ALARM0);
rtc_interrupt_enable(RTC_INT_ALARM0);
|
完整代码示例
下面是一个完整的 RTC 初始化及时间显示的代码示例。
头文件包含
1 2
| #include "gd32f4xx.h" #include <stdio.h>
|
RTC 配置函数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
void rtc_configuration(void) { rcu_periph_clock_enable(RCU_PMU); pmu_backup_write_enable();
rcu_osci_on(RCU_LSE); rcu_osci_stab_wait(RCU_LSE);
rcu_rtc_clock_config(RCU_RTCSRC_LSE); rcu_periph_clock_enable(RCU_RTC);
rtc_register_sync_wait();
rtc_parameter_struct rtc_initpara; rtc_initpara.rtc_factor_asyn = 0x7F; rtc_initpara.rtc_factor_syn = 0xFF; rtc_initpara.rtc_year = 0x26; rtc_initpara.rtc_display_format = RTC_24HOUR; if(ERROR == rtc_init(&rtc_initpara)){ printf("RTC init failed!\n"); } }
|
时间设置与获取函数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
void rtc_set_time(uint8_t h, uint8_t m, uint8_t s) { rtc_parameter_struct rtc_time_struct; rtc_time_struct.rtc_am_pm = RTC_AM; rtc_time_struct.rtc_hour = h; rtc_time_struct.rtc_minute = m; rtc_time_struct.rtc_second = s;
rtc_time_config(&rtc_time_struct); }
void rtc_show_time(void) { uint32_t time_sub; uint8_t hh, mm, ss; rtc_current_time_get(&rtc_initpara); hh = rtc_initpara.rtc_hour; mm = rtc_initpara.rtc_minute; ss = rtc_initpara.rtc_second; printf("Time: %02x:%02x:%02x\r\n", hh, mm, ss); }
|
主函数调用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| int main(void) { systick_config(); usart_config(); printf("RTC Demo Start\r\n"); rtc_configuration(); rtc_set_time(0x12, 0x00, 0x00); while(1) { rtc_show_time(); delay_1ms(1000); } }
|
注意事项
- 备份域复位:如果系统断电后 Vbat(电池)供电,RTC 数据会保持。如果代码中包含了
rcu_backup_reset_enable(),则每次复位都会清除 RTC 数据,实际应用中通过检查备份寄存器(RTC_BKPx)来判断是否需要重新配置。
- BCD 码:RTC 寄存器主要使用 BCD 码格式,读写时需要注意数据格式转换。
- 时钟精度:LSE 的精度较高,LSI 精度较低且随温度变化大。如果对时间精度要求高,必须使用外部 LSE 晶振。
RTC库函数
| 库函数名称 |
库函数描述 |
| rtc_deinit |
复位 RTC 大部分寄存器 |
| rtc_init |
初始化 RTC 寄存器 |
| rtc_init_mode_enter |
进入 RTC 配置模式 |
| rtc_init_mode_exit |
退出 RTC 配置模式 |
| rtc_register_sync_wait |
等待 RTC 寄存器 (RTC_TIME、RTC_DATE) 与 RTC 的 APB 时钟同步并且影子寄存器更新 |
| rtc_current_time_get |
获取当前日期和时间 |
| rtc_subsecond_get |
获取当前亚秒值 |
| rtc_alarm_config |
配置 RTC 闹钟 |
| rtc_alarm_subsecond_config |
配置 RTC 闹钟亚秒 |
| rtc_alarm_get |
获取 RTC 闹钟 |
| rtc_alarm_subsecond_get |
获取 RTC 闹钟亚秒 |
| rtc_alarm_enable |
使能 RTC 闹钟 |
| rtc_alarm_disable |
失能 RTC 闹钟 |
| rtc_timestamp_enable |
使能 RTC 时间戳 |
| rtc_timestamp_disable |
失能 RTC 时间戳 |
| rtc_timestamp_get |
获取 RTC 时间戳时间和日期 |
| rtc_timestamp_subsecond_get |
获取 RTC 时间戳亚秒 |
| rtc_timestamp_pin_map |
RTC 时间戳输入映射选择 |
| rtc_tamper_enable |
使能侵入检测 |
| rtc_tamper_disable |
失能侵入检测 |
| rtc_tamper0_pin_map |
tamper0 输入映射选择 |
| rtc_interrupt_enable |
使能 RTC 中断 |
| rtc_interrupt_disable |
失能 RTC 中断 |
| rtc_flag_get |
获取 RTC 标志位 |
| rtc_flag_clear |
清除 RTC 标志位 |
| rtc_alarm_output_config |
配置 RTC 闹钟输出 |
| rtc_calibration_output_config |
配置 RTC 校准输出选择 |
| rtc_hour_adjust |
通过在当前时间上增加或者减少一个小时来适应夏令时和冬令时 |
| rtc_second_adjust |
调整 RTC 当前时间的秒或亚秒值 |
| rtc_bypass_shadow_enable |
使能 RTC 影子寄存器 |
| rtc_bypass_shadow_disable |
失能 RTC 影子寄存器 |
| rtc_refclock_detection_enable |
使能 RTC 参考时钟检测功能 |
| rtc_refclock_detection_disable |
失能 RTC 参考时钟检测功能 |
| rtc_wakeup_enable |
使能 RTC 自动唤醒功能 |
| rtc_wakeup_disable |
失能 RTC 自动唤醒功能 |
| rtc_wakeup_clock_set |
设置 RTC 自动唤醒定时器时钟 |
| rtc_wakeup_timer_set |
设置自动唤醒定时器值 |
| rtc_wakeup_timer_get |
获取自动唤醒定时器值 |
| rtc_smooth_calibration_config |
配置 RTC 平滑校准 |
| rtc_coarse_calibration_enable |
使能 RTC 粗校准 |
| rtc_coarse_calibration_disable |
失能 RTC 粗校准 |
| rtc_coarse_calibration_config |
配置 RTC 粗校准 |
函数 rtc_alarm_disable
- 函数名称:
rtc_alarm_disable
- 函数原型:
ErrStatus rtc_alarm_disable(uint32_t rtc_alarm);
- 功能描述:失能RTC闹钟。
- 先决条件:无
- 被调用函数:无
- **输入参数 (in)**:
rtc_alarm:闹钟选择
RTC_ALARM0:闹钟0
RTC_ALARM1:闹钟1
- **输出参数 (out)**:无
- 返回值:
ERROR 或 SUCCESS
函数 rtc_timestamp_enable
- 函数名称:
rtc_timestamp_enable
- 函数原型:
void rtc_timestamp_enable(uint32_t edge);
- 功能描述:使能RTC时间戳。
- 先决条件:无
- 被调用函数:无
- **输入参数 (in)**:
edge:选定唤醒边沿触发时间戳检测
RTC_EDGE_W_TV:上升沿是时间戳事件有效检测沿
RTC_EDGE_FALLING:下降沿是时间戳事件有效检测沿
RTC_EDGE_RISING:上升沿是时间戳事件有效检测沿
- **输出参数 (out)**:无
- 返回值:无
函数 rtc_timestamp_disable
- 函数名称:
rtc_timestamp_disable
- 函数原型:
void rtc_timestamp_disable(void);
- 功能描述:失能RTC时间戳。
- 先决条件:无
- 被调用函数:无
- **输入参数 (in)**:无
- **输出参数 (out)**:无
- 返回值:无
函数 rtc_timestamp_get
- 函数名称:
rtc_timestamp_get
- 函数原型:
void rtc_timestamp_get(rtc_timestamp_struct* rtc_timestamp);
- 功能描述:获取RTC时间戳时间和日期。
- 先决条件:无
- 被调用函数:无
- **输入参数 (in)**:无
- **输出参数 (out)**:
rtc_timestamp:时间戳结构体,输出结构体参考表 3-626. 结构体 rtc_timestamp_struct
- 返回值:无
函数 rtc_timestamp_subsecond_get
- 函数名称:
rtc_timestamp_subsecond_get
- 函数原型:
uint32_t rtc_timestamp_subsecond_get(void);
- 功能描述:获取RTC时间戳亚秒值。
- 先决条件:无
- 被调用函数:无
- **输入参数 (in)**:无
- **输出参数 (out)**:无
- 返回值:RTC时间戳亚秒值(
uint32_t 类型)
函数 rtc_timestamp_pin_map
- 函数名称:
rtc_timestamp_pin_map
- 函数原型:
void rtc_timestamp_pin_map(uint32_t source);
- 功能描述:时间戳输入映射选择。
- 先决条件:无
- 被调用函数:无
- **输入参数 (in)**:
source:输入映射选择
RTC_AF0_TIMESTAMP:时间戳输入映射到RTC_AF0
RTC_AF1_TIMESTAMP:时间戳输入映射到RTC_AF1
- **输出参数 (out)**:无
- 返回值:无
函数 rtc_tamper_enable
- 函数名称:
rtc_tamper_enable
- 函数原型:
void rtc_tamper_enable(rtc_tamper_struct* rtc_tamper);
- 功能描述:使能RTC侵入检测。
- 先决条件:无
- 被调用函数:无
- **输入参数 (in)**:
rtc_tamper:侵入检测结构体,输出结构体参考表 3-627. 结构体 rtc_tamper_struct
- **输出参数 (out)**:无
- 返回值:无
函数 rtc_tamper_disable
- 函数名称:
rtc_tamper_disable
- 函数原型:
void rtc_tamper_disable(uint32_t source);
- 功能描述:失能RTC侵入检测。
- 先决条件:无
- 被调用函数:无
- **输入参数 (in)**:
source:选定失能的侵入检测来源
RTC_TAMPER0:RTC tamper0
RTC_TAMPER1:RTC tamper1
- **输出参数 (out)**:无
- 返回值:无
函数 rtc_tamper0_pin_map
- 函数名称:
rtc_tamper0_pin_map
- 函数原型:
void rtc_tamper0_pin_map(uint32_t source);
- 功能描述:tamper0输入映射选择。
- 先决条件:无
- 被调用函数:无
- **输入参数 (in)**:
source:输入映射选择
RTC_AF0_TAMP0:Tamper0输入映射到RTC_AF0
RTC_AF1_TAMP0:Tamper0输入映射到RTC_AF1
- **输出参数 (out)**:无
- 返回值:无
函数 rtc_interrupt_enable
- 函数名称:
rtc_interrupt_enable
- 函数原型:
void rtc_interrupt_enable(uint32_t interrupt);
- 功能描述:使能RTC指定的中断源。
- 先决条件:无
- 被调用函数:无
- **输入参数 (in)**:
interrupt:被使能的RTC中断源
RTC_INT_TIMESTAMP:时间戳中断
RTC_INT_ALARM0:闹钟0中断
RTC_INT_ALARM1:闹钟1中断
RTC_INT_TAMPER:侵入检测中断
RTC_INT_WAKEUP:定时中断
- **输出参数 (out)**:无
- 返回值:无
函数 rtc_interrupt_disable
- 函数名称:
rtc_interrupt_disable
- 函数原型:
void rtc_interrupt_disable(uint32_t interrupt);
- 功能描述:失能RTC指定的中断源。
- 先决条件:无
- 被调用函数:无
- **输入参数 (in)**:
interrupt:被失能的RTC中断源
RTC_INT_TIMESTAMP:时间戳中断
RTC_INT_ALARM0:闹钟0中断
RTC_INT_ALARM1:闹钟1中断
RTC_INT_TAMPER:侵入检测中断
RTC_INT_WAKEUP:定时中断
- **输出参数 (out)**:无
- 返回值:无
函数 rtc_flag_get
- 函数名称:
rtc_flag_get
- 函数原型:
FlagStatus rtc_flag_get(uint32_t flag);
- 功能描述:获取RTC指定中断标志位。
- 先决条件:无
- 被调用函数:无
- **输入参数 (in)**:
flag:指定的中断标志位
RTC_FLAG_ALARM0:闹钟0事件标志
RTC_FLAG_ALARM1:闹钟1事件标志
RTC_FLAG_TP1:tamper1事件标志
RTC_FLAG_TSOV:时间戳事件标志
RTC_FLAG_ISOV:时间戳溢出事件标志
RTC_FLAG_WUTWF:唤醒配置写入标志
RTC_FLAG_ALRM0WF:闹钟0配置写入标志
RTC_FLAG_ALRM1WF:闹钟1配置写入标志
RTC_FLAG_TP2:tamper2事件标志
- **输出参数 (out)**:无
- 返回值:
SET 或 RESET
函数 rtc_flag_clear
- 函数名称:
rtc_flag_clear
- 函数原型:
void rtc_flag_clear(uint32_t flag);
- 功能描述:清除指定中断标志位。
- 先决条件:无
- 被调用函数:无
- **输入参数 (in)**:
flag:指定的中断标志位
RTC_FLAG_ALARM0:闹钟0事件标志
RTC_FLAG_ALARM1:闹钟1事件标志
RTC_FLAG_TP1:tamper1事件标志
RTC_FLAG_TSOV:时间戳事件标志
RTC_FLAG_ISOV:时间戳溢出事件标志
RTC_FLAG_WUTWF:唤醒配置写入标志
RTC_FLAG_ALRM0WF:闹钟0配置写入标志
RTC_FLAG_ALRM1WF:闹钟1配置写入标志
RTC_FLAG_TP2:tamper2事件标志
- **输出参数 (out)**:无
- 返回值:无
函数 rtc_alarm_output_config
- 函数名称:
rtc_alarm_output_config
- 函数原型:
void rtc_alarm_output_config(uint32_t rtc_alarm_output, uint32_t mode);
- 功能描述:配置RTC闹钟输出。
- 先决条件:无
- 被调用函数:无
- **输入参数 (in)**:
rtc_alarm_output:闹钟输出选择
RTC_ALARM0_HIGH:设置闹钟0标志位置位,输出引脚为高电平
RTC_ALARM1_HIGH:设置闹钟1标志位置位,输出引脚为高电平
RTC_WAKEUP_HIGH:设置唤醒标志位置位,输出引脚为高电平
mode:闹钟输出模式
RTC_ALARM_OPEN_DRAIN:开漏模式
RTC_ALARM_PUSH_PULL:推挽模式
- **输出参数 (out)**:无
- 返回值:无
函数 rtc_calibration_output_config
- 函数名称:
rtc_calibration_output_config
- 函数原型:
void rtc_calibration_output_config(uint32_t rtc_calib_output);
- 功能描述:配置RTC校准输出选择。
- 先决条件:无
- 被调用函数:无
- **输入参数 (in)**:
rtc_calib_output:校准输出选择
RTC_CALIB_OUTPUT_512HZ:输出512Hz的校准信号
RTC_CALIB_OUTPUT_1HZ:输出1Hz的校准信号
- **输出参数 (out)**:无
- 返回值:无
函数 rtc_hour_adjust
- 函数名称:
rtc_hour_adjust
- 函数原型:
ErrStatus rtc_hour_adjust(uint32_t operation);
- 功能描述:通过在当前时间上增加或者减少一个小时来适应夏令时和冬令时。
- 先决条件:无
- 被调用函数:无
- **输入参数 (in)**:
operation:增加/调整操作
RTC_CTL_ADD1H:增加一个小时
RTC_CTL_SUB1H:减少一个小时
- **输出参数 (out)**:无
- 返回值:
ERROR 或 SUCCESS
函数 rtc_second_adjust
- 函数名称:
rtc_second_adjust
- 函数原型:
ErrStatus rtc_second_adjust(uint32_t add_sub, uint32_t minus);
- 功能描述:调整RTC当前时间的秒或亚秒值。
- 先决条件:无
- 被调用函数:无
- **输入参数 (in)**:
add_sub:在当前时间上增加IS或者不增加IS
RTC_SHIFT_ADD1S_SET:在当前时间上增加1秒
RTC_SHIFT_ADD1S_RESET:在当前时间上不增加1秒
minus:在当前时间上减少亚秒值(0x00~0x7F)
- **输出参数 (out)**:无
- 返回值:
ERROR 或 SUCCESS
函数 rtc_bypass_shadow_enable
- 函数名称:
rtc_bypass_shadow_enable
- 函数原型:
void rtc_bypass_shadow_enable(void);
- 功能描述:使能RTC影子寄存器。
- 先决条件:无
- 被调用函数:无
- **输入参数 (in)**:无
- **输出参数 (out)**:无
- 返回值:无
函数 rtc_bypass_shadow_disable
- 函数名称:
rtc_bypass_shadow_disable
- 函数原型:
void rtc_bypass_shadow_disable(void);
- 功能描述:失能RTC影子寄存器。
- 先决条件:无
- 被调用函数:无
- **输入参数 (in)**:无
- **输出参数 (out)**:无
- 返回值:无
函数 rtc_refclock_detection_enable
- 函数名称:
rtc_refclock_detection_enable
- 函数原型:
ErrStatus rtc_refclock_detection_enable(void);
- 功能描述:使能RTC参考时钟检测功能。
- 先决条件:
rtc_init_mode_enter/rtc_init_mode_exit
- 被调用函数:无
- **输入参数 (in)**:无
- **输出参数 (out)**:无
- 返回值:
ERROR 或 SUCCESS
函数 rtc_refclock_detection_disable
- 函数名称:
rtc_refclock_detection_disable
- 函数原型:
ErrStatus rtc_refclock_detection_disable(void);
- 功能描述:失能RTC参考时钟检测功能。
- 先决条件:
rtc_init_mode_enter/rtc_init_mode_exit
- 被调用函数:无
- **输入参数 (in)**:无
- **输出参数 (out)**:无
- 返回值:
ERROR 或 SUCCESS
函数 rtc_wakeup_enable
- 函数名称:
rtc_wakeup_enable
- 函数原型:
void rtc_wakeup_enable(void);
- 功能描述:使能RTC自动唤醒功能。
- 先决条件:无
- 被调用函数:无
- **输入参数 (in)**:无
- **输出参数 (out)**:无
- 返回值:无
函数 rtc_wakeup_disable
- 函数名称:
rtc_wakeup_disable
- 函数原型:
ErrStatus rtc_wakeup_disable(void);
- 功能描述:失能RTC自动唤醒功能。
- 先决条件:无
- 被调用函数:无
- **输入参数 (in)**:无
- **输出参数 (out)**:无
- 返回值:
ERROR 或 SUCCESS
函数 rtc_wakeup_clock_set
- 函数名称:
rtc_wakeup_clock_set
- 函数原型:
ErrStatus rtc_wakeup_clock_set(uint32_t wakeup_clock);
- 功能描述:设置RTC自动唤醒定时器时钟。
- 先决条件:无
- 被调用函数:无
- **输入参数 (in)**:
wakeup_clock:时钟选择
WAKEUP_CK_DIV16:RTC时钟/16分频
WAKEUP_RTCCK_DIV8:RTC时钟/8分频
WAKEUP_RTCCK_DIV4:RTC时钟/4分频
WAKEUP_RTCCK_DIV2:RTC时钟/2分频
WAKEUP_CK_SPRE:ck_spre(默认1Hz)时钟
WAKEUP_CKSPRE_2:ck_spre(默认1Hz)时钟,并且唤醒计数器值增加2¹⁶
- **输出参数 (out)**:无
- 返回值:
ERROR 或 SUCCESS
函数 rtc_wakeup_timer_set
- 函数名称:
rtc_wakeup_timer_set
- 函数原型:
ErrStatus rtc_wakeup_timer_set(uint32_t wakeup_timer);
- 功能描述:设置RTC自动唤醒定时器值。
- 先决条件:无
- 被调用函数:无
- **输入参数 (in)**:
wakeup_timer:唤醒定时器值(0x00~0xFFFF)
- **输出参数 (out)**:无
- 返回值:
ERROR 或 SUCCESS
函数 rtc_wakeup_timer_get
- 函数名称:
rtc_wakeup_timer_get
- 函数原型:
uint16_t rtc_wakeup_timer_get(void);
- 功能描述:获取自动唤醒定时器值。
- 先决条件:无
- 被调用函数:无
- **输入参数 (in)**:无
- **输出参数 (out)**:无
- 返回值:唤醒定时器值(
uint16_t 类型,0x00~0xFFFF)
函数 rtc_smooth_calibration_config
- 函数名称:
rtc_smooth_calibration_config
- 函数原型:
ErrStatus rtc_smooth_calibration_config(uint32_t calib_window, uint32_t calib_direction, uint32_t calib_value);
- 功能描述:配置RTC平滑校准。
- 先决条件:无
- 被调用函数:无
- **输入参数 (in)**:
calib_window:校准窗口选择
RTC_CALIB_WIN_32S:采用32秒校准周期
RTC_CALIB_WIN_16S:采用16秒校准周期
RTC_CALIB_WIN_8S:采用8秒校准周期
RTC_CALIB_WIN_4S:采用4秒校准周期
calib_direction:校准方向
RTC_CALIB_DIRECTION_UP:增加RTC时钟频率
RTC_CALIB_DIRECTION_DOWN:减少RTC时钟频率
calib_value:校准值(0~127)
- **输出参数 (out)**:无
- 返回值:
ERROR 或 SUCCESS
函数 rtc_coarse_calibration_enable
- 函数名称:
rtc_coarse_calibration_enable
- 函数原型:
ErrStatus rtc_coarse_calibration_enable(void);
- 功能描述:使能RTC粗校准。
- 先决条件:
rtc_init_mode_enter/rtc_init_mode_exit
- 被调用函数:无
- **输入参数 (in)**:无
- **输出参数 (out)**:无
- 返回值:
ERROR 或 SUCCESS
函数 rtc_coarse_calibration_disable
- 函数名称:
rtc_coarse_calibration_disable
- 函数原型:
ErrStatus rtc_coarse_calibration_disable(void);
- 功能描述:失能RTC粗校准。
- 先决条件:
rtc_init_mode_enter/rtc_init_mode_exit
- 被调用函数:无
- **输入参数 (in)**:无
- **输出参数 (out)**:无
- 返回值:
ERROR 或 SUCCESS
函数 rtc_coarse_calibration_config
- 函数名称:
rtc_coarse_calibration_config
- 函数原型:
ErrStatus rtc_coarse_calibration_config(uint32_t calib_direction, uint32_t calib_value);
- 功能描述:配置RTC粗校准。
- 先决条件:
rtc_init_mode_enter/rtc_init_mode_exit
- 被调用函数:无
- **输入参数 (in)**:
calib_direction:校准方向
RTC_CALIB_DIRECTION_UP:增加RTC时钟频率
RTC_CALIB_DIRECTION_DOWN:减少RTC时钟频率
calib_value:校准值(0~31)
- **输出参数 (out)**:无
- 返回值:
ERROR 或 SUCCESS