PVD中断重复进入。

[复制链接]
3575|17
 楼主| 28182900 发表于 2012-6-11 21:46 | 显示全部楼层 |阅读模式
gp, rc, pi, ip, IO
本帖最后由 28182900 于 2012-6-12 07:48 编辑

用pvd做掉电**在掉电过程中会不断的进入中断,直到掉电结束
请问有没有办法每次掉电的时候只进入一次中断?
void PVD_IRQHandler(void)
{
  if(EXTI_GetITStatus(EXTI_Line16) != RESET)
  {
    //Clear the Key Button EXTI line pending bit
    EXTI_ClearITPendingBit(EXTI_Line16);
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, DISABLE);                     //  关闭 GPIOA 时钟
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, DISABLE);                     //  关闭 GPIOB 时钟
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, DISABLE);                     //  关闭 GPIOC 时钟
    CS_L;
    Delay(111);
    I2C_PageWrite(LGRxBuffer,250,0,0xa0);
    Delay(111);
    CS_H;
    __set_PRIMASK(1);   // 关除了EMI和FAULT中断
    __set_FAULTMASK(1); //关除了EMI中断
    NVIC_SystemReset();  
  }
}
651130881 发表于 2012-6-11 21:50 | 显示全部楼层
 楼主| 28182900 发表于 2012-6-13 08:00 | 显示全部楼层
人工置顶。。
airwill 发表于 2012-6-13 09:01 | 显示全部楼层
你不能在中断中关闭 PVD 嘛
 楼主| 28182900 发表于 2012-6-13 09:04 | 显示全部楼层
关闭中断后,不是要复位吗,一复位不就。。
airwill 发表于 2012-6-13 09:31 | 显示全部楼层
本帖最后由 airwill 于 2012-6-13 09:33 编辑

电源控制/状态寄存器(PWR_CSR)中的PVDO标志用来表明VDD是高于还是低于PVD的电压阀值。该事件在内部连接到外部中断的第16线,如果该中断在外部中断寄存器中是使能的,该事件就会产生中断。当VDD下降到PVD阀值以下和(或)当VDD上升到PVD阀值之上时,根据外部中断第16线的上升/下降边沿触发设置,就会产生PVD中断。

设置外部中断第16线边沿触发
denike 发表于 2012-6-13 11:24 | 显示全部楼层
直接在中断while(1)死等
 楼主| 28182900 发表于 2012-6-13 13:08 | 显示全部楼层
直接在中断while(1)死等
denike 发表于 2012-6-13 11:24

不行的,如果这时候用户开机怎么办
 楼主| 28182900 发表于 2012-6-13 13:09 | 显示全部楼层
电源控制/状态寄存器(PWR_CSR)中的PVDO标志用来表明VDD是高于还是低于PVD的电压阀值。该事件在内部连接到外部中断的第16线,如果该中断在外部中断寄存器中是使能的,该事件就会产生中断。当VDD下降到PVD阀值以下和( ...
airwill 发表于 2012-6-13 09:31

我是设置边沿触发,  EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
 楼主| 28182900 发表于 2012-6-14 09:38 | 显示全部楼层
不行的复位后 PVDO也被清零的,其实这时候电压是一直处于阀值以下的,为什么会中断?
 楼主| 28182900 发表于 2012-6-15 12:40 | 显示全部楼层
 楼主| 28182900 发表于 2012-6-19 22:17 | 显示全部楼层
没有人这么做吗?
好好奇大家都掉电**是怎么做的?
 楼主| 28182900 发表于 2012-6-22 17:10 | 显示全部楼层
我顶~
 楼主| 28182900 发表于 2012-6-24 22:35 | 显示全部楼层
UP求高手
 楼主| 28182900 发表于 2012-11-7 14:03 | 显示全部楼层
顶顶~~~~~
dzguang 发表于 2012-11-8 09:30 | 显示全部楼层
退出中断你还有事情要做?没有的话,你就直接while(1),一直到完全断电不就行了?
 楼主| 28182900 发表于 2012-11-12 09:56 | 显示全部楼层
退出中断你还有事情要做?没有的话,你就直接while(1),一直到完全断电不就行了?
dzguang 发表于 2012-11-8 09:30

还是那个问题,如果这时候用户开机怎么办?永不 掉电一直死循环了。
 楼主| 28182900 发表于 2012-11-22 13:36 | 显示全部楼层
什么 [长期未结的主题] | 啊 我还没解决呢。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

100

主题

1127

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部