通用STM32 F1/F4 FlashKV驱动库

把自己项目里用的一个STM32片上Flash存储库拿出来开源了,地址在最后。

  • 适合学生做课程设计、毕设,需要存点参数掉电不丢,拿来直接用,几行代码搞定。

  • 做产品的工程师,存校准值、序列号、WiFi密码、PID系数这些,不用自己维护地址表,按名字增删改查就行。

  • 搞Bootloader,在APP和Bootloader之间传升级标志、固件版本,划个独立区域互不干扰。

主打轻量化。没有复杂文件系统,不依赖外部存储芯片,直接操作片上Flash。RAM索引表大小可配置(默认64条记录),资源紧张的MCU也能跑。如果你需要完整的事务日志、磨损均衡或者加密这些重型功能,那它有更合适的选择;如果只是想轻量地存几十条配置参数,不折腾、够用就行,那这个库应该对胃口。

特点:

  • 掉电安全:写一半断电不会坏数据,重启自动忽略不完整的记录。

  • 管理方便:每条记录带个描述符,查询删除直接按名字来。

  • 能压缩回收:写满了可以按规则清理无效记录,不用手动擦整片。

  • 支持RTOS(带FreeRTOS模板),多线程调用无压力。

目前F1和F4全系列都支持。由于直接操作寄存器,不依赖任何库的API,因此只要芯片的寄存器定义文件(如stm32f1xx.h)在,HAL/LL/标准库都能用,换工程无压力。最近刚更新了一版,修了些细节,README也补全了。后续如果有bug或者新需求,我会继续维护,后面打算加入更多系列支持,有这个需求的可以提个Issue催我。

工程建议:

强烈建议把Flash分区搞成 Bootloader | 配置区 | APP,物理隔离,防止固件膨胀后把配置擦没了。

代码仓库里README写得很细,移植指南、API参考都有,基本改个头文件就能用。

最后,如果觉得有用,麻烦点个⭐Star ,让更多人看到。遇到问题或者有需求,欢迎提Issue。

仓库地址:https://github.com/R6bandito/stm32-flash-kv

(部分API使用例子)

(flash管理区数据表打印)

相关推荐
晓蛋5 天前
c语言指的是什么意思
c语言·编译器·编程开发·集成开发环境·程序实例
不悔哥5 天前
开源OV-Watch:怎么做一个智能手表
单片机·开源·嵌入式
傲世仙尊5 天前
目录即文件-Ext文件系统收尾篇
linux·c语言
XiHongShi20165 天前
STM32F407 RTC定时器例程,建议保存
stm32·单片机·学习
牵猫散步的鱼儿5 天前
重载、重写(覆盖)、重定义区别
c语言
phltxy5 天前
C 语言指针:从内存地址到灵活的数据访问
c语言
优信电子5 天前
AIT1001 非接触式红外测温模块 STM32 驱动开发实战:从引脚到代码全解析
stm32·嵌入式·温度传感器·红外测温·非接触式测温·ait1001
phltxy5 天前
C 语言中的数据存储:从类型到二进制位
c语言
深圳老胡5 天前
STM32F407 控制 L6470 步进电机驱动 —— 控制过程简介
笔记·stm32·单片机·嵌入式硬件·代码规范
wuyk5555 天前
《WiFi 嵌入式物联网开发全套实战》| 第 16 章 ESP32 AP+STA 双模共存原理与工程坑点
网络·stm32·物联网