STM32 读写内部FLASH 基本步骤

STM32 读写内部FLASH

1.读写步骤

​ (1)解锁

​ (2)清除标志位–即解除读写保护

​ (3)擦除指定页

​    [1]擦除指定页时应注意擦除的位置

​    [2]双击工程将会打开一个 ”xxx.map“的文件

​    [3]将页面拉到最后找到下图位置,”6016“即你的代码 占用的空间

在这里插入图片描述

​    [4] 将基地址加上 代码占用的空间 如STM32 的基地址为0x80000000 所以 0x80000000+ 0x1780(1780是6016转化成十六进制的数),后面的地址即为没有用的空间

​    [5]将算出来的地址 对照 ”STM32F10xxx闪存编程“ 手册 找到闪存模块组织 里面主存储器,看后面”页“对应的地址范围 选择没有用到的页范围,最为擦除页的地址

​ (4)写入数据

​ (5)上锁

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: STM32F103是意法半导体推出的一款32位单片机,内置了一块FLASH存储器,用于程序和数据的。下面将详细介绍STM32F103内部FLASH操作。 首先,内部FLASH是非易失性存储器,可以长时间保存数据,即使在断电后也不会丢失。该存储器分为多个扇区,每个扇区大小为2KB或16KB,总的容量取决于具体型号。 对于操作,首先需要擦除要入的扇区。擦除是一个扇区级别的操作,即需要擦除整个扇区,每个扇区都有一个固定的扇区号。在擦除之前,必须保证该扇区的所有数据已经备份,因为擦除操作会将该扇区的数据全部清除。 擦除完成后,可以对扇区进行编程操作。编程是以字为单位进行的,每个单元的大小是2个字节。对于编程操作,可以选择使用不同的编程函数,例如“HAL_FLASH_Program”函数。编程时需要注意,每个单元只能由0xFF入0x00,即从1到0的入是不被允许的。而且,编程操作之前需要先校验该单元是否已经被编程过。 取操作则比较简单,可以使用“HAL_FLASH_Read”函数取指定地址的数据。为了确保取的数据的正确性,通常会在取之前对要取的地址进行校验。 需要注意的是,对于内部FLASH操作,必须先进行相应的初始化,例如,配置FLASH许可、时钟使能等。 综上所述,STM32F103内部FLASH操作主要包括擦除、编程和取。通过合理地使用这些操作,可以对内部FLASH进行有效的数据存储和取。 ### 回答2: STM32F103是一种基于ARM Cortex-M3内核的32位微控制器,它具有内部Flash存储器,可以用于程序的存储和执行。下面我们将讨论STM32F103内部Flash操作。 STM32F103的内部Flash分为多个扇区,每个扇区的大小为2KB或16KB,具体取决于芯片的型号。在进行Flash之前,我们需要注意以下几点: 1. Flash编程需要先解锁,然后进行擦除和编程操作。解锁可以通过设置特定的Flash解锁和编程保护位来实现。 2. 在进行Flash编程之前,应该关闭中断,以防止程序干扰Flash访问过程。 3. Flash之前,必须先进行擦除操作。擦除是以扇区为单位进行的,可以选择擦除单个扇区或多个相邻扇区。 4. Flash时,需要将数据按字大小入,特别是在入半字(16位)或字(32位)数据时,需要确保数据对齐。 5. 每次Flash之后,应该进行校验,以确保数据入正确。校验可以通过Flash中的数据并与原始数据进行比较来实现。 总结起来,STM32F103内部Flash操作需要解锁、擦除、编程和校验等步骤。在进行这些操作时,应该注意保护位设置、中断关闭、数据对齐和校验等问题。这样才能确保程序正确地取和内部Flash,并且保证数据的完整性和一致性。 ### 回答3: STM32F103是STMicroelectronics(意法半导体)推出的一款基于ARM Cortex-M3内核的微控制器芯片。它内置了Flash存储器,可以用于程序代码和数据的存储。 首先,STM32F103系列芯片的内部Flash存储器容量可以根据不同型号而不同,通常为64KB、128KB、256KB或512KB。通过编程将代码和数据存储在Flash中,可以实现可靠的程序执行,而且Flash可以被擦除和编程多次,使得开发者能够灵活地进行程序的更新和修改。 对于STM32F103内部Flash取,开发者可以通过取指定地址的方式来访问存储在Flash中的数据。可以使用如`*(uint32_t*)address`的语法,将Flash的指定地址强制类型转换为指向32位无符号整数的指针,并通过解引用指针访问Flash中的数据。需要注意的是,Flash存储器的取速度相对较慢,因此在程序执行过程中可能会遇到一定的延迟。 至于内部Flash入,由于Flash存储器具有较高的可靠性要求,所以入操作需要特定的处理来确保数据的完整性。开发者需要在编程序时使用特定的编程算法和接口,例如ST提供的Flash等库函数,来进行数据的入。此外,为了避免入操作对Flash的擦除,开发者还需要提前进行相关的Flash扇区擦除操作。 总的来说,STM32F103的内部Flash存储器提供了方便可靠的程序代码和数据存储方式。通过正确的取和入操作,可以实现对Flash存储器的数据访问和更新。但需要开发者额外注意Flash取速度和入算法的正确性,以确保程序的稳定性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值