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();

数据读出,赋给变量

相关推荐
灯琰12 小时前
STM32 HAL库配置DMA加空闲中断接收串口数据
stm32·单片机·嵌入式硬件
曾浩轩2 小时前
跟着江协科技学STM32之5-1EXTI外部中断
科技·stm32·嵌入式硬件
qq_401700413 小时前
MOS管开关电路上下拉电阻的作用
单片机·嵌入式硬件
南棱笑笑生3 小时前
20260113给飞凌OK3588-C开发板适配Rockchip原厂的Android14系统时点亮飞凌的7寸屏时适配CTP触摸屏FT5X06
单片机·嵌入式硬件·rockchip
独处东汉3 小时前
AI辅助Stm32l031项目开发基础准备
人工智能·stm32·嵌入式硬件
麒qiqi3 小时前
51单片机核心外设知识点总结:GPIO、按键、中断、定时器与PWM
单片机·嵌入式硬件·51单片机
Q_21932764553 小时前
基于单片机的电梯模拟运行系统
单片机·嵌入式硬件
尼喃3 小时前
面向双节串联锂电池的高效充电解决方案,5V升压至8.4V/2A充电芯片PW4253及其系列选型指南
单片机·51单片机·芯片
上大科技蔡生3 小时前
FP5207兼容替代芯片CS5717:2.7V-36V宽输入,单节锂电池适用,异步升压DCDC
单片机·嵌入式硬件·dcdc