STM32——Flash的读取

一、FLASH简介

STM32的Flash可以用于存储代码,也可以用于存储数据。一般来说我们将代码保存在Flash开始的区域中,余下的部分用来保存数据。
在这里插入图片描述
主存储器:一般我们说 STM32 内部 FLASH 的时候,都是指这个主存储器区域它是存储用户应用程序的空间,芯片型号说明中的 1M FLASH、 2M FLASH 都是指这个区域的大小。与其它 FLASH 一样,在写入数据前,要先按扇区擦除,
系统存储区:系统存储区是用户不能访问的区域,它在芯片出厂时已经固化了启动代码,它负责实现串口、 USB 以及 CAN 等 ISP 烧录功能。
OTP 区域:OTP(One Time Program),指的是只能写入一次的存储区域,容量为 512 字节,写入后数据就无法再更改, OTP 常用于存储应用程序的加密密钥。
选项字节:选项字节用于配置 FLASH 的读写保护、电源管理中的 BOR 级别、软件/硬件看门狗等功能,这部分共 32 字节。可以通过修改 FLASH 的选项控制寄存器修改。

二、工程配置

下载完成后打开文件夹,将路径stm32_Flash\Drivers\CMSIS\Device\ST\STM32F1xx\Include下的system_stm32f1xx_20190722_092746.h文件修改为system_stm32f1xx.h,否则后面编译会报错
在这里插入图片描述
添加代码如下:

#include "flash.h

在这里插入图片描述

uint8_t FlashWBuff [255];
uint8_t FlashRBuff [255];

在这里插入图片描述

uint8_t i;
uint8_t FlashTest[] = "Hello World Hello Ruirui";

在这里插入图片描述
编译成功
在这里插入图片描述
在这里插入图片描述

环境配置如下:
在这里插入图片描述
将程序加入到硬件设备中:
在这里插入图片描述
硬件连接如下:
在这里插入图片描述
download下载:
在这里插入图片描述
点击debug进入硬件仿真状态,点击view->memory windows->memory 1打开内存观察窗口,并在地址栏中输入:0x800C000,观察将要修改的flash区间区容:
在这里插入图片描述
其中点击某一字符右击可选择显示格式
在这里插入图片描述
继续View->Watch windows->Watch 1打开一个变量观察窗口
在这里插入图片描述
将变量FlashWBuff 和FlashRBuff加入到Watch 1观察窗口
在这里插入图片描述
在这里插入图片描述
另外View->勾选Periodic Windows Update,开启变量自动更新
在这里插入图片描述
全速运行
在这里插入图片描述
这时就可以看到Watch 1窗口的数组FlashRBuff中的内容与数组FlashWBuff中的内容是一样的
在这里插入图片描述
在这里插入图片描述
同时在Memory 1窗口中可以看到在FLASH地址0x0800C000区成功写入对应内容
在这里插入图片描述
断电后再重新上电进行调试,程序停在main入口处时还可以看到Flash对应区间的内容保持上一次写入内容值
在这里插入图片描述

三、总结

通过这次实验,简单地了解了FLash读取地址的过程与步骤。

四、参考

https://blog.csdn.net/qq_46467126/article/details/122098829?spm=1001.2014.3001.5502
https://blog.csdn.net/qq_40147893/article/details/107423621

  • 1
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值