STM32 FLASH 锁定
STM32 FLASH 锁定
STM32 FLASH 锁定机制详解
1. 锁定原因
- 安全保护:防止意外擦除/写入导致固件损坏(如程序跑飞时误操作)。
- 防篡改:保护核心代码不被非法修改或读取(尤其对敏感固件)。
- 硬件机制:STM32 的 FLASH 控制器默认上电后处于 锁定状态。
2. 解锁步骤(关键密钥序列)
必须按顺序写入两个密钥值:
// 寄存器地址(以 STM32F1 为例)
#define FLASH_KEYR (*(volatile uint32_t*)0x40022004)
// 解锁操作
FLASH_KEYR = 0x45670123; // 密钥1
FLASH_KEYR = 0xCDEF89AB; // 密钥2
注意事项:
- 密钥顺序错误或数值错误会导致解锁失败。
- 解锁后
FLASH_CR寄存器的LOCK位自动清零。
3. 锁定操作
完成 FLASH 操作后立即锁定:
// 设置 FLASH_CR 的 LOCK 位(地址 0x40022010)
FLASH->CR |= FLASH_CR_LOCK; // 写 1 锁定
4. HAL 库函数操作
使用 STM32 HAL 库简化流程:
#include "stm32f1xx_hal_flash.h"
// 解锁
HAL_FLASH_Unlock();
// 执行 FLASH 操作(擦除/编程)
// HAL_FLASHEx_Erase(...);
// HAL_FLASH_Program(...);
// 重新锁定
HAL_FLASH_Lock();
5. 常见问题排查
- 错误标志检测:
if (FLASH->SR & FLASH_SR_PGAERR) { // 编程对齐错误(非 32 位写入) } if (FLASH->SR & FLASH_SR_WRPRTERR) { // 写保护错误(被保护区被写入) } - 解锁失败原因:
- 密钥顺序或数值错误
- 中断干扰(建议在临界区操作)
- 芯片写保护使能(需通过 BOOT 引脚解除)
6. 重要注意事项
- 操作时序:
- 解锁后需等待
BSY位清零才能操作 FLASH。 - 每次复位后必须重新解锁。
- 解锁后需等待
- 中断安全:
- FLASH 操作期间禁止中断(使用
__disable_irq())。
- FLASH 操作期间禁止中断(使用
- 电源稳定性:
- FLASH 编程时确保电压稳定(建议 VDD > 2.7V)。
7. 锁定状态验证
检查 FLASH_CR 寄存器的 LOCK 位:
if (FLASH->CR & FLASH_CR_LOCK) {
// FLASH 处于锁定状态
}
提示:详细寄存器定义参考对应芯片的《参考手册》(如 STM32F1xx Reference Manual RM0008)。
STM32C011开发(3)----Flash操作
STM32C011 系列微控制器内置 Flash 存储器,支持程序存储与数据保存,具备页面擦除、双字写入、读写保护等功能。本文将简要介绍 STM32
2025-09-18 16:48:32
STM32的Flash写了保护怎么办?STM32如何设置读保护和解除读保护?
STM32的Flash写了保护怎么办?STM32如何设置读保护和解除读保护? 一、ST
2023-10-29 17:24:43
STM32F103:内部Flash的读写
64-128KB(STM32F10X_MD)3、大容量产品:Flash大小为256KB以上(STM32F10X_HD)2. ST库函数ST库中对
资料下载
佚名
2021-12-01 20:51:08
STM32F4 SPI-FLASH实验例程
STM32F4 SPI-FLASH实验例程(java的哪个版本用于嵌入式开发)-STM32F4 SPI-
资料下载
手托初梦
2021-07-30 16:01:23
STM32CUBEMX(10)--Flash读写
本例程主要讲解如何对芯片自带Flash进行读写,用芯片内部Flash可以对一些需要断电保存的数据进行保存,无需加外部得存储芯片,本例程采用的是STM32
2022-11-14 16:36:42
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 芯片的工作原理是什么?
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 什么是蓝牙?它的主要作用是什么?
- ssd是什么意思
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- dtmb信号覆盖城市查询
- EDA是什么?有什么作用?
- 中科院研发成功2nm光刻机
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 什么是场效应管?它的作用是什么?
- 如何进行编码器的正确接线?接线方法介绍
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- 苹果nfc功能怎么复制门禁卡
- amoled屏幕和oled区别
- 单片机和嵌入式的区别是什么
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 通讯隔离作用
- 苹果笔记本macbookpro18款与19款区别
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机