打印

关于掉电检测

[复制链接]
3011|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jinjing999|  楼主 | 2009-10-12 17:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
//EXTI_Trigger_Rising_Falling---配置成电压上升或下降越过设定阀值时都产生中断
但是,在中断里,要判断到底是上电还是掉电。
我查手册说:
0:VDD/VDDA高于由PLS[2:0]选定的PVD阀值
1:VDD/VDDA低于由PLS[2:0]选定的PVD阀值
我搞不同0是掉电?还是1是掉电
沙发
jinjing999|  楼主 | 2009-10-13 14:02 | 只看该作者
我配置方式:
//PVD检测配置中断

    //NVIC_ClearIRQChannelPendingBit(PVD_IRQChannel);
          NVIC_InitStructure.NVIC_IRQChannel = PVD_IRQChannel;
          NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
          NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
          NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
          NVIC_Init(&NVIC_InitStructure);       


//配置掉电检测接口
    PWR_PVDLevelConfig(PWR_PVDLevel_2V2); // 设定监控阀值  
    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_Rising_Falling;//电压低于阀值时产生

//中断  
    EXTI_InitStructure.EXTI_LineCmd = ENABLE; // 使能中断线  
    EXTI_Init(&EXTI_InitStructure); // 初始
    //EXTI_InitStructure.EXTI_Trigger的赋值可选项:
    //EXTI_Trigger_Rising---表示电压从高下降到低于设定阀值时产生中断;
    //EXTI_Trigger_Falling---表示电压从低上升到高于设定阀值时产生中断;
    //EXTI_Trigger_Rising_Falling---表示电压上升或下降越过设定阀值时都产生中断。


中断服务函数:
当工作电压低于设定阀值时,将产生PVD中断,在中断程序中进行相应的处理:
    void PVD_IRQHandler(void)  
    {
      EXTI_ClearITPendingBit(EXTI_Line16);
      …… // 用户添加紧急处理代码处
    }


这里面还有错吗?
为什么上电的时候,不进入中断啊?
我是在中断设置个标志,如果进中断,能同过串口查出来。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

73

主题

363

帖子

1

粉丝