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

📄 chap_9.h

📁 飞利浦USB D12的官方评估板固件代码
💻 H
字号:
/****************************************Copyright (c)**************************************************
**                               广州周立功单片机发展有限公司
**                                     研    究    所
**                                        产品一部 
**
**                                 http://www.zlgmcu.com
** 文   件   名: Chap_9.h
** 最后修改日期: 2004年11月15日
** 描        述: USB驱动程序软件包: PDIUSBD12 设备端驱动程序 协议层头文件
** 版	     本: V5.0
**********************************************************************************************************/

#ifndef __CHAP_9_H__
#define __CHAP_9_H__

#define MSB(x)    (((x) >> 8) & 0xFF)

#define MAX_ENDPOINTS      (INT8U)0x3

// 下面的值为 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


   //*************************************************************************
   // Chap_9.c 使用的结构体
   //*************************************************************************

/************ USB事件结构体 *********************/
typedef union _epp_flags
{
	struct _flags
	{
		INT8U timer               	: 1;		
		INT8U bus_reset           	: 1;	//总线复位标志	
		INT8U suspend             	: 1;	//挂起改变标志
		INT8U setup_packet  	  	: 1;	//收到SETUP包
		INT8U remote_wakeup		   	: 1;	//远程唤醒标志(未使用)
		INT8U in_isr		      	: 1;	//USB中断服务标志
		INT8U control_state			: 2;	//控制端点处理标志
													//0: IDLE	   空闲状态
													//1: TRANSMIT  数据发送状态
													//2: RECEIVE   数据接收状态
		INT8U configuration			: 1;	//配置标志(0: 未配置; 1: 已经配置)
		INT8U command				: 1;	//未使用	
		INT8U ep1_rxdone			: 1;	//端点 1 收到数据标志
		INT8U ep2_rxdone			: 1; 	//端点 2 收到数据标志
		INT8U ep1buf_full			: 1;
		INT8U ep2buf_full			: 1;	//端点 2 接收双缓冲区满标志	
	} bits;
	unsigned short 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;

//定义USB事件标志变量
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 + -