OpenEdv-开源电子网

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

PVD电压阀值设置为2.9V下降沿中断,实际上却是上升沿中断

[复制链接]

22

主题

76

帖子

0

精华

初级会员

Rank: 2

积分
186
金钱
186
注册时间
2014-7-7
在线时间
0 小时
发表于 2014-7-24 10:49:50 | 显示全部楼层 |阅读模式
5金钱
    如题,我设置PVD电压保护为下降沿触发中断,中断服务函数里点亮一个灯,用一个可调电源从3.3V降到2.7伏,但是,灯并没有亮,于是我又从2.7伏升到3.3V灯亮了。我就很纳闷,后来我把下降沿触发该为上升沿触发,发现电压上升时,不进入中断函数,下降时才进入中断函数。就是刚刚相反了。不知道有网友碰到过这个问题吗?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

22

主题

76

帖子

0

精华

初级会员

Rank: 2

积分
186
金钱
186
注册时间
2014-7-7
在线时间
0 小时
 楼主| 发表于 2014-7-24 10:54:32 | 显示全部楼层
void VD_Configuration(void)
{
    EXTI_InitTypeDef EXTI_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure; 

/*使能时钟*/
RCC_APB1PeriphClockCmd(RCC_APB1Periph_BKP | RCC_APB1Periph_PWR, 
                           ENABLE);

    /*使能外部中断线16,配置为下降沿中断触发*/
EXTI_InitStructure.EXTI_Line = EXTI_Line16; 
    EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; 
    EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; 
    EXTI_InitStructure.EXTI_LineCmd = ENABLE; 
    EXTI_Init(&EXTI_InitStructure);

/*中断嵌套分组为2,使能中断线16的请求,优先级为
最高,抢占和从优先级都为0*/
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
NVIC_InitStructure.NVIC_IRQChannel = VD_IRQn; 
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; 
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; 
    NVIC_Init(&NVIC_InitStructure);

}

/************************************************************
函数功能:PVD中断服务函数,在函数里打开蜂鸣器和LED灯
作者:    廖伟
************************************************************/
void VD_IRQHandler(void)
{
    if(EXTI_GetITStatus(EXTI_Line16)!=RESET)
{
    GPIO_ResetBits(LED_PORT, LED1);
// GPIO_ResetBits(Buzzer_PORT, Buzzer);
EXTI_ClearITPendingBit(EXTI_Line16);
}
}
回复

使用道具 举报

22

主题

76

帖子

0

精华

初级会员

Rank: 2

积分
186
金钱
186
注册时间
2014-7-7
在线时间
0 小时
 楼主| 发表于 2014-7-24 10:54:46 | 显示全部楼层
这是我的程序
回复

使用道具 举报

22

主题

76

帖子

0

精华

初级会员

Rank: 2

积分
186
金钱
186
注册时间
2014-7-7
在线时间
0 小时
 楼主| 发表于 2014-7-24 10:55:28 | 显示全部楼层
PVD_Configuration();   //初始化PVD
PWR_PVDLevelConfig(PWR_PVDLevel_2V9); //检测电压为2.9V

/*使能PVD检测*/
PWR_PVDCmd(ENABLE);

主函数里面设置阀值,设使能PVD
回复

使用道具 举报

22

主题

76

帖子

0

精华

初级会员

Rank: 2

积分
186
金钱
186
注册时间
2014-7-7
在线时间
0 小时
 楼主| 发表于 2014-7-25 21:42:12 | 显示全部楼层
怎么还是没人回复呢??
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165390
金钱
165390
注册时间
2010-12-1
在线时间
2112 小时
发表于 2014-7-25 23:07:11 | 显示全部楼层
没搞过这功能啊,呵呵.帮顶.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
2
金钱
2
注册时间
2025-3-8
在线时间
0 小时
发表于 2025-3-8 10:37:02 | 显示全部楼层
廖伟 发表于 2014-7-25 21:42
怎么还是没人回复呢??

佬,我也遇到这个问题了,是啥原因啊
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-4-3 02:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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