bigfanofiot 发表于 2024-3-20 10:49:08

STM32H743掉电检测不起作用

通过用户手册知道stm32h743具有PVD和BOR功能。

FLASH 选项状态寄存器(FLASH_OPTSR_CUR)

BOR_LEV:欠压电压选项状态位 (Brownout level option status bit和SYSCFG

用户寄存器 2 (SYSCFG_UR2)
BORH:BOR_LVL 欠压复位阈值电压 (BOR_LVL Brownout Reset Threshold Level)这些位指示欠压复位阈值电压。


但是我通过仿真器查看这些寄存器的值,发现它跟手册上的默认值不一致,按照网上的方法修改也不起作用
/* BOR欠压复位配置函数*/
void BOR_Config(void)
{
   FLASH_OBProgramInitTypeDefsConfigBOR = {0};

   /* 解锁FLAS,解锁OB */
   HAL_FLASH_Unlock();
   HAL_FLASH_OB_Unlock();
   
   /* 获取当前Option Byte配置 */
   HAL_FLASHEx_OBGetConfig(&sConfigBOR);
   
   if ((sConfigBOR.USERConfig & 0x700) != OB_BOR_LEVEL_4)      //检查掉电复位电平是否正确
{
   sConfigBOR.OptionType = OPTIONBYTE_USER;
   sConfigBOR.USERType   = OB_USER_BOR_LEV;
   sConfigBOR.USERConfig = OB_BOR_LEVEL_4;                   //设置掉电复位电平
   HAL_FLASHEx_OBProgram(&sConfigBOR);

   /* 开始对选项字节进行编程 */
   HAL_FLASH_OB_Launch();
}
   /* 锁定Flash,锁定OB */
   HAL_FLASH_OB_Lock();
   HAL_FLASH_Lock();

}


eric2013 发表于 2024-3-22 08:45:37

帮顶,没测试过这个功能。
页: [1]
查看完整版本: STM32H743掉电检测不起作用