首页 > 其他分享 >怎么用stm32 flash来实现数据掉电不丢失

怎么用stm32 flash来实现数据掉电不丢失

时间:2023-12-12 15:01:12浏览次数:29  
标签:flash FLASH 掉电 stm32 擦除 FLASHADDR Data

参考战舰的FLASH模拟EEPROM实验

 

比如,
#define FLASHADDR_START 0x08006800
写:

u32 Data = 0x20161109;
FLASH_Unlock();
FLASH_ErasePage(FLASHADDR_START);
FLASH_ProgramWord(FLASHADDR_START,Data);
FLASH_Lock();

读:

u32 Data;
Data = *(u32*)FLASHADDR_START;
 
   

STM32程序一般放在Flash中,数据放在SRAM中!掉电一定会丢失的。不过STM32可以操作Flash,所以你也可以把数据放到Flash中。这样数据就不会丢失了

必须知道的stm32内部flash操作细节

1.stm32内部flash写操作只能是两个byte写入,不能一个byte一个byte的写

2.写之前需要擦除,擦除后数据均为FF

3.内部flash为512kb为大容量,小于512为小容量。在stm32的stm32f10x_flash.c里面FLASH_Status FLASH_ErasePage擦除页函数有区别擦2k还是擦1k,大容量擦2k,小容量擦1k

4.读可以只读一个字节,例如:*(uint8_t*)(Address)

5.我的代码中,擦除和写过程没有加延时函数,因为库函数里面已经有一个确保操作完成的函数。

6.擦写前先调用解锁函数。

 

STM32操作访问flash,包括写入数据到flash和从flash读取数据

https://blog.csdn.net/Ace_Shiyuan/article/details/78196648

 

标签:flash,FLASH,掉电,stm32,擦除,FLASHADDR,Data
From: https://www.cnblogs.com/zhouyuqing1024/p/17896937.html

相关文章

  • stm32 cubeide调试问题汇总
    stm32cubeide调试问题汇总1.STM32CubeIDE无法进行调试报以下错误Targetisnotresponding,retrying...Targetisnotresponding,retrying...Targetisnotresponding,retrying...Targetisnotresponding,retrying...Targetisnotresponding,retrying.........
  • STM32学习笔记_GPIO相关知识&LED流水灯
    GPIO的内部结构:在STM32中,所有的外设都是挂载在APB2外设总线上的,GPIO内包含了寄存器和驱动器,内核通过APB2总线对寄存器进行读写,寄存器的每一位对应每一个引脚。驱动器是用来增强GPIO驱动能力的GPIO位的内部结构:在下结构图中,信号从右边的I/0引脚输入,通过内部的上拉或下拉开关进行到TT......
  • 电商领域 Flash Sale 的设计架构
    电商领域的抢购活动(FlashSale):定义、实施和案例研究1.电商平台应用架构师视角下的FlashSale介绍电商领域的FlashSale,又称限时抢购,是一种通过在短时间内提供折扣优惠、限量商品或独特优势来激发购买欲望、增加销售的营销策略。这一策略旨在创造紧迫感和独特性,通过限时和限量的......
  • 什么是电商领域的 Flash Sale
    Flashsale,或者我们称之为闪购,是电商领域非常常见的一种销售模式。它的基本概念是,商家在一个特定的时间段内,对一种或者一系列的商品进行大幅度的折扣促销,以吸引消费者在限定的时间内进行购买。这种销售策略一般需要精细的运营策略和技术支持,因为商品数量有限,而消费者的需求往往会......
  • 电商系统处理 flash sale 时遇到的 High DTU consumption 问题
    在电商系统中,"flashsale"或"限时促销"是一种常见的销售策略,它通常吸引大量用户在短时间内进行购买操作。然而,这种情况也会对系统的数据库资源产生巨大压力,尤其是在处理"HighDTUconsumption"的时候。首先,我们来定义一下HighDTUconsumption。在AzureSQL数据库......
  • ARM架构与编程--基于STM32F103 (1)LED原理图
    ARM架构与编程--基于STM32F103--(1)LED原理图--前言学习笔记《硬件知识_LED原理图》一、点亮一个led的步骤当我们学习C语言的时候,我们会写个Hello程序。那当我们写ARM程序,也该有一个简单的程序引领我们入门,这个程序就是点亮LED。我们怎样去点亮一个LED呢?分为三步:1.看原理图,确......
  • 20 套监控平台统一成 1 套 Flashcat,国泰君安监控选型提效之路
    author:宋庆羽-国泰君安期货运维工作最重要的就是维护系统的稳定性,其中监控是保证系统稳定性很重要的一环。通过监控可以了解系统的运行状态,及时发现问题和系统隐患,有助于一线人员快速解决问题,提高业务系统的可用时长。作为国内头部期货公司,随着行业的发展,国泰君安期货的业务......
  • STM32学习笔记_点灯(基于库函数方式)
    1.使能外设时钟输入:RCC_APB2PeriphClockCmd函数,查看函数定义,根据函数定义填写参数:RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);2.配置端口模式输入函数GPIO_Init,跳转到函数定义,查看函数定义得知函数体的第二个参数是结构体,先定义结构体并且填写结构体的各个参数,然后填写......
  • 2023.12.4学习笔记(stm32跑马灯实验——库函数)
     STM32f4有七组引脚(GPIOx),每组引脚有16个IO口,每组由十个寄存器控制。   查找STM32引脚的功能,可以在STM32F04ZGT6文件50页左右查询,此文件所在的位置为硬件资料、芯片资料文件夹里。跑马灯实验思路步骤:1:使能时钟,调用函数RCC_AHB1PeriphClockCmd();       ......
  • STM32学习笔记_前置知识
    STM简介STM32是ST公司基于ARMCortex-M内核开发的32位微控制器,本次课程采用的STM32F1系列,ARM公司设计ARM内核,半导体厂商完善内核周边电路并产生芯片STM32F103C8T6参数RAM:20K指运行内存,实际存储介质是SRAMROM:64K指程序存储器,实际存储介质是Flash内存供电:2.0-3.6V标准3.3V封装:LQFP......