hal库模拟量_STM32使用HAL库操作FLASH的注意事项

本文介绍了在使用STM32的HAL库操作Flash时应注意的事项,包括顺序(解锁、擦除、写入和锁定)、擦除相关(如扇区配置和地址对齐)、编程(写入)相关、写入模式的选择,以及读取Flash的正确方法。在进行Flash操作时,需要注意地址对齐、锁机制和Flash的寿命,以确保程序的稳定性和延长Flash的使用寿命。
摘要由CSDN通过智能技术生成

STM32通常有着丰富的片上Flash空间,这些空间正常情况下是存放指令代码、常量等烧录数据的。平时我们编译出来的bin或者elf文件会按顺序填充进Flash;hex格式的文件会稍许不同,通常情况下hex文件会更小一些,因为它会将无意义的填充段省略。

一般我们的代码逻辑加上常量数据是远远用不到片上Flash那么大的空间的,因此我们可以划分一些区域用来作为掉电存储空间,实现EEPROM的作用。此外,如果产品需要简单实现AOT固件升级,也需要使用到片上FLASH操作。

在使用STM32的HAL库进行FLASH操作的时候,有以下几点值得注意:

1. 注意顺序

先解锁Flash,再擦除片区,再写入,写完了别忘了加锁。

HAL_FLASH_Unlock();

HAL_FLASHEx_Erase();

HAL_FLASH_Program();

HAL_FLASH_Lock();

2. 擦除相关

HAL_FLASHEx_Erase()函数会入参一个有关清除扇区配置的结构体对象,这个参数对应的结构体定义根据不同芯片的HAL库有所不同,F1/F4/L4均不相同,而且同系列不同Flash大小的芯片所能指向的地址也不相同,同时这里面还存在Sector/Page/Bank等概念,这些概念涉及到一次性所能清除区域的大小,需要适当阅读一下实际使用芯片的Reference manual,比如RM0351(STM32L475),RM0090(STM32F407),RM0008(STM32F103)等,这些文档都会有专门的章节介绍嵌入式Flash的结构,可在ST官网搜索上述代码下载阅读。

在STM32F407VET6上,

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值