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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? usb.h

?? 使用89S52為核心做的USB鍵盤,注意修改了一下windows設備描述符以及端點處理等就行了。用了一個4*4的小鍵盤,有0-9十個數字鍵, Num Lock鍵,Caps Lock鍵,Shift鍵,
?? H
字號:
/******************************************************************
   本程序只供學習使用,未經作者許可,不得用于其它任何用途
      我的郵箱:computer-lov@tom.com
        歡迎訪問我的blog:  http://computer00.21ic.org

USB.H  file

作者:Computer-lov
建立日期: 2007.03.20
修改日期: 2007.03.22
版本:V1.1
版權所有,盜版必究。
Copyright(C) Computer-lov 2007-2017
All rights reserved            
*******************************************************************/

#ifndef __USB_H__
#define __USB_H__

#include "my_type.h"


// 定義標準的描述符類型,也就是USB分配的各種描述符的編號,即bDescriptorType 字段的值

#define DEVICE_DESCRIPTOR               0x01  //設備描述符
#define CONFIGURATION_DESCRIPTOR        0x02  //配置描述符
#define STRING_DESCRIPTOR               0x03  //字符串描述符
#define INTERFACE_DESCRIPTOR            0x04  //接口描述符
#define ENDPOINT_DESCRIPTOR             0x05  //端點描述符
#define HID_DESCRIPTOR                  0x21  //HID描述符
#define REPORT_DESCRIPTOR               0x22  //報告描述符
#define PHYSICAL_DESCRIPTOR             0x23  //物理描述符

//定義標準的USB請求命令,即USB分配的各種請求的編號,即bRequest字段的值

#define GET_STATUS                      0x00  //獲取狀態請求
#define CLEAR_FEATURE                   0x01  //清除特性請求
#define SET_FEATURE                     0x03  //設置特性請求
#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 SYNCH_FRAME                     0x0C  //同步幀請求

//定義USB HID特定命令請求
#define GET_REPORT                      0x01  //獲取報告
#define GET_IDLE                        0x02  //獲取空閑狀態
#define GET_PROTOCOL                    0x03  //獲取協議
#define SET_REPORT                      0x09  //設置報告
#define SET_IDLE                        0x0A  //設置空閑
#define SET_PROTOCOL                    0x0B  //設置協議

//定義特性選擇器

#define ENDPOINT_HALT                   0x00  //端點的禁止特性
#define DEVICE_REMOTE_WAKEUP            0x01  //設備的遠程喚醒特性


//使用的端點數

//#define Number_Endpoint               0x05  //端點數量為5


//定義的端點類型
#define ENDPOINT_TYPE_CONTROL           0x00  //控制傳輸
#define ENDPOINT_TYPE_ISOCHRONOUS       0x01  //同步傳輸
#define ENDPOINT_TYPE_BULK              0x02  //批量傳輸
#define ENDPOINT_TYPE_INTERRUPT         0x03  //中斷傳輸



//定義標準的設備描述符結構

typedef struct _DEVICE_DCESCRIPTOR_STRUCT
{
 uint8 blength;                               //設備描述符的字節數大小
 uint8 bDescriptorType;	                      //設備描述符類型編號
 uint16 bcdUSB;                                //USB版本號
 uint8 bDeviceClass;                          //USB分配的設備類代碼
 uint8 bDeviceSubClass;                       //USB分配的子類代碼
 uint8 bDeviceProtocol;                       //USB分配的設備協議代碼
 uint8 bMaxPacketSize0;                       //端點0的最大包大小
 uint16 idVendor;                              //廠商編號
 uint16 idProduct;                             //產品編號
 uint16 bcdDevice;                             //設備出廠編號
 uint8 iManufacturer;                         //設備廠商字符串的索引
 uint8 iProduct;                              //描述產品字符串的索引
 uint8 iSerialNumber;                         //描述設備序列號字符串的索引
 uint8 bNumConfigurations;                    //可能的配置數量
}
DEVICE_DESCRIPTOR_STRUCT, * pDEVICE_DESCRIPTOR_STRUCT;


//定義標準的配置描述符結構

typedef struct _CONFIGURATION_DESCRIPTOR_STRUCT
{
 uint8 bLength;                               //配置描述符的字節數大小
 uint8 bDescriptorType;                       //配置描述符類型編號
 uint16 wTotalLength;                          //此配置返回的所有數據大小
 uint8 bNumInterfaces;                        //此配置所支持的接口數量
 uint8 bConfigurationValue;                   //Set_Configuration命令所需要的參數值
 uint8 iConfiguration;                        //描述該配置的字符串的索引值
 uint8 bmAttributes;                          //供電模式的選擇
 uint8 MaxPower;                              //設備從總線提取的最大電流
}
CONFIGURATION_DESCRIPTOR_STRUCT, * pCONFIGURATION_DESCRIPTOR_STRUCT;


//定義標準的接口描述符結構

