📄 descriptor.c
字号:
//PDIUSBD12 设备端驱动程序 协议层有关描述符取值
#include <reg52.h>
#include "D12Config.h"
#include "Descriptor.h"
//设备描述符:测试设备类型
#define USB_CLASS_CODE_TEST_CLASS_DEVICE 0xdc
//接口描述符:子类代码
#define USB_SUBCLASS_CODE_TEST_CLASS_D12 0xA0
//接口描述符:协议代码
#define USB_PROTOCOL_CODE_TEST_CLASS_D12 0xB0
//设备描述符
code USB_DEVICE_DESCRIPTOR DeviceDescr =
{
sizeof(USB_DEVICE_DESCRIPTOR),
USB_DEVICE_DESCRIPTOR_TYPE,
0x00,0x01,
USB_CLASS_CODE_TEST_CLASS_DEVICE,
0, 0,
EP0_PACKET_SIZE,
0x71,0x04,
0x66,0x06,
0x00,0x01,
0, 0, 0,
1
};
code USB_DESCRIPTOR usb_descr =
{
//配置描述符
{
sizeof(USB_CONFIGURATION_DESCRIPTOR),
USB_CONFIGURATION_DESCRIPTOR_TYPE,
CONFIG_DESCRIPTOR_LENGTH,0x00,
1,
1,
0,
0xA0, //总线供电,支持远程唤醒
0x32
},
//接口描述符
{
sizeof(USB_INTERFACE_DESCRIPTOR),
USB_INTERFACE_DESCRIPTOR_TYPE,
0,
0,
NUM_ENDPOINTS,
USB_CLASS_CODE_TEST_CLASS_DEVICE,
USB_SUBCLASS_CODE_TEST_CLASS_D12,
USB_PROTOCOL_CODE_TEST_CLASS_D12,
0
},
//端点描述符,端点1输入
{
sizeof(USB_ENDPOINT_DESCRIPTOR),
USB_ENDPOINT_DESCRIPTOR_TYPE,
0x81,
USB_ENDPOINT_TYPE_INTERRUPT,
EP1_PACKET_SIZE,0x00,
10 //传输间隔时间,= 10ms
},
//端点描述符,端点1输出
{
sizeof(USB_ENDPOINT_DESCRIPTOR),
USB_ENDPOINT_DESCRIPTOR_TYPE,
0x1,
USB_ENDPOINT_TYPE_INTERRUPT,
EP1_PACKET_SIZE,0x00,
10
},
//端点2输入
{
sizeof(USB_ENDPOINT_DESCRIPTOR),
USB_ENDPOINT_DESCRIPTOR_TYPE,
0x82,
USB_ENDPOINT_TYPE_BULK, //批量传输=02H
EP2_PACKET_SIZE,0x00,
10
},
//端点2输出
{
sizeof(USB_ENDPOINT_DESCRIPTOR),
USB_ENDPOINT_DESCRIPTOR_TYPE,
0x2,
USB_ENDPOINT_TYPE_BULK,
EP2_PACKET_SIZE,0x00,
10
}
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -