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

📄 usb_def.h

📁 这是一个用C语言在VC6.0环境下编写的用于USB驱动的代码
💻 H
字号:
#define NULL  0
#define TRUE  1
#define FALSE 0
/*_____ M A C R O S ________________________________________________________*/

#define CONTROL               0x80
#define BULK_IN               0x86
#define BULK_OUT              0x82
#define INTERRUPT_IN          0x87
#define INTERRUPT_OUT         0x83
#define ISOCHRONOUS_IN        0x85
#define ISOCHRONOUS_OUT       0x81
#define BULK_MAX_SIZE         ((Byte)64)

#define GET_DEVICE_DESCRIPTOR           1
#define GET_CONFIGURATION_DESCRIPTOR    4


/*_____ S T A N D A R D    R E Q U E S T S __________________________________*/

#define GET_STATUS            0x00
#define GET_DEVICE            0x01
#define CLEAR_FEATURE         0x01        /* see FEATURES below */
#define GET_STRING            0x03
#define SET_FEATURE           0x03        /* see FEATURES below */
#define SET_ADDRESS           0x05
#define GET_DESCRIPTOR        0x06
#define SET_DESCRIPTOR        0x07
#define GET_CONFIGURATION     0x08
#define SET_CONFIGURATION     0x09
#define GET_INTERFACE         0x0A
#define SET_INTERFACE         0x0B
#define SYNC_FRAME            0x0C
#define GET_MAX_LUN           0xFE
#define MASS_STORAGE_RESET    0xFF


/*_____ D E S C R I P T O R    T Y P E S ____________________________________*/

#define DEVICE                0x01
#define CONFIGURATION         0x02
#define STRING                0x03
#define INTERFACE             0x04
#define ENDPOINT              0x05

#define LANG_ID               0x00
#define MAN_INDEX             0x01
#define PROD_INDEX            0x02
#define SN_INDEX              0x03


/*_____ S T A N D A R D    F E A T U R E S __________________________________*/

#define DEVICE_REMOTE_WAKEUP_FEATURE     0x01
#define ENDPOINT_HALT_FEATURE            0x00

/*_____ D E V I C E   S T A T U S ___________________________________________*/

#define SELF_POWERED       1

/*_____ D E V I C E   S T A T E _____________________________________________*/

#define ATTACHED                  0
#define POWERED                   1
#define DEFAULT                   2
#define ADDRESSED                 3
#define CONFIGURED                4
#define SUSPENDED                 5

#define USB_CONFIG_BUSPOWERED     0x80
#define USB_CONFIG_SELFPOWERED    0x40
#define USB_CONFIG_REMOTEWAKEUP   0x20

/*_____ M A S S   S T O R A G E   E N D P O I N T S _________________________*/

#define EP_CONTROL                0x00
#define EP_IN                     0x01
#define EP_OUT                    0x02
#define EP_CONTROL_LENGTH         8
#define EP_IN_LENGTH              64
#define EP_OUT_LENGTH             64


/* MCNTRL bits ********************************************************/
#define     SRST       0x01                 /*software reset          */   
#define     DBG        0x02                 /*debug mode              */  
#define     VGE        0x04                 /*voltage regulator enable*/    
#define     NAT        0x08                 /*node attached           */  
#define     INT_DIS    0x00                 /*interrupts disabled     */  
#define     INT_L_O    0x40                 /*act lo ints, open drain */  
#define     INT_H_P    0x80                 /*act hi ints, push pull  */  
#define     INT_L_P    0xC0                 /*act lo ints, push pull  */  

/* FAR    bits ********************************************************/
#define     AD_EN      0x80                 /*address enable          */   

/* EPCX   bits ********************************************************/
#define     DEF        0x40                 /*force def. adr (0 only) */   
#define     STALL      0x80                 /*force stall handshakes  */
#define     NOSTALL    0x00                 /*force stall handshakes  */  
#define     ISO        0x20                 /*set for isochr. (1-3)   */ 
#define     EP_EN      0x10                 /*enables endpt.  (1-3)   */  

/* NFSR   bits ********************************************************/
#define     RST_ST     0x00                 /*reset       state       */   
#define     RSM_ST     0x01                 /*resume      state       */  
#define     OPR_ST     0x02                 /*operational state       */  
#define     SUS_ST     0x03                 /*suspend     state       */  