typedef struct _INTERFACE_DESCRIPTOR_STRUCT
{
 uint8 bLength;                               //接口描述符的字節數大小
 uint8 bDescriptorType;                       //接口描述符的類型編號
 uint8 bInterfaceNumber;                      //該接口的編號
 uint8 bAlternateSetting;                     //備用的接口描述符編號
 uint8 bNumEndpoints;                         //該接口使用的端點數,不包括端點0
 uint8 bInterfaceClass;                       //接口類型
 uint8 bInterfaceSubClass;                    //接口子類型
 uint8 bInterfaceProtocol;                    //接口遵循的協議
 uint8 iInterface;                            //描述該接口的字符串索引值
}
INTERFACE_DESCRIPTOR_STRUCT, * pINTERFACE_DESCRIPTOR_STRUCT;


//定義標準的端點描述符結構

typedef struct _ENDPOINT_DESCRIPTOR_STRUCT
{
 uint8 bLength;                                //端點描述符字節數大小
 uint8 bDescriptorType;                       //端點描述符類型編號
 uint8 bEndpointAddress;                      //端點地址及輸入輸出屬性
 uint8 bmAttributes;                          //端點的傳輸類型屬性
 uint16 wMaxPacketSize;                        //端點收、發的最大包大小
 uint8 bInterval;                             //主機查詢端點的時間間隔
}
ENDPOINT_DESCRIPTOR_STRUCT, * pENDPOINT_DESCRIPTOR_STRUCT;


//HID描述符中的下級描述符號
typedef struct _HID_SUB_DESCRIPTOR_STRUCT
{
 uint8 bDescriptorType;    //下級描述符的類型編號
 uint16 wDescriptorLength;  //下級描述符的長度
}
HID_SUB_DESCRIPTOR_STRUCT,*pHID_SUB_DESCRIPTOR_STRUCT;

#define NUM_SUB_DESCRIPTORS 1

//定義HID描述符結構

typedef struct _HID_DESCRIPTOR_STRUCT
{
 uint8 bLength;
 uint8 bDescriptorType;
 uint16 bcdHID;
 uint8 bCountryCode;
 uint8 bNumDescriptors;
 HID_SUB_DESCRIPTOR_STRUCT HidSubDescriptors[NUM_SUB_DESCRIPTORS]; 
}
HID_DESCRIPTOR_STRUCT,*pHID_DESCRIPTOR_STRUCT;


//一個字符串描述符結構

typedef struct _STRING_DESCRIPTOR_STRUCT
{
 uint8 bLength;                                //字符串描述符的字節數大小
 uint8 bDescriptorType;                        //字符串描述符類型編號
 uint8 SomeDesriptor[36];                      //UNICODE編碼的字符串
}
STRING_DESCRIPTOR_STRUCT, * pSTRING_DESCRIPTOR_STRUCT;


//標準設備請求命令結構

typedef struct _REQUESTCMD
{
 uint8 bmRequestType;                         //請求命令類型
 uint8 bRequest;                              //請求命令代碼
 uint16 wValue;                                //命令信息
 uint16 wIndex;                                //索引信息
 uint16 wLength;                               //傳輸數據大小
}
REQUESTCMD, * pREQUESTCMD;
   

//setup_packet緩沖區

#define MAX_CONTROL_DATA_SIZE 16

typedef struct _control_data_buff
{
 REQUESTCMD DeviceRequest;                    //USB設備請求
 uint16 wLength;
 uint16 wCount;
 uint8 * pData;
 uint8 dataBuffer[MAX_CONTROL_DATA_SIZE];
}CONTROL_DATA_BUFF;
 

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩国产免费一区二区| 欧美一区二区观看视频| 99精品久久99久久久久| 欧洲人成人精品| 精品美女一区二区三区| 国产偷国产偷精品高清尤物| 亚洲欧美视频在线观看视频| 日韩av电影免费观看高清完整版 | 国产欧美一区二区三区网站| 亚洲欧洲精品一区二区精品久久久| 91精品国产入口| 精品久久国产字幕高潮| 亚洲日本护士毛茸茸| 日精品一区二区| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 亚洲综合免费观看高清完整版在线| 国产亚洲一区二区在线观看| 中文字幕视频一区二区三区久| 欧美亚洲丝袜传媒另类| 欧美精品一区二区在线观看| 亚洲精品视频一区二区| 日本美女视频一区二区| 成人av资源在线| 日韩一区二区三区视频在线| 亚洲婷婷综合久久一本伊一区| 亚洲欧美区自拍先锋| 久久99国产精品久久99| 日本道免费精品一区二区三区| 成人精品高清在线| 欧美电影一区二区| 国产精品国产三级国产普通话蜜臀 | 国产精品高潮久久久久无| 丝袜脚交一区二区| 成人一区二区三区| 欧美一级免费大片| 亚洲乱码国产乱码精品精的特点| 亚洲综合一区二区精品导航| 国产精品99久久不卡二区| 欧美高清dvd| 亚洲美女视频一区| 成人性视频网站| 91精品国产免费久久综合| 亚洲女爱视频在线| 国产精品88av| 精品少妇一区二区三区在线视频| 亚洲国产精品高清| 麻豆91在线播放| 欧美日本一区二区三区四区| 国产拍欧美日韩视频二区| 久久精品国产99国产| 在线播放国产精品二区一二区四区| 精品欧美乱码久久久久久 | 国产不卡视频在线观看| 在线播放91灌醉迷j高跟美女| 久久综合九色综合97婷婷| 午夜激情久久久| 色综合视频在线观看| 国产精品美日韩| 国产精品12区| 久久午夜羞羞影院免费观看| 激情综合亚洲精品| 欧美成人一级视频| 免费人成黄页网站在线一区二区 | 国产欧美va欧美不卡在线| 久久草av在线| 日韩欧美在线影院| 蜜桃视频在线观看一区二区| 欧美日韩精品欧美日韩精品一| 国产欧美精品一区二区色综合| 亚洲欧美色图小说| 91在线无精精品入口| 一区二区中文视频| 99re视频这里只有精品| 亚洲人午夜精品天堂一二香蕉| 日本不卡中文字幕| 欧美体内she精视频| 亚洲一区影音先锋| 欧美日韩免费在线视频| 亚洲国产精品一区二区久久恐怖片| 国产乱子伦一区二区三区国色天香| 色综合久久综合中文综合网| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 欧美aaaaaa午夜精品| 91精品国产综合久久久久久久 | 成人高清视频在线观看| 国产精品久久久久影视| 99久久免费视频.com| 亚洲免费在线播放| 欧美日韩午夜影院| 久久99精品国产麻豆婷婷| 久久久亚洲高清| 99亚偷拍自图区亚洲| 亚洲主播在线观看| 日韩一区和二区| 国产乱人伦偷精品视频不卡 | 奇米777欧美一区二区| 精品国产不卡一区二区三区| 国产盗摄视频一区二区三区| 最新日韩av在线| 色天使色偷偷av一区二区| 亚洲国产成人91porn| 日韩欧美www| 成人午夜视频在线观看| 亚洲一区二区三区四区五区黄| 成人免费不卡视频| 亚洲国产精品一区二区尤物区| 97久久超碰国产精品电影| 亚洲最新视频在线播放| 日韩一区二区三区视频在线观看| 亚洲成av人片在线| 久久免费看少妇高潮| 91色.com| 蜜臀91精品一区二区三区 | 免费黄网站欧美| 国产精品理论片在线观看| 欧美三级电影精品| 国内成人免费视频| 一级做a爱片久久| 精品国产不卡一区二区三区| 91免费精品国自产拍在线不卡 | 日本韩国一区二区三区| 美女看a上一区| 亚洲色图欧美偷拍| 色哟哟精品一区| 亚洲高清中文字幕| 久久久亚洲高清| 91国内精品野花午夜精品| 九九**精品视频免费播放| 中文字幕色av一区二区三区| 日韩视频一区在线观看| 色综合视频一区二区三区高清| 亚洲卡通动漫在线| 欧美tickling网站挠脚心| 91小视频在线| 国产原创一区二区| 亚洲曰韩产成在线| 亚洲国产精品成人久久综合一区 | 国产精品久久久久一区| 91.麻豆视频| 色综合久久综合| 国产精品99久久久| 午夜久久久影院| 亚洲男人的天堂网| 久久九九久久九九| 日韩一区二区三区三四区视频在线观看| 美女www一区二区| 亚洲一区二区欧美日韩 | 午夜电影一区二区| 自拍偷拍亚洲激情| 国产欧美精品一区aⅴ影院| 在线播放亚洲一区| 色乱码一区二区三区88| 丁香婷婷综合五月| 激情丁香综合五月| 日韩高清不卡在线| 亚洲国产视频一区二区| 成人欧美一区二区三区| 久久久久国产一区二区三区四区| 成人激情文学综合网| 精品一区二区免费| 亚洲成人av中文| 中文字幕一区二区三区不卡在线| 日本精品一区二区三区高清| 日本中文字幕一区二区有限公司| 日韩女同互慰一区二区| 欧美日韩国产综合一区二区| 91一区一区三区| 成人av片在线观看| 国产高清一区日本| 国产一区二区福利视频| 麻豆成人免费电影| 裸体歌舞表演一区二区| 人禽交欧美网站| 日本在线观看不卡视频| 午夜精品福利在线| 日韩一区精品字幕| 日本不卡一二三区黄网| 人妖欧美一区二区| 免费欧美高清视频| 久久99国产精品麻豆| 韩国av一区二区三区四区| 精品一区二区三区欧美| 久色婷婷小香蕉久久| 精品一区二区三区蜜桃| 国内外精品视频| 国产在线观看一区二区| 国产精品影视在线观看| 国产成人精品免费一区二区| 国产91丝袜在线播放九色| av不卡免费电影| 日本精品一级二级| 欧美日韩中文一区| 欧美久久一二三四区| 欧美一区二区三级| 日韩精品一区二区三区中文精品| 色综合久久综合| 欧美日韩日日骚| 欧美一级久久久久久久大片| 欧美精品一区二区三区高清aⅴ| 日本乱人伦aⅴ精品|