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

📄 usb.h

📁 upsd 3200序列的usb驱动
💻 H
字号:
///////////////////////////////////////////////////////////////////////
// Usb.h
//
// USB structures and constants.

/*---------------------------------------------------------------------------
Copyright (c) 2002 ST Microelectronics
This example demo code 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.
--------------------------------------------------------------------------*/

#ifndef USB_H
#define USB_H

/////////////////// iword
//
// Intel word structure.

typedef struct 
{
	uchar lo;
	uchar hi;
} iword;

// USB 1.1 device descriptor

typedef struct 
{
	uchar bLength;				// Size of this Descriptor in Bytes
	uchar bDescriptorType;		// Descriptor Type (=1)
	iword bcdUSB;				// USB Spec Release Number in BCD
	uchar bDeviceClass;			// Device Class Code
	uchar bDeviceSubClass;		// Device Subclass Code	
	uchar bDeviceProtocol;		// Device Protocol Code
	uchar bMaxPacketSize0;		// Maximum Packet Size for EP0 
	iword idVendor;				// Vendor ID 
	iword idProduct;			// Product ID
	iword bcdDevice;			// Device Release Number in BCD
	uchar iManufacturer;		// Index of String Desc for Manufacturer
	uchar iProduct;				// Index of String Desc for Product
	uchar iSerialNumber;		// Index of String Desc for SerNo
	uchar bNumConfigurations;	// Number of possible Configurations
} device_descriptor;

// USB 1.1 configuration descriptor

typedef struct 
{
	uchar bLength;				// Size of this Descriptor in Bytes
	uchar bDescriptorType;		// Descriptor Type (=2)
	iword wTotalLength;			// Total Length of Data for this Conf
	uchar bNumInterfaces;		// No of Interfaces supported by this Conf
	uchar bConfigurationValue;	// Designator Value for *this* Configuration
	uchar iConfiguration;		// Index of String Desc for this Conf
	uchar bmAttributes;			// Configuration Characteristics (see below)
	uchar bMaxPower;			// Max. Power Consumption in this Conf (*2mA)
} configuration_descriptor;

// USB 1.1 interface descriptor

typedef struct 
{
	uchar bLength;				// Size of this Descriptor in Bytes
	uchar bDescriptorType;		// Descriptor Type (=4)
	uchar bInterfaceNumber;		// Number of *this* Interface (0..)
	uchar bAlternateSetting;	// Alternative for this Interface (if any)
	uchar bNumEndpoints;		// No of EPs used by this IF (excl. EP0)
	uchar bInterfaceClass;		// Interface Class Code
	uchar bInterfaceSubClass;	// Interface Subclass Code
	uchar bInterfaceProtocol;	// Interface Protocol Code
	uchar iInterface;			// Index of String Desc for this Interface
} interface_descriptor;

// USB 1.1 endpoint descriptor

typedef struct 
{
	uchar bLength;				// Size of this Descriptor in Bytes
	uchar bDescriptorType;		// Descriptor Type (=5)
	uchar bEndpointAddress;		// Endpoint Address (Number + Direction)
	uchar bmAttributes;			// Endpoint Attributes (Transfer Type)
	iword wMaxPacketSize;		// Max. Endpoint Packet Size
	uchar bInterval;			// Polling Interval (Interrupt) in ms
} endpoint_descriptor;

// USB SETUP packet

typedef struct 
{
	uchar bmRequestType;		// Characteristics (Direction,Type,Recipient)
	uchar bRequest;				// Standard Request Code
	iword wValue;				// Value Field
	iword wIndex;				// Index or Offset Field
	iword wLength;				// Number of Bytes to transfer (Data Stage)
} setup_buffer;

// USB Status Codes

#define US_ATTACHED			0x00
#define US_POWERED			0x01
#define US_DEFAULT			0x02
#define US_ADDRESSED		0x03
#define US_CONFIGURED		0x04
#define US_SUSPENDED		0x80

// USB Standard Device Request Codes

#define GET_STATUS			0x00
#define CLEAR_FEATURE		0x01
#define SET_FEATURE			0x03
#define SET_ADDRESS			0x05
#define GET_DESCRIPTOR		0x06
#define SET DESCRIPTOR		0x07	// optional
#define GET_CONFIGURATION	0x08
#define SET_CONFIGURATION	0x09
#define GET_INTERFACE		0x0a
#define SET_INTERFACE		0x0b
#define SYNCH_FRAME			0x0c	// optional

// SETUP packet request types

#define CLASS_INTERFACE_TO_DEVICE   0x21
#define CLASS_INTERFACE_TO_HOST     0xA1

// HID class specific requests

#define HID_GET_REPORT      0x01
#define HID_GET_IDLE        0x02
#define HID_SET_REPORT      0x09
#define HID_SET_IDLE        0x0A

#define REQUEST_COMPLETE	0xff	// not part of the Standard - just
									// a Flag to indicate that the recent
									// request has been finished
// Descriptor Types

#define DT_DEVICE			1
#define DT_CONFIGURATION	2
#define DT_STRING			3
#define DT_INTERFACE		4
#define DT_ENDPOINT			5
#define DT_HID_CLASS        0x21
#define DT_HID_REPORT       0x22

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -