📄 usb_desc.src
字号:
DB 02FH
DB 000H
DB 04EH
DB 000H
DB 03AH
DB 000H
DB 030H
DB 000H
DB 030H
DB 000H
DB 036H
DB 000H
DB 02FH
DB 000H
DB 032H
DB 000H
DB 030H
DB 000H
DB 030H
DB 000H
DB 038H
DB 000H
stringXDesc:
DB 002H
DB 000H
stringDescTable:
DB 0FFH
DW string0Desc + 0
DB 0FFH
DW string1Desc + 0
DB 0FFH
DW string2Desc + 0
DB 0FFH
DW string3Desc + 0
DB 0FFH
DW stringXDesc + 0
; /* `=========================================================================`
;
; ***************************************
; **** * * ****
; Title: USB_DESC
; File name: usb_desc.c
; Project name: USB_DESC
; *** ****
; ****************** * ******************
; **** ****
; Author: Petr PFEIFER
; MPG Prague, Czech Republic
; **** * * ****
; ***************************************
;
; $Version: 0.019a Build: April 30, 2004
;
; $Version: 0.019 Build: 2004-03-22,15:44:27
;
;
;
;
;
; Description:
; ============
; Version 0.19 String descriptor problem fixed.
; Since version 0.018 PhysicalReportDesc added
; Since version 0.016, no aux. string constants needed
;
;
; based on USB demo version 7E
; Author: Jon Moore
; 07/22/02 (JAM) Initial coding.
; 08/30/03 (JAM) Changed to ST vendor ID.
;
;
; Notes:
; ======
; -none
;
;
; ..........................
; . .
; . ****************** .
; . **PPPPPPPPPPPPPPPP .
; . *PPPP*******PP**** .
; . **PPP********PP*** .
; . ***PPP******PP**** .
; . *****PPP****PP**** .
; . *****PPP****PP**** .
; . PPPPPPPP****PP**** (R) .
; . .
; ..........................
;
;
; =-=-=-=-=-=
; =-=-=-=-=-=-=-=-=-=-=-=-=
; =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
;
; Copyright 2004 ST Microelectronics
;
; This code/file is provided as is and has no warranty,
; implied or otherwise. You are free to use/modify any of the provided
; code at your own risk in your applications with the expressed limitation
; of liability (see below) so long as your product using the code
; contains at least one uPSD products (device).
;
; LIMITATION OF LIABILITY:
; ========================
; NEITHER STMicroelectronics NOR ITS VENDORS OR AGENTS
; SHALL BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF USE, LOSS OF DATA,
; INTERRUPTION OF BUSINESS, NOR FOR INDIRECT, SPECIAL, INCIDENTAL OR
; CONSEQUENTIAL DAMAGES OF ANY KIND WHETHER UNDER THIS AGREEMENT OR
; OTHERWISE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
;
; =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
; =-=-=-=-=-=-=-=-=-=-=-=-=
; =-=-=-=-=-=
;
; For current information on uPSD products,
; please consult our pages on the World Wide Web:
;
; www.st.com/psm
;
; - - - - - - - - - - - -
;
; STMicroelectronics GROUP OF COMPANIES
; Australia - Brazil - China - Czech Republic - Finland - France - Germany
; Hong Kong - India - Italy - Japan - Malaysia - Malta - Morocco - Singapore
; Spain - Sweden - Switzerland - United Kingdom - U.S.A.
;
; http://www.st.com
;
;
; `========================================================================` */
;
;
; #pragma NOAREGS
;
;
; #include "uPSD3200.h"
; #include "usb.h"
;
;
; const uchar code string1Desc[];
; const uchar code string2Desc[];
; const uchar code string3Desc[];
; const uchar code stringXDesc[];
;
;
;
; #define REPORT_DESC_LEN sizeof(reportDesc)
;
; const uchar code reportDesc[] =
; {
; 0x06, 0xA0, 0xFF, // Usage page (vendor defined)
; 0x09, 0xA5, // Usage (vendor defined)
;
; 0xA1, 0x01, // Collection (application)
; 0x09, 0xA6, // Usage (vendor defined)
;
; // Feature report
;
; 0x09, 0xA5, // Usage (vendor defined)
; 0x15, 0x80, // Logical min (-127)
; 0x25, 0x7F, // Logical max (128)
; 0x75, 0x08, // Report size (8 bits)
; 0x95, 0x40, // Report count (64 bytes)
; 0xB1, 0x02, // Feature (data, variable, absolute)
;
; // Input report
;
; 0x09, 0xA7, // Usage (vendor defined)
; 0x15, 0x80, // Logical min (-127)
; 0x25, 0x7F, // Logical max (128)
; 0x75, 0x08, // Report size (8 bits)
; 0x95, 0x08, // Report count (8 bytes)
; 0x81, 0x02, // Input (data, variable, absolute)
;
; // Output report
;
; 0x09, 0xA9, // Usage (vendor defined)
; 0x15, 0x80, // Logical min (-127)
; 0x25, 0x7F, // Logical max (128)
; 0x75, 0x08, // Report size (8 bits)
; 0x95, 0x40, // Report count (64 bytes)
; 0x91, 0x02, // Output (data, variable, absolute)
;
; 0xC0 // End Collection (Application)
; }
; ;
;
; const uchar code reportDescSize = REPORT_DESC_LEN;
;
;
;
;
;
; const uchar code PhysicalReportDesc[] =
; {
; 0,0,0 // no physical descriptor defined now
; }
; ;
;
; const uchar code PhysicalReportDescSize = sizeof(PhysicalReportDesc);
;
;
;
;
;
; //device_descriptor //device_descriptor类型在usb.h中定义
; //定义设备描述符变量
; const device_descriptor code deviceDesc =
; {
; sizeof(device_descriptor), // Size of this Descriptor in Bytes
; DT_DEVICE, // Descriptor Type (=1)
; { 0x10, 0x01 }, //changed on April 30, 2004
; // USB Spec Release Number in BCD = 1.10 0x10,0x01
; //{0x01,0x00},版本号是1.0 usb
; //{0x10,0x01}是字结构的赋值
; 0, // Device Class Code (none)
; 0, // Device Subclass Code (none)
; 0, // Device Protocol Code (none)
; 8, // Maximum Packet Size for EP0
; { 0x83, 0x04},
; // Vendor ID
; {0x00, 0x00 },
; // Product ID
; {0x00, 0x01 },
; // Device Release Number in BCD
;
; 1, // Index of String Desc for Manufacturer
; 2, // Index of String Desc for Product
; 3, // Index of String Desc for SerNo
; 1 // Number of possible Configurations
; }
; ;
;
;
;
;
; // Copy of HID class descriptor embedded in configDesc below
; //HID类描述符,HID类主要的目的是识别HID通信中使用的其他描述符,可以有7个或9个字段
; const uchar code hidClassDesc[] =
; {
; 9, // Descriptor length
; 0x21, // Descriptor type (HID)
; //0x21表明是人机接口类Hid;
; 0x10,0x01, //changed on April 30, 2004
; // HID release (1.10)
; //这一次没有用到了iword结构
; 0, // Country code (none) //硬件不是本地化,字段是0,
; 1, // Number of HID class descriptors to follow
; 0x22, // Report descriptor type (HID)
; REPORT_DESC_LEN, 0 // Byte length of report descriptor
; } //REPORT_DESC_LEN是设备描述符的总长度,应该是18个字节
;
; ;
;
; const uchar code hidClassDescSize = sizeof(hidClassDesc);
;
; //我固件即设备的配置描述符
; const uchar code configDesc[] =
; {
;
; 9, // Configuration descriptor length
; 2, // Descriptor type (configuration)
; 34, 0, // Total length of this descriptor
; 1, // Number of interfaces
; 1, // Configuration value
; 0, // Index of string descriptor (none)
; 0xC0, // Self powered, no remote wakeup
; 25, // <100 mA max power consumption, 2mA steps
;
;
;
; /*===== Interface =====*/
;
; 9, // Descriptor length
; 4, // Descriptor type (interface)
; 0, // Number of interface
; 0, // Alternate setting
; 1, // Number of endpoints (except EP0)
;
; // if you would like to disable EP1, easily write 0 (and 1 back for EP1/display copy refresh enable)
; 3, // Class code (HID)
; 0, // Subclass (none)
; 0, // Protocol (none)
; 0, // Index of string descriptor (none)
;
;
;
;
; /*===== HID class descriptor (copy of hidClassDesc) =====*/
;
; 9, // Descriptor length
; 0x21, // Descriptor type (HID)
; 0x10,0x01, //changed on April 30, 2004 // HID release (1.10)
; 0, // Country code (none)
; 1, // Number of HID class descriptors to follow
; 0x22, // Report descriptor type (HID)
; REPORT_DESC_LEN, 0, // Byte length of report descriptor
;
;
;
;
; /*===== Endpoint descriptor =====*/
;
; 7, // Descriptor length (7 bytes)
; 5, // Descriptor type (endpoint)
; 0x81, // Address (IN1)
; 3, // Attributes (interrupt)
; 8, 0, // Maximum packet size (8 bytes)
; 100 // Polling interval (in msec)
; }
; ;
;
;
;
;
;
;
;
;
;
; // Language IDs //字串描述符
; #define SD0LEN 4
; const uchar code string0Desc[] =
; {
; SD0LEN, DT_STRING , // Size, Type
; 0x09, 0x04 // LangID Codes
; }
; ;
;
;
;
;
;
; // Manufacturer String
; #define SD1LEN sizeof("ST Microelectronics")*2
; const uchar code string1Desc[] =
; {
; SD1LEN, DT_STRING, // Size, Type
; 'S', 0, // Unicode String
; 'T', 0,
; ' ', 0,
; 'M', 0,
; 'i', 0,
; 'c', 0,
; 'r', 0,
; 'o', 0,
; 'e', 0,
; 'l', 0,
; 'e', 0,
; 'c', 0,
; 't', 0,
; 'r', 0,
; 'o', 0,
; 'n', 0,
; 'i', 0,
; 'c', 0,
; 's', 0
; }
; ;
;
; // Product String
; #define SD2LEN sizeof("DK3200 Evaluation Board")*2
; const uchar code string2Desc[] =
; {
; SD2LEN, DT_STRING, // Size, Type
; 'D', 0, // Unicode String
; 'K', 0,
; '3', 0,
; '2', 0,
; '0', 0,
; '0', 0,
; ' ', 0,
; 'E', 0,
; 'v', 0,
; 'a', 0,
; 'l', 0,
; 'u', 0,
; 'a', 0,
; 't', 0,
; 'i', 0,
; 'o', 0,
; 'n', 0,
; ' ', 0,
; 'B', 0,
; 'o', 0,
; 'a', 0,
; 'r', 0,
; 'd', 0
; } ;
;
; // Serial Number String
; #define SD3LEN sizeof("S/N:006/2008")*2
; const uchar code string3Desc[] =
; {
; SD3LEN, DT_STRING, // Size, Type
; 'S', 0, // Unicode String
; '/', 0,
; 'N', 0,
; ':', 0,
; '0', 0,
; '0', 0,
; '6', 0,
; '/', 0,
; '2', 0,
; '0', 0,
; '0', 0,
; '8', 0,
; };
;
;
; const uchar code stringXDesc[2] =
; {
; 2, 0, // Size, Type
; };
;
;
; // Table of String Descriptors
; const uchar * const code stringDescTable[] =
; {
; string0Desc,
; string1Desc,
; string2Desc,
; string3Desc,
; stringXDesc //no string
; } ;
;
; /* *************************************************************************
; *** ***
; ** *** End of File *** **
; *** ***
; ************************************************************************* */
; *** sync lost ***
; *** sync lost ***
; *** sync lost ***
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -