亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? usb_core.h

?? 萬(wàn)利開(kāi)發(fā)板上的lcd例程
?? H
字號(hào):
/******************** (C) COPYRIGHT 2007 STMicroelectronics ********************
* File Name          : usb_core.h
* Author             : MCD Application Team
* Version            : V1.0
* Date               : 10/08/2007
* Description        : Standard protocol processing functions prototypes
********************************************************************************
* THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
* CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
*******************************************************************************/

/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __USB_CORE_H
#define __USB_CORE_H

/* Includes ------------------------------------------------------------------*/
/* Exported types ------------------------------------------------------------*/
typedef enum _CONTROL_STATE
{
  WAIT_SETUP,       /* 0 */
  SETTING_UP,       /* 1 */
  IN_DATA,          /* 2 */
  OUT_DATA,         /* 3 */
  LAST_IN_DATA,     /* 4 */
  LAST_OUT_DATA,    /* 5 */
  WAIT_STATUS_IN,   /* 7 */
  WAIT_STATUS_OUT,  /* 8 */
  STALLED,          /* 9 */
  PAUSE             /* 10 */
} CONTROL_STATE;    /* The state machine states of a control pipe */

typedef struct OneDescriptor
{
  u8 *Descriptor;
  u16 Descriptor_Size;
}
ONE_DESCRIPTOR, *PONE_DESCRIPTOR;
/* All the request process routines return a value of this type
   If the return value is not SUCCESS or NOT_READY,
   the software will STALL the correspond endpoint */
typedef enum _RESULT
{
  USB_SUCCESS = 0,    /* Process sucessfully */
  USB_ERROR,
  USB_UNSUPPORT,
  USB_NOT_READY       /* The process has not been finished, endpoint will be
                         NAK to further rquest */
} RESULT;


/*-*-*-*-*-*-*-*-*-*-* Definitions for endpoint level -*-*-*-*-*-*-*-*-*-*-*-*/
typedef struct _ENDPOINT_INFO
{
  /* When send data out of the device,
   CopyData() is used to get data buffer 'Length' bytes data
   if Length is 0,
    CopyData() returns the total length of the data
    if the request is not supported, returns 0
    (NEW Feature )
     if CopyData() returns -1, the calling routine should not proceed
     further and will resume the SETUP process by the class device
   if Length is not 0,
    CopyData() returns a pointer to indicate the data location
   Usb_wLength is the data remain to be sent,
   Usb_wOffset is the Offset of original data
  When receive data from the host,
   CopyData() is used to get user data buffer which is capable
   of Length bytes data to copy data from the endpoint buffer.
   if Length is 0,
    CopyData() returns the available data length,
   if Length is not 0,
    CopyData() returns user buffer address
   Usb_rLength is the data remain to be received,
   Usb_rPointer is the Offset of data buffer
  */
  u16  Usb_wLength;
  u16  Usb_wOffset;
  u16  PacketSize;
  u8   *(*CopyData)(u16 Length);
}
ENDPOINT_INFO;

/*-*-*-*-*-*-*-*-*-*-*-* Definitions for device level -*-*-*-*-*-*-*-*-*-*-*-*/

typedef struct _DEVICE
{
  u8 Total_Endpoint;     /* Number of endpoints that are used */
  u8 Total_Configuration;/* Number of configuration available */
}
DEVICE;

typedef union
{
  u16 w;
  struct BW
  {
    u8 bb1;
    u8 bb0;
  }
  bw;
} u16_u8;

typedef struct _DEVICE_INFO
{
  u8 USBbmRequestType;       /* bmRequestType */
  u8 USBbRequest;            /* bRequest */
  u16_u8 USBwValues;         /* wValue */
  u16_u8 USBwIndexs;         /* wIndex */
  u16_u8 USBwLengths;        /* wLength */

  u8 ControlState;           /* of type CONTROL_STATE */
  u8 Current_Feature;
  u8 Current_Configuration;   /* Selected configuration */
  u8 Current_Interface;       /* Selected interface of current configuration */
  u8 Current_AlternateSetting;/* Selected Alternate Setting of current
                                     interface*/

  ENDPOINT_INFO Ctrl_Info;
}
DEVICE_INFO;

