Flash----读写外部Flash

news/2025/1/11 10:01:38/

目录

前言

Flash相关API 

Flash工程 

首先定义下flash扇区大小 

定义下扇区操作编号及定义了将要写入flash数据的数组和用来缓存flash数据的数组

接下来我们从0x77000地址起,读出16个数据(每个数据占4字节)

读完数据后,串口打印读出的数据


前言

ESP-12F模组的外部Flash,除了存储系统程序、系统参数外,还可以用来存储用户数据,复位/掉电也不会丢失用户数据。

ESP-12F模组的外部Flash == 32Mbit == 4MB
Flash 4MB 的地加== 0x000 000
Ox3ER FEE
扇区编号:0x000~ Ox3FF 【Flash扇区==4KB 】

 注意:
•读/写Flash的地址,不能和系统程序区冲突。可以放在【Ox70 000】 地址后
•Flash读写,必须【4字节】对齐  也就是我们读写数据的时候尽量四个字节四个字节操作
•向Flash某扇区写数据前,须先将此扇区擦除。

 Flash擦除两数的参数              ==   【扇区编号】!=【字节地址】
•读/写Flash数据函数的参数     ==   【字节地址】!=【扇区编号】

Flash相关API 

spi_flash_erase_sector      功能: 擦除 Flash 扇区

spi_flash_write                    功能: 写⼊数据到 Flash。Flash 读写必须 4 字节对⻬。

spi_flash_read                     功能: 从 Flash 读取数据。Flash 读写必须 4 字节对⻬。

Flash工程 

功能:    ① 向外部Flash【0x77 000】地址起,写入"1~16"        
               ② 从外部Flash【0x77 000】地址起,读出16个数据        
                                       

首先定义下flash扇区大小 

#define        SPI_FLASH_SEC_SIZE    4096        // Flash扇区是4kb也就是4096个字节

定义下扇区操作编号及定义了将要写入flash数据的数组和用来缓存flash数据的数组

u16 N_Data_FLASH_SEC = 0x77;    // 存储数据的扇区编号  这里定义的编号为0x77

u32 A_W_Data[16] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};    // 写入Flash的数据

u32 A_R_Data[16] = {0};            // 缓存读Flash的数据

 向Flash某扇区写数据前,须先将此扇区擦除。

向【0x77 000】地址起,写入16个数据(每个数据占4字节)

	spi_flash_erase_sector(0x77);	// 擦除0x77扇区		参数==【扇区编号】

 向Flash写数据(参数1=【字节地址】、参数2=写入数据的指针、参数3=数据长度)

这里需要注意参数1是字节地址不是扇区编号,扇区编号乘上扇区大小就是扇区的首地址也就是0x77000。参数二必须为无符号32位整型指针,其实这里的A_W_Data数组已经是无符号32位整型指针,但这里加上(uint32 *)强制类型转换是为了提醒大家。参数三是数据长度,它是以字节为单位的,这里计算出写数据数组的大小。

	spi_flash_write(0x77*4096, (uint32 *)A_W_Data, sizeof(A_W_Data));

接下来我们从0x77000地址起,读出16个数据(每个数据占4字节)

	spi_flash_read(0x77*4096, (uint32 *)A_R_Data, sizeof(A_W_Data));

读完数据后,串口打印读出的数据

	for(C_loop=0; C_loop<16; C_loop++){os_printf("Read Data = %d \r\n",A_R_Data[C_loop]);delay_ms(10);}


http://www.ppmy.cn/news/577164.html

相关文章

Flash视频播放器

通过Flash和ActionScript编写的播放器&#xff0c;用来播放FLV文件。 网上有一些写好的播放器代码。 [sizemedium]ruochi播放器[/size] 见[url]http://www.ruochi.com[/url] 基本功能都有。 可以下载播放器和示例。 见[url]http://www.ruochi.com/main/post/24.html[/url] 不过…

What about Flash?

http://dreamana.com/weblog/ 其实很久以前就想写一篇关于自己对Flash的理解的文章&#xff0c;今天有点空&#xff0c;静下心来慢慢总结一下。虽然近来有一些Flash的好消息&#xff0c;比如AGAL2即将发布&#xff0c;AS3在TIOBE统计表上上升至20位&#xff1b;但是总体来说&a…

About Flash

以下日志纯属个人略见,有任何不妥的地方,请大家见谅,有问题的地方可以发邮件指出 如果你经常上网&#xff0c;你会发现在各个网站上面都会出现或多或少的Flash动画&#xff0c;他们以各种形式存在&#xff1a;广告、在线小游戏、菜单、按钮、甚至blog中的播放器也可能是Flash制…

flash简单介绍

flash是什么&#xff1f; FLASH是一种存储芯片&#xff0c;全名叫Flash EEPROM Memory&#xff0c;通地过程序可以修改数据&#xff0c;即平时所说的“闪存”。 我们常说的闪存其实只是一个笼统的称呼&#xff0c;准确地说它是非易失随机访问存储器&#xff08;NVRAM&#xf…

FLASH介绍

非易失性存储元件有很多种&#xff0c;如EPROM、EEPROM、NOR FLASH和NAND FLASH&#xff0c;前两者已经基本被淘汰了&#xff0c;因此我仅关注后两者&#xff0c;本文对FLASH的基本存储单元结构、写操作、擦除操作和读操作的技术进行了简单介绍&#xff0c;对了NOR和NAND由存储…

什么是flash?

flash是Macromedia公司专门为因特网设计的基于矢量图形的动化制作软件&#xff0c;是当今最热门、最流行的二维动画制作软件之一。 Flash也是一种软件&#xff0c;是专门用来设计动画的。 用Flash设计动画&#xff0c;可以实现非常细致的要求&#xff0c;画面的连续性、画面质…

NAND FLASH

NAND Flash 以Micron公司的MT29F2G08为例介绍NAND Flash原理和使用。 1&#xff0e; 概述 MT29F2G08使用一个高度复用的8-bit总线&#xff08;I/O[7:0]&#xff09;来传输数据、地址、指令。5个命令脚&#xff08;CLE、ALE、CE#、WE#&#xff09;实现NAND命令总线接口规程。3个…

Flash 编程

FM33A048B 支持以下Flash 编程方法&#xff1a; ⚫ 在系统编程&#xff08;ISP&#xff09;&#xff1a;通过FMSH 专用编程器或者KEIL 用户界面实施芯片编程&#xff0c;使用SWD 接 口 ⚫ 在应用编程&#xff08;IAP&#xff09;&#xff1a;通过bootloader 代码实现芯片自编程…