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 Norimasa Okamoto

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);
 };
 
-