BKP实现详解

image.png

/**  
 * @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);
  1. 开启时钟
/*开启时钟*/
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);		//开启PWR的时钟
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_BKP, ENABLE);		//开启BKP的时钟
  1. 备份寄存器访问使能
/*备份寄存器访问使能*/
	PWR_BackupAccessCmd(ENABLE);							//使用PWR开启对备份寄存器的访问
	
  1. 写入数据

			BKP_WriteBackupRegister(BKP_DR1, ArrayWrite[0]);	//写入测试数据到备份寄存器
			BKP_WriteBackupRegister(BKP_DR2, ArrayWrite[1]);
  1. 读取数据
        ArrayRead[0] = BKP_ReadBackupRegister(BKP_DR1);		//读取备份寄存器的数据
		ArrayRead[1] = BKP_ReadBackupRegister(BKP_DR2);
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值