/**
* @brief 备份区域去初始化
*
* 将备份区域和RTC相关的寄存器重置为其默认的重置值。
*/
void BKP_DeInit(void);
/**
* @brief 配置篡改引脚电平
*
* 设置篡改引脚(Tamper Pin)的电平。当篡改引脚检测到意外电平变化时,会触发篡改事件。
*
* @param BKP_TamperPinLevel 篡改引脚电平设置
*/
void BKP_TamperPinLevelConfig(uint16_t BKP_TamperPinLevel);
/**
* @brief 篡改引脚使能/失能
*
* 启用或禁用篡改引脚功能。
*
* @param NewState 篡改引脚的新状态(ENABLE 或 DISABLE)
*/
void BKP_TamperPinCmd(FunctionalState NewState);
/**
* @brief RTC中断配置
*
* 启用或禁用RTC中断。
*
* @param NewState RTC中断的新状态(ENABLE 或 DISABLE)
*/
void BKP_ITConfig(FunctionalState NewState);
/**
* @brief 配置RTC输出源
*
* 选择RTC的输出源。
*
* @param BKP_RTCOutputSource RTC输出源设置
*/
void BKP_RTCOutputConfig(uint16_t BKP_RTCOutputSource);
/**
* @brief 设置RTC校准值
*
* 设置RTC的校准值以调整其精度。
*
* @param CalibrationValue RTC校准值
*/
void BKP_SetRTCCalibrationValue(uint8_t CalibrationValue);
/**
* @brief 写入备份寄存器
*
* 向指定的备份寄存器写入数据。
*
* @param BKP_DR 备份寄存器编号
* @param Data 要写入的数据
*/
void BKP_WriteBackupRegister(uint16_t BKP_DR, uint16_t Data);
/**
* @brief 读取备份寄存器
*
* 从指定的备份寄存器读取数据。
*
* @param BKP_DR 备份寄存器编号
* @return 读取到的数据
*/
uint16_t BKP_ReadBackupRegister(uint16_t BKP_DR);
/**
* @brief 获取RTC/BKP标志状态
*
* 检查RTC或BKP相关的标志是否被设置。
*
* @return 标志状态(SET 或 RESET)
*/
FlagStatus BKP_GetFlagStatus(void);
/**
* @brief 清除RTC/BKP标志
*
* 清除RTC或BKP相关的标志。
*/
void BKP_ClearFlag(void);
/**
* @brief 获取RTC/BKP中断状态
*
* 检查RTC或BKP相关的中断是否被触发。
*
* @return 中断状态(SET 或 RESET)
*/
ITStatus BKP_GetITStatus(void);
/**
* @brief 清除RTC/BKP挂起中断位
*
* 清除RTC或BKP相关的挂起中断位。
*/
void BKP_ClearITPendingBit(void);
- 开启时钟
/*开启时钟*/
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE); //开启PWR的时钟
RCC_APB1PeriphClockCmd(RCC_APB1Periph_BKP, ENABLE); //开启BKP的时钟
- 备份寄存器访问使能
/*备份寄存器访问使能*/
PWR_BackupAccessCmd(ENABLE); //使用PWR开启对备份寄存器的访问
- 写入数据
BKP_WriteBackupRegister(BKP_DR1, ArrayWrite[0]); //写入测试数据到备份寄存器
BKP_WriteBackupRegister(BKP_DR2, ArrayWrite[1]);
- 读取数据
ArrayRead[0] = BKP_ReadBackupRegister(BKP_DR1); //读取备份寄存器的数据
ArrayRead[1] = BKP_ReadBackupRegister(BKP_DR2);