此款单片机是由有64K的字节flash,一共有128页,一页有512字节,以下是容量划分:

这里使用的是字节位宽的数据读写操作进行演示,其他2种方式大同小异,需要用到自己去研究,首先需要添加对应的flash库文件,然后进行flash操作的初始化工作

while(Flash_Init(12,TRUE) != 0);    //Flash初始化
printf("System Init is OK\r\n");
printf("System to Runing\r\n");

我这边给他做了读写封装函数,方便程序的调用

#include "main.h"extern void Write_EEPROM_OneBitData(uint32_t Addr,uint8_t Dat);
extern void Write_EEPROM_StrData(uint32_t Addr,uint16_t Len,uint8_t *Dat);
extern uint8_t Read_EEPROM_Data(uint32_t Addr);EEPROM_t EEPROM =
{Write_EEPROM_OneBitData,Write_EEPROM_StrData,Read_EEPROM_Data
};static void Write_EEPROM_OneBitData(uint32_t Addr,uint8_t Dat)
{while(Flash_SectorErase(Addr) != 0);Flash_WriteByte(Addr,Dat);
}//EEPROM一个扇区(页)写N个字节操作,最多可写一页数据(512字节)
static void Write_EEPROM_StrData(uint32_t Addr,uint16_t Len,uint8_t *Dat)
{uint16_t i=0;while(Flash_SectorErase(Addr) != 0);for(i=0;i<Len;i++){Flash_WriteByte(Addr+i,*Dat++);}
}//EEPROM读一个字节操作
static uint8_t Read_EEPROM_Data(uint32_t Addr)
{uint8_t Dat=0;Dat = *((volatile uint8_t*)Addr);return Dat;
}

他的操作和其他单片机的操作都是大同小异,主要就是确定好写入的地址,要先擦除后写入,读取数据什么时候都可以

//flash页,一共有128个页,一个页区是512字节,此为flash区保存数据
//此款型号没有EEPROM功能,只有flash读写操作,从flash的最后一页开始使用往上推,一个页是512字节
typedef enum
{EEPROM_ADDR0 = (uint32_t)0xFE00,    //页0,0xFE00-0xFFFFEEPROM_ADDR1 = (uint32_t)0xFC00,        //页1,0xFC00-0xFDFFEEPROM_ADDR2 = (uint32_t)0xFA00,      //页2,0xFA00-0xFBFFEEPROM_ADDR3 = (uint32_t)0xF800           //页3,0xF800-0xF9FF
}EEPROM_ADDR_t;

从他的做后一页(127页)开始操作flash数据操作,这样可以防止应用程序覆盖保存的数据,还有就是地址一定要对,这样读写操作才正常,以下写入数据操作

EEPROM.Write_EEPROM_StrData(EEPROM_ADDR0,Flash_Data_Len,Flash_Buff);
EEPROM.Write_EEPROM_OneBitData(EEPROM_ADDR1+RX_SaveBaud,0x01);

读取数据操作

Flag_Num = EEPROM.Read_EEPROM_Data(EEPROM_ADDR0+Flash_ZFlag);
printf("Flag_Num:%d\r\n",Flag_Num);

虽然是简单的读写flash操作,但是还是很多不知道怎么写程序,希望能够帮助到你!!!

华大单片机HC32L136X单片机flash数据读写操作使用相关推荐

  1. STC单片机对AT24C02进行数据读写操作

    STC单片机对AT24C02进行数据读写操作

  2. STC15系列单片机通过串口多字节数据读写EEPROM操作

    STC15系列单片机通过串口多字节数据读写EEPROM操作

  3. OpenCV FileStorage类的数据读写操作

    OpenCV FileStorage类的数据读写操作 OpenCV的许多应用都需要使用数据的存储于读取,例如经过3D校准后的相机,需要存储校准结果矩阵,以方便下次调用该数据:基于机器学习的应用,同样需 ...

  4. python数据读写操作之csv转excel

    python数据读写操作之csv转excel 从数据库读取处理后的数据格式 写入csv文件的数据格式 从csv转为xls的数据格式 import os import time from config. ...

  5. Arduino UNO AT24C32进行字符串数据读写操作(二)

    Arduino UNO AT24C32进行字符串数据读写操作(二) 相关篇<Arduino UNO AT24C32进行字符串数据读写[优化篇]> 本篇在读写AT24C32的时候,采用移位运 ...

  6. OTA升级-1-通过链表对单片机FLASH进行读写操作

    一.flash读取到链表操作过程: 1.FLASH 读取方法 *(uint32_t *)0x8000000;//读一个字 *(uint8_t *)0x8000000;//读一个字节; *(uint16 ...

  7. NAND FLASH的读写操作(硬件原理图分析)

    转载:NAND FLASH的读操作及原理 硬件原理 上面是我使用的NAND FLASH的硬件原理图,面对这些引脚,很难明白他们是什么含义,下面直接引用韦东山老师的课程中的提问: NAND FLASH是 ...

  8. QCC300x笔记(5) -- 外部Flash的读写操作

    哈喽大家好,这是该系列博文的第五篇~ 篇~ <<[系列博文索引]快速通道 > 1.    QCC300X 外部Flash的读写         QCC300x是使用外部Flash片子 ...

  9. CY62256 Static RAM 的数据读写操作

    CY62256 Static RAM 的读写 CY62256是一个32K*8位的静态RAM,适合一些小的项目和给一些RAM不大的MCU使用,最近正好试了一下这个东西,发现这个东西也很好用,但是网上的资 ...

最新文章

  1. 微软撤回了开放面部识别数据集,出于法律原因
  2. DataSet 去除重复的行
  3. Spring Beans 自动装配
  4. 处理SAP Netweaver gateway service使用过程中遇到的404 error
  5. [转]vue全面介绍--全家桶、项目实例
  6. 【快速入门Linux】6_Linux命令—用户权限相关命令
  7. 谈谈一些有趣的CSS题目(十三)-- 巧妙地制作背景色渐变动画!
  8. 【文件系统】NTFS、FAT32、exFAT
  9. x5内核html5,X5内核+HTML5应用 Q立方浏览器预览版
  10. android 华为 imei,华为手机怎么查看IMEI码?华为手机查询IMEI串号两种方法,华为imei...
  11. css3学习手册思维导图
  12. docx行间距怎么设置_word2017如何设置行间距.docx
  13. java经典算法50题_JAVA经典算法50题
  14. Linux之Redis安装(解压版)
  15. 连续仨月霸占牛客榜首京东T8呕心巨作:700页JVM虚拟机实战手册
  16. JavaScript浮动广告
  17. 微信哪个电话能转人工服务器,如何联系微信人工客服?掌握好窍门,只需30秒可接通,亲测有效...
  18. 初识华为MDC智能驾驶计算平台
  19. 《小目标目标检测的解决方法及方式》
  20. Go语言入门到实战——14.Go语言的协程机制以及并发机制

热门文章

  1. Logistic Regression - Decision boundary
  2. 计算机系统分析师6,系统分析师:计算机硬件基础知识二[6]
  3. 如何在Windows上使用PSCP命令?
  4. a标签的tagart属性
  5. 悼念巨人:著名科学家、上海大学校长钱伟长
  6. 【技巧】修改windows10在高分屏下的应用的dpi
  7. HTML设计美观的菜单栏
  8. dwf怎么合成一个_文章详细信息
  9. 移动硬盘和Mac不兼容怎么办? Paragon和Tuxera对比
  10. 天兔oracle,Lepus_天兔的安装