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

发布者:创新火箭最新更新时间:2016-06-15 来源: eefocus关键字:stm32  BKP寄存器  操作寄存器  库函数 手机看文章 扫描二维码
随时随地手机看文章
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):
 
stm32 BKP寄存器操作操作寄存器+库函数

 

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
}

关键字:stm32  BKP寄存器  操作寄存器  库函数 引用地址:stm32 BKP寄存器操作操作寄存器+库函数

上一篇:STM32串口寄存器操作
下一篇:stm32 DMA数据搬运 操作寄存器+库函数

推荐阅读最新更新时间:2024-03-16 14:57

STM32开发笔记21: USB驱动的移植
单片机型号:STM32L053R8T6 现在使用的STM32L053R8T6单片机带有USB接口,原先一直使用UART转USB芯片来完成USB功能的支持,现在这款单片机带了就希望使用以下。由于已经建立了自己的工程目录,再重新使用STM32CubeMX生成的工程文件,重新建立是不显示的,所以本文探索将USB驱动文件移植到自己项目中的方法,我使用的是USB的CDCD类,步骤如下: 1、使用STM32CubeMX使能USB,如下图所示: 2、设置时钟,USB需要48M时钟,使用内部和外部均可,我这里使用外部时钟。 3、生成工程文件。 4、在自己的工程目录中加入如下图所示的2个文件,如果此2个文件
[单片机]
<font color='red'>STM32</font>开发笔记21: USB驱动的移植
毕业设计| STM32和MPU6050 实现的体感云台设计
以 STM32 作为主控模块,在陀螺仪 MPU6050 的作用下控制云台的转动,从而扩大画面范围,图像传输到手机上起到实时监控的作用。为了防止因为抖动而造成的图像模糊等,添加了自稳功能。为了实现远程遥控,采用了 2.4GHz 无线通信模块,作为板与板间的通信,主要收发控制信号。 功能上分为两个处理模块,分别为接收端和发送端:发送端采用了STM32F103单片机配合MPU6050和NRF24L01两个模块,MPU6050用于检测姿态角,然后通过NRF24L01将姿态信息发送至接收端。接收端采用了STM32F407配合NRF24L01接收发送端的姿态信息然后控制云台的角度。云台为2轴云台:采用舵机驱动。实现功能:1)MPU6050
[单片机]
stm32中中断源名和中断处理函数名所在位置
两个文件分别在stm32f4xx.h(中断名) CORE—startup_stm32f40_41xxx.s(中断函数名) #if defined (STM32F40_41xxx) CAN1_TX_IRQn = 19, /*! CAN1 TX Interrupt */ CAN1_RX0_IRQn = 20, /*! CAN1 RX0 Interrupt */ CAN1_RX1_IRQn = 21, /*! CAN1 RX1 Interrupt
[单片机]
一种基于DSP的软件无线电调制解调实验平台
   摘要: 设计实现了一套基于软件无线电的软件化MODEM实验系统,该系统硬件以TMS320C6711数字信号处理器(DSP)为核心,实现软件无线电多制式调制解调功能,并设计硬件接口完成与主机实时通信。在主机中设计虚拟仪器控制显示平台,实现了对调制解调制式的实时选择及实测数据的实时显示。    关键词: 软件无线电;虚拟仪器;DSP;MODEM   软件无线电的基本思想是以开放的、可扩展的、结构最简的硬件为通用平台,把尽可能多通信功能用可升级、可替换软件来实现。其中心思想是:构造一个具有标准化、模块化的通用硬件平台,并通过软件加载实现各种无线通信功能的一种开放式体系结构。调制解调器是软件无线电的关键技术环节,是软件无线电技术
[安防电子]
33. 外部SRAM实验
STM32F103ZET6 自带了 64K 字节的 SRAM,对一般应用来说,已经足够了,不过在一些对内存要求高的场合,STM32 自带的这些内存就不够用了。比如跑算法或者跑 GUI 等,就可能不太够用,所以战舰 STM32 开发板板载了一颗 1M 字节容量的 SRAM 芯片: IS62WV51216, 满足大内存使用的需求。 本实验采用IS62WV51216 芯片,访问速度为55ns。 一。IS62WV51216简介 兼容TTL电平就是兼容5V,支持高/低字节控制,可以访问8位的字节。 本次实验选择的封装没有CS2引脚,只有CS1,为低电平片选。 LB和UB为低电平有效,比如如果LB==0,说明I/O 0
[单片机]
33. 外部SRAM实验
stm32系统时钟详解&&移植
写作原由:今日接手用stm32f100xx芯片开发的项目,以前用的是stm8s 和stm32f103xx芯片;因为在别人的项目代码的基础上做2次开发,但是发现那个代码main函数中没有对系统时钟的设置的相关函数,一直纳闷,但也没有深究,直至昨日 调试时出现串口收发数据出错,源代码在原项目的板子上串口发送、接收数据正常,同样程序在项目板子上收发的数据不正确, 两块板子芯片一样,串口收发管脚一样,最后发现原来板子外部晶振是8MHZ ,新板子外部晶振是12MHZ; 而在STM32固件库中,默认的外部晶振是8MHZ,由于时钟源不正确,导致波特率不正确,当然收发的数据也不正确了.....我勒个去!都怪自己平时看问题“不求甚解”。 (波特
[单片机]
<font color='red'>stm32</font>系统时钟详解&&移植
基于STM32的多路电压测量设计方案
  1.引言   近年来,数据采集及其应用受到了人们越来越广泛的关注,数据采集系统也有了迅速的发展,它可以广泛的应用于各种领域。   数据采集技术是信息科学的重要分支之一,数据采集也是从一个或多个信号获取对象信息的过程。数据采集是工业控制等系统中的重要环节,通常采用一些功能相对独立的单片机系统来实现,作为测控系统不可缺少的部分,数据采集的性能特点直接影响到整个系统。   电压的测量最为普遍性,研究设计并提高电压测量精度的方法及仪器具有十分重要的意义。在电压测量设计中,单片机作为控制器,是整个设计的核心。除此之外,设计中还必须有模数转换器(ADC)。ADC用于直接采集模拟电压并将模拟信号转换成数字信号,它直接影响着数据采集的精
[单片机]
基于<font color='red'>STM32</font>的多路电压测量设计方案
STM32的GPIO工作原理
STM32引脚说明 GPIO是通用输入/输出端口的简称,是STM32可控制的引脚。GPIO的引脚与外部硬件设备连接,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能。 STM32F103ZET6芯片为144脚芯片,包括7个通用目的的输入/输出口(GPIO)组,分别为GPIOA、GPIOB、GPIOC、GPIOD、GPIOE、GPIOF、GPIOG,同时每组GPIO口组有16个GPIO口。通常简略称为PAx、PBx、PCx、PDx、PEx、PFx、PGx,其中x为0-15。 STM32的大部分引脚除了当GPIO使用之外,还可以复用位外设功能引脚(比如串口),这部分在【STM32】STM32端口复用和重映射(AFIO
[单片机]
<font color='red'>STM32</font>的GPIO工作原理
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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