📄 sspprivate.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 功能部件头文件,供用户使用.
**
**--------------------------------------------------------------------------------------------------------
** 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_PRIVATE_H
#define __SSP_PRIVATE_H
/*********************************************************************************************************
SSP 最大个数定义
*********************************************************************************************************/
#define __SSP0 0
#define __SSP_MAX_NUM 1 /* LPC22xx SSP总线接口模式共有3个 */
#define __SSP_MAX_MODE 3 /* 三种总线模式:SPI,SSI,MICROWIRE */
/*********************************************************************************************************
SSP 寄存器偏移地址宏
*********************************************************************************************************/
#define __B_SSP_SSPCR0 0
#define __B_SSP_SSPCR1 1
#define __B_SSP_SSPDR 2
#define __B_SSP_SSPSR 3
#define __B_SSP_SSPCPSR 4
#define __B_SSP_SSPIMSC 5
#define __B_SSP_SSPRIS 6
#define __B_SSP_SSPMIS 7
#define __B_SSP_SSPICR 8
/*********************************************************************************************************
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 Queue状态标志
*********************************************************************************************************/
#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
/*********************************************************************************************************
SSP 寄存器字长偏移地址宏参数
*********************************************************************************************************/
#define __SSP_OFFSET_BASE 0
/*********************************************************************************************************
SSP 功率部分寄存器偏移地址
*********************************************************************************************************/
#define __B_SSP_PCONP 49
/*********************************************************************************************************
SSP 配置参数结构体
*********************************************************************************************************/
typedef struct {
uint8 SSPType;
uint8 MasterSlaver;
uint8 CPHA;
uint8 CHOL;
uint32 SSPBaudRate;
uint32 BitsLen;
}__SSP_PARAM; /* 定义参数结构体类型 */
typedef __SSP_PARAM *__PSSP_PARAM; /* 定义结构体指针类型 */
/*********************************************************************************************************
SSP 设备信息结构体
*********************************************************************************************************/
struct __ssp_info {
uint32 uiSSPID; /* SSP编号 0:SSP0 1:SSP1 */
uint32 uiSSPMode; /* SSP总线接口模式 */
/* SPI : 0 */
/* SSI : 1 */
/* MICROWIRE : 2 */
volatile uint8 ucSendIntEn; /* 写中断使能 10:禁能 11:使能 */
uint8 ucDataLen; /* 数据帧长度 */
uint8 ucMasterSlave; /* 主从机标志 0:主机 1:从机 */
uint8 ucSSPState; /* SSP状态标志: 空闲.写/读忙 */
uint32 uiSQueueState; /* 发队列状态 30:空 31:满 */
uint32 uiRQueueState; /* 收队列状态 32:未满 */
uint32 uiHardSFIFOState; /* 发硬FIFO状态 40:空 41:非空 */
uint32 uiHardRFIFOState; /* 收硬FIFO状态 40:空 41:非空 */
uint32 uiOffsetBase; /* SSP寄存器偏移地址 */
volatile uint32 *puiAddrBase; /* SSP寄存器基地址 */
__PDATA_QUEUE SspSendQueAddr; /* SSP发送数据缓冲队列指针 */
__PDATA_QUEUE SspRecvQueAddr; /* SSP接收数据缓冲队列指针 */
__PSSP_PARAM pSspParam; /* SSP参数结构体指针 */
uint16 usSspFrameNum; /* SSP帧个数定义,一般为8帧 */
};
typedef struct __ssp_info __SSP_INFO; /* 定义结构体类型 */
typedef __SSP_INFO *__PSSP_INFO; /* 定义结构体指针类型 */
/*********************************************************************************************************
** SSP CS片选线操作宏 (当设为SPI主机状态时)
** 说明:
如果用户不使用SSEL线用作从机的片选线,即虽然初始化了SSEL脚,但是没有将SSEL作为从机片线信号,
而使用了Pin对应IO 作为片选线时的宏配置. Pin : 取值为P0_01,P0_27...
*********************************************************************************************************/
#define __GPIO_FUN_LIB __GPIO_H /* 使用GPIO软件包的函数 */
#ifdef __GPIO_FUN_LIB
#ifdef SSP_CS_GPIO_ENABLE /* 当使用软件模拟CS片选从机功能*/
#define SSP_CS_GPIO 1
#else
#define SSP_CS_GPIO 0 /* 默认为不模拟CS片选从机功能 */
#endif
#endif
#define __SSP_CS_SET(SSP_CS_Pin) gpioSet(SSP_CS_Pin) /* 对应IO脚置高电平 */
#define __SSP_CS_CLR(SSP_CS_Pin) gpioClr(SSP_CS_Pin) /* 对应IO脚置低电平 */
/* CS使能,根据不同器件配置 */
#define __SSP_CS_ENABLE(SSP_CS_Pin) __SSP_CS_CLR(SSP_CS_Pin)
/* CS禁能,根据不同器件配置 */
#define __SSP_CS_DISABLE(SSP_CS_Pin) __SSP_CS_SET(SSP_CS_Pin)
#endif /* __SSP_PRIVATE_H */
/*********************************************************************************************************
END
*********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -