[STM32F1] 将一个整型变量写读eeprom操作

[复制链接]
2481|53
Bblythe 发表于 2025-3-14 07:47 | 显示全部楼层
ST 官方有 EEPROM 仿真例程,你可以在 STM32CubeF1 里找找,或者参考 EEPROM_Emulation 示例。
帛灿灿 发表于 2025-3-14 07:48 | 显示全部楼层
STM32F1 的 Flash 擦写有次数限制(大概 1 万次),如果是高频存取,建议用 FRAM 或 外部 EEPROM。
Pulitzer 发表于 2025-3-14 07:49 | 显示全部楼层
试试用 HAL_FLASH_Program() 写数据,地址范围要在 Flash 允许的用户区,别写错了。
童雨竹 发表于 2025-3-14 07:50 | 显示全部楼层
写入 EEPROM(Flash)之前,先检查 Flash 页是否已擦除,不能直接改写。
Uriah 发表于 2025-3-14 07:51 | 显示全部楼层
你是单次存储还是需要频繁更新?如果是频繁更新,建议用 双页轮换 技术,避免 Flash 损耗过快。
Clyde011 发表于 2025-3-14 07:51 | 显示全部楼层
Flash 读是直接从存储地址取数据,比如 *(uint32_t*)EEPROM_ADDR,你试过这样读取吗?
万图 发表于 2025-3-14 07:52 | 显示全部楼层
HAL 库有 FLASH_Program_Word() 可以写 32 位整型,读取直接用指针访问 Flash 地址。
zephyr9 发表于 2025-3-16 11:36 | 显示全部楼层
Float才是不好处理的,不过在C语言里还是算好处理的
线稿xg 发表于 2025-3-17 23:37 | 显示全部楼层
当然可以,一个字节一个字节地写入数据是单片机。
哪吒哪吒 发表于 2025-3-20 08:02 | 显示全部楼层
单片机存储数据需要指定地址,最好提前设计。
MintMilk 发表于 2025-3-20 17:25 | 显示全部楼层
存入得时候默认是大端还是小端?
Moon月 发表于 2025-3-23 22:31 | 显示全部楼层
连续写操作只需先设定地址,然后直接发送数据即可。
AIsignel 发表于 2025-3-25 22:55 | 显示全部楼层
整形大小取决于其数据类型,比如int通常是4字节,long可能是8字节。
AutoMotor 发表于 2025-3-30 09:48 | 显示全部楼层
每次读取一个字节,存入数组,最后合并字节成完整数据。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部