打印

stm32f103的EEROM如何使用啊

[复制链接]
11009|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我的程序如下
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 (46.19 KB )

STM32_Emulate_EEPROM_AN.GIF

使用特权

评论回复
5
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文件改成优化后的文件了,发现数据保存正常,不知道是什么原因,还请教各位

使用特权

评论回复
6
香水城| | 2012-2-9 11:39 | 只看该作者
应用笔记里面已经说明了原理,按照这个原理,你自己应该可以找出问题的原因了。

我没有看过这个文档,暂时帮不到你。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

148

帖子

2

粉丝