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位被清零时,表示写入完成
写入的地址要在程序存储空间地址之外
空间大致分为
STM32flash空间
MDK下载设置时需要注意(第一个选项下载时会擦除掉整页)
验证结果:
程序概述 应用flash库函数编写简单很多
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。