初级会员

- 积分
- 187
- 金钱
- 187
- 注册时间
- 2016-9-2
- 在线时间
- 42 小时
|

楼主 |
发表于 2017-5-10 10:01:04
|
显示全部楼层
找到问题了,还是pvd初始化时的顺序问题,按照这个配置,就没有问题了
void PVD_Init(void)
{
EXTI_InitTypeDef EXTI_InitStruct;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE); //打开PWR时钟
PWR_PVDLevelConfig(PWR_PVDLevel_2V9); //设置PVD的探测电压阀值为2.9V。可设置范围:2.2-2.9
PWR_PVDCmd(ENABLE); //使能PVD
EXTI_InitStruct.EXTI_Line = EXTI_Line16; //PVD连接到外部中断16
EXTI_InitStruct.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStruct.EXTI_Trigger = EXTI_Trigger_Rising; //电压低于阀值为1,高于阀值为0
EXTI_InitStruct.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStruct);
NVIC_InitStructure.NVIC_IRQChannel = PVD_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; //抢占优先级0
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; //子优先级0
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
} |
|