打印
[STM32]

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

[复制链接]
1225|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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

粉丝