📄 descriptor.lst
字号:
C51 COMPILER V7.50 DESCRIPTOR 03/24/2008 11:06:14 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE DESCRIPTOR
OBJECT MODULE PLACED IN Descriptor.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE Descriptor.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "mytype.h"
2 #include "descriptor.h"
3
4 #ifndef _swap_data_
5 #define _swap_data_
6
7 #define SWAP16(x) ((((uint16)(x))<<8)|(((uint16)(x))>>8)) //高低字节交换
8 #define LSB(x) ((uint8)(x)) //取一个整数的低字节
9 #define MSB(x) ((uint8)(((uint16)(x))>>8)) //取一个整数的高字节
10
11 #endif
12
13 code DEVICE_DESCRIPTOR_STRUCT device_descriptor = //设备描述符
14 {
15 sizeof(DEVICE_DESCRIPTOR_STRUCT), //设备描述符的字节数大小
16 USB_DEVICE_DESCRIPTOR, //设备描述符类型编号
17 SWAP16(0x0110), //USB版本号,USB1.1
18 0x00, //USB分配的设备类代码
19 0x00, //USB分配的子类代码
20 0x00, //USB分配的设备协议代码
21 0x10, //端点0的最大包大小
22 SWAP16(0x0925), //厂商编号VID,这里只是作为测试用,请使用自己的VID
23 SWAP16(0x1299), //产品编号PID,这里只是作为测试用,请使用自己的PID
24 SWAP16(0x0001), //设备出厂编号
25 0x01, //设备厂商字符串的索引
26 0x02, //描述产品字符串的索引
27 0x03, //描述设备序列号字符串的索引
28 0x01 //可能的配置数量
29 };
30
31 code USB_DESCRIPTOR_STRUCT usb_descriptor =
32 {
33 //配置描述符
34 {
35 sizeof(CONFIGURATION_DESCRIPTOR_STRUCT), //配置描述符的字节数大小
36 USB_CONFIGURATION_DESCRIPTOR, //配置描述符类型编号
37 SWAP16(sizeof(USB_DESCRIPTOR_STRUCT)),
38 0x01, //只包含一个接口
39 0x01, //该配置的编号
40 0x00, //iConfiguration字段
41 0xA0, //采用总线供电,支持远程唤醒
42 0xC8 //从总线获取最大电流400mA
43 },
44 //接口描述符
45 {
46 sizeof(INTERFACE_DESCRIPTOR_STRUCT), //接口描述符的字节数大小
47 USB_INTERFACE_DESCRIPTOR, //接口描述符类型编号
48 0x00, //接口编号为0
49 0x00, //该接口描述符的编号
50 ENDPOINT_NUMBER, //非0端点数量为2,只使用端点主端点输入
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -