⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 descriptor.c

📁 PDIUSBD12的固件程序可能对开发USB1.1的兄弟有用
💻 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 + -