简介
备份寄存器是42个16位的寄存器,可用来存储84个字节的用户应用程序数据。
他们处在备份域里,当VDD电源被切断,他们仍然由VBAT维持供电。
当系统在待机模式下被唤醒,或系统复位或电源复位时,他们也不会被复位。
使能对备份寄存器和RTC的访问
复位后,对备份寄存器和RTC的访问被禁止,并且备份域被保护以防止可能存在的意外的写操作。执行以下操作可以使能对备份寄存器和RTC的访问。
通过设置寄存器RCC_APB1ENR的PWREN和BKPEN位来打开电源和后备接口的时钟
电源控制寄存器(PWR_CR)的DBP位来使能对后备寄存器和RTC的访问。
使用电池或其他电源连接到VBAT脚上,当VDD断电时,可以保存备份寄存器的内容和维持RTC的功能。
如果应用中没有使用外部电池,VBAT必须连接到VDD引脚上,此时VDD断电,则会丢失备份寄存器的内容和RTC的功能失效。
侵入检测
当TAMPER引脚上的信号从0变成1(上升沿)或者从1变成0(下降沿)会产生一个侵入检测事件
TAMPER引脚的检测边沿取决于备份控制寄存器BKP_CR的TPAL位
侵入检测事件将所有数据备份寄存器内容清除
设置BKP_CSR寄存器的TPIE位为1,当检测到侵入事件时就会产生一个侵入事件中断
当VDD电源断开时,侵入检测功能仍然有效
RTC校准
为方便测量,RTC时钟可以经64分频输出到侵入检测引脚TAMPER上。通过设置RTC校验寄存器(BKP_RTCCR)的CCO位来开启这一功能
通过配置CAL[6:0]位,此时钟可以最多减慢121ppm。
侵入检测demo
采用STM32F103C8T6单片机,KeilMDK5.32版本
PC13作为TAMPER检测引脚,上升沿检测,并开启中断
PC13设置为输入模式,上拉输入。
备份控制寄存器(BKP_CR)的TPAL设置为1
备份控制/状态寄存器(BKP_CSR) 的TIF设置为1
备份控制寄存器(BKP_CR)的TPE设置为1
当发生中断的时候需要清除相应的标志位
清除备份控制/状态寄存器(BKP_CSR)的TIF和TEF。往CTI和CTE写入1清除TIF和TEF标志
/* 开启GPIOC的时钟 */
__HAL_RCC_GPIOC_CLK_ENABLE();
/* PC13为输入模式,下拉输入 */
GPIO_InitTypeDef GPIO_InitTypeStruct = { 0 };
GPIO_InitTypeStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitTypeStruct.Pin = GPIO_PIN_13;
GPIO_InitTypeStruct.Pull = GPIO_PULLDOWN;
HAL_GPIO_Init(GPIOC, &GPIO_InitTypeStruct);
/* 使能对备份寄存器和RTC的访问 */
__HAL_RCC_PWR_CLK_ENABLE();//开启电压控制时钟
__HAL_RCC_BKP_CLK_ENABLE();//开启备份时钟
HAL_PWR_EnableBkUpAccess();//允许访问备份域
/* 备份寄存器设置 */
SET_BIT(BKP->CSR, BKP_CSR_TPIE_Msk);//开启侵入事件中断
HAL_NVIC_SetPriority(TAMPER_IRQn, 4, 0);//设置中断优先级
HAL_NVIC_EnableIRQ(TAMPER_IRQn);//使能中断
SET_BIT(BKP->CR, BKP_CR_TPE_Msk);//侵入检测TAMPER引脚上的高电平触发侵入事件,开启侵入事件
上一篇:【STM32】HAL库-串口USART
下一篇:【STM32】HAL库-嵌套向量中断控制器NVIC
推荐阅读最新更新时间:2024-11-19 19:16
设计资源 培训 开发板 精华推荐
- SI9181DB,SI9181 评估板,1.8V、2V、2.5V、3V、3.3V、5V DC 到 DC 便携式单路输出电源
- ZHT431可调精密齐纳并联稳压器的典型应用
- LTC3450、5.1V、15V、10V LCD 偏置电源电路
- 使用 Diodes Incorporated 的 PAM2304 的参考设计
- 使用 MaxLinear, Inc 的 SP6642 的参考设计
- 使用 Infineon Technologies AG 的 IR3551 的参考设计
- arduboy低成本自制版本
- NCX3340S32KEVB: 面向S32K144 EVB的汽车NFC NCx3340附加板
- 用于负载瞬态响应的 LR8N3GP003 高输入电压线性稳压器的典型应用
- AWTRIX 2.0 温湿度+光照传感器 IIC