ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

使用STM32进行Flash的读写

2021-12-30 20:04:17  阅读:255  来源: 互联网

标签:flash 闪存 读写 Flash NAND STM32 内存 NOR


一、什么是准备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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有