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存储器的数据存储和更新操作。
关键字:stm32 flash 写数据 存储
引用地址:
stm32 flash写数据怎么存储的
推荐阅读最新更新时间:2024-11-05 19:16
STM32_DCMI
1:DCMI简介 DCMI是STM32F4芯片自带的一个数字摄像头接口,该接口是一个同步并行接口,能够接受外部8位、10位、12位、14位CMOS摄像头模块发出的高速数据流 可支持的数据格式: YCbCr4:2:2 RGB565逐行视频 压缩数据 (JPEG) 2:DCMI功能概述 数字摄像头接口是一个同步并行接口,可接收 高速(可达 54 MB/s)数据流 。该接口包含多 达 14 条数据线 (D13-D0) 和一条像素时钟线 (PIXCLK)。像素时钟的极性可以编程,因此可 以在像素时钟的上升沿或下降沿捕获数据。 这些数据被放到 32 位数据寄存器 (DCMI_DR) 中,然后通过通用 DMA 进行传输。 图
[单片机]
STM32学习之旅④ USART串口和上位机通信
一、认识其本质 (一)串口 串口是串行接口 (Serial Interface)的简称,它是指数据一位一位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信(可以直接利用电话线作为传输线),从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。串行通讯的特点是:数据位的传送,按位顺序进行,最少只需一根传输线即可完成;成本低但传送速度慢。串行通讯的距离可以从几米到几千米;根据信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种。 (二)协议 所谓协议,就是通信双方约定好的规定,通信双方只有遵守这个规定才能够完成任务。举个栗子就是周幽王烽火戏诸侯,
[单片机]
杨士宁:长江存储2020年赶上世界前端 有信心折旧完成前盈利
长江存储执行长杨士宁点出,为何长江决定跨入存储领域?他表示,半导体组件可分为四大块领域:首要运算CPU、存储、通讯及第四部分涵盖了物联网(IoT)感测器、模拟IC等较为分散的领域。然CPU领域行业生态较为复杂、通讯芯片领域也已经形成fabless+foundry稳固态势,大举跨入存储这一领域仍是大有可为的。杨士宁引用《DIGITIMES》2017年1月中旬一篇分析,精准点出了大陆发展存储产业的战略思考。分析指出,大陆当下大力发展存储产业是正确的。 杨士宁分析,从半导体存储器技术分类来看,目前DRAM和NAND闪存储存的总产值占全球存储器产业的95%。未来10年,IBS数据预计,NAND闪存储存的需求量还将持续增长10倍,主要应用在
[手机便携]
STM32 通用输入输出端口GPIO BRR、BSRR、ODR寄存器详解
详细页面:http://alanzjl.sinaapp.com/2015/02/gpio_brr_bsrr_odr/ BRR、BSRR、ODR都是用来控制16位针脚的。 其中,BRR和ODR高16位都不可用(Reserved),使用低16位控制针脚,而BSRR高16位和低16位皆可用,都用来控制16位针脚。 BRR与BSRR使用方法 BRR和BSRR的最显著用处就是可以只改变某一个或某几个针脚的值而不改变其他。 1.BRR:如果程序对其某针脚赋值0,则该针脚维持原值不变,比如BRR的位0本来为1,则GPIOx- BRR=0x0语句之后该位值还为1。若对其赋值1,则该位值变为0(即复位值),比如BRR的位0本来为1,则GPI
[单片机]
stm32启动方式+上(下)拉电阻 二合一
最近做stm32项目,纠结过其启动方式。 看到篇不错的文章,转载一下。原文格式不太好,内容也有很多奇怪的地方(尤其是第二篇,就先认为原文是原创,只是作者的思路我不懂吧),都一一删改。想看原文的朋友链接如下: http://www.ithao123.cn/content-3065243.html Duanxx的STM32学习: 启动模式,BOOT0和BOOT1详解 http://bluefish.blog.51cto.com/214870/1239098 上拉电阻与下拉电阻的作用 所谓启动,一般来说就是指我们下好程序后,重启芯片时,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存。用户可以通过设置BOOT1和BOOT0引脚的
[单片机]
STM32(RFID)阶段三(触屏数字键盘)
在阶段二中,已经实现了RFID读写器与主控板的相互通信,发送和接收数据串。这是最核心的一部分。不过,之前金额的改变是固定100,现在开始任意数值的增减和任意数值初始化。这部分主要跟读写器的通信协议有关,不同的读写器可能不一样,但是代码思路都是差不多的。 为了实现任意数字的输入,首先要有一个键盘,在此,我用STM32TFTLCD触屏做了一个触摸键盘(电阻屏,竖屏)。要先引入touch.c ,24cxx.c,myiic.c文件。 触屏代码 #include delay.h #include sys.h #include lcd.h #include key.h #include touch.h
[单片机]
STM32十年超24亿颗+完整生态圈,ST已成为物联网真正受益者
“物联网”这个概念在中国流行起来已经至少有十几年了,整个产业界也讨论、追逐了很多年。至今,这个概念仍没有出现爆发性的机会和巨头厂商,因此很多人开始怀疑这就是一个“伪”概念。
下面就随嵌入式小编一起来了解一下相关内容吧。 不过,回顾过去几百年的工业历史告诉我们,要真正验证一个历史趋势是否真正存在,可能需要几十上百年的时间。而往往大多数人当真正看到机会那一刻,其实已经为时已晚。最后真正的赢家一般都是,在机会来临之前就已经开始了深度布局。 就在4月25日,知名的国际半导体厂商 意法半导体 (下称ST)在深圳举办的“ STM32 中国峰会”上,笔者第一真正感受到了真正的“物联网”其实已经来临,而且ST 率先布局并成为真正的受
[嵌入式]
stm32 mmc卡写文件然后读出来 串口输出
硬件环境:神州一号板 软件环境:MDK 1、sd卡硬件初始化 PA5---------CLK PA6---------MISO PA7---------MOSI PB7---------CS void TurnToSD(void) { SPI_InitTypeDef SPI_InitStructure; GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC | RCC_APB2Periph_A
[单片机]