📄 chap_9.h
字号:
//协议层头文件
#ifndef __CHAP_9_H__
#define __CHAP_9_H__
#define MSB(x) (((x)>>8)&0xFF)
#define MAX_ENDPOINTS (INT8U)0x03
//Get Status 命令的返回值
#define USB_GETSTATUS_SELF_POWERED 0x01
#define USB_GETSTATUS_REMOTE_WAKEUP_ENABLED 0x02
//USB 状态取值
#define USB_IDLE 0
#define USB_TRANSMIT 1
#define USB_RECEIVE 2
//USB事件结构体
typedef union _epp_flags
{
struct _flags
{
INT8U timer;
INT8U bus_reset;
INT8U suspend;
INT8U setup_packet;
INT8U remote_wakeup;
INT8U in_isr;
INT8U control_state;
INT8U configuration;
INT8U command;
INT8U ep1_rxdone;
INT8U ep2_rxdone;
INT8U ep2buf_full1;
} bits;
INT16U value;
} EPPFLAGS;
typedef struct _device_request
{
INT8U bmRequestType;
INT8U bRequest;
INT16U wValue;
INT16U wIndex;
INT16U wLength;
} DEVICE_REQUEST;
//控制传输结构体
#define MAX_CONTROLDATA_SIZE 8
typedef struct _control_xfer
{
DEVICE_REQUEST DeviceRequest;
INT16U wLength;
INT16U wCount;
INT8U *pData;
INT8U dataBuffer[MAX_CONTROLDATA_SIZE];
} CONTROL_XFER;
extern CONTROL_XFER ControlData;
extern EPPFLAGS bEPPflags;
// USB 标准设备请求函数
extern void get_status(void);
extern void clear_feature(void);
extern void set_feature(void);
extern void set_address(void);
extern void get_descriptor(void);
extern void get_configuration(void);
extern void set_configuration(void);
extern void get_interface(void);
extern void set_interface(void);
extern void reserved(void);
extern void stall_ep0(void);
extern void ep0_txdone(void);
extern void ep0_rxdone(void);
extern void init_unconfig(void);
extern void init_config(void);
extern void single_transmit(INT8U * pData, INT8U len);
extern void code_transmit(INT8U * pRomData, INT16U len);
extern void control_handler(void);
extern code void (*StandardDeviceRequest[])(void);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -