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库函数编写简单很多