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

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

?? usb_core.h

?? 用于監(jiān)視I2C通信總線
?? H
字號:
/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
* File Name          : usb_core.h
* Author             : MCD Application Team
* Version            : V2.2.0
* Date               : 06/13/2008
* Description        : Standard protocol processing functions prototypes
********************************************************************************
* THE PRESENT FIRMWARE 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 FIRMWARE 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 2008 STMicroelectronics *****END OF FILE****/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本成人中文字幕在线视频| 99国产精品久久久久| 中文字幕在线不卡| 日韩精品一区二区三区视频播放| 色哟哟国产精品免费观看| 成人免费视频视频| 国产精品一区在线| 国产精品综合在线视频| 欧美少妇bbb| 欧美人与禽zozo性伦| 欧美这里有精品| 欧美精品高清视频| 日韩视频在线永久播放| 久久久久久久久久美女| 久久免费国产精品| 麻豆精品精品国产自在97香蕉| 蜜桃一区二区三区四区| 欧美日韩三级一区| 精品国产免费人成在线观看| xfplay精品久久| 中文字幕日本不卡| 国产乱人伦偷精品视频不卡| 精品欧美久久久| 国产农村妇女精品| 一区二区视频免费在线观看| 国产区在线观看成人精品| 奇米一区二区三区| 99re66热这里只有精品3直播| 亚洲精品在线一区二区| 日韩成人午夜电影| 91麻豆精品国产91| 久久久.com| 亚洲国产cao| 另类调教123区| 成人黄色小视频在线观看| 欧美色图第一页| 亚洲在线中文字幕| 国产成人免费在线视频| 欧美视频你懂的| 无码av免费一区二区三区试看| 韩国成人福利片在线播放| 91免费版pro下载短视频| 欧美成人官网二区| 国产美女主播视频一区| 欧美在线观看一区二区| 亚洲国产va精品久久久不卡综合| 欧美久久久久久久久中文字幕| 亚洲图片欧美色图| 欧美一区二区三区四区久久| 亚洲视频免费观看| 国内精品伊人久久久久影院对白| 337p日本欧洲亚洲大胆色噜噜| 国产综合久久久久影院| 国产精品免费网站在线观看| 久久草av在线| 国产欧美一区视频| 91日韩精品一区| 日本不卡免费在线视频| 久久婷婷成人综合色| www.亚洲色图| 国产欧美精品区一区二区三区| av在线一区二区三区| 亚洲一区二区影院| 精品国产凹凸成av人网站| 国产精品77777竹菊影视小说| 最近中文字幕一区二区三区| 欧美最新大片在线看| 免费av网站大全久久| 国产欧美日韩亚州综合| 欧美在线free| 国产精品自拍av| 亚洲一区视频在线| www精品美女久久久tv| 色老汉一区二区三区| 亚洲男人都懂的| 91视频www| 极品少妇一区二区三区精品视频| 欧美一区二区播放| www.日韩在线| 美女网站视频久久| 一区二区三区丝袜| 国产片一区二区三区| 欧美喷水一区二区| 波多野结衣的一区二区三区| 麻豆高清免费国产一区| 亚洲狠狠丁香婷婷综合久久久| 亚洲精品一区二区三区99| 欧美在线看片a免费观看| 国产福利精品导航| 精品中文字幕一区二区| 亚洲国产精品尤物yw在线观看| 欧美激情艳妇裸体舞| 91视频com| 成人性色生活片| 国产在线视频精品一区| 婷婷中文字幕一区三区| 亚洲精品日韩专区silk| 国产精品国产三级国产aⅴ中文| 色婷婷久久综合| 国产成人无遮挡在线视频| 全部av―极品视觉盛宴亚洲| 亚洲网友自拍偷拍| 一区二区三区欧美亚洲| 国产精品三级av| 国产女主播视频一区二区| 精品乱人伦小说| 日韩一本二本av| 日韩三级.com| 欧美一区二区三区成人| 欧美精品三级日韩久久| 欧美日韩性生活| 欧美少妇xxx| 欧美色手机在线观看| 91成人网在线| 在线影院国内精品| 色拍拍在线精品视频8848| 97aⅴ精品视频一二三区| av成人免费在线| 色综合久久综合中文综合网| 色综合婷婷久久| 久久国产福利国产秒拍| 日韩国产精品91| 免费精品视频最新在线| 精品一区二区综合| 国产真实乱偷精品视频免| 国产福利一区二区三区在线视频| 国产成人综合精品三级| 国产成人激情av| 99视频一区二区| 91福利小视频| 日韩欧美成人一区二区| 久久青草国产手机看片福利盒子| 久久综合色综合88| 国产精品黄色在线观看| 亚洲免费观看在线视频| 亚洲成人动漫在线免费观看| 亚洲欧洲国产日韩| 一区二区三区精品久久久| 亚洲成国产人片在线观看| 蜜臀久久久99精品久久久久久| 寂寞少妇一区二区三区| 91在线一区二区| 欧美人与性动xxxx| 国产情人综合久久777777| 亚洲黄色片在线观看| 蜜臀av国产精品久久久久| 国产传媒一区在线| 欧美亚洲国产一区二区三区va| 日韩一区二区三区视频| 欧美国产成人在线| 日韩国产高清影视| 成人精品国产免费网站| 欧美美女直播网站| 久久精品一区二区三区av | 国产精品亚洲人在线观看| 97久久精品人人做人人爽50路| 欧美日韩国产乱码电影| 久久亚洲春色中文字幕久久久| 亚洲人精品一区| 精品亚洲国内自在自线福利| www.欧美日韩| 日韩欧美在线影院| 亚洲欧美色图小说| 国产剧情av麻豆香蕉精品| 欧美中文字幕久久| 国产精品人成在线观看免费| 亚洲综合久久久| 国产福利精品一区| 4438x成人网最大色成网站| 中文字幕一区二区三区在线观看| 日韩电影免费一区| 色综合天天综合网国产成人综合天| 欧美一二三在线| 夜夜精品视频一区二区| 国产高清一区日本| 日韩美女一区二区三区| 一区二区三区免费| av中文字幕不卡| 26uuu国产日韩综合| 日本中文字幕一区二区有限公司| 成人精品gif动图一区| 久久网站热最新地址| 日韩av网站在线观看| 在线日韩一区二区| 1区2区3区精品视频| 国产宾馆实践打屁股91| 色综合色狠狠天天综合色| 久久亚洲捆绑美女| 蜜桃精品在线观看| 欧美精品自拍偷拍| 亚洲国产另类av| 欧美色国产精品| 亚洲国产中文字幕在线视频综合 | 久久久久久久久久久电影| 婷婷综合在线观看| 欧美一区二区视频在线观看2020| 亚洲一区二区精品视频| 欧美视频你懂的| 无吗不卡中文字幕| 欧美一级二级三级乱码|