当前位置: 首页 > news >正文

STM32 写选项字 关键要加载HAL_FLASH_OB_Launch

AI乱写,还是得自己来!

void Write_OptionBytes_IWDG_STDBY(void) 
{
FLASH_OBProgramInitTypeDef OBInit;
HAL_FLASHEx_OBGetConfig(&OBInit);  // 获取当前选项字节配置[6,7](@ref)

    // 检查当前nRST_STDBY位(IWDG_STDBY相关位)是否已为0,若否则修改
if ( ((OBInit.USERConfig & FLASH_OPTR_IWDG_STOP) != 0x00) || 
((OBInit.USERConfig & FLASH_OPTR_IWDG_STDBY) != 0x00) )  
{
// 解锁FLASH和选项字节写操作
HAL_FLASH_Unlock();
HAL_FLASH_OB_Unlock();

        // 配置选项字节:清除nRST_STDBY位(IWDG_STDBY=0)
OBInit.OptionType = OPTIONBYTE_USER;
OBInit.USERConfig = OBInit.USERConfig & (~FLASH_OPTR_IWDG_STOP) & (~FLASH_OPTR_IWDG_STDBY);  // 置0[6,7](@ref)
OBInit.USERType = OB_USER_IWDG_STOP | OB_USER_IWDG_STDBY;

        // 写入选项字节并触发重新加载
if (HAL_FLASHEx_OBProgram(&OBInit) != HAL_OK) {
Error_Handler();  // 处理错误
}

HAL_FLASH_OB_Launch();   //强制加载选项字  关键一步

HAL_FLASHEx_OBGetConfig(&OBInit);  // 获取当前选项字节配置[6,7](@ref)

        // 锁定FLASH并复位MCU使配置生效
HAL_FLASH_OB_Lock();
HAL_FLASH_Lock();
HAL_NVIC_SystemReset();  // 必须复位才能应用新配置[6](@ref)
}
}

http://www.dtcms.com/a/282619.html

相关文章:

  • 红黑树、B树、B+树
  • 轻松将文件从 iPhone 传输到 Mac
  • 中医文化学习软件,传承国粹精华
  • Redis Key 设计原则
  • Excel转PDF的三种方法
  • 基于大数据的网络文学推荐分析系统的设计与实现【海量书籍、自动爬虫】
  • 《通信原理》学习笔记——第二章
  • AI进化论15:通用人工智能(AGI)的“终极梦想”与“潘多拉魔盒”
  • AI炒作,AGI或在2080年之前也无法实现,通用人工智能AGI面临幻灭
  • 基于 .Net Core+MySQL开发(WinForm)翻译平台
  • rLLM:用于LLM Agent RL后训练的创新框架
  • 前端面试题(React 与 Vue)
  • #Datawhale组队学习#7月-强化学习Task1
  • Java大厂面试实录:从电商场景到AI应用的深度技术考察
  • 如何通过域名白名单​OVP防盗链加密视频?
  • 【游戏引擎之路】登神长阶(十八):3天制作Galgame引擎《Galplayer》——无敌之道心
  • AJ Security:实用的 Java Web 安全库
  • Qt获取hid设备信息
  • 抖音小程序开发如何避坑?如何接口调用与性能优化?
  • Nacos 开源 MCP Router,加速 MCP 私有化部署
  • 运维打铁: Ruby 脚本在运维自动化中的应用探索
  • leetcode 3201. 找出有效子序列的最大长度 I 中等
  • K8s 自定义调度器 Part1:通过 Scheduler Extender 实现自定义调度逻辑
  • AI Agent开发学习系列 - langchain之LCEL(1):LangChain LCEL链式编排与RAG增强实践
  • FunASR Paraformer-zh:高效中文端到端语音识别方案全解
  • Django ORM 查询工具对象详解
  • Linux 命令:uname
  • Scalefusion 与 EasyControl 对比:轻量级方案与全功能 IoT MDM 的深度碰撞
  • 前端面试题(HTML、CSS、JavaScript)
  • 在此处打开 powershell 窗口 shift + 右键 修改为 右键弹出