CubeMX系列教程——20 STM32内部Flash

有的时候我们会需要 在系统中保存一些参数,这个时候我们可以使用STM32内部的闪存Flash,即使断电参数也不会丢失。

查看STM32的参考手册,STM32F407中介绍了flash的特性,本实验开发板使用的flash是1M容量大小。

CubeMX系列教程——20 STM32内部Flash

flash的扇区和块基址如下图

CubeMX系列教程——20 STM32内部Flash

本章节使用串口打印工程,打开工程,添加扇区代码

CubeMX系列教程——20 STM32内部Flash

定义保存的flash的开始地址

CubeMX系列教程——20 STM32内部Flash

定义保存flash的结束地址

CubeMX系列教程——20 STM32内部Flash

定义要在flash中保存的数据

CubeMX系列教程——20 STM32内部Flash

定义其它变量如扇区的个数、获取扇区函数等

CubeMX系列教程——20 STM32内部Flash

在主函数中添加代码,串口提示打印开始 flash测试

CubeMX系列教程——20 STM32内部Flash

解锁flash

CubeMX系列教程——20 STM32内部Flash

获取需要擦除的扇区个数

CubeMX系列教程——20 STM32内部Flash

CubeMX系列教程——20 STM32内部Flash

指定扇区擦除的参数、首页扇区和扇区大小并且调用扇区擦除函数

CubeMX系列教程——20 STM32内部Flash

添加代码防止在flash操作过程中出现错误

CubeMX系列教程——20 STM32内部Flash

在指定的扇区写入指定的数据DATA_32=0x12345678

CubeMX系列教程——20 STM32内部Flash

写入完毕,flash上锁。

至此flash的操作流程完毕,接下来需要查看写入指定flash地址的数据是否正确。

CubeMX系列教程——20 STM32内部Flash

当写入的数据有误时变量MemoryProgramstatus将会加1,如果没有错误MemoryProgramstatus将会是0。串口将结果打印出来。

CubeMX系列教程——20 STM32内部Flash

实验结果

CubeMX系列教程——20 STM32内部Flash

整个实验过程视频