[STM32] 关于STM32L1系列内部EEPROM存储数据代码

[复制链接]
 楼主| yanghaixia 发表于 2016-1-13 14:54 | 显示全部楼层 |阅读模式
前几天一直再寻找STM32L1系列内部EEPROM存储数据程序,用FLASH模拟EEPROM太复杂了,正合适选择的系列有内部eeprom,和大家分享一下,已经测试过的。
#include "stm32l1xx.h"
#include "main.h"


#define EEPROM_BASE_ADDR        0x08080000       
//#define EEPROM_BYTE_SIZE        0x0FFF
void Eeprom_Write_Byte(u32 Start_Address,u8 Data_Value);
u8 Eeprom_Read_Byte(u32 Read_Address);

void Eeprom_Write_Byte(u32 Start_Address,u8 Data_Value)
{

   u32 Address =0;
   Address = EEPROM_BASE_ADDR+Start_Address;
   if(IS_FLASH_DATA_ADDRESS(Address))
   {
     DATA_EEPROM_Unlock();  //设备解锁
     while(FLASH_GetStatus()!=FLASH_COMPLETE);
     DATA_EEPROM_ProgramByte(Address,Data_Value);
     DATA_EEPROM_Lock();//设备上锁
   }
}

u8 Eeprom_Read_Byte(u32 Read_Address)
{
    u32 Address =0;
    Address = EEPROM_BASE_ADDR+Read_Address;
    u8 tmp=0;
    if(IS_FLASH_DATA_ADDRESS(Address))
    {

        DATA_EEPROM_Unlock();  //设备解锁
        while(FLASH_GetStatus()==FLASH_BUSY);
        tmp=*(__IO uint8_t*)Address;
        DATA_EEPROM_Lock();//设备上锁
    }
    return tmp;
}


阿南 发表于 2016-1-14 11:53 | 显示全部楼层
不错,谢谢
pjzmj2012 发表于 2020-3-18 14:45 | 显示全部楼层
楼主 工程呢?
DATA_EEPROM_Unlock在哪里?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

12

帖子

0

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