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