STM32H7 PVD断电的使用

150 阅读1分钟

1.遇到的问题

我使用的是STM32H747,在初始化后发现断电后并没有进入中断。最后查找到因为STM32H747是双核CPU,在HAL库源码中,有双核的宏定义将一些配置给屏蔽了,因为我只用到了单核,就把源码中的宏取消掉了,然后就可以正常进入中断了。使用不是双核的就不需要更改了。

2.下面是PVD的程序

void PVD_Init(void)
{
PWR_PVDTypeDef sConfigPVD = {0};

    sConfigPVD.PVDLevel = PWR_PVDLEVEL_6;
sConfigPVD.Mode = PWR_PVD_MODE_IT_RISING;
HAL_PWR_ConfigPVD(&sConfigPVD);

    HAL_NVIC_SetPriority(PVD_IRQn, 0, 0);       /* 配置PVD中断优先级 */
HAL_NVIC_EnableIRQ(PVD_IRQn);               /* 使能PVD中断 */

    HAL_PWR_EnablePVD();
}


/* PVD中断处理 */
void PVD_AVD_IRQHandler(void)
{
HAL_PWR_PVD_IRQHandler();
}

void HAL_PWR_PVDCallback(void)
{

//增加自己需要在断电时候的处理

}