使用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,受益匪浅,提高了我的动手能力。
标签:flash,闪存,读写,Flash,NAND,STM32,内存,NOR 来源: https://www.cnblogs.com/LinZJ0423/p/15750296.html