?? dataflash.h
字號:
//dataflash.h
#ifndef DATAFLASH_H
#define DATAFLASH_H
#include "config.h"
#define DF_PAGE_SIZE 528
#define DF_READ_BUFFER 1
#define DF_WRITE_BUFFER 0
#define SPI_FLASH_CS_LOW() GPIO_ResetBits(GPIOB, GPIO_Pin_7)
#define SPI_FLASH_CS_HIGH() GPIO_SetBits(GPIOB, GPIO_Pin_7)
/* 本程序為AVR單片機SPI口訪問AT45DB161D提供一組接口函數
通過這一組接口函數可非常容易的完成對AT45DB161D的讀寫操作
AT45DB161D按頁組織和操作(讀寫擦等等)內部的FLASH存儲器,
每頁為528字節(特殊用途時可通過命令配置成512字節),其內部共集成4096頁,即4096*528=2162688字節
本程序將為您提供讀寫這2162688字節存儲區的線性操作方法。使用這些函數,用戶可不必考慮AT45DB161D
內部的存儲器組織結構,如同讀寫一個文件一樣進行讀寫操作。
*/
/*這是SPI口初始化函數,它必須在所有這些接口函數調用之前得到調用*/
void SPI_FLASH_Init(void);
/*讀操作初始化函數,addr指定接下來的讀函數的開始讀取位置
程序內部維護一個當前讀取計數器,用戶每讀一字節該計數器加一*/
void df_read_open(u32 addr);
/*寫操作初始化函數,addr指定接下來的寫函數的開始寫入位置
程序內部維護一個當前寫入計數器,用戶每寫入一個字節該計數器加一*/
void df_write_open(u32 addr);
/*此函數從當前讀位置讀取一字節后返回,內部的讀計數器加一*/
u8 df_getc(void);
/*此函數向當前寫位置寫入一字節的數據,并使內部寫計數器加一*/
void df_putc(u8 c);
/*此函數從當前讀位置讀取size個字節的數據到緩沖區buf,并使內部讀計數器加size*/
void df_read(u8 *buf,u8 size);
/*此函數從緩沖區buf向當前寫位置寫入size字節的數據,并使內部寫計數器加size*/
void df_write(u8 *buf,u8 size);
/*調整當前讀計數器,調用此函數前必須已調用df_read_open*/
void df_read_seek(u32 addr);
/*調整當前寫計數器,調用此函數前必須已調用df_write_open*/
void df_write_seek(u32 addr);
/*關閉讀操作*/
void df_read_close(void);
/*關閉寫操作,所有的寫入操作完成后必須調用此函來結束寫操作,以便數據能夠完整的保存到AT45DB161D主存儲器當中*/
void df_write_close(void);
void df_read_deviceid(u8 *buf);
u8 Get_flash_State_Value(void);
u8 DataFlash_WriteSector(u32 ulSectorNo,const u8 *ucWrDataBuff);
u8 DataFlash_ReadSector(u32 ulSectorNo,u8 *ucRdDataBuff);
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -