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

📄 spi.h

📁 SPI接口的Data Flash at45db的C驱动
💻 H
字号:
//*------------------------------------------------------------------------------------------------
//* 文件名			   : spi.h
//* 功能描述		   : spi设备相关的常量、宏、函数原型定义
//* 作者    		   : 焦海波
//* 版本			   : 0.1
//* 建立日期、时间	   : 2008/05/04 14:39
//* 最近修改日期、时间 : 
//* 修改原因		   : 
//*------------------------------------------------------------------------------------------------

#ifndef	SPI_H
#define	SPI_H

#ifdef OS_GLOBALS 
	#define OS_SPI_EXT 
#else 
	#define OS_SPI_EXT extern 
#endif
//*---------------------------------------- 常量、变量及宏定义 ------------------------------------
//* 定义SPI端口号
#define	SPI0	0
#define	SPI1	1

//* SPI0相关引脚定义
#define	SPI0_PINS	(AT91C_PA16_SPI0_MISO | AT91C_PA17_SPI0_MOSI | AT91C_PA18_SPI0_SPCK)

//* SPI1相关引脚定义
#define	SPI1_PINS	( AT91C_PA24_SPI1_MISO | AT91C_PA23_SPI1_MOSI | AT91C_PA22_SPI1_SPCK)

//* SPI中断优先级
#define	SPI_IRQ_PRIOR	7

//* 等待SPI设备接收结束
OS_SPI_EXT INT8U u8IsNotRecvEnd;
#define	macWaitSPIRecvEnd()		while(u8IsNotRecvEnd);u8IsNotRecvEnd = OS_TRUE;

//* SPI0访问阻塞句柄
OS_SPI_EXT OS_EVENT *hSPI0;
//*------------------------------------------- 结构体定义 ----------------------------------------
//* SPI接口描述符
typedef void(*PFUN_SPI_ISR)(void);
typedef struct {
	AT91PS_SPI 		pSPI;					//* SPI基址
	INT32U     		u32Pins;				//* 相关引脚
	INT8U	   		u8SPIID;    			//* SPI的外设ID号
	INT32U			u32NeedPullUpPin;		//* 需要使能内部上拉电阻的引脚
	INT8U			u8IRQPrior;				//* 需要使能内部上拉电阻的引脚
	PFUN_SPI_ISR	pfunSPIIsr;				//* SPI中断服务子函数入口地址
} SPI0_DEV_DESCRIPTOR;

//* 与SPI接口相连的设备进行读写操作时使用的结构体
typedef int(*PFUN_CALLBACK)(void *);
typedef struct {
	INT8U 			u8SPIPort;
	INT8U			u8NPCSPin;
	INT8U			*pbCmd;
	INT8U			u8CmdLen;
	INT8U			*pbData;
	INT32U			u32DataLen;
	PFUN_CALLBACK	pfunCallBack;
	void			*pvArg;				//* 传递给回调函数的参数
}ST_SPI_DEV_RW;
//*-------------------------------------------- 原型声明 -----------------------------------------
OS_SPI_EXT void SPIConfig(INT8U u8SPIPort);
OS_SPI_EXT void ReadAndWriteSPIDev(ST_SPI_DEV_RW *pstOpt);
#endif

⌨️ 快捷键说明

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