【STM32】HAL库-备份寄存器(BKP)

发布者:haoying最新更新时间:2022-06-15 来源: eefocus关键字:STM32  HAL库  备份寄存器  BKP 手机看文章 扫描二维码
随时随地手机看文章

简介

备份寄存器是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库  备份寄存器  BKP 引用地址:【STM32】HAL库-备份寄存器(BKP)

上一篇:【STM32】HAL库-串口USART
下一篇:【STM32】HAL库-嵌套向量中断控制器NVIC

推荐阅读最新更新时间:2024-11-19 19:16

STM32 TALK | 无感FOC方案原理机器控制难点分析
1、电机控制方案的分析与选择 在永磁电机的无感控制策略中,主要有两大类:(1)无感方波控制;(2)无感FOC控制。 先谈谈无感方波控制。在无感方波控制中,主要是利用反电动势过零点的方式来得到换相信号(反电动势过零点的信号与电机的换相信号在相位上相差30°电角度)。为了得到反电动势过零的信号,通常采用两种方式:(1)硬件比较器法;(2)软件端电压采样法。这两种方法的原理大致是相同的,都是将检测得到的端电压的值与电机中性点电压进行比较来得到反电动势过零点的信号。在无感方波控制中,该检测手段的好坏将决定了控制性能的好坏。但无感方波控制通常会伴随着噪声大、转矩脉动大等缺点,因此仅在一些对电机无感控制要求不是很高的场合中较为适用。
[单片机]
STM32与DS1302的接口电路
(1)硬件 CLK---PA4, DAT--- PA5, RST--- PA6 (2)硬件初始化 CLK与RST均为输出,而DAT是开漏型的输出。因为在这种方式下,IO口的读仍然存在,因此是真正的双向IO模式。 /*DSCK -PA4 DAT PA5 RST DAT*/ #define ds1302Clk GPIO_Pin_4 //与时钟线相连的芯片的管脚 #define ds1302Dat GPIO_Pin_5 //与数据线相连的芯片的管脚 #define ds1302Rst GPIO_Pin_6 //与复位端相连的芯片的管脚 /* PA 4,6,为输出*/ GPIO_InitStructure.GPIO_Pin =
[单片机]
STM32别名区的理解
1. 什么是位段、位带别名区? 2. 它有什么好处? 答1: 是这样的,记得MCS51吗? MCS51就是有位操作,以一位(BIT)为数据对象的操作, MCS51可以简单的将P1口的第2位独立操作: P1.2=0;P1.2=1 ; 就是这样把P1口的第三个脚(BIT2)置0置。 而现在STM32的位段、位带别名区就为了实现这样的功能。 对象可以是SRAM,I/O外设空间。实现对这些地方的某一位的操作。 它是这样的。在寻址空间(32位地址是 4GB )另一地方,取个别名区空间,从这地址开始处,每一个字(32BIT) 就对应SRAM或I/O的一位。 这样呢,1MB SRAM就 可以有32MB的对应别名区
[单片机]
<font color='red'>STM32</font>别名区的理解
STM32自学笔记(1.什么是STM32
STM32微控制器的核心: Cortex-M3处理器。 嵌套中断向量控制器(NVIC)是Cortex-M3处理器中一个比较关键的组件。提供了标准的中断架构和优秀的中断响应能力,为超过240个终端源提供专门的中断入口,并可以赋予每个中断源单独的优先级。 Cortex-M3的CPU支持两种运行模式: 线程模式和处理模式(都拥有自己独立的堆栈)。 Cortex-M3还包括一个24位的可自动重装载定时器,可以为实现内核(RTOS)提供一个周期性中断。 Cortex-M3支持新型的ARM Thumb-2指令集。 STM32具有精密性、可靠性和安全性 可靠性 有两个看门狗定时器。 第一个叫窗口看门狗,窗口看门狗必
[单片机]
stm32 FreeRTOS中如何创建任务
#include config.h #include global.h #include stdio.h #include PC.h #include FreeRTOS.h #include task.h #include list.h void vLED1Task(void *pvParameters) { while(1) { GPIO_Reverse (); vTaskDelay(1000/portTICK_RATE_MS); } } void vLED2Task(void *pvParameters) { portTickType xLastWakeTime; //xLastWakeTi
[单片机]
stm32外部晶振经倍频后提供系统时钟常用设置
void RCC_Configuration(void) { RCC_DeInit(); //将外设 RCC寄存器重设为缺省值(即默认值) RCC_HSEConfig(RCC_HSE_ON);//打开外部晶振 if(RCC_WaitForHSEStartUp() == SUCCESS) //判断起振是否成功 { RCC_HCLKConfig(RCC_SYSCLK_Div1); //设置AHB时钟(HCLK)(这时设置为=系统时钟) RCC_PCLK2Config(RCC_HCLK_Div1); //设置高速AHB时钟(HCLK2)(这时设置为=HCLK) RCC_PCLK1Co
[单片机]
STM32的硬件SPI驱动LCD例子
前言:每学一个新知识,都会出现很多出错的情况,百度也查不出来,耗费很多时间,主要是不理解底层原理,没太多时间去理解,催得紧。SPI嘛,是人都知道干嘛用的,我一时半会也不知道怎么表达,百度最不缺的就是定义。缺的是实现过程,本少爷花了几十个积分搞了n多个实例,终于总结了要成功实现SPI要哪些奇葩的步骤。 历史:今天17年9月1,前几天我导师嫌我刷新屏幕太慢,给我做了代码的调整,发现速度杠杠的,屏幕蹭蹭蹭的刷屏,翻一下笔记,大概要处理几处小细节:1.LCD的CS片选做优化 2.DC也优化3.直接操作寄存器4.我下文中加了Delay(1);后来也优化了。有时间另写优化的链接给大家 正文: -----------------------
[单片机]
基于STM32的便携式人机界面系统
在全站仪应用于飞机的测量过程中,常会涉及到计算,以满足不同的应用环境与测量要求,以往的方式是测量后期编辑软件在计算机上实现,现代测量迫切需要一种便携式手持计算系统,来完成实时的测量要求,而这一系统中中文人机界面成为一种事实上的行业标准。实现显示汉字的TFT液晶和可输入数字的小键盘已成为智能设备必不可少的组成部分。同时作为便携式设备基本要求的低功耗特性也贯穿于中文人机界面的设计始终。这种低功耗中文人机交互界面需要在选取处理器和具体元器件上有特殊考虑。微功耗、高性能应作为选择相关器件的首要要求。本文选用了意法半导体公司基于ARM最新Cortex—M3内核的STM32F103RB作为主控芯片,通过选择合适的液晶模块,构建了一个高性能低
[单片机]
基于<font color='red'>STM32</font>的便携式人机界面系统
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved