硬汉嵌入式论坛

 找回密码
 立即注册
查看: 192|回复: 1
收起左侧

[STM32H7] STM32H743掉电检测不起作用

[复制链接]

11

主题

21

回帖

54

积分

初级会员

积分
54
发表于 2024-3-20 10:49:08 | 显示全部楼层 |阅读模式
通过用户手册知道stm32h743具有PVD和BOR功能。

FLASH 选项状态寄存器(FLASH_OPTSR_CUR)

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

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


但是我通过仿真器查看这些寄存器的值,发现它跟手册上的默认值不一致,按照网上的方法修改也不起作用
[C] 纯文本查看 复制代码
/* BOR欠压复位配置函数*/
void BOR_Config(void)
{
   FLASH_OBProgramInitTypeDef  sConfigBOR = {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();

}


回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2024-3-22 08:45:37 | 显示全部楼层
帮顶,没测试过这个功能。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-29 00:27 , Processed in 0.153309 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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