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