Simple USBHost library for STM32F746NG Discovery board. Only either the Fastspeed or the Highspeed port can be used( not both together)
Dependents: DISCO-F746NG_USB_Host
Fork of KL46Z-USBHost by
Diff: USBHost/TARGET_STM32F7/USBHALHost_F746NG.h
- Revision:
- 25:7d6d9fc471bf
- Parent:
- 24:5396b6a93262
--- a/USBHost/TARGET_STM32F7/USBHALHost_F746NG.h Mon Jun 13 17:21:07 2016 +0000 +++ b/USBHost/TARGET_STM32F7/USBHALHost_F746NG.h Fri Jun 17 09:00:35 2016 +0000 @@ -1,4 +1,3 @@ - #pragma once #include "mbed.h" #include "USBHostTypes.h" @@ -6,29 +5,53 @@ #define USB_FastSpeed 0 #define USB_HighSpeed 1 -class HC { +class HC_FS { static const uint8_t DIR_IN = 1; static const uint8_t DIR_OUT = 0; public: - HC(HCD_HandleTypeDef* hhcd_USB); - HC(HCD_HandleTypeDef* hhcd_USB,int ch); - ~HC(); - HAL_StatusTypeDef Init(int IF_N,uint8_t epnum, uint8_t dev_address, uint8_t speed, uint8_t ep_type, uint16_t mps); - HAL_StatusTypeDef SubmitRequest(int IF_N,uint8_t* pbuff, uint16_t length, bool setup = false); + HC_FS(); + HC_FS(int ch); + ~HC_FS(); + HAL_StatusTypeDef Init(uint8_t epnum, uint8_t dev_address, uint8_t speed, uint8_t ep_type, uint16_t mps); + HAL_StatusTypeDef SubmitRequest(uint8_t* pbuff, uint16_t length, bool setup = false); HCD_URBStateTypeDef GetURBState(); HCD_HCStateTypeDef GetState(); uint32_t GetXferCount(); void SetToggle(uint8_t toggle); static uint8_t slot; - HCD_HandleTypeDef* hc_USB; + private: int _ch; uint8_t _ep_addr; uint8_t _ep_type; }; +class HC_HS { + static const uint8_t DIR_IN = 1; + static const uint8_t DIR_OUT = 0; + +public: + HC_HS(); + HC_HS(int ch); + ~HC_HS(); + HAL_StatusTypeDef Init(uint8_t epnum, uint8_t dev_address, uint8_t speed, uint8_t ep_type, uint16_t mps); + HAL_StatusTypeDef SubmitRequest(uint8_t* pbuff, uint16_t length, bool setup = false); + HCD_URBStateTypeDef GetURBState(); + HCD_HCStateTypeDef GetState(); + uint32_t GetXferCount(); + void SetToggle(uint8_t toggle); + + static uint8_t slot; + +private: + int _ch; + uint8_t _ep_addr; + uint8_t _ep_type; +}; + + class USBHALHost { public: uint8_t LastStatus; @@ -63,8 +86,9 @@ bool wait_attach(); static USBHALHost * instHost; HCD_HandleTypeDef* hhcd; - void usbisr(void); - static void _usbisr(void); + void usbisr_FS(void); + static void _usbisr_FS(void); + void usbisr_HS(void); + static void _usbisr_HS(void); }; -