stm32变量放在flash_STM32使用Flash存储器当作EEPROM来保持数据

本文介绍了如何在STM32F0系列MCU中利用片内Flash模拟EEPROM来保存设置数据,避免外接EEPROM带来的硬件成本。通过定义结构体和联合类型,实现了数据的读写操作,包括解锁、擦除和编程步骤。
摘要由CSDN通过智能技术生成

嵌入式应用中经常会遇到需要保存一些数据比如选项和设置等等,为了在设备关机或掉电情况下数据不丢失,我们会讲数据保存在EEPROM里面。STM32系列MCU已经被广泛的使用,可是该芯片内没有EEPROM。如果外接一片EEPRM会增加硬件成本。

本文将以STM32F0为例介绍一种使用片内Flash替代EEPROM的方法,仅供大家参考。​

STM32F0芯片内部Flash页尺寸为1k。​

首先程序需要使用STMicroelectronics提供的标准外设库中的stm32f0xx_flash.h。如下:

#include "stm32f0xx_flash.h"

//定义常量 (以STM32F051R8为例)

#define

FLASH_PAGE_SIZE ((uint32_t)0x00000400) #define FLASH_USER_START_ADDR ((uint32_t)0x0800FC00) #define

FLASH_USER_END_ADDR ((uint32_t)0x08010000)

//定义需保存数据的结构

typedef struct

{

uint8_t

sensitivity;

uint8_t

track_no;

uint8_t

high_lumi;

uint8_t

low_lumi;

uint32_t

hold_time;

uint8_t

adc_output;

uint8_t

dim_step;

uint16_t

reserved;

uint32_t

data_va

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值