使用STM32进行Flash的读写

一、什么是准备Flash

FLASH闪存是属于内存器件的一种,"Flash"。闪存则是一种非易失性( Non-Volatile )内存,在没有电流供应的条件下也能够长久地保持数据,其存储特性相当于硬盘,这项特性正是闪存得以成为各类便携型数字设备的存储介质的基础。
各类 DDR 、 SDRAM 或者 RDRAM 都属于挥发性内存,只要停止电流供应内存中的数据便无法保持,因此每次电脑开机都需要把数据重新载入内存。
闪存的物理特性与常见的内存有根本性的差异:
闪存则是一种非易失性( Non-Volatile )内存,在没有电流供应的条件下也能够长久地保持数据,其存储特性相当于硬盘,这项特性正是闪存得以成为各类便携型数字设备的存储介质的基础。
NOR和NAND是市场上两种主要的非易失闪存技术。
在1984年,东芝公司的发明人舛冈富士雄首先提出了快速闪存存储器(此处简称闪存)的概念。与传统电脑内存不同,闪存的特点是NVM,其记录速度也非常快。
Intel是世界上第一个生产闪存并将其投放市场的公司。1988年,公司推出了一款256K bit闪存芯片。它如同鞋盒一样大小,并被内嵌于一个录音机里。後来,Intel发明的这类闪存被统称为NOR闪存。它结合EPROM和EEPROM两项技术,并拥有一个SRAM接口。
第二种闪存称为NAND闪存。它由日立公司于1989年研制,并被认为是NOR闪存的理想替代者。NAND闪存的写周期比NOR闪存短90%,它的保存与删除处理的速度也相对较快。NAND的存储单元只有NOR的一半,在更小的存储空间中NAND获得了更好的性能。鉴于NAND出色的表现,它常常被应用于诸如CompactFlash、SmartMedia、 SD、 MMC、 xD、 and PC cards、USB sticks等存储卡上。
NAND 闪存的存储单元采用串行结构,存储单元的读写是以页和块为单位来进行(一页包含若干字节,若干页则组成储存块, NAND 的存储块大小为 8 到 32KB ),这种结构最大的优点在于容量可以做得很大,超过 512MB 容量的 NAND 产品相当普遍, NAND 闪存的成本较低,有利于大规模普及。
NAND 闪存的缺点在于读速度较慢,它的I/O端口只有 8 个,比 NOR 要少多了。这区区 8 个 I/O 端口只能以信号轮流传送的方式完成数据的传送,速度要比 NOR 闪存的并行传输模式慢得多。再加上 NAND 闪存的逻辑为电子盘模块结构,内部不存在专门的存储控制器,一旦出现数据坏块将无法修,可靠性较 NOR 闪存要差。

二、创建STM32工程文件

首先打开STM32CUBEMX:

 

配置一下定时器,下方的警告信息可以不需要理会

 

 打开时钟的配置信息

 

 

配置时钟频率

将PC13设置为

 

 

 

设置堆栈大小为4k,生成文件

 

三、配置keil

将flash.c和flash.h添加到工程中
添加flash.c的时候选第二行

 

 

/*在main.c中添加flash.h*/

 

 在main.c中分别添加如下代码

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

 

 

 

 点击选择options

 

 

 

 

 然后将代码烧录进硬件里头

 

 然后我们进入debug模块,在view下打开memory1窗口

 

打开watch1窗口

 

 

 开启变量自动更新Periodic Windows Update

 

 将变量FlashWBuff 和 FlashRBuff加入到 Watch1

 

在memory1中输入要观察的地址0x800c000

 

 运行程序,可以看到数组FlashRBuff中内容与数组FlashWBuff中内容一样

 

 

 定义好的句子写到了地址0x0800c000中了

 

 

四、心得体会

在老师和同学帮助下完成了Flash读写的实验,其中使用了同学的案例程序。Flash的读取和SD卡读取有所不同,虽然过程中遇到了一些问题,但是很快的就得以解决,在本次实验中我学会了如何读取Flash,受益匪浅,提高了我的动手能力。

 

posted @ 2021-12-30 19:44  LinZJ0423  阅读(665)  评论(0编辑  收藏  举报