其他分享
首页 > 其他分享> > 音频数据的Flash读取

音频数据的Flash读取

作者:互联网

一、Flash简介

Flash 是存储芯片的一种,通过特定的程序可以修改里面的数据。Flash 存储器又称闪存,它结合了ROM 和RAM 的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据(NVRAM 的优势), U 盘和MP3里用的就是这种存储器。在过去的20年里,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,然而近年来Flash 全面代替了ROM(EPROM)在嵌入式系统中的地位,用作存储Bootloader 以及操作系统或者程序代码或者直接当硬盘使用。
Flash的编程原理都是将1写为0,但不能将0写为1,所以在进行Flash编程前,必须将对应的块擦除,即将该块的每一位都变为1,块内所有字节变为0xFF。

二、Flash地址空间的数据读取

2.1 创建STM32CUBEMX工程

整个过程和之前的步骤区别不大
在这里插入图片描述
在这里插入图片描述
配置时钟
在这里插入图片描述

这里配置管脚PC13

在这里插入图片描述
设置堆栈大小为4K,导出工程

在这里插入图片描述
打开工程,添加flash.c文件
在这里插入图片描述
添加头文件

#include "flash.h"

在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述

uint8_t i;
uint8_t FlashTest[] = "Hello This is ZhangShiSan Flash Test DEMO";

编译烧录即可!不过此次使用STlink
然后进去Debug模式,在view下打开memory1窗口,并在地址栏中输入:0x800c000,观察将要修改的flash区间区容:
在这里插入图片描述
点击View->Watch windows,选择Watch 1打开一个变量观察窗口,将变量FlashWBuff 和 FlashRBuff加入到 Watch 1 观察窗口
在这里插入图片描述
运行程序,可以看到数组FlashRBuff中内容与数组FlashWBuff中内容一样
在这里插入图片描述
定义好的句子写到了地址0x0800c000中了
在这里插入图片描述

参考文章

https://blog.csdn.net/qq_46467126/article/details/122098829?spm=1001.2014.3001.5501

标签:flash,读取,音频,Flash,Watch,uint8,FlashRBuff,ROM
来源: https://blog.csdn.net/qq_48934939/article/details/122387119