📄 request.h
字号:
#ifndef __REQUEST_H__
#define __REQUEST_H__
#include"hal.h"
#define TRY_NUM 100
#define MAX_EP 5
#define PIDSETUP 0x00
#define PIDOUT 0x01
#define PIDIN 0x02
/*
#define NOERROR 0x0
#define CRC 0x1
#define BITSTUFFING 0x2
#define DATATOGGLEMISMATCH 0x3
#define STALL 0x4
#define DEVICENOTRESPONDING 0x5
#define PINCHECKFAILURE 0x6
#define UNEXPECTEDPIN 0x7
#define DATAOVERRUN 0x8
#define DATAUNDERRUN 0x9
#define BUFFEROVERRUN 0xC
#define BUFFERUNDERRUN 0xD
#define SEND_RECEIVE_DATA_FALSE 0xA
#define TRANSFERCOMPLETED 0xB
*/
/* USB HUB CONSTANTS (not OHCI-specific; see hub.h and USB spec) */
/* destination of request */
#define RH_INTERFACE 0x01
#define RH_ENDPOINT 0x02
#define RH_OTHER 0x03
#define RH_CLASS 0x20
#define RH_VENDOR 0x40
/* Requests: bRequest << 8 | bmRequestType */
#define RH_GET_STATUS 0x0080
#define RH_CLEAR_FEATURE 0x0100
#define RH_SET_FEATURE 0x0300
#define RH_SET_ADDRESS 0x0500
#define RH_GET_DESCRIPTOR 0x0680
#define RH_SET_DESCRIPTOR 0x0700
#define RH_GET_CONFIGURATION 0x0880
#define RH_SET_CONFIGURATION 0x0900
#define RH_GET_STATE 0x0280
#define RH_GET_INTERFACE 0x0A80
#define RH_SET_INTERFACE 0x0B00
#define RH_SYNC_FRAME 0x0C80
/* Our Vendor Specific Request */
#define RH_SET_EP 0x2000
/*typedef struct _SPTDHEADER
{
uint16 ActualBytes :10;
uint16 Toggle :1 ;
uint16 Active :1 ;
uint16 CompletionCode :4 ;
uint16 MaxPacketSize :10;
uint16 Speed :1 ;
uint16 B3_3 :1 ;
uint16 EndpointNum :4 ;
uint16 TotalBytes :10;
uint16 DirToken :2 ;
uint16 Reserve0 :2 ;
uint16 PingPong :1 ;
uint16 Paired :1 ;
uint16 FunctionAddress :7 ;
uint16 Reserved1 :1 ;
uint16 Reserved2 :8 ;
} SPTDHEADER;*/
typedef struct _SUDEV
{
uint16 OutTogl;
uint16 InTogl;
uint16 epbulkin;
uint16 epbulkout;
uint16 wEPMaxPSize[MAX_EP];
uint8 bNumOfEPs; /* actual number endpoint from slave*/
uint8 bInterfaceCls;
uint8 bInterfaceSubCls;
uint8 bEPAddr[MAX_EP]; /* bit 7 = 1 = use PID_IN, */
uint8 bEPAttr[MAX_EP]; /* ISO | Bulk | Interrupt | Control*/
uint8 bDataTog[MAX_EP]; /* DataToggle value*/
uint8 bak;
} SUDEV;
/***************************定义标准设备请求**************************/
uint8 GetDeviceDesc(uint8 FunAddr);
uint8 SetAddress(uint8 NewAddr);
uint8 GetConfigDesc(void);
uint8 GetAllConfigDesc(uint8 CfgTotalLen);
uint8 GetConfig(void);
uint8 SetConfig(void);
uint8 GetDevEPInfo(void);
uint8 EnumUSBDev(void);
uint8 Ep0Xfer(uint16 * pBuf, uint16 ATLAddr, uint32 Shift);
uint8 CheckPingPong(uint16 PingPongFlag);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -