日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

USB接口的键盘描述符范例

發布時間:2024/4/13 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 USB接口的键盘描述符范例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
;========================================= ; Device descriptor 設備描述符 ;========================================= DEVICE_DESC_DATA: DB 0x12 ; bLength = 18,該描述符長度為18字節 DB 0x01 ; bDescriptorType = 01,表明是設備描述符 DB 0x10, 0x01 ; bcdUSB,USB設備版本號=1.1 DB 0x00 ; DeviceClass,設備類碼,HID設備為0,類別在接口描述符中定義 DB 0X00 ; DeviceSubClass,設備子類碼,DeviceClass為0時該字段必須為0 DB 0X00 ; bDevicePortocol,協議碼,DeviceClass為0時該字段必須為0 DB 0x08 ; bMaxPacketSize0,端點0的最大包尺寸 DB 0xFF, 0xFF ; bVendor,廠商ID,由USB實現者論壇確定的 DB 0x01, 0x00 ; bProduct,產品ID DB 0x00, 0x01 ; bcdDevice,設備版本號為1.00 DB 0x04 ; iManufacturer,廠商字符串的索引值,見字符串描述符 DB 0x0E ; iProduct,產品字符串的索引值,見字符串描述符 DB 0x30 ; iSerialNumber,產品序列號字符串的索引值,見字符串描述符 DB 0X01 ; bNumConfigurations,配置數目只有1個 ;========================================= ; Configuration descriptor 配置描述符 ;========================================= CONFIG_DESC_DATA: DB 0x09 ; bLength=9,該描述符長度為9字節 DB 0x02 ; bDescriptorType = 02,表明是配置描述符 DB 0x3B, 0x00 ; wTotalLength = 59,配置、接口、端點和HID描述符的總和字節數 DB 0x02 ; bNumInterfaces = 2,本配置支持的接口數目為2個 DB 0x01 ; bConfigurationValue = 1,本配置描述符的標識符 DB 0x00 ; iCongfiguration = 0,配置描述符說明字符串的索引值 DB 0XA0 ; bmAttributes,電源及喚醒設置,USB1.1版中D7=1,D6=0表示總線供電; D5=1表示支持遠程喚醒 DB 0X32 ; MaxPower = 50,本設備最大耗電為50X2mA=100mA ;========================================= ; Interface descriptor 接口描述符 ;========================================= InterfaceDescriptor0: DB 0x09 ; bLength = 9,該描述符長度 DB 0x04 ; bDescriptorType = 4,表明是接口描述符 DB 0x00 ; bInterfaceNumber = 0,此接口的識別標識符 DB 0x00 ; bAlternateSetting = 0,表示此接口無替代設置值 DB 0x01 ; bNumEndpoints = 1,本接口的端點數目,HID設備使用端點1 DB 0x03 ; bInterfaceClass = 3,表示該設備是HID類別 DB 0x01 ; bInterfaceSubClass = 1,表示支持啟動接口 DB 0x01 ; bInterfaceProtocol = 1,表示支持鍵盤協議 DB 0x00 ; iInterface = 0,接口描述符說明字符串的索引值,0表示無字符串 ;========================================= ; HID descriptor HID描述符 ;========================================= HIDDescriptor0: DB 0x09 ; bLength = 9,該描述符長度 DB 0x21 ; bDescriptorType = 21h,表明是HID描述符 DB 0x00, 0x01 ; bcdHID = 0100,HID規范版本為1.00 DB 0x00 ; bCountryCode = 0,硬件設備所在國家的國家代碼,0表示未指明 DB 0x01 ; nNumDescriptors = 1,表示支持的描述符有1個,即一個報表描述符 DB 0x22 ; bDescriptorType = 22h,描述符類別,表示支持的描述符是報表描述符 DB 0x3F, 0x00 ; wDescriptorLength = 63,表示支持的報表描述符的長度 ;========================================= ; EndPoint descriptor 端點描述符 ;========================================= EndpointDescriptor0: DB 0x07 ; bLength = 7,該描述符長度 DB 0x05 ; bDescriptorType = 5,表明是端點描述符 DB 0x81 ; bEndpointAddress = 1000 0001b,表示1號輸入端點 DB 0X03 ; bmAttributes = 00000011b,表示中斷類型端點 DB 0x08, 0x00 ; wMaxPacketSize = 8,端點發送和接收的最大包尺寸為8 DB 10 ; bInterval = 10,表示中斷端點輪詢時間間隔為10ms ;========================================= ; String descriptor 字符串描述符 ;========================================= StringDescriptor0: DB 0x04 ; bLength = 4,字符串描述符0的長度為4 DB 0x03 ; bDescriptorType = 3,表明是字符串描述符 DB 0x09, 0x00 ; wLANGID = 0009h,表明是英語 DB 0x0A ; bLength = 10,字符串描述符的長度為10 DB 0x03 ; bDescriptorType = 3,表明是字符串描述符 DB 0x41, 0x00, 0x43, 0x00, 0x4D, 0x00, 0x45, 0x00 ; bString = “ACME“,Unicode編碼的字符串 DB 0x22 ; bLength = 34,字符串描述符的長度為34 DB 0x03 ; bDescriptorType = 3,表明是字符串描述符 DB 0x4C, 0x00, 0x6F, 0x00, 0x63, 0x00, 0x61, 0x00 DB 0x74, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x20, 0x00 DB 0x4B, 0x00, 0x65, 0x00, 0x79, 0x00, 0x62, 0x00 DB 0x6F, 0x00, 0x61, 0x00, 0x72, 0x00, 0x64, 0x00 ; bString = “Locator Keyboard“,Unicode編碼的字符串 DB 0x0E ; bLength = 14,字符串描述符的長度為14 DB 0x03 ; bDescriptorType = 3,表明是字符串描述符 DB 0x41, 0x00, 0x42, 0x00, 0x43, 0x00, 0x21, 0x00 DB 0x22, 0x00, 0x23, 0x00 ; bString = “ABC123“,Unicode編碼的字符串 ;========================================= ;HID Reports Descriptor 報表描述符 ;========================================= DB 0x05, 1 ; Usage Page (1: Generic Desktop) DB 0x09, 6 ; Usage (6: Keyboard) 表示報表定義的是HID鍵盤 DB 0xA1, 1 ; Collection (1: Application) ====================集合開始 ; ; 以下定義了鍵盤的修飾鍵輸入報表,共有8個鍵,組成一個字節 ; 用法見HID Usage Table中的第10節中的鍵盤用法定義 DB 0x05, 7 ; Usage page (7: Key Codes) DB 0x19, 224 ; Usage Minimum (224) DB 0x29, 231 ; Usage Maximum (231) DB 0x15, 0 ; Logical Minimum (0) DB 0x25, 1 ; Logical Maximum (1) DB 0x75, 1 ; Report Size (1) DB 0x95, 8 ; Report Count (8) DB 0x81, 2 ; Input (Data,Variable,Absolute) ; ; 以下定義了一個保留字節的輸入報表 DB 0x95, 1 ; Report Count (1) DB 0x75, 8 ; Report Size (8), DB 0x81, 1 ; Input (Constant) = Reserved Byte ; ; 以下定義了鍵盤的LED指示燈輸出報表項目,共有5個指示燈 ; 用法見HID Usage Table中的第11節中的LED用法定義 DB 0x95, 5 ; Report Count (5)

?

總結

以上是生活随笔為你收集整理的USB接口的键盘描述符范例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。