📄 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 + -