一、基于flash的数据读取
1、 STM32的内部 FLASH 简介
STM32芯片内部的FLASH 存储器主要用于存储代码。当在电脑上编写应用程序并使用下载器把编译后的代码文件烧录到内部FLASH中时,由于FLASH存储器的内容在掉电后不会丢失,芯片重新上电复位后,内核可从内部FLASH中加载代码并运行。
除使用外部的工具(下载器)读写内部 FLASH 外,STM32 芯片在运行时也能对自身的内部 FLASH 进行读写,因此,若内部 FLASH 存储应用程序后还有剩余的空间,可以把它像外部 SPI-FLASH 那样利用起来,存储一些程序运行时产生的需要掉电保存的数据。
由于访问内部 FLASH 的速度比访问外部 SPI-FLASH 的速度快,因此,在紧急状态下常使用内部 FLASH 存储关键记录。为防止应用程序被抄袭,有的应用会禁止读写内部FLASH 中的内容,或在第一次运行时计算加密信息并记录到某些区域,然后删除自身的部分加密代码。
2、用stm32cubemx创建工程
工程链接:https://pan.baidu.com/s/11Tn8TocHT8qithneDyKFIQ
提取码:pmvn
因为使用stlik驱动程序,所以这里的debug选择serial wire
调整栈的大小
将事先准备好的flash.c 及flash.h加入到工程中(flash.h文件放在Inc文件夹下即可)
在main.c中加入如下代码