📄 ssp.h
字号:
/***********************************************Copyright (c)*********************************************
** Guangzou ZLG-MCU Development Co.,LTD.
**
** http://www.zlgmcu.com
**
**--------------File Info---------------------------------------------------------------------------------
** File name: SSP.h
** Last modified Date: 2007-11-22
** Last Version: 2.0
** Descriptions: SSP 功能部件头文件,供用户使用.
** Notice: LPC22xx系列中,只有LPC2220带有一个SPI/SSP接口.
**
**--------------------------------------------------------------------------------------------------------
** Created by: WangGuoguang
** Created date: 2007-11-14
** Version: 1.0
** Descriptions: 此头文件可在config.h中包含.
**
**--------------------------------------------------------------------------------------------------------
** Modified by: WangGuoguang
** Modified Date: 2007-11-22
** Version: 2.0
** Descriptions: 调试通过,并实现预定功能.
**
*********************************************************************************************************/
#ifndef __SSP_H
#define __SSP_H
/*********************************************************************************************************
SSP 软件包裁剪
*********************************************************************************************************/
#ifndef SSP_FUN_LIB
#define SSP_FUN_LIB 1
#endif
/*********************************************************************************************************
** SSP 软件模拟CS片选功能的宏参数
** 当用户默认为SSP协议,而不要手动修改片选引脚时,请注释掉 #define SSP_CS_GPIO_ENABLE ,以裁剪去对应宏代码.
*********************************************************************************************************/
#define SSP_CS_Pin P0_20 /* 作为SSP从机片选线的GPIO编号 */
//#define SSP_CS_GPIO_ENABLE /* 是否使能CS设置 */
/*********************************************************************************************************
定义 SSP 缓冲区的大小,单位为字节 (根据实际需求定义缓冲长度)
*********************************************************************************************************/
#define SSP_DATA_QUEUE_NUM 100 /* 定义保存数据队列长度 */
/*********************************************************************************************************
SSP 定义 (定义更多的编号是为了以后移植扩展)
*********************************************************************************************************/
#define SPI 0 /* SPI 编号 */
#define SSI 1 /* SSI 编号 */
#define MICROWIRE 2 /* MicroWire 编号 */
/*********************************************************************************************************
SSP 状态查询宏
*********************************************************************************************************/
#define SSP_ID 50 /* SSP设备ID编号 */
#define SSP_M_S 51 /* 主从机查询: 0-主机 1-从机 */
#define SSP_MODE 52 /* 总线类型: SPI,SSI,MicroWire */
#define SSP_BITSLEN 53 /* 帧长度:4, 6, 8位 */
#define SSP_STATE 54 /* SSP 状态标志 */
#define SSP_S_INT_STATE 55 /* SSP 发送中断使能 / 禁止标志 */
#define SSP_S_QUEUE_STATE 56 /* SSP 软件发送FIFO状态 */
#define SSP_R_QUEUE_STATE 57 /* SSP 软件接收FIFO状态 */
#define SSP_H_S_QUEUE_STATE 58 /* SSP 硬件发送FIFO状态 */
#define SSP_H_R_QUEUE_STATE 59 /* SSP 硬件接收FIFO状态 */
/*********************************************************************************************************
SSP 发送中断使能 / 禁止
*********************************************************************************************************/
#define SSP_W_INT_ENABLE 10
#define SSP_W_INT_DISABLE 11
#define SSP_R_INT_ENABLE 12
/*********************************************************************************************************
SSP 状态标志
*********************************************************************************************************/
#define SSP_IDLE 20
#define SSP_SEND 21
#define SSP_RECIEVE 22
/*********************************************************************************************************
SSP 软件FIFO状态标志
*********************************************************************************************************/
#define SSP_QUEUE_EMPTY 30
#define SSP_QUEUE_NO_FULL 31
#define SSP_QUEUE_FULL 32
/*********************************************************************************************************
SSP 硬件FIFO状态标志
*********************************************************************************************************/
#define SSP_FIFO_EMPTY 40
#define SSP_FIFO_NO_FULL 41
#define SSP_FIFO_FULL 42
/*********************************************************************************************************
** Function name: sspInit()
**
** Descriptions: SSP初始化函数,使用字符串传入参数
** Input parameters: uiID 设备号,例如0表示使用SSP0
** puiParam 传入参数的字符串指针,参数列表和取值意义如下
** SSPType : 总线类型:SPI,SSI,Microwire
** MasterSlaver : 0: 主机 1.从机
** SSPBaudRate : 如设为SPI总线类型,波特率 <= Fpclk / 8
** BitsLen : 帧长度 = 4, 8, 16位
** CPHA : 时钟相位 = 0, 1
** CHOL : 时钟极性 = 0, 1.
** pRsv 保留参数,为软件包升级扩展所用.
**
** Returned value: 初始化失败: OPERATE_FAIL
** 初始化成功: OPERATE_SUCCESS
*********************************************************************************************************/
uint32 sspInit (uint32 uiID,
char *pcArg,
char *pRsv);
/*********************************************************************************************************
** Function name: sspSetMode
**
** Descriptions: SSP初始化函数,使用字符串传入参数
** Input parameters: uiID 设备号,例如0表示使用SSP0
** puiParam 传入参数的字符串指针,参数列表和取值意义如下
** SSPType : 总线类型:SPI,SSI,Microwire
** MasterSlaver : 0: 主机 1.从机
** SSPBaudRate : 如设为SPI总线类型,波特率 <= Fpclk / 8
** BitsLen : 帧长度 = 4, 8, 16位
** CPHA : 时钟相位 = 0, 1
** CHOL : 时钟极性 = 0, 1.
** pRsv 保留参数,为软件包升级扩展所用.
**
** Returned value: 操作失败: OPERATE_FAIL
** 操作成功: OPERATE_SUCCESS
**
** Using example : char *pcArg = "SSPType=0 SSPBaudRate=1000"; adcSetMode(0,pcArg,NULL);
** Notice: 设备操作失败的原因是输入不正确的设备号.
*********************************************************************************************************/
uint32 sspSetMode (uint32 uiID,
char *pcArg,
char *pRsv);
/*********************************************************************************************************
** Function name: sspGetState
**
** Descriptions: 获取当前SSP的参数
** Input parameters: uiID 设备号,例如0表示使用SSP0
** uiState 状态宏参数,请参考SSP.h文件说明
** pRsv 保留参数,可输入为NULL.
**
** Returned value: 操作失败: OPERATE_FAIL
** 操作成功: 返回状态宏
**
** Notice : 总线类型: SPI,SSI,MicroWire
SPI : 0
SSI : 1
MICROWIRE : 2
*********************************************************************************************************/
uint32 sspGetState (uint32 uiID,
uint32 uiState,
void *pRsv);
/*********************************************************************************************************
** Function name: sspWrite
** Descriptions: SSP写数据操作,数据入软件FIFO.同时开启SSP.
** input parameters: uiID : 设备号,例如0表示使用SSP0
** pDataBuf : 指向待发送数据存储空间指针.类型不定.
** uiDataByteNum : 要发送的字节个数
**
** Returned value: 操作成功:OPERATE_SUCCESS;
** 操作失败:OPERATE_FAIL.
*********************************************************************************************************/
uint32 sspWrite (uint32 uiID,
void *pDataBuf,
uint32 uiDataByteNum);
/*********************************************************************************************************
** Function name: sspRead
** Descriptions: SSP读操作,只对软件FIFO操作.
** input parameters: uiID : 设备号,例如0表示使用SSP0
** pDataBuf : 指向保存所接收数据存储空间指针.类型不定.
** uiDataByteNum : 要接收的字节个数
**
** Returned value: 操作成功:OPERATE_SUCCESS;
** 操作失败:OPERATE_FAIL.
*********************************************************************************************************/
uint32 sspRead (uint32 uiID,
void *pDataBuf,
uint32 uiDataByteNum);
/*********************************************************************************************************
** Function name: ssp0Isr
** Descriptions: SSP0中断服务函数
** Transfer Functions: __sspIsrFunInstall();中断处理函数指针安装函数.
** ssp0Hook(); 钩子函数,存放用户处理中断代码.
** input parameters: 无
** Returned value: 无
*********************************************************************************************************/
void ssp0Isr (void);
#endif /* __SSP_H */
/*********************************************************************************************************
END
*********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -