STM32 可编程电压监测器(PVD)实现数据掉电保存

STM32内部有一个完整的上电复位和掉电复位电路,当供电电压达到2v时系统即能正常工作。

STM32内部自带PVD功能,用于对MCU供电电压VDD进行监控。通过电源控制寄存器中的PLS[2:0]位可以用来设定监控电压的阀值,通过对外部电压进行比较来监控电源。当条件触发,需要系统进入特别保护状态,执行紧急关闭任务:对系统的一些数据保存起来,同时对外设进行相应的保护操作。 
操作流程: 
    1)、系统启动后启动PVD,并开启相应的中断。 
    PWR_PVDLevelConfig(PWR_PVDLevel_2V8); // 设定监控阀值  
    PWR_PVDCmd(ENABLE); // 使能PVD  
    EXTI_StructInit(&EXTI_InitStructure);  
    EXTI_InitStructure.EXTI_Line = EXTI_Line16; // PVD连接到中断线16上  
    EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; //使用中断模式  
    EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Raising;//电压低于阀值时产生中断  
    EXTI_InitStructure.EXTI_LineCmd = ENABLE; // 使能中断线  
    EXTI_Init(&EXTI_InitStructure); // 初始 
       EXTI_InitStructure.EXTI_Trigger的赋值可选项: 
              EXTI_Trigger_Rising---表示电压从高下降到低于设定阀值时产生中断; 
       EXTI_Trigger_Falling---表示电压从低上升到高于设定阀值时产生中断; 
              EXTI_Trigger_Rising_Falling---表示电压上升或下降越过设定阀值时都产生中断。 
    2)、当工作电压低于设定阀值时,将产生PVD中断,在中断程序中进行相应的处理: 
    void PVD_IRQHandler(void)  
    { 
      EXTI_ClearITPendingBit(EXTI_Line16); 
      …… // 用户添加紧急处理代码处 
    }

法拉电容在数据断电保存中的应用:http://d.wanfangdata.com.cn/Periodical/dpjyqrsxtyy200706014

时间: 2024-10-15 14:45:08

STM32 可编程电压监测器(PVD)实现数据掉电保存的相关文章

大数据技术之_19_Spark学习_02_Spark Core 应用解析+ RDD 概念 + RDD 编程 + 键值对 RDD + 数据读取与保存主要方式 + RDD 编程进阶 + Spark Core 实例练习

第1章 RDD 概念1.1 RDD 为什么会产生1.2 RDD 概述1.2.1 什么是 RDD1.2.2 RDD 的属性1.3 RDD 弹性1.4 RDD 特点1.4.1 分区1.4.2 只读1.4.3 依赖1.4.4 缓存1.4.5 CheckPoint第2章 RDD 编程2.1 RDD 编程模型2.2 RDD 创建2.2.1 由一个已经存在的 Scala 集合创建,即集合并行化(测试用)2.2.2 由外部存储系统的数据集创建(开发用)2.3 RDD 编程2.3.1 Transformatio

关于掉电数据保存的心得

在掉电保存数据时会有一定的风险,数据在保存时可能会有干扰,因此对于这一块处理一定要小心谨慎. 以下是我的方法: 1.每隔一段时间,保存数据,我们把这个保存数据的地方称位"数据区1". 2.当发生掉电的时候,我们不能把数据存放在"数据区1",而是另外的开一块内存,这个内存我们叫”数据区2“. 我们将设备上电时,应该最先去判断“数据区2”数据的准确性,如果数据正常,则从“数据区2”读出数据,如果不正常,则继续检查“数据区1”数据的准确性. 原文地址:https://ww

STM32 ADC 测电压

1. STM32F103 ADC 本例使用STM32F103芯片的PA1引脚测试模拟输入的电压值. 查看文档<STM32F103X.pdf>第31页,引脚定义图: 得知PA1使用ADC1的通道1. 查看文档<STM32F103X.pdf>第13页,时钟树图: 得知ADC1可2,4,6,8分频,又ADC输入时钟不得超过14MHZ(参见STM32参考手册RM0008第11章ADC). //初始化ADC //这里我们仅以规则通道为例 //我们默认将开启通道0~3 void Adc_Ini

网络编程 --- URLConnection --- 读取服务器的数据 --- java

使用URLConnection类获取服务器的数据 抽象类URLConnection表示一个指向指定URL资源的活动连接,它是java协议处理器机制的一部分. URL对象的openConnection()方法就是调用了URLStreamHandler的openConnection()方法. 如有疑问请参考:JAVA网络编程[第三版], 如下图: 怎样获取服务器输出的数据呢?代码如下: import java.io.IOException; import java.io.InputStream; i

编程:获取股票实时行情数据大全

编程:获取股票实时行情数据大全 股票软件都提供自定义公式的功能,但因为常规股票软件都是点播数据,自定义公式对分时行情完全无效,要想更细腻的分析,只能找股票实时行情接口 一般来说,有如下3种版本 屌丝版 去门户财经频道采集数据,百度,sina,搜狐,网易,和讯都有.首推sina,页面结构良好,同时提供js接口和动态gif绘制 json数据: >>curl http://hq.sinajs.cn/list=sh600133 >>var hq_str_sh600133="东湖高

Hadoop高级编程—构建与实现大数据解决方案pdf

下载地址:网盘下载 内容简介  · · · · · · 如果你已经准备好要充分实施大规模可扩展性数据分析工作,那么需要知道如何利用Hadoop技术.这本<Hadoop高级编程--构建与实现大数据解决方案>可以帮助你做到这一点!本书关注用于构建先进的.基于Hadoop的企业级应用的架构和方案,并为实现现实的解决方案提供深入的.代码级的讲解.本书还会带你领略数据设计以及数据设计如何影响实现.本书解释了MapReduce的工作原理,并展示了如何在MapReduce中重新定制特定的业务问题.在整本书中

[并发编程]并发编程第二篇:利用并发编程,实现计算大量数据的和

利用并发编程,实现计算大量数据的和 实现代码: package tj.pojo.generate.main; import java.util.ArrayList; import java.util.List; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.u

《Hadoop高级编程——构建与实现大数据解决方案》有奖试读

一. 活动主题: <Hadoop高级编程--构建与实现大数据解决方案>有奖试读,点击查看图书详情 二. 活动时间: 2014年8月6日至2014年9月5日(为期1个月) 三. 参与方式 : 您可以选择下面任何一种方式来参加我们的活动! 1. 阅读我们精选的<Hadoop高级编程>试读章节(点击下载PDF文档),并将书评发布在本篇博客的评论区,每位用户可发表多一条或多条书评,书评优秀可重复获奖. 2. 将活动转发至新浪微博并关注@清华大学出版社第五事业部,或者关注官方微信@清华书友(

数字图像处理 CImage类的使用与封装(jpg png gif tif bmp等格式图像的加载、数据读写、保存等功能)

引入CImage类的原因 原有的CBitmap 类只能处理BMP格式的图片,非常受限.而CImage可以处理JPGE.GIF.BMP.PNG等多种格式图片,扩展了图片处理功能且能与CBitmap 进行转换( 因为所载入的位图句柄都是HBITMAP,所以可相互转换),因此引入CImage类进行图像处理. CImage类简介 CImage是MFC和ATL共享的新类,它能从外部磁盘中调入一个JPEG.GIF.BMP和PNG格式的图像文件加以显示,而且这些文件格式可以相互转换. CImage提供增强型的