OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 14985|回复: 8

掉电检测PVD中断进不去

[复制链接]

9

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2012-11-22
在线时间
3 小时
发表于 2012-12-4 10:58:42 | 显示全部楼层 |阅读模式
现在在做掉电存储,直接存贮在FLASH上,手动存储,读取通过,在做掉电保存的时候,就是不成功!!用led做个中断指示,进入PVD中断就亮一下,可是不管怎么改还是不成功,进不了中断,我是在MINI 开发板上做的实验,我把备份电池已经取下了!程序部分如下
void PVD_Init(void)
{  
   NVIC_InitTypeDef NVIC_InitStruct;
   EXTI_InitTypeDef EXTI_InitStructure;

   NVIC_InitStruct.NVIC_IRQChannel = PVD_IRQn;
   NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 0;
   NVIC_InitStruct.NVIC_IRQChannelSubPriority = 2;
   NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;
   

   NVIC_Init(&NVIC_InitStruct);//允许中断
EXTI_ClearITPendingBit(EXTI_Line16);
    EXTI_InitStructure.EXTI_Line = EXTI_Line16; 
    EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; 
    EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling;//EXTI_Trigger_Falling   ;//EXTI_Trigger_Rising; 
    EXTI_InitStructure.EXTI_LineCmd = ENABLE; 
    EXTI_Init(&EXTI_InitStructure);

    PWR_PVDLevelConfig(PWR_PVDLevel_2V5); 
    PWR_PVDCmd(ENABLE);
RCC_APB1PeriphClockCmd( RCC_APB1Periph_PWR, ENABLE); //_PWR, ENABLE); // 这个是必需的
 }
//PVD中断函数如下
void PVD_IRQHandler(void)
{


EXTI_ClearITPendingBit(EXTI_Line16); //必须在if外面。
if(PWR_GetFlagStatus(PWR_FLAG_PVDO)) //
 {
PWR_ClearFlag(PWR_FLAG_PVDO);

                 GPIO_ResetBits(GPIOD,GPIO_Pin_2);
GPIO_SetBits(GPIOA,GPIO_Pin_8);
//STMFLASH_Write(FLASH_SAVE_ADDR,(u16*)TEXT_Buffer,11);本想在这里进行存储操作
 }

}
请各位高手给看看啊
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2012-11-22
在线时间
3 小时
 楼主| 发表于 2012-12-4 11:30:56 | 显示全部楼层
这个恼火的问题我终于解决了啊,给大家提个醒
RCC_APB1PeriphClockCmd( RCC_APB1Periph_PWR, ENABLE); //_PWR, ENABLE); // 这个是必需的
PWR_PVDLevelConfig(PWR_PVDLevel_2V5); 
PWR_PVDCmd(ENABLE);
把这几句放在main函数里,PVD_Init();之上以后发现可以进中断了哦,可爱的小LED终于闪烁了一下,下一步实验,掉电中断里写内部FLASH
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2012-12-4 13:22:06 | 显示全部楼层
回复【2楼】cdw0105:
---------------------------------
谢谢分享。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

30

主题

77

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
217
金钱
217
注册时间
2012-11-12
在线时间
0 小时
发表于 2013-4-7 11:19:20 | 显示全部楼层
回复【2楼】cdw0105:
---------------------------------
你好,你的掉电写FLASH成功了吗?我的能进中断但是写不了
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2014-5-15
在线时间
0 小时
发表于 2014-5-15 16:08:28 | 显示全部楼层
为何有些程序不需要放在前面??
回复 支持 反对

使用道具 举报

22

主题

147

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3983
金钱
3983
注册时间
2015-4-18
在线时间
403 小时
发表于 2016-3-26 21:21:47 | 显示全部楼层
cdw0105 发表于 2012-12-4 11:30
这个恼火的问题我终于解决了啊,给大家提个醒
RCC_APB1PeriphClockCmd( RCC_APB1Periph_PWR, ENA ...

你这个掉电保存有用到外部引脚吗。。。
回复 支持 反对

使用道具 举报

22

主题

147

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3983
金钱
3983
注册时间
2015-4-18
在线时间
403 小时
发表于 2016-3-26 21:22:03 | 显示全部楼层
你这个掉电保存有用到外部引脚吗。。。。
回复 支持 反对

使用道具 举报

12

主题

126

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
281
金钱
281
注册时间
2013-1-5
在线时间
22 小时
发表于 2017-8-2 15:15:51 | 显示全部楼层
掉电检测之后写FLASH可以了吗?
我用的030没有掉电检测这功能,想用FLASH模拟EEPROM,周期存储掉电保存的数据,有什么方法避免把Flash刷坏吗?手册标注FLASH读写次数1W次。
天道酬勤
回复 支持 反对

使用道具 举报

0

主题

10

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
214
金钱
214
注册时间
2019-4-22
在线时间
57 小时
发表于 2020-3-31 09:41:14 | 显示全部楼层
感谢楼主分享,程序亲测可用,顺利进中断。最近在做掉电存储,将一几个字节的数据保存到24C02,当然需要在3.3V和GND之间接了法拉电容,我买了一个容值比较大的电容(5.5V,0.5F),掉电后可以持续好几秒。然后顺利模拟掉电数据存到24C02,开机后读取24C02的值,读取值与写入值一致。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-24 06:18

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表