/* * Author: Pawel Jablonski * E-mail: pj@xirx.net * WWW: xirx.net * GIT: git.xirx.net * * License: You can use this code however you like * but leave information about the original author. * Code is free for non-commercial and commercial use. */ #include #include #include #include #include #include "usbd/usbd_desc.h" #include "usbd/usbd_msc.h" #include "usbd/usbd_storage_if.h" #include "usb.h" extern USBD_StorageTypeDef USBD_MSC_Fops; //!< USB MSC function handlers extern PCD_HandleTypeDef USBD_PCD_Handle; //!< USB PCD function handlers static USBD_HandleTypeDef usbHandle; //!< USB handle //! Init USB and set up USB MSC void usbInit(void) { __HAL_RCC_GPIOA_CLK_ENABLE(); USBD_Init(&usbHandle, &USBD_MSC_Desc, 0); USBD_RegisterClass(&usbHandle, &USBD_MSC); USBD_MSC_RegisterStorage(&usbHandle, &USBD_MSC_Fops); USBD_Start(&usbHandle); } //! Take care of the USB IRQ event void USB_IRQHandler(void) { HAL_PCD_IRQHandler(&USBD_PCD_Handle); }