STM32内部的EEPROM其实是Flash模拟的,也就是会占用程序的存储空间,下载的程序也放在这个地方,不过L系列单独给eeprom分配的有位置,理论上所有的STM32都可以使用这个方法,但是要注意程序越大占用的空间越多,不要和程序覆盖在一起。
大家可能使用的型号都不同,我们首先在官网下载对应型号的参考手册
网址:意法半导体STM | STM32/STM8微控制器 | MCU单片机

STEP.2
打开pdf文档找到"Flash program memory and data EEPROM (FLASH)"

这里有详细的说明
找到对应的内存的设备
示意:

L071是196KB的所以是这个表格

STEP.3
开始编程(基于HAL库)
定义一个函数,像这样:

再由参考手册宏定义一下这两个eeprom的地址:
PS:如果是没有eeprom的stm32,只要程序不是足够大,可以把地址改成Flash的最后几页(避免和程序冲突导致错误),解锁上锁函数也要分别改为
HAL_FLASH_Unlock(void);
HAL_FLASH_Lock(void);
每次对其写数据要先解锁,用完再上锁。

读写函数:

这里读写的是8bit的数据,如果要用16,32bit的数据类型
直接改数据类型就可以啦!
使用方法:

代码:
#ifndef __EEPROM_H
#define __EEPROM_H
#include "main.h"
//MAX_3KB
#define MCU_Start_Address_Bank1 0x08080000
//MAX_3KB
#define MCU_Start_Address_Bank2 0x08080C00
void Flash_Write(uint32_t Address,uint8_t *Data,uint8_t Length);
void Flash_Read(uint32_t Address,uint8_t *Data,uint8_t Length);
#endif
#include "eeprom.h"
//max 3KB// 地址 数据 长度*/
void Flash_Write(uint32_t Address,uint8_t *Data,uint8_t Length)
{
HAL_FLASHEx_DATAEEPROM_Unlock();//解锁Flash
for(uint8_t i=0;i< Length;i++)
{
/* 数据类型 数据类型 */
*(__IO uint8_t *)Address = (uint8_t) Data[i];
Address+=1;
}
HAL_FLASHEx_DATAEEPROM_Lock();//上锁Flash
}//羊羊课代表
//max 3KB// 地址 数据 长度*/
void Flash_Read(uint32_t Address,uint8_t *Data,uint8_t Length)
{
for(uint8_t i=0;i< Length;i++)
{
/* 数据类型 */
Data[i]=*(__IO uint8_t *)Address;
Address+=1;
}
}//羊羊课代表
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
微控制器
+关注
关注
49文章
8912浏览量
166062 -
单片机
+关注
关注
6078文章
45633浏览量
675699 -
mcu
+关注
关注
147文章
19258浏览量
405251 -
STM32
+关注
关注
2313文章
11212浏览量
375355 -
EEPROM
+关注
关注
9文章
1148浏览量
86486
发布评论请先 登录
相关推荐
热点推荐
如何操作芯片内部EEprom读写数据
EEprom,或者***EEprom芯片)硬件:STM32L051C8T6最小系统板软件:Keil 5.29+ STM32CubeMX6.2.1一、
发表于 08-09 06:12
STM32固件库的使用方法
一.实验目的掌握STM32固件库的使用方法;掌握基于库函数模板的开发方法;掌握基于固件库进行GPIO端口编程的方法;4、规范编程格式。二.实验内容1.查阅
发表于 10-27 06:37
读写51单片机内部EEPROM的方法
文档共包含三个程序。第一个程序最简单易懂,看懂了基本就会读写51单片机内部EEPROM了。第二个程序和第一个读写EEPROM原理差不多,包含有LCD1602操作方法,有写字符串的
发表于 11-18 07:23
如何进行STM32系列单片机内部EEPROM的读写详细资料和程序免费下载
STM32L系列单片机内部提供了EEPROM存储区域,但实质上,其FLASH也是EEPROM类型,只不过有一块区域被开放出来专门用作EEPROM
发表于 08-05 17:34
•12次下载
分享EEPROM的作用和使用方法
此外,该器件还具有显著的物理保护功能、加密功能和其他融入设计的安全功能;启用这些功能后,将可以保护EEPROM数据和内部寄存器免受最顽固的黑客以外的所有黑客攻击。数据可以通过使用军用级AES加密技术(最多16个128位密钥)进行保护。
STM32L系列读取单片机内部EEPROM
STM32L系列单片机内部提供了EEPROM存储区域,但实质上,其FLASH也是EEPROM类型,只不过有一块区域被开放出来专门用作
发表于 11-23 17:21
•17次下载
STM32F103:内部Flash模拟EEPROM
内部Flash模拟EEPROM一、原因由于STM32F103系列的单片机内部Flash的擦写次数仅有10k次,如果遇到想要存储又多变,又需要掉电保存的数据,就显得有点捉襟见肘了。我决定
发表于 12-02 11:36
•35次下载
STM32内部EEPROM的使用方法
评论