# mios32/STM32F4xx/mios32_usb.c File Reference

`#include <mios32.h>`
`#include <usbd_core.h>`
`#include <usbd_def.h>`
`#include <usbd_desc.h>`
`#include <usbd_req.h>`
`#include <usbd_conf.h>`
`#include <usbh_core.h>`
`#include <usbh_conf.h>`
`#include <usb_otg.h>`
`#include <usb_dcd_int.h>`
`#include <usb_hcd_int.h>`
`#include <usb_regs.h>`
`#include <string.h>`

## Defines
#define | DSCR_DEVICE 1
#define | DSCR_CONFIG 2
#define | DSCR_STRING 3
#define | DSCR_INTRFC 4
#define | DSCR_ENDPNT 5
#define | CS_INTERFACE 0x24
#define | CS_ENDPOINT 0x25
#define | MIOS32_USB_MIDI_NUM_INTERFACES 2
#define | MIOS32_USB_MIDI_AC_INTERFACE_IX 0x00
#define | MIOS32_USB_MIDI_AS_INTERFACE_IX 0x01
#define | MIOS32_USB_MIDI_INTERFACE_OFFSET 2
#define | MIOS32_USB_MIDI_SIZ_CLASS_DESC (7+MIOS32_USB_MIDI_NUM_PORTS*(6+6+9+9)+9+(4+MIOS32_USB_MIDI_NUM_PORTS)+9+(4+MIOS32_USB_MIDI_NUM_PORTS))
#define | MIOS32_USB_MIDI_SIZ_CONFIG_DESC (9+MIOS32_USB_MIDI_USE_AC_INTERFACE*(9+9)+MIOS32_USB_MIDI_SIZ_CLASS_DESC)
#define | MIOS32_USB_MIDI_SIZ_CLASS_DESC_SINGLE_USB (7+1*(6+6+9+9)+9+(4+1)+9+(4+1))
#define | MIOS32_USB_MIDI_SIZ_CONFIG_DESC_SINGLE_USB (9+MIOS32_USB_MIDI_USE_AC_INTERFACE*(9+9)+MIOS32_USB_MIDI_SIZ_CLASS_DESC)
#define | MIOS32_USB_COM_NUM_INTERFACES 2
#define | MIOS32_USB_COM_SIZ_CONFIG_DESC 58
#define | MIOS32_USB_COM_CC_INTERFACE_IX (MIOS32_USB_MIDI_INTERFACE_OFFSET + 0x00)
#define | MIOS32_USB_COM_CD_INTERFACE_IX (MIOS32_USB_MIDI_INTERFACE_OFFSET + 0x01)
#define | MIOS32_USB_COM_INTERFACE_OFFSET (MIOS32_USB_MIDI_INTERFACE_OFFSET + 2)
#define | MIOS32_USB_NUM_INTERFACES (MIOS32_USB_MIDI_NUM_INTERFACES + MIOS32_USB_COM_NUM_INTERFACES)
#define | MIOS32_USB_SIZ_CONFIG_DESC (9 + MIOS32_USB_MIDI_SIZ_CONFIG_DESC + MIOS32_USB_COM_SIZ_CONFIG_DESC)
#define | MIOS32_USB_SIZ_CONFIG_DESC_SINGLE_USB (9 + MIOS32_USB_MIDI_SIZ_CONFIG_DESC_SINGLE_USB)
#define | MIOS32_USB_SIZ_DEVICE_DESC 18
## Functions
void | USB_OTG_BSP_Init (USB_OTG_CORE_HANDLE *pdev)
| USB_OTG_BSP_Init Initilizes BSP configurations.
void | USB_OTG_BSP_EnableInterrupt (USB_OTG_CORE_HANDLE *pdev)
| USB_OTG_BSP_EnableInterrupt Enabele USB Global interrupt.
void | OTG_FS_IRQHandler (void)
| This function handles OTG_FS Handler.
void | USB_OTG_BSP_uDelay (const uint32_t usec)
| USB_OTG_BSP_uDelay This function provides delay time in micro sec.
void | USB_OTG_BSP_mDelay (const uint32_t msec)
| USB_OTG_BSP_mDelay This function provides delay time in milli sec.
void | USB_OTG_BSP_ConfigVBUS (USB_OTG_CORE_HANDLE *pdev)
| USB_OTG_BSP_ConfigVBUS Configures the IO for the Vbus and OverCurrent.
void | USB_OTG_BSP_DriveVBUS (USB_OTG_CORE_HANDLE *pdev, uint8_t state)
| BSP_Drive_VBUS Drives the Vbus signal through IO.
s32 | MIOS32_USB_Init (u32 mode)
s32 | MIOS32_USB_IsInitialized (void)
s32 | MIOS32_USB_ForceSingleUSB (void)
s32 | MIOS32_USB_ForceDeviceMode (void)
## Variables
__ALIGN_BEGIN USB_OTG_CORE_HANDLE USB_OTG_dev | __ALIGN_END
uint32_t | USB_rx_buffer [MIOS32_USB_MIDI_DATA_OUT_SIZE/4]
const USBH_Class_cb_TypeDef | MIOS32_MIDI_USBH_Callbacks