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

📄 d12driver.h

📁 移植了可运行于arm lpc2294下的uc/os2
💻 H
字号:
/*******************************************************************************************************
*** 文   件   名: D12Driver.h
** 描        述: PDIUSBD12 设备端驱动程序 应用层头文件
**********************************************************************************************************/

/**************** 定义 USB 收发错误码 ***************************/
#define USB_NO_ERR				0x00		//正确
#define USB_ERR_NO_CONFIG		0x01		//USB总线未配置完成错误
#define USB_ERR_BUFF_INVALID	0x02		//接收或发送缓冲区错误?
#define USB_ERR_WR_TIMEOUT		0x03		//接收或发送超时错误


/*************** 定义 USB 接收或发送控制块 **********************/
typedef struct tagUsb_Struct
{
	INT8U   *pBuff[OS_LOWEST_PRIO];			//接收或发送缓冲区指针数组
	
	INT32U  Max[OS_LOWEST_PRIO];			//接收或发送字节数, 也作为接收或发送完成标志
	INT32U  Cnt;							//接收或发送字节计数器
	
	INT8U   Grp;							//等待组	
	INT8U   Tbl[OS_RDY_TBL_SIZE];			//等待列表
			
	INT8U   Sem;							//端点资源信号量	
	INT8U   Prio;							//当前占用该端点的任务优先级
}CTRL_USB;


/*************** Setup包处理任务堆栈  ****************************/
extern OS_STK  TaskSetupStk[128];


/**************** D12Driver.c内部使用函数 ************************/
INT8U USB_GetHighPrio(CTRL_USB *pUsb);
void USB_InsertPrio(CTRL_USB *pUsb,INT8U prio);
void USB_DelPrio(CTRL_USB *pUsb,INT8U prio);

INT8U USB_ReadPort(INT8U endp,CTRL_USB *pUsb,INT32U len,INT8U *recbuff,INT16U timeout);
INT8U USB_WritePort(INT8U endp,INT32U eppsize,INT8U buffnums,CTRL_USB *pUsb,
					INT8U *sendbuff,INT32U len,INT16U timeout);

void USB_ReadISR(CTRL_USB *pUsb,INT8U endp,INT32U eppsize,INT8U buffnums);	
void USB_WriteISR(CTRL_USB *pUsb,INT8U endp,INT32U eppsize,INT8U buffnums);		
	     
INT8U USB_RW_Result(INT8U endp,CTRL_USB *pUsb,INT16U timeout);
INT8U USB_RW_Param(CTRL_USB *pUsb,INT32U len,INT8U *pbuff);

/****************************************************
	  D12Driver.c  提供的API函数 
*****************************************************/

/************************************************************
** 函数名称: INT8U Init_D12(void)
** 功能描述: 设置D12与硬件的连接, 初始化D12,  复位D12
** 输 入:   无
** 输 出:   0: 初始化成功    1: 初始化失败  
************************************************************/
extern INT8U Init_D12(void);

/************************************************************
** 函数名称: INT8U ReadPort1(INT32U len,INT8U *recbuff,INT16U timeout)
** 功能描述: 从端点 1 读出 len个字节
** 输 入:   INT32U  len:	     要读出的字节数(取值范围为0x00000001 ~ 0xFFFFFFFF)
			 INT8U   *recbuff:   接收数据指针
			 INT16U  timeout:    超时时间, 必须大于等于0
** 输 出:   0: 读出成功	 > 0: 读出失败(错误码)
************************************************************/
extern INT8U ReadPort1(INT32U len,INT8U *recbuff,INT16U timeout);

/************************************************************
** 函数名称: INT8U ReadPort2(INT32U len,INT8U *recbuff,INT16U timeout)
** 功能描述: 从端点 2 读出len个字节
** 输 入:   INT32U  len:	     要读出的字节数(取值范围为0x00000001 ~ 0xFFFFFFFF)
			 INT8U   *recbuff:   接收数据指针
			 INT16U  timeout:    超时时间, 必须大于等于0
** 输 出:   0: 读出成功	> 0: 读出失败(错误码)
************************************************************/
extern INT8U ReadPort2(INT32U len,INT8U *recbuff,INT16U timeout);

/***********************************************************************
** 函数名称: INT8U WritePort1(INT32U len,INT8U *sendbuff,INT16U timeout)
** 功能描述: 用端点 1 发送len个字节
** 输 入:   INT32U  len:	  	 发送的字节数(取值范围为0x00000001 ~ 0xFFFFFFFF)
			 INT8U   sendbuff:   发送缓冲区指针
			 INT16U  timeout:    超时等待时间, 必须大于等于0
** 输 出:   0: 发送成功	 > 0: 发送失败(错误码)
************************************************************************/
extern INT8U WritePort1(INT32U len,INT8U *sendbuff,INT16U timeout);

/************************************************************
** 函数名称: INT8U WritePort2(INT32U len,INT8U *sendbuff,INT16U timeout)
** 功能描述: 用端点 2 发送len个字节
** 输 入:   INT32U  len:	      发送的字节数(取值范围为0x00000001 ~ 0xFFFFFFFF)
			 INT8U   *sendbuff:   发送指针
			 INT16U  timeout:     超时时间, 必须大于等于0
** 输 出:   0: 发送成功	> 0: 发送失败(错误码)
************************************************************/
extern INT8U WritePort2(INT32U len,INT8U *sendbuff,INT16U timeout);

/*******************************************************************
** 函数名称: void  TaskSetup(void *pdata)
** 功能描述: Setup包处理
** 输	 入: void *pdata  任务参数
** 输	 出: 无
** 注	 意: 该任务的优先级应高于其它任务,才能在任何情况下传输Setup包
********************************************************************/
extern void  TaskSetup(void *pdata);




⌨️ 快捷键说明

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