华大单片机HC32L136X单片机flash数据读写操作使用
此款单片机是由有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数据读写操作使用相关推荐
- STC单片机对AT24C02进行数据读写操作
STC单片机对AT24C02进行数据读写操作
- STC15系列单片机通过串口多字节数据读写EEPROM操作
STC15系列单片机通过串口多字节数据读写EEPROM操作
- OpenCV FileStorage类的数据读写操作
OpenCV FileStorage类的数据读写操作 OpenCV的许多应用都需要使用数据的存储于读取,例如经过3D校准后的相机,需要存储校准结果矩阵,以方便下次调用该数据:基于机器学习的应用,同样需 ...
- python数据读写操作之csv转excel
python数据读写操作之csv转excel 从数据库读取处理后的数据格式 写入csv文件的数据格式 从csv转为xls的数据格式 import os import time from config. ...
- Arduino UNO AT24C32进行字符串数据读写操作(二)
Arduino UNO AT24C32进行字符串数据读写操作(二) 相关篇<Arduino UNO AT24C32进行字符串数据读写[优化篇]> 本篇在读写AT24C32的时候,采用移位运 ...
- OTA升级-1-通过链表对单片机FLASH进行读写操作
一.flash读取到链表操作过程: 1.FLASH 读取方法 *(uint32_t *)0x8000000;//读一个字 *(uint8_t *)0x8000000;//读一个字节; *(uint16 ...
- NAND FLASH的读写操作(硬件原理图分析)
转载:NAND FLASH的读操作及原理 硬件原理 上面是我使用的NAND FLASH的硬件原理图,面对这些引脚,很难明白他们是什么含义,下面直接引用韦东山老师的课程中的提问: NAND FLASH是 ...
- QCC300x笔记(5) -- 外部Flash的读写操作
哈喽大家好,这是该系列博文的第五篇~ 篇~ <<[系列博文索引]快速通道 > 1. QCC300X 外部Flash的读写 QCC300x是使用外部Flash片子 ...
- CY62256 Static RAM 的数据读写操作
CY62256 Static RAM 的读写 CY62256是一个32K*8位的静态RAM,适合一些小的项目和给一些RAM不大的MCU使用,最近正好试了一下这个东西,发现这个东西也很好用,但是网上的资 ...
最新文章
- 微软撤回了开放面部识别数据集,出于法律原因
- DataSet 去除重复的行
- Spring Beans 自动装配
- 处理SAP Netweaver gateway service使用过程中遇到的404 error
- [转]vue全面介绍--全家桶、项目实例
- 【快速入门Linux】6_Linux命令—用户权限相关命令
- 谈谈一些有趣的CSS题目(十三)-- 巧妙地制作背景色渐变动画!
- 【文件系统】NTFS、FAT32、exFAT
- x5内核html5,X5内核+HTML5应用 Q立方浏览器预览版
- android 华为 imei,华为手机怎么查看IMEI码?华为手机查询IMEI串号两种方法,华为imei...
- css3学习手册思维导图
- docx行间距怎么设置_word2017如何设置行间距.docx
- java经典算法50题_JAVA经典算法50题
- Linux之Redis安装(解压版)
- 连续仨月霸占牛客榜首京东T8呕心巨作:700页JVM虚拟机实战手册
- JavaScript浮动广告
- 微信哪个电话能转人工服务器,如何联系微信人工客服?掌握好窍门,只需30秒可接通,亲测有效...
- 初识华为MDC智能驾驶计算平台
- 《小目标目标检测的解决方法及方式》
- Go语言入门到实战——14.Go语言的协程机制以及并发机制