/* MAEV, MAMSK bits ***************************************************/
#define     WARN       0x01                 /*warning bit has been set*/   
#define     ALT        0x02                 /*alternate event         */  
#define     TX_EV      0x04                 /*transmit event          */  
#define     FRAME      0x08                 /*SOF packet received     */  
#define     NAK        0x10                 /*NAK event               */  
#define     ULD        0x20                 /*unlock locked detected  */   
#define     RX_EV      0x40                 /*receive event           */   
#define     INTR_E     0x80                 /*master interrupt enable */  

/* ALTEV, ALTMSK bits *************************************************/
#define     EOP        0x08                 /*end of packet           */   
#define     SD3        0x10                 /*3 ms suspend            */  
#define     SD5        0x20                 /*5 ms suspend            */  
#define     RESET_A    0x40                 /*reset  detected         */  
#define     RESUME_A   0x80                 /*resume detected         */ 

/* TXEV, TXMSK bits ***************************************************/
#define     TXFIFO0    0x01                 /*TX_DONE, FIFO 0         */   
#define     TXFIFO1    0x02                 /*TX_DONE, FIFO 1         */   
#define     TXFIFO2    0x04                 /*TX_DONE, FIFO 2         */   
#define     TXFIFO3    0x08                 /*TX_DONE, FIFO 3         */   
#define     TXUDRN0    0x10                 /*TX_URUN, FIFO 0         */   
#define     TXUDRN1    0x20                 /*TX_URUN, FIFO 1         */  
#define     TXUDRN2    0x40                 /*TX_URUN, FIFO 2         */  
#define     TXUDRN3    0x80                 /*TX_URUN, FIFO 3         */  

/* RXEV, RXMSK bits ***************************************************/
#define     RXFIFO0    0x01                 /*RX_DONE, FIFO 0         */   
#define     RXFIFO1    0x02                 /*RX_DONE, FIFO 1         */   
#define     RXFIFO2    0x04                 /*RX_DONE, FIFO 2         */   
#define     RXFIFO3    0x08                 /*RX_DONE, FIFO 3         */   
#define     RXOVRN0    0x10                 /*RX_OVRN, FIFO 0         */   
#define     RXOVRN1    0x20                 /*RX_OVRN, FIFO 1         */  
#define     RXOVRN2    0x40                 /*RX_OVRN, FIFO 2         */  
#define     RXOVRN3    0x80                 /*RX_OVRN, FIFO 3         */  

/* NAKEV, NAKMSK bits *************************************************/
#define     NAK_I0     0x01                 /*IN  NAK, FIFO 0         */   
#define     NAK_I1     0x02                 /*IN  NAK, FIFO 1         */  
#define     NAK_I2     0x04                 /*IN  NAK, FIFO 2         */  
#define     NAK_I3     0x08                 /*IN  NAK, FIFO 3         */  
#define     NAK_O0     0x10                 /*OUT NAK, FIFO 0         */  
#define     NAK_O1     0x20                 /*OUT NAK, FIFO 1         */ 
#define     NAK_O2     0x40                 /*OUT NAK, FIFO 2         */ 
#define     NAK_O3     0x80                 /*OUT NAK, FIFO 3         */ 

/* TXCx   bits ********************************************************/
#define     TX_EN      0x01                 /*transmit enable         */   
#define     TX_LAST    0x02                 /*last data in FIFO       */  
#define     TX_TOGL    0x04                 /*specifies PID used      */ 
#define     FLUSH      0x08                 /*flushes all FIFO data   */  
#define     REF        0x10                 /*ignore in  tokens       */   

/* TXS0   bits ********************************************************/
#define     TX_DONE    0x20                 /*transmit done           */   
#define     ACK_STAT   0x40                 /*ack status of xmission  */ 

/* RXC0   bits ********************************************************/
#define     RX_EN      0x01                 /*receive  enable         */   
#define     IGN_OUT    0x02                 /*ignore out tokens       */   
#define     IGN_SETUP  0x04                 /*ignore setup tokens     */  

/* RXS0   bits ********************************************************/
#define     RX_LAST    0x10                 /*indicates RCOUNT valid  */   
#define     RX_TOGL    0x20                 /*last pkt was DATA1 PID  */   
#define     SETUP_R    0x40                 /*setup packet received   */  
#define     RX_ERR     0x80                 /*last packet had an error*/   

⌨️ 快捷键说明

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