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;
}
}//羊羊课代表
上一篇:基于STM32设计的简易手机
下一篇:什么是FMSC_STM32_FMSC使用理解
推荐阅读最新更新时间:2024-11-09 15:29
设计资源 培训 开发板 精华推荐
- 【星火计划】 UPS分立元件版
- AD8116-EB,评估板经过精心布局和测试,用于演示 AD8116 音频/视频开关
- LT1171HVIT、-12/2.5A 正负降压-升压转换器的典型应用
- ESP8266 WIFI滑轨 M V2.1
- TDA7294
- 使用 Infineon Technologies AG 的 IFX27001 的参考设计
- LTC3615EUF 演示板、双通道、4MHz、3A 同步降压型 DC/DC 转换器,采用 QFN 封装
- NV890100PDR2GEVB:固定频率单片降压开关稳压器评估板
- 使用 MaxLinear, Inc 的 SP6659 的参考设计
- LT1172IN8、1.25A 背光 CCFL 电源的典型应用
- 滤波电路在无输入时有一个-3.36V的电压输出
- EEWORLD大学堂----超低功耗Cortex-M0+ MCU STM32 L0系列入门
- 控制一套简单电路,如果只用一个电源信号能实现的话,用PC来发出这个信号,通常用什么输出设备在什么接口上做?怎么做?
- 华为以太网时钟同步技术_时钟透传技术白皮书
- MRS IDE入手使用分享
- 求 .Net 2003 环境下,注册表操作API函数 RegEnumValue的参数
- Launchpad + Max7219實作
- STM8L151可以,STM8L101就不能烧写了
- 关于HELPER2416的开发资料
- EEWORLD大学堂----Atmel借助全面的低功耗无线连接产品, 进一步推动物联网的发展