1 #ifndef __SWM341_USBH_H__
2 #define __SWM341_USBH_H__
3 
4 #include <stdint.h>
5 
6 
7 typedef enum {
8     USBR_ACK = 0,
9     USBR_ERR_CRC,
10     USBR_ERR_STUFF,
11     USBR_ERR_TOGGLE,
12     USBR_STALL,
13     USBR_TIMEOUT,
14     USBR_ERR_PID,           // PID CHECK FAILED
15     USBR_UNEXPECTED_PID,
16     USBR_DATA_OVERRUN,
17     USBR_DATA_UNDERRUN,
18     USBR_NAK,
19     USBR_FRAME_OVERRUN,
20     USBR_BUFFER_OVERRUN,
21     USBR_BUFFER_UNDERRUN,
22     USBR_ERROR = 0xFE,
23     USBR_NO = 0xFF          // 还未收到设备响应
24 } USBH_Resp;
25 
26 
27 void USBH_HW_Init(void);
28 void USBH_ResetPort(void);
29 uint32_t USBH_IsDeviceConnected(void);
30 uint32_t USBH_IsPortEnabled(void);
31 uint32_t USBH_GetDeviceSpeed(void);
32 
33 USBH_Resp USBH_State(void);
34 
35 uint32_t USBH_SendSetupPacket(uint8_t addr, uint8_t *data, uint16_t size);
36 uint32_t USBH_SendOutPacket(uint8_t addr, uint8_t endp, uint8_t DATAx, uint8_t *data, uint16_t size);
37 uint32_t USBH_SendInPacket(uint8_t addr, uint8_t endp, uint8_t DATAx, uint16_t size);
38 
39 uint32_t USBH_ReadRxBuffer(uint8_t *buff, uint32_t size);
40 
41 
42 #endif // __SWM341_USBH_H__
43