STM32 掉电不丢失,内部Flash读写流程
1.解锁,往flash密钥寄存器FLASH_KEYR中写入KEY1=0x45670123,再往Flash密钥寄存器FLASH_KEYR中写入KEY2=0xCDEF89AB
2.擦除扇区:检查FLASH_SR状态寄存器中的“忙碌寄存器位BSY”,确认当前未执行任何Flash操作;
在FLASH_CR控制寄存器中,将“”“激活页擦除寄存器位PER”置1
用FLASH_AR地址寄存器选择要擦除的页;
将FLASH_CR控制寄存器中的“开始擦除寄存器位STRT”置1,开始擦除
等待BSY位被清零时,表示擦除完成
3.写入数据:检查FLASH_SR状态寄存器中的“忙碌寄存器位BSY”,确认当前未执行任何Flash操作;
FLASH_CR控制寄存器中,将“”“激活编程寄存器位PG”置1
向指定的FALSH存储器地址执行数据写入操作,每次只能以16位的方式写入;
等待BSY位被清零时,表示写入完成
写入的地址要在程序存储空间地址之外
查询存储空间的方式:点击demo,弹出map文件 查看存储空间



空间大致分为

STM32flash空间


MDK下载设置时需要注意(第一个选项下载时会擦除掉整页)


验证结果:

程序概述 应用flash库函数编写简单很多


1万+

被折叠的 条评论
为什么被折叠?



