📄 at45.h
字号:
//---------------------------------------------------------------------------------------
// AT45.H文件
// AT45DB161操作头文件
// 操作命令定义文件
// scj
// 07/05/04
//---------------------------------------------------------------------------------------
#ifndef _AT45_H_
#define _AT45_H_
//--------------------------------------------------------
// 操作命令定义
// 注意这些命令中的一部分与SPI使用的模式有关系
//--------------------------------------------------------
#define BUFFER_1 0x00 // buffer 1
#define BUFFER_2 0x01 // buffer 2
// User->Buffer
#define BUFFER_1_WRITE 0x84 // buffer 1 write
#define BUFFER_2_WRITE 0x87 // buffer 2 write
// Buffer->User
#define BUFFER_1_READ 0x54 // buffer 1 read (change to 0xD4 for SPI mode 0,3)
#define BUFFER_2_READ 0x56 // buffer 2 read (change to 0xD6 for SPI mode 0,3)
// PAGE->Buffer
#define PAGE_TO_B1_XFER 0x53 // main memory page to buffer 1 transfer
#define PAGE_TO_B2_XFER 0x55 // main memory page to buffer 2 transfer
// Buffer->Main Page
#define B1_TO_PAGE_WITH_ERASE 0x83 // buffer 1 to main memory page program with built-in erase
#define B2_TO_PAGE_WITH_ERASE 0x86 // buffer 2 to main memory page program with built-in erase
#define B1_TO_PAGE_WITHOUT_ERASE 0x88 // buffer 1 to main memory page program without built-in erase
#define B2_TO_PAGE_WITHOUT_ERASE 0x89 // buffer 2 to main memory page program without built-in erase
// 通过Buffer直接写入Main Page
// 该命令包括三个部分:数据首先写入指定的buffer,擦除指定的buffer,重新写入到page
// User->Page(with erase)
#define PAGE_PROG_THROUGH_B1 0x82 // main memory page program through buffer 1
#define PAGE_PROG_THROUGH_B2 0x85 // main memory page program through buffer 2
// 页面自动重新写入
#define AUTO_PAGE_REWRITE_THROUGH_B1 0x58 // auto page rewrite through buffer 1
#define AUTO_PAGE_REWRITE_THROUGH_B2 0x59 // auto page rewrite through buffer 2
#define PAGE_TO_B1_COMP 0x60 // main memory page compare to buffer 1
#define PAGE_TO_B2_COMP 0x61 // main memory page compare to buffer 2
#define STATUS_REGISTER 0x57 // Flash 状态
// Page->User
#define MAIN_MEMORY_PAGE_READ 0x52 // main memory page read (change to 0xD2 for SPI mode 0,3)
// Page->0xFF
#define PAGE_ERASE 0x81 // erase a 528 byte page
// Block->Erase
#define BLOCK_ERASE 0x50 // 擦除块(512 pages)
#define FLASH_DEVICEID 0x9F // 读取Flash的生产信息
//--------------------------------------------------------------
// 函数声明
//--------------------------------------------------------------
const char *GetFlashType();
BYTE GetFlashInfo();
BYTE GetFlashStatus();
BYTE FlashBuffer1Read(WORD start_addr,WORD len, BYTE *pBuffer);
BYTE FlashBuffer2Read(WORD start_addr,WORD len, BYTE *pBuffer);
BYTE FlashBuffer1Write(WORD start_addr, WORD len,BYTE *pBuffer);
BYTE FlashBuffer2Write(WORD start_addr, WORD len,BYTE *pBuffer);
BYTE PageToBuffer1(WORD pageAddr);
BYTE PageToBuffer2(WORD pageAddr);
BYTE FlashPageErase(WORD pageAddr);
BYTE FlashBlockErase(WORD blockAddr);
BYTE FlashBuffer1ProgNoErase(WORD pageAddr);
BYTE FlashBuffer2ProgNoErase(WORD pageAddr);
BYTE FlashBuffer1ProgAutoErase(WORD pageAddr);
BYTE FlashBuffer2ProgAutoErase(WORD pageAddr);
BYTE FlashProgViaBuffer1(WORD start_addr, WORD len,BYTE *pBuffer,WORD pageAddr);
BYTE FlashProgViaBuffer2(WORD start_addr, WORD len,BYTE *pBuffer,WORD pageAddr);
BYTE FlashAutoProgViaBuffer1(WORD pageAddr);
BYTE FlashAutoProgViaBuffer2(WORD pageAddr);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -