首页| 行业标准| 论文文档| 电子资料| 图纸模型
购买积分 购买会员 激活码充值

您现在的位置是:团子下载站 > 其他 > STM32 FLASH 模拟EEPROM使用注意事项和优化原理及错误案例分析

STM32 FLASH 模拟EEPROM使用注意事项和优化原理及错误案例分析

  • 资源大小:0.1 MB
  • 上传时间:2021-12-27
  • 下载次数:0次
  • 浏览次数:26次
  • 资源积分:1积分
  • 标      签: EEPROM STM32 FlaSh

资 源 简 介

1. 写数据   假设保存的数据虚拟地址是 0X7777,那么程序写数据是从当前有效页页首地址开始查询虚   拟地址位置为 0XFFFF 的空间,如果是 0XFFFF 那么该位置可以保存数据;如果不是,那   么继续找下 1 个位置,如果本页无 0XFFFF 的空间那么表示本页已满,那么将本页【有效   数据】复制到另外 1 页继续保存数据。   当两次保存同一虚拟地址的数据时如右图所示:从上到下,第 2 个虚拟地址是 0X7777 对应   的数据 1245 才是有效的。清楚了这点,那么读数据要怎么处理基本就明白了。   2. 读数据   读数据时是从有效页的末尾地址开始检测是否是有效数据,如果是那么立即返回,程序是通过虚拟地址判断有   效数据的,第 1 个匹配的虚拟地址的数据才是有效的   3. 页满时处理数据   说到这里,看到不少使用例子程序不成功的问题,那么就请注意下面了,他们的错误估计是下面的原因造成的。   当 1 页写满时其实里面有很多无效数据,你只需要将【有效数据】复制到另外 1 页就成。如何复制有效数据呢?   我想很多人估计忽略了 【#define NumbOfVar ((uint8_t)0x03) /* Variables‘ number */】,NumbOfVar 就是你程   序中实际要保存的数据量,这个必须与实际保持一致,不能多也不能少,这个如果不一致,那么在换页时将出   错,没换页之前倒是没问题的,原因在于:程序在换页时将根据 NumbOfVar 的值复制有效数据的个数,如果比   实际少,那么换页时将丢失数据,如果比实际多那么将出现旧数据覆盖最新数据
VIP VIP