0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

stm32 flash写数据怎么存储的

工程师邓生 来源:未知 作者:刘芹 2024-01-31 15:46 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

stm32 flash写数据怎么存储的

STM32是一款广泛应用于嵌入式系统开发的微控制器,它的Flash存储器是其中一个重要的组成部分。在本文中,我将详细介绍STM32 Flash的存储机制,包括其结构、特点以及如何写入数据。

一、STM32 Flash的结构

STM32 Flash存储器通常被分为多个扇区,每个扇区大小为2KB到256KB不等,根据不同的型号有所不同。每个扇区可以独立进行擦除和写入操作,这使得STM32 Flash存储器非常灵活和易于使用。

Flash存储器的每个单元通常被称为“页”,一个页大小通常为1KB到2KB。这些页可以独立进行写入操作,并且无需进行整个扇区的擦除。这个特性使得STM32 Flash在实时数据存储和更新方面更加高效。

二、STM32 Flash的特点

1.快速擦除和编程速度:STM32 Flash具有快速的擦除和编程速度,可以高效地进行数据存储和更新操作。

2.耐久性和可靠性:STM32 Flash的存储器具有良好的耐久性和可靠性,可以进行大量的擦除和编程操作,而不会影响存储器的寿命。

3.可擦除性:STM32 Flash存储器可以进行扇区或页级别的擦除操作,而无需将整个存储器擦除。这使得数据更新更加方便和高效。

4.数据保护:STM32 Flash存储器提供了可靠的数据保护机制,包括写保护和读保护功能,以确保数据的安全性和完整性。

三、STM32 Flash的写入操作

STM32 Flash的写入操作需要使用特定的函数来实现。以下是一些常用的写入函数:

1.写入单个字节:使用HAL库中的函数HAL_FLASH_Program()可以将单个字节写入到Flash存储器中。例如,要将值0xAA写入地址0x08008000的Flash存储器中,可以使用以下代码:

```c
HAL_FLASH_Program(FLASH_TYPEPROGRAM_BYTE, 0x08008000, 0xAA);
```

2.写入半字(16位):使用HAL_FLASH_Program()函数可以将半字(16位)数据写入Flash存储器中。例如,要将值0x55AA写入地址0x08008000的Flash存储器中,可以使用以下代码:

```c
HAL_FLASH_Program(FLASH_TYPEPROGRAM_HALFWORD, 0x08008000, 0x55AA);
```

3.写入字(32位):使用HAL_FLASH_Program()函数可以将字(32位)数据写入Flash存储器中。例如,要将值0x11223344写入地址0x08008000的Flash存储器中,可以使用以下代码:

```c
HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, 0x08008000, 0x11223344);
```

4.扇区擦除:使用HAL_FLASH_Erase_Sector()函数可以擦除Flash存储器的指定扇区。例如,要擦除地址范围为0x08008000到0x08008FFF的Flash存储器,可以使用以下代码:

```c
FLASH_EraseInitTypeDef erase;
erase.TypeErase = TYPEERASE_SECTORS;
erase.Banks = FLASH_BANK_1;
erase.Sector = FLASH_SECTOR_7;
erase.NbSectors = 1;
erase.VoltageRange = VOLTAGE_RANGE_3;
uint32_t PageError = 0;
HAL_FLASHEx_Erase(&erase, &PageError);
```

通过这些函数,我们可以实现对STM32 Flash存储器的写入操作,从而实现数据的存储和更新。