typedef struct _DEVICE_PROP
{
  void (*Init)(void);        /* Initialize the device */
  void (*Reset)(void);       /* Reset routine of this device */

  /* Device dependent process after the status stage */
  void (*Process_Status_IN)(void);
  void (*Process_Status_OUT)(void);

  /* Procedure of process on setup stage of a class specified request with data stage */
  /* All class specified requests with data stage are processed in Class_Data_Setup
   Class_Data_Setup()
    responses to check all special requests and fills ENDPOINT_INFO
    according to the request
    If IN tokens are expected, then wLength & wOffset will be filled
    with the total transferring bytes and the starting position
    If OUT tokens are expected, then rLength & rOffset will be filled
    with the total expected bytes and the starting position in the buffer

    If the request is valid, Class_Data_Setup returns SUCCESS, else UNSUPPORT

   CAUTION:
    Since GET_CONFIGURATION & GET_INTERFACE are highly related to
    the individual classes, they will be checked and processed here.
  */
  RESULT (*Class_Data_Setup)(u8 RequestNo);

  /* Procedure of process on setup stage of a class specified request without data stage */
  /* All class specified requests without data stage are processed in Class_NoData_Setup
   Class_NoData_Setup
    responses to check all special requests and perform the request

   CAUTION:
    Since SET_CONFIGURATION & SET_INTERFACE are highly related to
    the individual classes, they will be checked and processed here.
  */
  RESULT (*Class_NoData_Setup)(u8 RequestNo);

  /*Class_Get_Interface_Setting
   This function is used by the file usb_core.c to test if the selected Interface
   and Alternate Setting (u8 Interface, u8 AlternateSetting) are supported by
   the application.
   This function is writing by user. It should return "SUCCESS" if the Interface
   and Alternate Setting are supported by the application or "UNSUPPORT" if they
   are not supported. */

  RESULT  (*Class_Get_Interface_Setting)(u8 Interface, u8 AlternateSetting);

  u8* (*GetDeviceDescriptor)(u16 Length);
  u8* (*GetConfigDescriptor)(u16 Length);
  u8* (*GetStringDescriptor)(u16 Length);

  u8* RxEP_buffer;
  u8 MaxPacketSize;

}
DEVICE_PROP;

typedef struct _USER_STANDARD_REQUESTS
{
  void (*User_GetConfiguration)(void);       /* Get Configuration */
  void (*User_SetConfiguration)(void);       /* Set Configuration */
  void (*User_GetInterface)(void);           /* Get Interface */
  void (*User_SetInterface)(void);           /* Set Interface */
  void (*User_GetStatus)(void);              /* Get Status */
  void (*User_ClearFeature)(void);           /* Clear Feature */
  void (*User_SetEndPointFeature)(void);     /* Set Endpoint Feature */
  void (*User_SetDeviceFeature)(void);       /* Set Device Feature */
  void (*User_SetDeviceAddress)(void);       /* Set Device Address */
}
USER_STANDARD_REQUESTS;

/* Exported constants --------------------------------------------------------*/
#define Type_Recipient (pInformation->USBbmRequestType & (REQUEST_TYPE | RECIPIENT))

#define Usb_rLength Usb_wLength
#define Usb_rOffset Usb_wOffset

#define USBwValue USBwValues.w
#define USBwValue0 USBwValues.bw.bb0
#define USBwValue1 USBwValues.bw.bb1
#define USBwIndex USBwIndexs.w
#define USBwIndex0 USBwIndexs.bw.bb0
#define USBwIndex1 USBwIndexs.bw.bb1
#define USBwLength USBwLengths.w
#define USBwLength0 USBwLengths.bw.bb0
#define USBwLength1 USBwLengths.bw.bb1

