⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 flash.h

📁 串行FLASH驱动程序
💻 H
字号:
#include "General.h"

//曲线纪录数据,FLASH中
#define BLOCK0           (0x00000)            //flash第1块首地址
#define BLOCK1           (0x10000)            //flash第2块首地址 (首地址)
#define BLOCK2           (0x20000)            //flash第3块首地址 (存储过长桢的数据)
#define BLOCK3           (0x30000)            //flash第4块首地址 (未地址)
#define BLOCK4           (0x40000)            //flash第5块首地址 (首地址)
#define BLOCK5           (0x50000)            //flash第6块首地址(存储本地打印的数据)
#define BLOCK6           (0x60000)            //flash第7块首地址
#define BLOCK7           (0x70000)            //flash第8块首地址   (未地址)

#define LCDSAVE_START    (0x10000)
#define LCDSAVE_END      (0x3FFFF)
//点阵基地址
#define  LOCALSAVE_START (0x40000)
#define  LOCALSAVE_END   (0x7FFFF)

#ifdef _USE_ONCHIP_FLASH
void FlashEraseBlock(int address);
void FlashWriteBlock(int dest, int source, int len);
#endif

#ifdef _USE_SERIAL_FLASH

//#define _USE_25F1024
#define _USE_25F040

#ifdef _USE_25F1024
#define SERIAL_FLASH_BLOCK_MASK     0x07FFF  //每块32K, 
#define SERIAL_FLASH_BYTES          0x20000 //共4块,128k
#define SERIAL_FLASH_SEC_COUNT      4
//串行flash操作指令
#define WREN             (0x06)               //设置写使能锁存器
#define WRDI             (0x04)               //写禁止锁存器
#define RDSR             (0x05)               //读状态寄存器
#define WRSR             (0x01)               //写状态寄存器
#define READ             (0x03)               //读操作
#define PROGRAM          (0x02)               //写操作
#define SERASE           (0x52)               //块擦除
#define CERASE           (0x62)               //整片擦除
#endif 

#ifdef _USE_25F040
#define SERIAL_FLASH_BLOCK_MASK     0x0FFFF  //每块64k
#define SERIAL_FLASH_BYTES          0x80000 //共8块,512 k
#define SERIAL_FLASH_SEC_COUNT      8

//串行flash操作指令
#define WREN             (0x06)               //设置写使能锁存器
#define WRDI             (0x04)               //写禁止锁存器
#define RDSR             (0x05)               //读状态寄存器
#define WRSR             (0x01)               //写状态寄存器
#define READ             (0x03)               //读操作
#define PROGRAM          (0x02)               //写操作
#define SERASE           (0xD8)               //块擦除
#define CERASE           (0xC7)               //整片擦除
#endif 

//------------------------------------------
//P3
//------------------------------------------
#define    SPI_EN          (P3OUT &= ~BIT0)
#define    SPI_DIS         (P3OUT |= BIT0)
#define    SPIMO_1         (P3OUT |= BIT1)
#define    SPIMO_0         (P3OUT &= ~BIT1)
#define    SPICLK_1        (P3OUT |= BIT3)
#define    SPICLK_0        (P3OUT &= ~BIT3)
#define    SPIDATA_IN      (P3IN & BIT2)

void Init_Spi();
uchar Spi_Read(ulong addr);
uint Spi_Read_Int(ulong addr);
void Spi_Read_Blk(ulong addr,uint len, uchar *data);
void Spi_Write(ulong addr,uchar data);
void Spi_Write_Int(ulong addr,uint data);
void Spi_Write_Blk(ulong addr,uint len, uchar *data);
void Spi_Chip_Erase(void);
void Spi_Sector_Erase(ulong addr) ;                           
void Spi_ClearSector(uchar pattern);
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -