记一次“粗暴”的Flash模拟EEPROM法(用的STM32F030C6芯片,没找到模拟EEPROM库函数)

记一次“粗暴”的Flash模拟EEPROM法

         有个项目用的STM32F030的芯片,有2个参数需要存储,但是画板子的时候没有外加FLASH或24C02芯片。像平时用的多的STM32F1芯片,有专门的flash模拟eeprom库函数,直接调用库函数用用就好了。我在网上找了许久,也没找到STM32F0对应的库函数,而且我还是用的HAL库。

         单片机内部是NORflash,擦除只能整页擦除,当然写可以按“字”写。这款芯片flash一共32k,分成32页,每页1k的大小;程序编译完一共要占用11k的空间,还有后面的21kflash是空闲的。

         我灵机一动,我干嘛费力气去找flash模拟EEPROM的库函数,或者自己模仿写一个库函数呢。我一共两个参数,我直接每一页只存一个参数好了(当然,我这两个参数不需要频繁写,基本上只要出厂写一次,以后只要读取就好了)。这样写的时候整页擦除又不影响其他参数,读的时候就正常读就好了。虽然2个参数占用了3kflash,但是反正内存够用,哈哈。

这是往flash写参数的函数。


至于设备上电时读取数据么,就更加简单粗暴了,反正我知道内存地址,直接读咯


只不过这里要注意加volatile关键字,不然被编译器优化掉就悲剧了。






  • 3
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值