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