/* Exported macro ------------------------------------------------------------*/
/* Exported functions ------------------------------------------------------- */
u8 Setup0_Process(void);
u8 Post0_Process(void);
u8 Out0_Process(void);
u8 In0_Process(void);

RESULT Standard_SetEndPointFeature(void);
RESULT Standard_SetDeviceFeature(void);

u8 *Standard_GetConfiguration(u16 Length);
RESULT Standard_SetConfiguration(void);
u8 *Standard_GetInterface(u16 Length);
RESULT Standard_SetInterface(void);
u8 *Standard_GetDescriptorData(u16 Length, PONE_DESCRIPTOR pDesc);

u8 *Standard_GetStatus(u16 Length);
RESULT Standard_ClearFeature(void);
void SetDeviceAddress(u8);
void NOP_Process(void);

extern DEVICE_PROP Device_Property;
extern  USER_STANDARD_REQUESTS User_Standard_Requests;
extern  DEVICE  Device_Table;
extern DEVICE_INFO Device_Info;

/* cells saving status during interrupt servicing */
extern u16 SaveRState;
extern u16 SaveTState;

#endif /* __USB_CORE_H */

/******************* (C) COPYRIGHT 2007 STMicroelectronics *****END OF FILE****/

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品捆绑美女sm三区| 久久精品夜色噜噜亚洲a∨| 黄色精品一二区| 国产精品成人免费精品自在线观看| 在线亚洲免费视频| 国产精品综合网| 日韩国产欧美在线观看| 国产精品全国免费观看高清| 欧美一区二区视频网站| 色综合一个色综合| 国产真实乱子伦精品视频| 亚洲影视资源网| 国产精品视频免费| 日韩欧美国产综合| 欧美日韩另类国产亚洲欧美一级| 国产成人免费视频| 九一九一国产精品| 午夜欧美2019年伦理| 亚洲欧美日韩电影| 国产精品国产自产拍高清av| 精品福利一二区| 日韩一区二区三区电影在线观看 | 99久久伊人精品| 国产一区二区免费视频| 日韩高清不卡一区| 亚洲一区av在线| 亚洲欧洲综合另类在线| 中文字幕一区二区三区四区| 久久一区二区三区四区| 日韩一区二区中文字幕| 欧美日韩一卡二卡| 欧美视频在线不卡| 91国产福利在线| 91在线视频18| 99视频一区二区三区| 国产盗摄一区二区三区| 国产一区在线视频| 激情文学综合丁香| 国模大尺度一区二区三区| 精品一区二区三区免费观看 | 亚洲女人****多毛耸耸8| 欧美韩日一区二区三区四区| 久久久久久久久99精品| 久久人人超碰精品| 久久夜色精品国产噜噜av| 日韩亚洲欧美一区二区三区| 日韩欧美激情在线| 欧美电视剧免费全集观看| 日韩欧美aaaaaa| 欧美精品一区二区三区蜜臀| 精品国产一区二区国模嫣然| 亚洲精品在线观看视频| 国产亚洲一区二区三区在线观看| 久久久久成人黄色影片| 日本一区二区三区久久久久久久久不 | 国产精品久久夜| 亚洲欧洲av在线| 亚洲精品乱码久久久久久久久 | 日本中文字幕不卡| 久久69国产一区二区蜜臀| 激情深爱一区二区| 国产精品亚洲一区二区三区在线 | 日韩精品一区二区三区蜜臀| 日韩精品一区二区三区老鸭窝| 精品成人佐山爱一区二区| 久久久亚洲精华液精华液精华液 | 国产精品你懂的在线欣赏| 中文字幕制服丝袜成人av | 亚洲视频在线一区观看| 一区二区三区精品| 亚洲bt欧美bt精品777| 麻豆精品在线观看| 国产又黄又大久久| 91丝袜美腿高跟国产极品老师 | 日韩 欧美一区二区三区| 国产精品一区二区三区四区| 99精品热视频| 69堂国产成人免费视频| 久久久久久一级片| 亚洲精品日日夜夜| 久久精品国产99久久6| 成人午夜av在线| 欧美日韩一本到| 久久日韩粉嫩一区二区三区| 亚洲人午夜精品天堂一二香蕉| 五月天激情综合网| 成人免费三级在线| 日韩一区二区三免费高清| 中文字幕在线不卡一区| 日韩av中文字幕一区二区三区| 国产成人在线色| 欧美日韩一级黄| 中文字幕精品综合| 美女脱光内衣内裤视频久久网站 | aa级大片欧美| 欧美一区二区久久久| 国产欧美一区视频| 丝袜亚洲另类丝袜在线| www.亚洲精品| 精品国产百合女同互慰| 亚洲福利一区二区三区| 国产99久久久精品| 日韩一区二区三区在线观看| 亚洲欧美激情插 | 国产曰批免费观看久久久| 欧美性做爰猛烈叫床潮| 国产日韩一级二级三级| 日韩精品91亚洲二区在线观看| 91在线看国产| 久久九九久久九九| 麻豆91免费观看| 欧美性一级生活| 综合分类小说区另类春色亚洲小说欧美| 午夜精品视频在线观看| 91丨porny丨首页| 久久久国际精品| 青青草原综合久久大伊人精品 | 97超碰欧美中文字幕| 日韩免费观看高清完整版| 亚洲国产美女搞黄色| youjizz久久| 久久精品日韩一区二区三区| 秋霞av亚洲一区二区三| 欧美午夜理伦三级在线观看| 自拍偷在线精品自拍偷无码专区| 国产在线精品一区在线观看麻豆| 欧美精品第1页| 亚洲国产精品欧美一二99| 99精品在线免费| 国产精品日韩精品欧美在线| 国产精品资源在线| 久久精品亚洲精品国产欧美| 精品一区二区影视| 欧美精品一区二区三区久久久| 日本va欧美va精品发布| 在线不卡一区二区| 日韩成人dvd| 91精品国产91综合久久蜜臀| 日日夜夜一区二区| 欧美日韩亚州综合| 人人爽香蕉精品| 欧美成人三级在线| 狠狠色丁香婷婷综合| 精品国产免费人成在线观看| 黄页视频在线91| 国产欧美日韩久久| 成人h精品动漫一区二区三区| 中文字幕国产一区二区| 成人午夜视频福利| 国产精品二三区| 欧美性猛交xxxx黑人交| 午夜视频一区二区三区| 9191成人精品久久| 麻豆久久一区二区| 欧美国产精品中文字幕| 91亚洲男人天堂| 亚洲图片欧美一区| 欧美一区二区三区视频| 精品亚洲成av人在线观看| 国产视频一区不卡| 91论坛在线播放| 视频一区二区三区入口| www国产精品av| av一区二区三区在线| 亚洲一卡二卡三卡四卡五卡| 欧美一区二区三区男人的天堂| 韩国在线一区二区| 中文字幕亚洲一区二区av在线| 色婷婷综合久久久中文一区二区| 亚洲va欧美va国产va天堂影院| 欧美电视剧免费观看| 99热这里都是精品| 午夜在线电影亚洲一区| 亚洲精品一区二区三区精华液| 成人精品一区二区三区四区| √…a在线天堂一区| 91精品国产高清一区二区三区 | 国产精品久久久久四虎| 欧美在线你懂得| 国产自产v一区二区三区c| 亚洲视频你懂的| 91精品国产综合久久香蕉的特点 | 91在线丨porny丨国产| 天堂在线一区二区| 国产日韩欧美综合在线| 欧洲另类一二三四区| 国产精品综合一区二区三区| 一区二区三区四区高清精品免费观看| 日韩亚洲电影在线| 色欧美片视频在线观看在线视频| 免费观看成人av| 亚洲精品自拍动漫在线| 欧美成va人片在线观看| 色综合天天在线| 国产一区二区电影| 日韩精品欧美精品| 日韩一区中文字幕| 国产亚洲制服色| 日韩网站在线看片你懂的| 一本色道a无线码一区v|