通用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管理区数据表打印)

相关推荐
新晨单片机设计7 分钟前
S008A-基于STM32单片机八路抢答器(数码管)【Proteus仿真+Keil程序+原理图】
stm32·单片机·proteus
米饭不加菜13 分钟前
STM32——数码管显示
stm32·单片机·嵌入式硬件
梵亿40 分钟前
基于 STM32F103C8T6 的无人机低功耗设计与实现
stm32·嵌入式硬件·无人机·低功耗
好悬给我拽开线42 分钟前
RoboTTT
ide·vscode·编辑器
是隼人1 小时前
buuctf-pwn wustctf2020_closed(文件描述符)题解(学习过程持续更新)
c语言·学习·安全·pwn入门·ctf入门
hrw_embedded1 小时前
Keil开发与STM32Cube开发的差异点总结(未完待续)
stm32·单片机·嵌入式硬件
Brilliantwxx1 小时前
【STM32】RCC与时钟树 深度详解
stm32·单片机·嵌入式硬件·架构
天空'之城1 小时前
单片机基础核心知识点汇总(二十九)
单片机·嵌入式硬件
Rsingstarzengjx1 小时前
第二十六章 Linux 蜂鸣器实验笔记
linux·驱动开发·笔记·stm32·嵌入式硬件·stm32mp157
一路往蓝-Anbo1 小时前
第七篇:以太网设计 —— 从 RMII 时序到变压器隔离的深度拆解
stm32·单片机·嵌入式硬件·嵌入式·stm32硬件设计