野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 17746|回复: 3

请教关于STM32 PVD中断的问题!

[复制链接]
发表于 2015-7-4 20:45:45 | 显示全部楼层 |阅读模式
ZET6的低电压中断,现在进不了中断,网上也看了很多资料,但是始终就不进不了中断,上升和下降都不进入中断,我把程序贴上,恳请前辈指点一下。


这是PVD中断配置函数:


void PVD_Config(void)
{
        NVIC_InitTypeDef NVIC_InitStructure;
        EXTI_InitTypeDef EXTI_InitStructure;
       
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);
       
        //PWR_PVDLevelConfig(PWR_PVDLevel_2ARM);
        //PWR_PVDCmd(ENABLE);
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
        NVIC_InitStructure.NVIC_IRQChannel = PVD_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
       
        NVIC_Init(&NVIC_InitStructure);
       
        //EXTI_StructInit(&EXTI_InitStructure);
        //EXTI_ClearITPendingBit(EXTI_Line16);
        EXTI_InitStructure.EXTI_Line = EXTI_Line16;        //ía2¿ÖD¶ÏÏß16רÎaPVDÖD¶Ïê1óÃ
        EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
        EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling;        //μçÑ1μíóú·§Öμê±2úéúÖD¶Ï
        EXTI_InitStructure.EXTI_LineCmd = ENABLE;       //ê1Äü

        EXTI_Init(&EXTI_InitStructure);
}



这是主函数:
int main(void)
{
        uint8_t i;
        PWR_PVDLevelConfig(PWR_PVDLevel_2ARM);
        PWR_PVDCmd(ENABLE);
        LED_GPIO_Config();
        PVD_Config();
        USART2_Config();
       
        for(i=0;i<9;i++)
        {
                USART_SendData(USART2, temp[i]);
                while (USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET);
        }
        while(1);

}

这是PVD中断函数:
void PVD_IRQHandler(void)
{
        if(EXTI_GetITStatus(EXTI_Line16) != RESET)
        {
                EXTI_ClearITPendingBit(EXTI_Line16);
                GPIO_SetBits(GPIOB, GPIO_Pin_0);
        }
}



始终看不到LED灯闪一下。另外请教一下,要使用PVD中断,连接备用电池的引脚是否一定要连接一个100nf的陶瓷电容到电源啊?我现在就没有加电容,是直接连接到3.3V电源的,还没来得及加陶瓷电容,先发个帖请教一下。

回复

使用道具 举报

 楼主| 发表于 2015-7-5 19:48:59 | 显示全部楼层
唉!自己顶一下吧,上电时可以进入中断,我用写I2C的方式,配置为上升和下降都中断时,只有上升可以中断,是我硬件有问题吗?期待!!!!!!!!!!!!!!!!!!
回复 支持 反对

使用道具 举报

发表于 2015-7-6 09:09:07 | 显示全部楼层
还没用过低电压中断。 这个跟IIC应该没什么关系
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-7-6 10:26:10 | 显示全部楼层
flyleaf 发表于 2015-7-6 09:09
还没用过低电压中断。 这个跟IIC应该没什么关系

在while(1)中查询,PWR_FLAG_PVDO这个标志位也是可以置1的,就可以写I2C。就是进不了中断,不知道为什么
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2025-1-9 16:44 , Processed in 0.030597 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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