stm32f103的EEROM如何使用啊

[复制链接]
11644|5
 楼主| zxz_chy 发表于 2012-2-8 19:54 | 显示全部楼层 |阅读模式
我的程序如下
void SAVE_PRA_TO_FLASH(void)
{
   FLASH_Unlock();
   for (VarValue = 501; VarValue < 512; VarValue++)
  {
    EE_WriteVariable(VarValue,*(DataReg+VarValue-1));
  }
   FLASH_Lock();
}

void READ_PRA_FROM_FLASH(void)
{

   FLASH_Unlock();
   for (VarValue = 501; VarValue < 512; VarValue++)
  {
    EE_ReadVariable(VarValue, (DataReg+VarValue-1));
  }
   FLASH_Lock();
}
这是参照st的例程写的,本来程序好像没什么问题,我就想通过读写,保存一些数据,但是最近读写多了出问题了,就是我改变DataReg数组里面的内容然后保存数据,但是重启后发现读出来的数据还是原来的数据,没有改变,是不是以上的程序有问题
 楼主| zxz_chy 发表于 2012-2-8 21:48 | 显示全部楼层
没人帮啊
IJK 发表于 2012-2-9 09:32 | 显示全部楼层
stm32f103的EEPROM,不是真正的EEPROM,而是由FLASH模拟的。FLASH的特性是只能由1写成0,不能由0写成1,想由0写成1必须进行擦除(这样1个block都会擦除成1了)
香水城 发表于 2012-2-9 10:35 | 显示全部楼层
请LZ看看相关的应用笔记。

进入ST官网中这个网页,这里列出了所有与STM32产品相关的应用笔记:http://www.st.com/stonline/stappl/resourceSelector/app?page=resourceSelector&doctype=APPLICATION_NOTE&ClassID=1734

在搜索栏中输入EEPROM可以过滤掉其他文档,只保留题目中出现EEPROM的文档。

如下图:点击PDF的小图标可以下载对应文档,如果文档所在行的右边有“Resources”,则表示有相应的程序包可以下载。
STM32_Emulate_EEPROM_AN.GIF
 楼主| zxz_chy 发表于 2012-2-9 11:24 | 显示全部楼层
谢谢香主,我就是参照AN2594里面的程序,用了函数uint16_t EE_ReadVariable(uint16_t VirtAddress, uint16_t* Data);和uint16_t EE_WriteVariable(uint16_t VirtAddress, uint16_t Data);我在VirtAddress=0x0001-0x0014内保存了20个数据,然后要用的时候还是在就是在昨天我在VirtAddress=0x0001-0x0014里面读出,我昨天通过按键修改了某些数据后保存,然后重启之后发现数据并没有更改,今天我在论坛上发现有STM32F10x_AN2594_FW_V3.1.0优化(FLASH模拟EEPROM),就把其中的EEPROM.C和EEPROM.H文件改成优化后的文件了,发现数据保存正常,不知道是什么原因,还请教各位
香水城 发表于 2012-2-9 11:39 | 显示全部楼层
应用笔记里面已经说明了原理,按照这个原理,你自己应该可以找出问题的原因了。

我没有看过这个文档,暂时帮不到你。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

148

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部