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

📄 usbhw.h

📁 nxp的LPC2888处理器的示例代码.
💻 H
字号:
/*----------------------------------------------------------------------------
 *      U S B  -  K e r n e l
 *----------------------------------------------------------------------------
 *      Name:    USBHW.H
 *      Purpose: USB Hardware Layer Definitions
 *      Version: V1.10
 *----------------------------------------------------------------------------
 *      This software is supplied "AS IS" without any warranties, express,
 *      implied or statutory, including but not limited to the implied
 *      warranties of fitness for purpose, satisfactory quality and
 *      noninfringement. Keil extends you a royalty-free right to reproduce
 *      and distribute executable files created using this software for use
 *      on NXP LPC microcontroller devices only. Nothing else gives you
 *      the right to use this software.
 *
 *      Copyright (c) 2005-2007 Keil Software.
 *---------------------------------------------------------------------------*/

#ifndef __USBHW_H__
#define __USBHW_H__

/* LPC2888 USB register bit definition */
#define EIX_DIR				0x01
#define EIX_SEL_EP0SET		0x20

#define ETYPE_CTRL			0x00
#define ETYPE_ISO			0x01
#define ETYPE_BULK			0x02
#define ETYPE_INT			0x03
#define ETYPE_DBLBUF		0x04
#define ETYPE_EP_ENAB		0x08		
#define ETYPE_DIS_EOT		0x10

#define ECTRL_STALL			0x01
#define ECTRL_STATUS		0x02
#define ECTRL_DATA			0x04
#define ECTRL_CLRBUF		0x10
#define ECTRL_BUFFULL		0x20

/* USB Error Codes */
#define USB_ERR_PID         0x0001  /* PID Error */
#define USB_ERR_UEPKT       0x0002  /* Unexpected Packet */
#define USB_ERR_DCRC        0x0004  /* Data CRC Error */
#define USB_ERR_TIMOUT      0x0008  /* Bus Time-out Error */
#define USB_ERR_EOP         0x0010  /* End of Packet Error */
#define USB_ERR_B_OVRN      0x0020  /* Buffer Overrun */
#define USB_ERR_BTSTF       0x0040  /* Bit Stuff Error */
#define USB_ERR_TGL         0x0080  /* Toggle Bit Error */

/* USB DMA Status Codes */
#define USB_DMA_INVALID     0x0000  /* DMA Invalid - Not Configured */
#define USB_DMA_IDLE        0x0001  /* DMA Idle - Waiting for Trigger */
#define USB_DMA_BUSY        0x0002  /* DMA Busy - Transfer in progress */
#define USB_DMA_DONE        0x0003  /* DMA Transfer Done (no Errors)*/
#define USB_DMA_SUSPEND     0x0004  /* DMA Suspend */
#define USB_DMA_OVER_RUN    0x0005  /* Data Over Run */
#define USB_DMA_UNDER_RUN   0x0006  /* Data Under Run (Short Packet) */
#define USB_DMA_ERROR       0x0007  /* Error */
#define USB_DMA_UNKNOWN     0xFFFF  /* Unknown State */


/* USB Hardware Functions */
extern void  USB_Init       (void);
extern void  USB_Connect    (BOOL  con);
extern void  USB_Reset      (void);
extern void  USB_Suspend    (void);
extern void  USB_Resume     (void);
extern void  USB_WakeUp     (void);
extern void  USB_WakeUpCfg  (BOOL  cfg);
extern void  USB_SetAddress (DWORD adr);
extern void  USB_Configure  (BOOL  cfg);
extern void  USB_ConfigEP   (USB_ENDPOINT_DESCRIPTOR *pEPD);
extern void  USB_DirCtrlEP  (DWORD dir);
extern void  USB_EnableEP   (DWORD EPNum);
extern void  USB_DisableEP  (DWORD EPNum);
extern void  USB_ResetEP    (DWORD EPNum);
extern void  USB_SetStallEP (DWORD EPNum);
extern void  USB_ClrStallEP (DWORD EPNum);
extern DWORD USB_ReadEP     (DWORD EPNum, BYTE *pData);
extern DWORD USB_WriteEP    (DWORD EPNum, BYTE *pData, DWORD cnt);
extern DWORD USB_StatusInEP0  (void);
extern DWORD USB_StatusOutEP0 (void);
extern DWORD USB_ReadSetupEP0 (BYTE *pData);
extern BOOL  USB_DMA_Setup  (DWORD EPNum, DWORD SrcDestAddr, DWORD Length);
extern void  USB_DMA_Enable (DWORD CHNum);
extern void  USB_DMA_Disable(DWORD CHNum);
extern DWORD USB_DMA_Status (DWORD CHNum);
extern DWORD USB_GetFrame   (void);
extern void  USB_ISR(void);


#endif  /* __USBHW_H__ */

⌨️ 快捷键说明

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