STM32-Flash存储

目录

[1.0 闪存模块组织](#1.0 闪存模块组织)

[2.0 Flash基本结构](#2.0 Flash基本结构)

[3.0 Flash解锁](#3.0 Flash解锁)

[4.0 指针访问存储器地址](#4.0 指针访问存储器地址)

[5.0 程序存储器编程](#5.0 程序存储器编程)

[6.0 选项字节](#6.0 选项字节)

[7.0 选项字节编程](#7.0 选项字节编程)

[8.0 选项字节擦除](#8.0 选项字节擦除)

[9.0 电子签名](#9.0 电子签名)

[10.0 手册解读](#10.0 手册解读)


定义:

STM32F1系列的FLASH包含程序存储器、系统存储器和选项字节三个部分,通过闪存存储器接口(外设)可以对程序存储器和选项字节进行擦除和编程

读写FLASH的用途:利用程序存储器的剩余空间来保存掉电不丢失的用户数据 通过在程序中编程(IAP),实现程序的自我更新

在线编程(In-Circuit Programming -- ICP)用于更新程序存储器的全部内容,它通过JTAG、SWD协议或系统加载程序(Bootloader)下载程序

在程序中编程(In-Application Programming -- IAP)可以使用微控制器支持的任一种通信接口下载程序


1.0 闪存模块组织



2.0 Flash基本结构



3.0 Flash解锁



4.0 指针访问存储器地址


指针访问存储器地址需要解引用:在C语言中解引用表示的就是取值的意思


5.0 程序存储器编程


注:在单片机中有字节,半字,一字的说法,字节表示的是8个bit位,半节表示的是uint16_t,一个字节表示的是uint32_t个字节。




6.0 选项字节



7.0 选项字节编程


检查FLASH_SR的BSY位,以确认没有其他正在进行的编程操作

解锁FLASH_CR的OPTWRE位

设置FLASH_CR的OPTPG位为1

写入要编程的半字到指定的地址

等待BSY位变为0 读出写入的地址并验证数据


8.0 选项字节擦除


检查FLASH_SR的BSY位,以确认没有其他正在进行的闪存操作

解锁FLASH_CR的OPTWRE位

设置FLASH_CR的OPTER位为1

设置FLASH_CR的STRT位为1

等待BSY位变为0 读出被擦除的选择字节并做验证


9.0 电子签名



10.0 手册解读


......

相关推荐
恒锐丰科技林技术员1 小时前
EG2181D 半桥栅极驱动芯片详解:高压 MOS/IGBT 驱动实用器件
经验分享·嵌入式硬件·硬件工程
国科安芯2 小时前
面向卫星测控应答机的抗辐射MCU信号采集与定时控制研究
单片机·嵌入式硬件·mcu·架构·卫星·商业航天·抗辐射
新晨单片机设计2 小时前
S010A-基于STM32单片机水温控制系统(数码管显示)【Proteus仿真+Keil程序+原理图】
stm32·单片机·嵌入式硬件
事界见闻3 小时前
高性能电机控制MCU选型对比:精度、功耗与实时性如何兼得?
单片机·嵌入式硬件
Brilliantwxx3 小时前
【STM32】 初认识USART串口
linux·stm32·单片机·嵌入式硬件·架构
分享资料4 小时前
用小电容消除高频信号的原因
嵌入式硬件·硬件工程
沐欣工作室_lvyiyi4 小时前
基于STM32的人脸识别门禁系统的设计与实现(论文+源码)
stm32·单片机·嵌入式硬件
zcmodeltech8 小时前
智慧矿山沙盘模型多场景控制系统设计——基于STM32与Modbus RTU的智能开采、无人矿卡、数字孪生全场景联动方案
数据库·stm32·单片机·嵌入式硬件·物联网
国科安芯8 小时前
抗辐射MCU在低轨卫星电源管理单元中的电压监测与保护策略研究
大数据·单片机·嵌入式硬件·电源管理·低轨卫星·抗辐射·星间链路
分享资料9 小时前
去耦电容和旁路电容的区别
嵌入式硬件·硬件工程