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

📄 spi.h

📁 philips arm7 lpc2103的常用功能的库函数第二部分
💻 H
字号:
/***********************************************Copyright (c)*********************************************
**                                Guangzou ZLG-MCU Development Co.,LTD.
**                                     
**                                       http://www.zlgmcu.com
**
**--------------File Info---------------------------------------------------------------------------------
** File name:			    Spi.h
** Last modified Date:      2007-10-20
** Last Version:		    1.0
** Descriptions:		    Spi头文件
**
**--------------------------------------------------------------------------------------------------------
** Created by:			    lixiaocheng
** Created date:		    2007-10-20
** Version:				    1.0
** Descriptions:		    
**
**--------------------------------------------------------------------------------------------------------
** Modified by:			    
** Modified Date:		    
** Version:				    
** Descriptions:		    
**
*********************************************************************************************************/
#ifndef __SPI_H
#define __SPI_H

/*********************************************************************************************************
   定义SPI工作状态
*********************************************************************************************************/
#define SPI_IDLE            0x10                                        /*  SPI处于空闲模式             */   
#define SPI_READ            0x11                                        /*  SPI处于繁忙模式             */
#define SPI_WRITE           0x12                                        /*  SPI处于繁忙模式             */

/*********************************************************************************************************
   定义SPI写模式,1为保存写返回的值,0为不保存写返回的值
*********************************************************************************************************/
#define SPI_SAVE_BACK        1
#define SPI_NOSAVE_BACK      0

/*********************************************************************************************************
   定义SPI定义用户获取SPI状态参数的类型
*********************************************************************************************************/
#define SPI_GET_STATE       1                                           /*  获取SPI工作状态             */
#define SPI_GET_WRITE_MODE  2                                           /*  获取SPI写模式               */
#define SPI_GET_READ_LEN    3                                           /*  获取SPI当前还有多少没有读   */

/*********************************************************************************************************
** Function name:           spiInit()
** Descriptions:            SPI初始化函数,使用字符串传入参数
** Input parameters:        uiParmID      设备号,例如0表示使用SPI0
**                          pcParmArg     传入参数的字符串指针,参数列表和取值意义如下
**                              Spiclk:   spi的通讯速率,范围1-Fpclk/8
**                              Cpha  :   0为第一个时钟采样,1为第二个时钟采样
**                              Cpol  :   0为CLK高电平有效,1为CLK低电平有效
**                              Lsbf  :   0表示MSB在先,1表示LSB在先
**                          pvRsv         保留参数
** Output parameters:       NONE
** Returned value:          初始化失败:      OPERATE_FAIL
**                          管脚连接错误:    PIN_ERR
**                          初始化成功:      OPERATE_SUCCESS
*********************************************************************************************************/
int32 spiInit (uint32 uiParmID, 
               char *pcParmArg, 
               void *Rsv);
               
/*********************************************************************************************************
** Function name:           spiWrite()
** Descriptions:            SPI写函数
** Input parameters:        uiParmID      设备号,例如0表示使用SPI0
**                          pucParmData   写入数据首指针
**                          uiParmLen     要写入数据的长度
**                          ucFlag        写模式,0为写的同时丢弃返回值,1为保留返回值,返回值的获取通过
**                                        spiRead()获取。
** Output parameters:       NONE
** Returned value:          写失败:       OPERATE_FAIL
**                          >=0           已发送数据个数
*********************************************************************************************************/
int32 spiWrite (uint32 uiParmID, 
                uint8 *pucParmData, 
                uint32 uiParmLen, 
                uint8  ucFlag);

/*********************************************************************************************************
** Function name:           spiReadStart()
** Descriptions:            SPI读启动函数
** Input parameters:        uiParmID      设备号,例如0表示使用SPI0
**                          uiParmLen     要读的数据个数
**                          ucData        读取时MOSI填充的字节,如果为NULL,则填充OXFF
** Output parameters:       NONE
** Returned value:          启动失败:     OPERATE_FAIL
**                          启动成功:     OPERATE_SUCCESS
*********************************************************************************************************/
int32 spiReadStart (uint32 uiParmID, 
                    uint32 uiParmLen, 
                    uint8  ucData);
                
/*********************************************************************************************************
** Function name:           spiRead()
** Descriptions:            SPI读函数
** Input parameters:        uiParmID      设备号,例如0表示使用SPI0
**                          uiParmLen     要读的数据个数
** Output parameters:       pucParmBuf    存储读取出来数据的缓冲区
** Returned value:          读取失败:     OPERATE_FAIL
**                          读取成功:     >=0
*********************************************************************************************************/
int32 spiRead (uint32 uiParmID, 
               uint8 *pucParmBuf, 
               uint32 uiParmLen);
               
/*********************************************************************************************************
** Function name:           spiRead()
** Descriptions:            SPI读函数
** Input parameters:        uiParmID      设备号,例如0表示使用SPI0
**                          uiParmCmd     要读取的参数类型,具体参见Spi.h宏定义
** Output parameters:       NONE
** Returned value:          获取状态失败:     OPERATE_FAIL。失败的原因:参数错误;不在写状态获取写模式;
**                                            不在读状态获取读长度
**                          获取状态成功:     根据不同命令获得的值意义不一样
**                              uiParmCmd = SPI_GET_STATE,返回SPI_WRITE,SPI_READ,SPI_IDLE
**                              uiParmCmd = SPI_GET_WRITE_MODE,返回SPI_SAVE_BACK,SPI_NOSAVE_BACK
**                              uiParmCmd = SPI_GET_READ_LEN,返回>=0表示还有多少字节没有读完
*********************************************************************************************************/
int32 spiGetFlag (uint32 uiParmID, uint32 uiParmCmd);

/*********************************************************************************************************
** Function name:           spiSetCs()
** Descriptions:            SPI设置片选脚
** Input parameters:        uiParmID    设备号,例如0表示设置SPI0
**                          uiPin       设备描述符指针
** Output parameters:       NONE
** Returned value:          OPERATE_SUCCESS:设置成功
**                          OPERATE_FAIL   :设置失败,原因是当前不属于空闲状态
*********************************************************************************************************/
int32 spiSetCs (uint32 uiParmID, uint32 uiPin); 

/*********************************************************************************************************
** Function name:           spi0ISR()
** Descriptions:            SPI中断服务函数
** Input parameters:        NONE
** Output parameters:       NONE
** Returned value:          NONE
*********************************************************************************************************/
void spi0Isr (void);

/*********************************************************************************************************
** Function name:           spi1ISR()
** Descriptions:            SPI中断服务函数
** Input parameters:        NONE
** Output parameters:       NONE
** Returned value:          NONE
*********************************************************************************************************/
void spi1Isr (void);


#endif                                                                  /*  __SPI_H                     */
/*********************************************************************************************************
  END FILE
*********************************************************************************************************/

⌨️ 快捷键说明

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