📄 drv_usb_init.c
字号:
/************************************************* Copyright (C), 2007, DTK Computer. File name: drv_usb_test.c Author: MMI Group Version: 1.0 Date: 2008.04.30 Description: usb module for emunation test Others: Function List: History: <author> <time> <version > <desc> Bosco Lee 08/30/04 1.0 build this moudle *************************************************///#include <reg51.h>//#include "USBConfig.h"#include "drv_usb_init.h"/* 设备描述符: 测试设备类型 */#define USB_CLASS_CODE_TEST_CLASS_DEVICE 0x00/* 接口描述符: 测试接口类型*/#define USB_CLASS_CODE_TEST_CLASS_USB 0x08/* 接口描述符: 子类代码 */#define USB_SUBCLASS_CODE_TEST_CLASS_USB 0x06/* 接口描述符: 协议代码 */#define USB_PROTOCOL_CODE_TEST_CLASS_USB 0x50init_msd_descriptor (){//设备描述符 USB_DEVICE_DESCRIPTOR DeviceDescr = { sizeof (USB_DEVICE_DESCRIPTOR), //设备描述符长度,= 12H USB_DEVICE_DESCRIPTOR_TYPE, //设备描述符类型,= 01H 0x00, 0x02, //协议版本,= 1.10 USB_CLASS_CODE_TEST_CLASS_DEVICE, //测试设备类型, = 0DCH 0, 0, //设备子类,设备协议 EP0_PACKET_SIZE, //端点0最大数据包大小,= 10H 0x1e, 0x04, //PHILIPS公司的设备ID 0x2b, 0x41, //设备制造商定的产品ID 0x01, 0x00, //设备系列号 1, 2, 3, //索引 1 //可能的配置数 }; USB_DESCRIPTOR usb_descr = { //配置描述符 { sizeof (USB_CONFIGURATION_DESCRIPTOR), //配置描述符长度,= 09H USB_CONFIGURATION_DESCRIPTOR_TYPE, //配置描述符类型,= 02H CONFIG_DESCRIPTOR_LENGTH, 0x00, //描述符总长度, = 002EH 1, //只支持1个接口 1, //配置值 4, //字符串描述符指针(无) 0x80, //自供电,支持远程唤醒 0x32 //最大功耗(100mA) } , //接口描述符 { sizeof (USB_INTERFACE_DESCRIPTOR), //接口描述符长度,= 09H USB_INTERFACE_DESCRIPTOR_TYPE, //接口描述符类型,= 04H 0, //接口数,只有1个 0, //可选配置,只有1个 NUM_ENDPOINTS, //除端点0的端点索引数目,= 04H USB_CLASS_CODE_TEST_CLASS_USB, //测试设备类型,= 0DCH USB_SUBCLASS_CODE_TEST_CLASS_USB, //子类代码,= 0A0H USB_PROTOCOL_CODE_TEST_CLASS_USB, //协议代码,= 0B0H 5 //字符串描述符索引 } , //端点描述符,端点1输入 { sizeof (USB_ENDPOINT_DESCRIPTOR), //端点描述符长度,= 07H USB_ENDPOINT_DESCRIPTOR_TYPE, //端点描述符类型,= 05H 0x81, //端点1 IN USB_ENDPOINT_TYPE_BULK, //bulk传输, = 03H EP1_PACKET_SIZE & 0xff, (EP1_PACKET_SIZE >> 8) & 0xff, //端点最大包的大小,= 0010H 0 //传输间隔时间,= 10ms } , //端点2输出 { sizeof (USB_ENDPOINT_DESCRIPTOR), //端点描述符长度,= 07H USB_ENDPOINT_DESCRIPTOR_TYPE, //端点描述符类型,= 05H 0x2, //端点2 IN USB_ENDPOINT_TYPE_BULK, //批量传输,= 02H EP2_PACKET_SIZE & 0xff, (EP2_PACKET_SIZE >> 8) & 0xff, //端点最大包的大小,= 0040H 0 //批量传输时该设备无效 } , { sizeof (USB_STRING_LANG_ID_DESCRIPTOR), 0x03, 0x09, 0x04,}//英语 , //字符串描述符 { sizeof (USB_STRING_DESCRIPTOR), 0x03, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x32, 0x00, 0x46, 0x00, 0x35, 0x00, 0x43, 0x00, 0x57, 0x00, 0x45, 0x00, 0x49, 0x00, 0x4d, 0x00, 0x49, 0x00, 0x4e, 0x00, 0x47, 0x00, 0x30, 0x00, 0x41, 0x00,} };}init_usb_descriptor (){ init_msd_descriptor ();// printf("leng=%d\n",DeviceDescr.bLength);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -