STM32F412应用开发笔记之六:使用片上Flash存储参数 |
您所在的位置:网站首页 › 王者中姜子牙怎么玩才厉害 › STM32F412应用开发笔记之六:使用片上Flash存储参数 |
我们的项目中需要保存一些系统配置参数,这些数据的特点是:数量少而且不需要经常修改,但又不能定义为常量,因为每台设备可能不一样而且在以后还有修改的可能。这就需要考虑这些参数保存的问题。将这类数据存在指定的位置,需要修改时直接修改存储位置的数值,需要使用时则直接读取,会是一种方便的做法。考虑到这些数据量比较少,使用专门的存储单元既不经济,也没有必要,恰好有些MCU拥有比较大的FLASH,使用少量来存储这些参数则既方便有经济。STM32F4的Flash架构如下: 这次NUCLEO-F412ZG测试板上的STM32F412ZG拥有1M的Flash,所以我们可以试试将参数保存到其片上Flash中。其Flash的组织模式如下: 根据上面的Flash组织模式,我们可以根据自己的使用方便来作相应的定义。从Sector5到Sector11大小都是128K,所以我们做如下宏定义: #define SECTOR_SIZE 1024*128 //字节 虽然ST的库函数比较全面,但都是基本操作,为了使用方面,根据我们自己的需要对其进行再次封装。 对于读操作相对比较简单,内置闪存模块可以在通用地址空间直接寻址,就像读取变量一样。 //从指定地址开始读取多个数据 void FLASH_ReadMoreData(uint32_t startAddress,uint16_t *readData,uint16_t countToRead) { uint16_t dataIndex; for(dataIndex=0;dataIndex |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |