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

📄 spi.h

📁 ZLG MINIARM-N20源代码
💻 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 + -