#include "includes.h"
uint16   Buffer[]={0x1111,0x2222,0x3333,0x4444};//数据缓存区,只能一次写入四个数据
uint16   data_Address = 0x0000;
uint16   date_read[4];
/***********************************************************
** 名      称:void DFlash_Init(void)
** 功      能:DFlash初始化
** 入口参数:无
** 出口参数:无
** 使用说明:无
************************************************************/
void DFlash_Init(void)
{
while(FSTAT_CCIF==0);            //等待正在处理的FLASH操作完成
FCLKDIV=0x4E;                    //外部晶振为16M.FLASH时钟不超过1M,具体参照手册
FCNFG=0x00;                      //禁止中断
while(FCLKDIV_FDIVLD==0);        //等待时钟设置成功
}
/***********************************************************
** 名      称:void DFlash_Write(uint16 ADDR16)
** 功      能:向DFLASH写入数据
** 入口参数:无
** 出口参数:无
** 使用说明:无
************************************************************/
void DFlash_Write(uint16 ADDR16)
{
while(FSTAT_CCIF==0);
if(FSTAT_ACCERR)           //判断并清除标志位;
FSTAT_ACCERR=1;
if(FSTAT_FPVIOL)           //判断并清除标志位;
FSTAT_FPVIOL=1;
FCCOBIX_CCOBIX=0x00;
FCCOB=0x1110;         //写入命令和高位地址
FCCOBIX_CCOBIX=0x01;  //地址后16位
FCCOB=ADDR16;         //写入低16位地址
FCCOBIX_CCOBIX=0x02;  //写入第一个数据
FCCOB=Buffer[0];
FCCOBIX_CCOBIX=0x03;  //写入第二个数据
FCCOB=Buffer[1];
FCCOBIX_CCOBIX=0x04;  //写入第三个数据
FCCOB=Buffer[2];
FCCOBIX_CCOBIX=0x05;  //写入第四个数据
FCCOB=Buffer[3];
FSTAT_CCIF=1;         //写入执行命令
while(FSTAT_CCIF==0); //等待执行完毕
}
/***********************************************************
** 名      称:uint16 DFlash_Read (uint16 destination)
** 功      能:由DFLASH读取数据
** 入口参数:无
** 出口参数:无
** 使用说明:无
************************************************************/
uint16 DFlash_Read (uint16 destination)
{
uint8   lastepage;          //用于存储EPAGE的值
uint8   epage;              //用于计算EPAGE的值
uint16 data;         //读取出的数据
lastepage = EPAGE;   //保存EPAGE的值
epage = (byte)((DFLASH_LOWEST_START_PAGE)+(destination >>10));   //计算EPAGE
EPAGE=epage;                                                     //给EPAGE赋值
data = READword((destination & (DFLASH_PAGE_SIZE - 1)) + DFLASH_PAGE_WINDOW_START);  //读取页面窗口中的数据
EPAGE= lastepage;       //恢复EPAGE的值
return(data);
}
/***********************************************************
** 名      称:void DFlash_Erase(uint16 ADDR16)
** 功      能:擦除DFLASH的一个分区
** 入口参数:无
** 出口参数:无
** 使用说明:无
************************************************************/
void DFlash_Erase(uint16 ADDR16)
{
while(FSTAT_CCIF==0);
if(FSTAT_ACCERR)           //判断并清除标志位;
FSTAT_ACCERR=1;
if(FSTAT_FPVIOL)           //判断并清除标志位;
FSTAT_FPVIOL=1;
FCCOBIX_CCOBIX=0x00;
FCCOB=0x1210;           //写入擦除命令和高位地址
FCCOBIX_CCOBIX=0x01;
FCCOB=ADDR16;           //写入低16位的地址
FSTAT_CCIF=1;           //启动执行命令
while(FSTAT_CCIF==0);   //等待执行完成
}
/*****************************************************************
**  函数说明:飞思卡尔xs128   DFlash
**  版      本: V0.99
**  修      改: 庞辉    芜湖联大飞思卡尔工作室
**  修改日期:2011年09月26日
**
**  说      明:无
**
**  版本更新:无
******************************************************************
**注        意: LED          PB0
**                  BUTTON   PM1
******************************************************************/
#include "includes.h"
/***********************************************************
** 名        称:void main(void)
** 功        能:主函数
** 入口参数:无
** 出口参数:无
** 使用说明:无
************************************************************/
void main(void)
{
Start();
Start_go();
EnableInterrupts;
//设置PB0口LED灯作为指示,读取DFlash正确则亮,否则不亮
DDRB_DDRB0 = 1;
PORTB_PB0 = 1;
DDRM_DDRM1 = 0;
FOREVER()
{
if(PTM_PTM1 == 0)
{
//确保先擦除后写入
DFlash_Erase(data_Address);
DFlash_Write(data_Address);
}
//读取DFlash数据
date_read[0]=DFlash_Read(data_Address);
date_read[1]=DFlash_Read(data_Address+2);
date_read[2]=DFlash_Read(data_Address+4);
date_read[3]=DFlash_Read(data_Address+6);
//判断读取数据是否正确
if(date_read[0]==0x1111&&date_read[1]==0x2222&&date_read[2]==0x3333&&date_read[3]==0x4444)  //判断数据是否正确
{
PORTB_PB0 = 0;
}
}
}

xs128 D-Flash读写相关推荐

  1. 单片机编程php,STC单片机内部FLASH读写程序(最新整理)

    <STC单片机内部FLASH读写程序(最新整理)>由会员分享,可在线阅读,更多相关<STC单片机内部FLASH读写程序(最新整理)(6页珍藏版)>请在人人文库网上搜索. 1.S ...

  2. stm32 Flash读写[库函数]

    stm32 的内置可编程Flash在许多场合具有十分重要的意义.如其支持ICP特性使得开发人员对stm32可以警醒调试开发,可以通过JTAG和SWD接口对stm32进行程序烧写:支持IAP特性使得开发 ...

  3. NAND FLASH读写原理

    NAND FLASH读写原理 一.结构分析  S3C2410处理器集成了8位Nand Flash控制器.目前市场上常见的8位NandFlash有三星公司的k9f1208.k9f1g08.k9f2g08 ...

  4. STM32F4—Flash读写

    STM32F4–Flash读写操作 一般在代码调节参数时,比如在调PID的时候,如果每次改参数就重新烧写代码就十分的麻烦.我们可以利用stm32内部flash的读写功能,实现数据保存. 可以从数据手册 ...

  5. 模拟NAND FLASH 读写BCH ECC校验

    一.模拟NAND FLASH 读写BCH ECC校验 将内核源码里的bch校验程序分离出来,从而可以手动修改原始数据和bch校验码,达到模拟出错纠正过程. 源码 bch.c.bch.h.types.h ...

  6. NAND FLASH 读写操作 简介

    NAND FLASH 内存详解与读写寻址方式 一.内存详解 NAND闪存阵列分为一系列128kB的区块(block),这些区块是 NAND器件中最小的可擦除实体.擦除一个区块就是把所有的位(bit)设 ...

  7. 通过mtd读写flash_NOR Flash读写原理及驱动

    本文主要是关于NOR Flash的相关介绍,并着重对NOR Flash读写原理及驱动进行了详尽的阐述. NOR Flash NOR Flash是现在市场上两种主要的非易失闪存技术之一.Intel于19 ...

  8. flash读写导致死机问题分析

    有个项目需要将原NXP1766芯片移植到国民N32芯片中,但是移植过程会出现死机现象.记录下分析过程. 1.现象分析 当PC发送通信申请命令后,STM32动态申请内存空间存储数据并进行处理: 当出现死 ...

  9. 瑞萨e2studio(15)----Code FlashData Flash读写

    瑞萨e2studio.15--Code Flash&Data Flash读写 概述 硬件准备 新建工程 工程模板 保存工程路径 芯片配置 工程模板选择 FLASH配置 FLASH属性配置 设置 ...

  10. uboot研读笔记 | 05 - 移植uboot 2012.04到JZ2440(支持Nand Flash读写)

    项目开源地址:https://github.com/Mculover666/uboot-jz2440 0. 教程完整目录 00 - 嵌入式Linux系统中Bootloader的作用和基本运行原理 01 ...

最新文章

  1. css让image不改变大小_变压器怎样改变电压的?
  2. 通过 Serverless 加速 Blazor WebAssembly
  3. jsf标签_多个动态包含一个JSF标签
  4. 院士发言:有高校博士后待遇比国际平均水平高出一倍,这不正常!
  5. 蓝牙4.0大数据分包处理
  6. json字符串,JSON对象,JSON数组的区别与相互转换
  7. Java处理微博数据集中的超链接
  8. hadoop的ACL权限
  9. Rstudio更换默认下载镜像(下载源)教程
  10. java引用微信支付的p12证书文件
  11. Ubuntu下U盘变成只读的解决方法
  12. BZOJ 4178 A
  13. 听《为什么时光飞逝》,耳目一新的人感知时光的科学研究观点
  14. 会计专业应用计算机操作,中职会计专业计算机应用基础教学
  15. 松下服务器编码器由谁该信号,松下伺服电机编码器判断好坏的方法以及功能和作用...
  16. 水雨情监测 水库水雨情在线监测
  17. 1472_TC275的看门狗简介以及安全看门狗及CPU看门狗的区分
  18. 计算机网络技术教程第3版课后答案,《计算机网络技术基础教程》课后习题答案刘四清版3.doc...
  19. python二进制文件对比_二进制文件 .VS. 文本文件 > python
  20. 海量数据相似数据查找方法(ANN):【高维稀疏向量的相似查找——MinHash, LSH, SimHash】【稠密向量的相似查找——Faiss、Annoy、ScaNN、Hnswlib】

热门文章

  1. Linux杂谈之python命令
  2. 西游记团队与Scrum团队中的角色关系映射
  3. MySQL8功能详解——角色
  4. 查询数据库中的重复数据记录
  5. HTML、CSS中雪碧图的使用
  6. 【C/C++】教你区分libc、glibc、libgcc、libstdc++等名词
  7. 论架构师的自我修养--8荣
  8. 文献 | 肥胖这种病,心理因素是源头?
  9. 大二下小结与暑假展望
  10. CAN通信标准帧和扩展帧(全网最透彻解答)