STM32 调整重启电压阈值 BOR

        STM32 支持调整重启电压阈值,即 BOR。重启电压阈值指的是,如果电源电压低于此阈值,则 MCU 进入复位状态。有三个级别可以设置,level 1、level 2、level 3。以 STM32F412RE 为例,level 1 对应 2.13V、level 2 对应 2.44V、level 3 对应 2.75V。

        此设置配置在 MCU 内部 FLASH 中的选项字中,地址为 0x1FFFC000:

STM32 调整重启电压阈值 BOR_第1张图片

         我们可以通过 FLASH 选项字控制寄存器 FLASH_OPTCR 读取和设置 BOR 的值,STM32 库也提供了读取与设置的相关接口,代码如下:

    FLASH_OBProgramInitTypeDef OBInit;
    HAL_FLASHEx_OBGetConfig(&OBInit);

    if (OBInit.BORLevel != OB_BOR_LEVEL3) {
        OBInit.BORLevel = OB_BOR_LEVEL3;
        HAL_FLASH_OB_Unlock();
        HAL_FLASHEx_OBProgram(&OBInit);
        HAL_FLASH_OB_Launch();
        HAL_FLASH_OB_Lock();
    }

你可能感兴趣的:(STM32,stm32,BOR,阈值,掉电,复位)