微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > stm32 BKP寄存器操作操作寄存器+库函数

stm32 BKP寄存器操作操作寄存器+库函数

时间:11-09 来源:互联网 点击:
BKP是“BACKUP”的缩写,stm32f103RCTE的内部配备了10个16位宽度的BKP寄存器。在主电源切断或系统产生复位时间时,BKP寄存器仍然可以在备用电源的支持下保持其内容。

BKP在实际应用中可以存入重要数据,防止被恶意查看,或用于断电等。

本例实现对BKP寄存器的读写操作,和入侵检测和处理。主程序中写入寄存器后,依次打印出10个BKP寄存器数据,然后触发GPIOC13的入侵中断(输入低电平),在中断中打印出入侵事件发生后的寄存器内容(复位为0 )。

直接操作寄存器

用到的寄存器描述如下:

备份数据寄存器x(BKP_DRx) (x = 1 … 10):低16位[15:0]有效,用来写入或读出备份数据。

备份控制寄存器(BKP_CR):

低两位有效。

TPAL[1]:侵入检测TAMPER引脚有效电平(TAMPER pin active level)

  • 0:侵入检测TAMPER引脚上的高电平会清除所有数据备份寄存器(如果TPE位为1)
  • 1:侵入检测TAMPER引脚上的低电平会清除所有数据备份寄存器(如果TPE位为1)

TPE[0]:启动侵入检测TAMPER引脚(TAMPER pin enable)

  • 0:侵入检测TAMPER引脚作为通用IO口使用
  • 1:开启侵入检测引脚作为侵入检测使用

备份控制/状态寄存器(BKP_CSR):

TIF[9]:侵入中断标志(Tamper interrupt flag) 0:无侵入中断 1:产生侵入中断

当检测到有侵入事件且TPIE位为1时,此位由硬件置1。

通过向CTI位写1来清除此标志位(同时也清除了中断)。如果TPIE位被清除,则此位也会被清除。

TEF[8]:侵入事件标志(Tamper event flag) 0:无侵入事件 1:检测到侵入事件

当检测到侵入事件时此位由硬件置1。通过向CTE位写1可清除此标志位

TPIE[2]:允许侵入TAMPER引脚中断(TAMPER pin interrupt enable)

0:禁止侵入检测中断 1:允许侵入检测中断(BKP_CR寄存器的TPE位也必须被置1)

注1:侵入中断无法将系统内核从低功耗模式唤醒。 注2:仅当系统复位或由待机模式唤醒后才复位该位。

CTI[1]:清除侵入检测中断(Clear tamper interrupt)

0:无效 1:清除侵入检测中断和TIF侵入检测中断标志

CTE[0]:清除侵入检测事件(Clear tamper event)

0:无效 1:清除TEF侵入检测事件标志(并复位侵入检测器)。

要写入BKP寄存器数据必须在 PWR->CR中取消备份区写保护,才可以写入BKP数据。stm32开启入侵检测也不需要设置GPIOC的时钟和输入输出模式。

代码如下:(system.h 和stm32f10x_it.h等相关代码参照stm32 直接操作寄存器开发环境配置)

User/main.c

Library/src/bkp.c

Library/inc/bkp.h

stm12f10x_it.c

}


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top