STM32L051实现内部EEPROM读写

目录

一、简单介绍

二、cubeMX配置

三、实战开发

擦除

向指定地址写入数据

数据读出,赋给变量


一、简单介绍

根据datasheet,笔者的STM32L051K8U6具有2k字节的EEPROM.另外再提一点,根据芯片容量不同,L051被分成四种等级:一级、二级、三级、五级.

NVM是The non-volatile memory 的缩写,即非易失性记忆体,flash,EEPROM就是NVM

NVM最重要的特性自然是存储,内部EEPROM支持按字节写入,估计还是按word来的。

五级器件可以一边写入,一边读取,还能选择从哪个分区启动,可能是用于固件升级。

具体的芯片细节参考编程手册(可以在cubemx工具中寻找,如下图)

EEPROM的起始地址为0x0808 0000,根据不同容量的器件,结束地址也不同。笔者使用的三级芯片,flash和EEPROM地址范围如下

二、cubeMX配置

对于芯片内置的EEPROM读写,只需开启调试接口

内部HSI时钟作为主频

三、实战开发

擦除

使用如下函数擦除

cpp 复制代码
HAL_FLASHEx_DATAEEPROM_Erase(TEST_ADDRESS);

运行前先解锁EEPROM

cpp 复制代码
HAL_FLASHEx_DATAEEPROM_Unlock();

运行完再锁定EEPROM

cpp 复制代码
HAL_FLASHEx_DATAEEPROM_Lock();

向指定地址写入数据

cpp 复制代码
HAL_FLASHEx_DATAEEPROM_Unlock();
HAL_FLASHEx_DATAEEPROM_Program(FLASH_TYPEPROGRAMDATA_WORD, TEST_ADDRESS, 0x12345678);
HAL_FLASHEx_DATAEEPROM_Lock();

数据读出,赋给变量

相关推荐
qq_246646191 小时前
openclaw快速安装-windows版
windows·stm32·单片机
染予3 小时前
13.AD软件操作:原理图如何导入PCB及导入常见错误
嵌入式硬件
小莞尔4 小时前
【51单片机】【protues仿真】 基于51单片机波形发生器系统
c语言·单片机·嵌入式硬件·物联网·51单片机
码农三叔4 小时前
(9-2-01)电源管理与能源系统:能耗分析与功率管理(1)步行能耗估计
人工智能·嵌入式硬件·机器人·人机交互·能源·人形机器人
Polanda。4 小时前
ADC-定时器触发
单片机·嵌入式硬件
-Springer-4 小时前
STM32 学习 —— 个人学习笔记1(STM32简介)
笔记·stm32·学习
Polanda。4 小时前
ADC-常规序列的单通道转换
stm32·单片机·嵌入式硬件
紫竹苑主4 小时前
VS Cose + PlatformIO +ESP32-S3 + ESPIDF开发环境安装卡壳持续等待问题解决
vscode·python·嵌入式硬件·物联网·硬件架构
weixin_456808385 小时前
【沁恒蓝牙开发】 LDE(外设)输出互补的PWM
单片机·嵌入式硬件