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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

USB接口的键盘描述符范例

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

?

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。