常用函数
1 | void BKP_DeInit(void); |
BKP_DeInit恢复缺省配置,手动清空BKP所有的数据寄存器。
1 | void BKP_TamperPinLevelConfig(uint16_t BKP_TamperPinLevel); |
用于配置TAMPER侵入检测功能,配置TAMPER引脚有效电平,高电平触发还是低电平触发。
1 | void BKP_TamperPinCmd(FunctionalState NewState); |
用于配置TAMPER侵入检测功能,是否开启侵入检测功能。
1 | void BKP_ITConfig(FunctionalState NewState); |
中断配置,是否开启中断。
1 | void BKP_RTCOutputConfig(uint16_t BKP_RTCOutputSource); |
时钟输出功能,可以选择在RTC引脚上输出时钟信号,输出RTC校准时钟,RTC闹钟脉冲或秒脉冲。
1 | void BKP_SetRTCCalibrationValue(uint8_t CalibrationValue); |
设置RTC校准值,写入RTC校准寄存器。
1 | void BKP_WriteBackupRegister(uint16_t BKP_DR, uint16_t Data); |
写备份寄存器,第一个参数指定,写在哪个DR里,第二个参数指定要写入的数据。
1 | uint16_t BKP_ReadBackupRegister(uint16_t BKP_DR); |
读备份寄存器,参数指定要读哪个DR。
1 | FlagStatus BKP_GetFlagStatus(void); |
获取BKP状态
1 | void BKP_ClearFlag(void); |
清除BKP侵入检测寄存器状态。
1 | ITStatus BKP_GetITStatus(void); |
获取侵入检测的中断状态。
1 | void BKP_ClearITPendingBit(void); |
清除侵入检测的中断挂起位。
1 | void PWR_BackupAccessCmd(FunctionalState NewState); |
备份寄存器访问使能。设置PWR_CR的DBP,使能对BKP和RTC的访问。
1 | void RCC_LSEConfig(uint8_t RCC_LSE); |
配置LSE外部低速时钟
1 | void RCC_LSICmd(FunctionalState NewState); |
配置LSI内部低速时钟
1 | void RCC_RTCCLKConfig(uint32_t RCC_RTCCLKSource); |
RTCCLK配置,选择RTCCLK时钟源
1 | void RCC_RTCCLKCmd(FunctionalState NewState); |
RTCCLK使能,调用上面函数选择时钟之后,使能。
1 | FlagStatus RCC_GetFlagStatus(uint8_t RCC_FLAG); |
获取RCC标志位,调用启动时钟函数之后,要等待标志位,LSERDY置1后,才算启动完成。
1 | void RTC_ITConfig(uint16_t RTC_IT, FunctionalState NewState); |
配置RTC中断输出
1 | void RTC_EnterConfigMode(void); |
进入配置模式,CNF位置1。
1 | void RTC_ExitConfigMode(void); |
RTC退出配置模式,把CNF位置0。
1 | uint32_t RTC_GetCounter(void); |
RTC获取CNT计数器的值。用于读取时钟。
1 | void RTC_SetCounter(uint32_t CounterValue); |
写入CNT计数器的值。用于设置时间。
1 | void RTC_SetPrescaler(uint32_t PrescalerValue); |
写入预分频器,写入到预分频的PRL重装寄存器中,配置预分频器的分频系数。
1 | void RTC_SetAlarm(uint32_t AlarmValue); |
写入闹钟值,用于配置闹钟。
1 | uint32_t RTC_GetDivider(void); |
获取预分频器中的DIV余数寄存器。余数寄存器是一个自减计数器,获取这个值,一般是为了获取更细致的时间。
1 | void RTC_WaitForLastTask(void); |
等待上次操作完成。
1 | void RTC_WaitForSynchro(void); |
等待同步。清除RSF标志位,然后循环,直到RSF为1。
1 | FlagStatus RTC_GetFlagStatus(uint16_t RTC_FLAG); |
RTC标志位相关函数。
读写备份寄存器
main.c
1 |
|
实时时钟
main.c
1 |
|
MyRTC.c
1 |
|