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

📄 usb.h

📁 用keil开发的.单片机税控器程序.单片机用的是AT公司的.upsd3245
💻 H
字号:
/*
* Copyright (c) 2004,成都港顺科技发展有限公司
* All rights reserved.
*
* 编 译 器:Keil:C Compiler:7.20;Assembler:7.10
* 工程名称:POS-Test.UV2
* 文件名称:USB.H
* 摘    要:USB数据结构、宏定义
* 
* 单 片 机:uPSD3254 
* 当前版本:0.4
* 作    者:林云
* 完成日期:2004-10-25 14:45
*/

#ifndef USB_H
#define USB_H

// iword - Intel word structure.
#define uchar	unsigned char
#define uint	unsigned int
#define ulong	unsigned long
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

//added the following on April 30, 2004
//EP1 state VERA
#define US_EP1DEFAULT     0x00
#define US_EP1STALL       0x01


// 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
#define DT_HID_PHYSICALD 0x23

#endif


/* *************************************************************************
  ***                                                                      ***
  **                         *** End of File ***                            **
  ***                                                                      ***
   *************************************************************************  */

⌨️ 快捷键说明

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