你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】stm32l0片上eeprom的读写操作

[复制链接]
STMCU小助手 发布时间:2021-11-19 22:00
一、介绍
1.1 片上eeprom介绍
L0的片上eeprom特性主要用来存储系统的配置信息,f103如果需要存储配置信息,还需要额外的一颗eeprom芯片,片上eeprom的机制也符合这系列的低功耗的属性。

1.2 写eeprom操作
此操作旨在将字或字的一部分写入数据EEPROM。用户必须在正确的地址和大小写正确的值。内存接口在必要时自动执行擦除操作(如果所有位当前都设置为0,则无需在写入之前删除旧内容)。类似地,如果要写入的数据为0,则只执行擦除操作。当只执行写操作或擦除操作时,持续时间为Tprog(3.2 ms);如果两者都执行,则持续时间为2 x Tprog(6.4 ms)。每次擦除和写入操作都将FIX标志设置为1时,可以强制内存接口执行。
注意的是
一般flash擦除后是0xff,而片上eeprom擦除后是0x00
一般flash在编程前需要先擦除,而stm32的内存接口自动的执行了擦除操作,无需用户执行额外的擦除指令。

二、编程
  1. //eeprom地址
  2. #define EEPROM_BASE_ADDR        0x08080000
  3. //向偏移地址写入len个字节
  4. void eeprom_write(uint16_t BiasAddress, uint8_t *Data, uint16_t len)
  5. {
  6.         uint16_t i;
  7.         HAL_StatusTypeDef status = HAL_OK;

  8.         HAL_FLASHEx_DATAEEPROM_Unlock();
  9.         for(i=0;i<len;i++)
  10.         {
  11.                 status +=HAL_FLASHEx_DATAEEPROM_Program(FLASH_TYPEPROGRAMDATA_BYTE, EEPROM_BASE_ADDR+BiasAddress+i, *Data);
  12.                 Data++;
  13.         }
  14.         HAL_FLASHEx_DATAEEPROM_Lock();
  15. }
  16. //向偏移地址读取len个字节
  17. void eeprom_read(uint16_t BiasAddress,uint8_t *Buffer,uint16_t Len)
  18. {
  19.         uint8_t *wAddr;
  20.         wAddr=(uint8_t *)(EEPROM_BASE_ADDR+BiasAddress);
  21.         while(Len--)
  22.         {
  23.                 *Buffer++=*wAddr++;
  24.         }
  25. }
复制代码


三、测试
3.1 测试代码
  1. //测试
  2.         printf("开始测试\r\n");
  3.         printf("写入eeprom数据:[0]:%x [1]:%x\r\n",eeprom_write_data[0],eeprom_write_data[1]);
  4.         eeprom_write(0,eeprom_write_data,2);
  5.         HAL_Delay(10);
  6.         eeprom_read(0,eeprom_read_data,2);
  7.         printf("读取的eeprom数据:[0]:%x [1]:%x\r\n",eeprom_read_data[0],eeprom_read_data[1]);
  8.         printf("片上eeprom测试完成\r\n");
复制代码

3.2测试结果
向0x08080000写入两个字节和从改该地址读取两个的内容一致,测试成功。




20210316142526351.png
收藏 评论1 发布时间:2021-11-19 22:00

举报

1个回答
STM1024 回答时间:2021-11-20 13:37:25
感谢分享~~ TS1 - 副本 (6).jpg TS1 - 副本 (5).jpg TS1 - 副本 (4).jpg TS1 - 副本 (3).jpg TS1 - 副本 (2).jpg

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版