综上所述,STM32 Flash存储器是一种高效、灵活且可靠的数据存储解决方案。在嵌入式系统开发中,通过了解其结构和特点,并使用相应的写入函数,可以轻松地实现对Flash存储器的数据存储和更新操作。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FlaSh
    +关注

    关注

    10

    文章

    1715

    浏览量

    154704
  • 嵌入式系统
    +关注

    关注

    41

    文章

    3716

    浏览量

    133102
  • STM32
    +关注

    关注

    2305

    文章

    11120

    浏览量

    371142
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    CW32L052 FLASH存储器介绍

    概述CW32L052内部集成了64KB嵌入式FLASH供用户使用,可用来存储应用程序和用户数据。 芯片支持对 FLASH 存储器的读、擦除和
    发表于 12-05 08:22

    STM32C011开发(3)----Flash操作

    STM32C011 系列微控制器内置 Flash 存储器,支持程序存储数据保存,具备页面擦除、双字写入、读写保护等功能。本文将简要介绍
    的头像 发表于 09-18 16:48 3624次阅读
    <b class='flag-5'>STM32</b>C011开发(3)----<b class='flag-5'>Flash</b>操作

    NAND Flash的基本原理和结构

    NAND Flash是什么?NAND Flash(闪存)是一种非易失性存储器技术,主要用于数据存储。与传统的DRAM或SRAM不同,NAND
    的头像 发表于 09-08 09:51 5797次阅读
    NAND <b class='flag-5'>Flash</b>的基本原理和结构

    如何在下载程序时保护flash中的用户数据不被覆盖?

    使用stm32cubeide或stm32cubeprogrammer烧程序,stlink下载器,芯片stm32h743,芯片内部flash
    发表于 08-14 06:38

    请问STM32的内部Flash操作是不是优先级最高?

    STM32的内部Flash操作是不是优先级最高?目前在内部Flash的单独一页存储数据,发现在进行页擦除的时候正常工作的定时器中断无法进入
    发表于 08-13 07:03

    FLASH/编程白皮书

    白皮书:如何烧Flash——不同场景不同需求下的选择认识Flash NAND vs. NOR如何烧/编程不同方案比较
    发表于 07-28 16:05 0次下载

    FLASH模拟EEPROM

    AT32F403A 的扇区大小为 2K 字节,这个特性决定了不能简单的将旧数据擦除然后数据,因为这样会导致存储在这个扇区内的其他数据
    发表于 07-16 15:13

    什么是Flash闪存以及STM32使用NAND Flash

    的控制器技术,对写入FLASH闪存模块的方式进行管理,确保每个FLASH闪存单元接收相同的请求。 目前有三种类型的FLASH闪存,耐久性各不相同。单阶
    发表于 07-03 14:33

    关于CCG5 platform Flash问题,在烧images时,如何保留产线校准数据

    和板卡信息丢失 2. PSoC Programmermer没法擦除指定flash,都是整个128K擦除,例如在flash中分配一个row来存储产线校准数据,如何保证在烧
    发表于 05-30 07:50

    调试时Memory窗口中Flash内容不更新的原因和解决办法

    调试时在代码中对Flash进行操作时(比如Bootloader对Code Flash进行升级操作,Application对Data Flash进行
    的头像 发表于 04-01 09:18 978次阅读
    调试时Memory窗口中<b class='flag-5'>Flash</b>内容不更新的原因和解决办法

    存储技术探秘 NAND Flash vs NOR Flash:藏在芯片里的&quot;门道之争&quot;

    非易失存储:断电后数据不丢失 可重复编程:支持擦写操作(需先擦除后写入) 二进制操作:擦除后全为 1,操作将 1 变为 0 核心差异 一、物理结构对比 NOR 特性 独立存储单元并
    的头像 发表于 03-18 12:06 1052次阅读

    NAND Flash与SD NAND的存储扇区架构差异

    NAND Flash 和 SD卡(SD NAND)的存储扇区分配表都是用于管理存储设备中扇区的分配信息。它们记录了哪些扇区已被使用、哪些是空闲的,以及文件或数据与扇区的对应关系,以便实
    的头像 发表于 03-13 15:20 1561次阅读
    NAND <b class='flag-5'>Flash</b>与SD NAND的<b class='flag-5'>存储</b>扇区架构差异

    STM32H750内部flash读写的疑问求解

    请教下,STM32H750XBHx我看资料内置flash为128K,并且flash擦除的最小单元也是128K。这样的话我有数据要保存应该怎样处理好呢?
    发表于 03-12 06:29

    STM32F407 Flash写入数据失败的原因?怎么解决?

    STM32F407VGT6 标准库 往Flash中写入数据,写入完成后再次读取,发现没有写入成功。printf 打印擦除和写入的步骤发现,返回的 FLASH_Status 都是 7。
    发表于 03-11 06:08

    【半导体存储】关于NAND Flash的一些小知识

    。 []()   NAND Flash 存储单元尺寸更小,存储密度更高,单位容量成本更低,块擦/速度快, 具有更长的寿命,多应用于大容量数据
    发表于 12-17 17:34