📄 spi.h
字号:
/****************************************Copyright (c)****************************************************
** Guangzhou ZHIYUAN electronics Co.,LTD.
**
** http://www.embedtools.com
**
**--------------File Info---------------------------------------------------------------------------------
** File name: SPI.h
** Last modified Date: 2007-10-20
** Last Version: 1.0
** Descriptions: SPI参数配置信息
**--------------------------------------------------------------------------------------------------------
** Created by: LinEnqiang
** Modified date: 2007/10/20
** Version: 1.00
** Descriptions: The original version
**--------------------------------------------------------------------------------------------------------
** Modified by: Liu Weifeng
** Modified date: 2007/12/24
** Version:
** Descriptions: 修改为动态分配接收、发送缓冲大小
*********************************************************************************************************/
#ifndef __SPI_H
#define __SPI_H
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/*********************************************************************************************************
SPI 相关索引
*********************************************************************************************************/
#define SPI0 0 /* SPI ID 号 */
#define SPI1 1 /* SPI ID 号 */
#define SPI0_IRQ_CHN 10 /* SPI中断通道号 */
#define SPI1_IRQ_CHN 11 /* SPI中断通道号 */
#define Rx_Buf 0 /* 接收缓冲索引 */
#define Tx_Buf 1 /* 发送缓冲索引 */
/*********************************************************************************************************
SPI 模式配置命令
*********************************************************************************************************/
#define SET_SPEED 0 /* SPI速率 */
#define SET_CTRLMODE 1 /* SPI其他模式配置 */
#define SET_MSMODE 2 /* SPI主、从机设置 */
#define SET_CSPIN 3 /* SPI片选 */
#define SET_RWMODE 4 /* SPI主机回读模式选择 */
typedef struct spiHooks { /* 钩子函数流 */
void (*pRevice)(void *pRsv,INT8U ucRbr); /* 接收到字符调用的函数 */
/* pRsv: 保留,用户不要操作 */
}SPI_HOOKS, *PSPI_HOOKS;
/*********************************************************************************************************
** Function name: SPIInit
** Descriptions: 初始化SPI
** input parameters: ID : 子设备号
** arg :字符串指针
** Rsv :保留参数
** output parameters: None
** Returned value: 操作成功:OPERATE_SUCCESS;
** 操作失败:OPERATE_FAIL
*********************************************************************************************************/
extern int32 SPIInit (uint32 ID,
char *Arg,
void *Rsv);
/*********************************************************************************************************
** Function name: SPISetMode
** Descriptions: 设置SPI的模式
** input parameters: ID :子设备号
** Cmd :设置参数宏
** arg :使用字符串指针传入
** output parameters: None
** Returned value: 操作成功:OPERATE_SUCCESS;
** 操作失败:OPERATE_FAIL
*********************************************************************************************************/
extern int32 SPISetMode (uint32 ID,
uint32 Cmd,
char *Arg);
/*********************************************************************************************************
** Function name: SPIWrite
** Descriptions: 写入SPI中的数据
** input parameters: ID :子设备号
** buf :数据存放地址
** n :读取字节个数
** Rsv :保留参数
** output parameters: None
** Returned value: 成功写入字节个数
**
*********************************************************************************************************/
extern uint32 SPIWrite (uint32 ID,
uint8 *buf,
uint32 NByte,
void *Rsv);
/*********************************************************************************************************
** Function name: SPIRead
** Descriptions: 读取SPI缓冲中的数据
** input parameters: ID :子设备号
** buf :数据存放地址
** n :读取字节个数
** Rsv :保留参数
** output parameters: None
** Returned value: 成功读取字节个数
**
*********************************************************************************************************/
extern uint32 SPIRead (uint32 ID,
uint8 *Buf,
uint32 NByte,
void *Rsv);
/*********************************************************************************************************
** Function name: SPIDirectWrite
** Descriptions: 向SPI设备直接发送数据
** input parameters: ID : 子设备号
** data : 输出的数据
** Rsv : 保留参数(NULL)
** output parameters: None
** Returned value: 实际发送的数据个数(1或0);
*********************************************************************************************************/
extern uint32 SPIDirectWrite (uint32 ID,
uint8 *Buf,
uint32 NByte,
void *Rsv);
/*********************************************************************************************************
** Function name: SPIFIFOState
** Descriptions: 获取Queue队列的状态
** input parameters: ID : 子设备号
** FIFO : Tx_Buf-发送队列;
** Rx_Buf-接收队列
** output parameters: None
** Returned value: 发送队列中可操作的空间大小,或接收队列中可用数据个数
*********************************************************************************************************/
extern int32 SPIFIFOState (uint32 ID, uint8 FIFO);
/*********************************************************************************************************
** Function name: SPIFIFOFlush
** Descriptions: 清空发送或接收Queue队列
** input parameters: ID : 子设备号
** FIFO : Tx_Buf-发送队列;
** Rx_Buf-接收队列
** output parameters: None
** Returned value: 发送队列中可操作的空间大小,或接收队列中可用数据个数
*********************************************************************************************************/
extern int32 SPIFIFOFlush (uint32 ID, uint8 FIFO);
/*********************************************************************************************************
** Function name: SPIISR
** Descriptions: SPI中断服务程序
** input parameters: ID : 子设备号
** output parameters: None
** Returned value: 无
*********************************************************************************************************/
extern void SPIISR (uint32 ID);
__inline void SPI0_ISR (void)
{
/*
* 添加用户代码
* ............
*/
SPIISR (SPI0);
VICVectAddr = 0x00; /* 清除外部中断标志, */
/* 通知CPU中断结束 */
}
__inline void SPI1_ISR (void)
{
/*
* 添加用户代码
* ............
*/
SPIISR (SPI1);
VICVectAddr = 0x00; /* 清除外部中断标志, */
/* 通知CPU中断结束 */
}
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* __SPI_H */
/*********************************************************************************************************
END FILE
*********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -