?? d12.h
字號:
#ifndef __D12_H__
#define __D12_H__
#include "alt_types.h"
#include "system.h"
/****************************************/
#define USB_DAT 0
#define USB_CMD 1
#define STATUS_OK 0
#define STATUS_ERR 1
#define EP0_PK_LEN 16
#define TRUE 1
#define FALSE 0
/*******************************************/
#define GET_STATUS 0
#define LEAR_FEATURE 1
#define SET_FEATURE 3
#define SET_ADDRESS 5
#define GET_DESCRIPTOR 6
#define SET_DESCRIPTOR 7
#define GET_CONFIGURATION 8
#define SET_CONFIGURATION 9
#define GET_INTERFACE 10
#define SET_INTERFACE 11
#define SYNCH_FREAME 12
#define DEVICE 1
#define CONFIGURATION 2
#define STRING 3
#define INTERFACE 4
#define ENDPOINT 5
#define DEVICE_REMOTE_WAKUEP 1
#define ENDPOINT_HALT 0
#define D12_STALL 2
#define ENDPOINT0_OUT 0
#define ENDPOINT0_IN 1
#define ENDPOINT1_OUT 2
#define ENDPOINT1_IN 3
#define ENDPOINT2_OUT 4
#define ENDPOINT2_IN 5
#define USB_Device_Setup_Flag 0x40
#define USB_Interface_Setup_Flag 0x41
#define USB_EndPoint_Setup_Flag 0x42
#define USB_SEND_ZERO_Flag 0x43
#define USB_RECIPIENT 0x1F
#define USB_RECIPIENT_DEVICE 0x00
#define USB_RECIPIENT_INTERFACE 0x01
#define USB_RECIPIENT_ENDPOINT 0x02
#define USB_REQUEST_TYPE_MASK 0x60
#define USB_STANDARD_REQUEST 0x00
#define USB_CLASS_REQUEST 0x20
#define USB_VENDOR_REQUEST 0x40
#define USB_REQUEST_MASK 0x0F
#define DEVICE_ADDRESS_MASK 0x7F
#define USB_SETUPPACKET 0x21
/********************************************/
typedef struct mDEVICE_REQUEST
{
alt_u8 bmRequestType;
alt_u8 bRequest;
alt_u16 wValue;
alt_u16 wIndex;
alt_u16 wLength;
} DEVICE_REQUEST,*pDEVICE_REQUEST;
/***********D12初始化********************/
void USB_Port_Init(void); //初始化usb端口
/**********D12操作程序*****************/
alt_u16 D12RdChipId(void); //讀取D12 ID
void USB_Connect(alt_u8 mMode,alt_u8 mClk); //USB連接函數(shù)
void USB_SetAddr_Enable(alt_u8 mAddr,alt_u8 mEnable); //設置USB地址使能
void USB_SetEndPoint_Enable(alt_u8 mEnable); //設置端點使能
void USB_SetEndPoint_Status(alt_u8 mEndPoint,alt_u8 mStall); //設置端點狀態(tài)
alt_u8 USB_GetEndPoint_Status(alt_u8 mEndPoint); //獲取端點狀態(tài)
void USB_SetDMA_Mode(alt_u8 mMode); //設置DMA模式
alt_u16 USB_Read_INT_Flag(void); //讀中斷標志
alt_u8 USB_Read_LastStatus(alt_u8 mEndPoint); //讀最后處理狀態(tài)寄存器
alt_u8 USB_Select_EndPoint(alt_u8 mEndPoint); //選擇端點
alt_u8 USB_Read_EndPoint_Buff(alt_u8 mEndPoint,alt_u8 mLen,alt_u8 *mBuff); //讀緩沖區(qū)
void USB_Write_EndPoint_Buff(alt_u8 mEndPoint,alt_u8 mLen,alt_u8 *mBuff); //寫緩沖區(qū)
void USB_EndPoint_Setup_Ack(alt_u8 mEndPoint); //SetUp包應答
void USB_Stall(void); //設備停止
/**************端點輸入輸出操作***************/
void USB_EndPoint0_IN(void);
void USB_EndPoint0_OUT(void);
void USB_EndPoint1_IN(void);
void USB_EndPoint1_OUT(void);
void USB_EndPoint2_IN(void);
void USB_EndPoint2_OUT(void);
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -