資源描述:
《USB描述符完全解析》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫。
1、USB設備描述符完全解析//============================================================================//文件名:USBDESC.C//用途:USB描述符//作者:shenfei5//時間:2007.2.3//版本:V1.10//============================================================================?#include#include"us
2、b.h"http://USB模塊#include"hid.h"http://HID設備#include"usbcfg.h"http://配置USB#include"usbdesc.h"http://USB描述符////HID報文描述符//constU8HID_ReportDescriptor[]={HID_UsagePageVendor(0x00),//報告頁版本:0X060X000XFFHID_Usage(0x01),//用途頁:0X050X01//如果是MOUSE,KEY,在這里應該有用法索引HID_Collection(HID_Applica
3、tion),//用法集合開始:0XA10X01?HID_UsagePage(HID_USAGE_PAGE_BUTTON),//BUTTON用法頁HID_UsageMin(1),//用法最小值HID_UsageMax(3),//用法最小值HID_LogicalMin(0),//邏輯最小值?HID_LogicalMax(1),//邏輯最大值HID_ReportCount(3),//報告計數(shù)(3)HID_ReportSize(1),//報告頁大小(1)HID_Input(HID_Data
4、HID_Variable
5、
6、HID_Absolute),//輸入(2)?HID_ReportCount(1),//報告計數(shù)值HID_ReportSize(5),//報告大小HID_Input(HID_Constant),//輸入1HID_UsagePage(HID_USAGE_PAGE_LED),//LED用法頁HID_Usage(HID_USAGE_LED_GENERIC_INDICATOR),//用法頁HID_LogicalMin(0),//用法最小值HID_LogicalMax(1),//用法最大值HID_ReportCount(
7、8),//報告計數(shù)值HID_ReportSize(1),//報告大小(1)HID_Output(HID_Data
8、HID_Variable
9、HID_Absolute),//輸出(2)HID_EndCollection,//報告結束};//HID報告描述符大小constU16HID_ReportDescSize=sizeof(HID_ReportDescriptor);////USB設備描述符?//constU8USB_DeviceDescriptor[]={USB_DEVICE_DESC_SIZE,//bLe
10、ngth描述符長度=12HUSB_DEVICE_DESCRIPTOR_TYPE,//bDescriptorType描述符類型=1H?WBVAL(0x0110),//1.10//bcdUSB設備版本號=你發(fā)行的版本的號0x00,//bDeviceClass類型代碼=由USB指定0x00,//bDeviceSubClass子類型代碼=由USB分配?0x00,//bDeviceProtocol協(xié)議代碼=由USB分配USB_MAX_PACKET0,//bMaxPacketSize0端點0的容量=64(只能是8,16,
11、32,64)WBVAL(0x1977),//idVendor供應商ID(同USB協(xié)會分配,我就自己分配一份)WBVAL(0X1006),//idProduct產品ID(由廠商分配)WBVAL(0x0100),//1.00//bcdDevice(設備出廠編號)0x04,//iManufacturer(廠商描述字符串索引,用來在字符串索引中查找字符串?。?x20,//iProduct(產品描述字符串索引,用來在字符串索引中查找字符串?。?x42,//iSerialNumber (設備序列號描述字符串索引,用來在字
12、符串索引中查找字符串?。?x01//bNumConfigurations( 配置字符串的個數(shù)?。﹠;////USB描述符集//所有描述符(配置描述符,接口描述符,端點描述符,USB類描述符,設備描述符//constU8USB_ConfigDescriptor[]={//配置描述符?USB_CONFIGUARTION_DESC_SIZE,//bLength描述符長度=9HUSB_CONFIGURATI