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

📄 at45db161.h.bak

📁 使用STR710的SPI接口访问外部EEPROM的例子程序.使用KEIL UV3编译.使用了MDK3.05操作系统.
💻 BAK
字号:
/*=========================================================================*
 * 项目:		
 * 文件:		AT45DB161_bsp.h
 * 描述:		DataFlash的底层驱动
 * 编译:		
 * 版本:		1.00
 * 创建日期:	2007年7月2日
 * 最后修订:	
 * 修改历史:        
 * 编译环境:	
 * ----------------------------------------------------------------------
 * 广州尚地之光电子科技有限公司
 * 开发部
*=========================================================================*/


#ifdef _BSP_DB161_C	
	#define BSP_DB161_EXT
#else
	#define BSP_DB161_EXT extern
#endif


// 内部使用变量和函数声明
/*--常用常量定义(禁止更改)--*/
#define	      FALSE     0
#define	      TRUE      1


// ************** 变量定义 *******************************************
/*AT45DB081命令,使用SPI mode 3*/
#define CONTINUOUS_ARRAY_READ					0xE8
#define MAIN_MEMORY_PAGE_READ					0xD2
#define BUFFER1_READ								0xD4
#define BUFFER2_READ								0xD6
#define MAIN_MEMORY_PAGE_TO_BUFFER1_COPY		0x53
#define MAIN_MEMORY_PAGE_TO_BUFFER2_COPY		0x55
#define MAIN_MEMORY_PAGE_TO_BUFFER1_COMPARE	0x60
#define MAIN_MEMORY_PAGE_TO_BUFFER2_COMPARE	0x61
#define BUFFER1_WRITE								0x84
#define BUFFER2_WRITE								0x87
#define BUFFER1_PROGRAM_WITH_ERASE				0x83
#define BUFFER2_PROGRAM_WITH_ERASE				0x86
#define BUFFER1_PROGRAM_NO_ERASE					0x88
#define BUFFER2_PROGRAM_NO_ERASE					0x89
#define PAGE_ERASE									0x81
#define BLOCK_ERASE									0x50
#define MAIN_MEMORY_THROUGH_BUFFER1_PROGRAM	0x82
#define MAIN_MEMORY_THROUGH_BUFFER2_PROGRAM	0x85
#define AUTO_PAGE_THROUGH_BUFFER1_REWRITE		0x58
#define AUTO_PAGE_THROUGH_BUFFER2_REWRITE		0x59
#define DATA_FLASH_STATUS							0xD7


#define MAX_PAGE		4096
#define PAGE_RL			2
#define ADDR_MASK		0xfc
#define PAGE_BYTE		528
	

/* *********************************************************** */
 /*SPI & DataFlash IO操作定义*/

#define BSPI1_SO		0x10
#define BSPI1_SI		0x20
#define BSPI1_SCLK		0x40
#define BSPI1_SSN		0x80
#define AT45_CS			0x02

#define  DATA_FLASH_CS_LO()  GPIO1->PD &= ~AT45_CS
#define  DATA_FLASH_CS_HI() GPIO1->PD |=  AT45_CS

 
/*DataFlash 内部定义*/
#define DATA_FLASH_BUFFER1 						0x00
#define DATA_FLASH_BUFFER2 						0x01
#define DATA_FLASH_STATUS_READY_MASK			0x80
#define IS_DATA_FLASH_READY(_status_) 				(_status_ & DATA_FLASH_STATUS_READY_MASK)
#define DATA_FLASH_STATUS_COMPARE_MASK			0x40
#define IS_DATA_FLASH_COMPARE_OK(_status_) 		((_status_ & DATA_FLASH_STATUS_COMPARE_MASK) == 0)

#define IS_DATA_FLASH_BUSY() 	(!IS_DATA_FLASH_READY(ReadStatus()))

/********* 函数声明 *************/
BSP_DB081_EXT void  At45db081_initial(void);
BSP_DB081_EXT void 	SPI_wbyte(INT8U wbyte);
BSP_DB081_EXT u8    SPI_rbyte(void);
BSP_DB081_EXT u8    ReadStatus(void);
BSP_DB081_EXT void 	WriteMultiByteToBuffer1(INT16S Address, INT8U *Data, INT8U len);
BSP_DB081_EXT u8    ReadMultiByteFromMainMemory(INT16S PageNum, INT16S SubAddress, INT8U *msg, INT8U len);
BSP_DB081_EXT void 	MainMemoryPageToBuffer1(INT16S PageNum);
BSP_DB081_EXT void 	ProgramBuffer1ToMainMemory(INT16S PageNum);
BSP_DB081_EXT u8    WriteMultiByteToMainMemory (INT16S PageNum,INT16S SubAddress,INT8U *MultiByte,INT8U len);
BSP_DB081_EXT void  AutoPageRewriteThroughBuffer2(INT16S PageNum);
BSP_DB081_EXT void  WriteDataToFlash(INT32U TargetAddr,INT8U *save_data,INT8U data_len);
BSP_DB081_EXT u8  ReadDataFromFlash(INT32U TargetAddr, INT8U *read_data, INT8U data_len);



BSP_DB081_EXT void initAT45DB161(void);
BSP_DB081_EXT u8 BPSI_DataSendReceive(u8 DATA);
BSP_DB081_EXT u8 Detect_AT45DB(void);

⌨️ 快捷键说明

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