?? usb.h
字號:
#define SETUP_RECEIVED_MASK (1 << SETUP_RECEIVED)
#define IN_RECEIVED_MASK (1 << IN_RECEIVED)
#define OUT_RECEIVED_MASK (1 << OUT_RECEIVED)
#define DATAVALID 0x40
#define COUNT_MASK 0x0F
/********************************************************************************/
/* 定義標準的設備描述符結構 */
/********************************************************************************/
typedef struct _descript_device
{ unsigned char length; //* 設備描述符的字節數大小
unsigned char desciptor_type; //* 設備描述符類型編號
unsigned char usb_version_lo; //* USB版本號
unsigned char usb_version_hi;
unsigned char device_class; //* USB分配的設備類代碼
unsigned char device_subclass; //* USB分配的子類代碼
unsigned char device_protocol; //* USB分配的設備協議代碼
unsigned char max_packet_size; //* 端點0的最大包大小
unsigned char vendor_lo; //* 廠商編號
unsigned char vendor_hi;
unsigned char product_bcd_lo; //* 產品編號
unsigned char product_bcd_hi;
unsigned char device_bcd_lo; //* 設備出廠編號
unsigned char device_bcd_hi;
unsigned char manufacturer; //* 設備廠商字符串的索引
unsigned char product_index; //* 描述產品字符串的索引
unsigned char serial_index; //* 描述設備序列號字符串的索引
unsigned char configure_number; //* 可能的配置數量
}st_descript_device;
/********************************************************************************/
/* 定義標準的配置描述符結構 */
/********************************************************************************/
typedef struct _descript_configure
{ unsigned char length; //* 配置描述符的字節數大小
unsigned char desciptor_type; //* 配置描述符類型編號
unsigned char total_length_lo; //* 此配置返回的所有數據大小
unsigned char total_length_hi;
unsigned char number_interface; //* 此配置所支持的接口數量
unsigned char configure_value; //* Set_Configuration命令所需要的參數值
unsigned char configure_index; //* 描述該配置的字符串的索引值
unsigned char attributes; //* 供電模式的選擇
unsigned char max_power; //* 設備從總線提取的最大電流
}st_descript_configure;
/********************************************************************************/
/* 定義標準的接口描述符結構 */
/********************************************************************************/
typedef struct _descript_interface
{ unsigned char length; //* 接口描述符的字節數大小
unsigned char desciptor_type; //* 接口描述符的類型編號
unsigned char interface_code; //* 該接口的編號
unsigned char alternate_setting; //* 備用的接口描述符編號
unsigned char number_endpoints; //* 該接口使用的端點數,不包括端點0
unsigned char interface_class; //* 接口類型
unsigned char interface_subclass; //* 接口子類型
unsigned char interface_protocol; //* 接口遵循的協議
unsigned char interface_index; //* 描述該接口的字符串索引值
}st_descript_interface;
/********************************************************************************/
/* 定義標準的端點描述符結構 */
/********************************************************************************/
typedef struct _descript_endpoint
{ unsigned char length; //* 端點描述符字節數大小
unsigned char desciptor_type; //* 端點描述符類型編號
unsigned char endpoint_address; //* 端點地址及輸入輸出屬性
unsigned char attributes; //* 端點的傳輸類型屬性
unsigned char max_packet_lo; //* 端點收、發的最大包大小
unsigned char max_packet_hi;
unsigned char interval; //* 主機查詢端點的時間間隔
}st_descript_endpoint;
/********************************************************************************/
/* HID描述符中的下級描述符號 */
/********************************************************************************/
typedef struct _desc_subhid
{ unsigned char desciptor_type; //* 下級描述符的類型編號
unsigned char descriptor_length_lo; //* 下級描述符的長度
unsigned char descriptor_length_hi; //* 下級描述符的長度
}st_desc_subhid;
/********************************************************************************/
/* 定義HID描述符結構 */
/********************************************************************************/
typedef struct _descript_hid
{ unsigned char length; //* HID描述符字節數大小
unsigned char desciptor_type; //* 類型
unsigned char HID_bcd_lo; //* 版本號低字節
unsigned char HID_bcd_hi; //* 版本號高字節
unsigned char country_code; //* 國家代碼
unsigned char number_descriptors; //* 描述符個數
st_desc_subhid HID_subdescriptor[NUM_SUB_DESCRIPTORS];
}st_descript_hid;
/********************************************************************************/
/* 定義配置/接口/端點等描述符結構體/ */
/********************************************************************************/
typedef struct _all_confiure
{ st_descript_configure descriptor_configuration;
st_descript_interface descriptor_interface;
st_descript_hid descriptor_hid;
st_descript_endpoint descriptor_endpoint[ENDPOINT_NUMBER];
}st_all_confiure;
/********************************************************************************/
/* 字符串描述符結構 */
/********************************************************************************/
typedef struct _descript_string
{ unsigned char length; //* 字符串描述符的字節數大小
unsigned char desciptor_type; //* 字符串描述符類型編號
unsigned char string[36]; //* UNICODE編碼的字符串
}st_descript_string;
/********************************************************************************/
/* USB的發送緩沖區結構 */
/********************************************************************************/
typedef struct
{ const char * cdata; //* pointer to the data
signed char * mdata; //* pointer to the data
signed char length; //* length of data remaining to be returned
signed char cflag; //* 判斷是ROM數據還是RAM數據標記,ROM=0x1
}st_usb_transmit;
extern st_usb_transmit usb_transmit;
extern unsigned char ctrl_logic_bit;
void usb_pro_setup_request(void);
void usb_pro_in_request(void);
void usb_main_tasking(void);
void usb_ret_initialize(void);
void usb_main_process(void);
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -