/* USER CODE BEGIN Header */ /** ****************************************************************************** * @file : usb_device.c * @version : v1.0_Cube * @brief : This file implements the USB Device ****************************************************************************** * @attention * *

© Copyright (c) 2019 STMicroelectronics. * All rights reserved.

* * This software component is licensed by ST under Ultimate Liberty license * SLA0044, the "License"; You may not use this file except in compliance with * the License. You may obtain a copy of the License at: * www.st.com/SLA0044 * ****************************************************************************** */ /* USER CODE END Header */ /* Includes ------------------------------------------------------------------*/ #include "usb_device.h" #include "usbd_core.h" #include "usbd_desc.h" #include "usbd_dfu.h" #include "usbd_dfu_if.h" /* USER CODE BEGIN Includes */ #include "stm32h7xx_hal.h" #include "pin_config.h" /* USER CODE END Includes */ /* USER CODE BEGIN PV */ /* Private variables ---------------------------------------------------------*/ extern uint8_t g_DFU; /* USER CODE END PV */ /* USER CODE BEGIN PFP */ /* Private function prototypes -----------------------------------------------*/ /* USER CODE END PFP */ /* USB Device Core handle declaration. */ USBD_HandleTypeDef hUsbDeviceFS; /* * -- Insert your variables declaration here -- */ /* USER CODE BEGIN 0 */ /* USER CODE END 0 */ /* * -- Insert your external function declaration here -- */ /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /** * Init USB device Library, add supported class and start the library * @retval None */ void MX_USB_DEVICE_Init(void) { /* USER CODE BEGIN USB_DEVICE_Init_PreTreatment */ if(HAL_GPIO_ReadPin(BTN_PORT, BTN_PIN) == BTN_INACTIVE_STATE && g_DFU == 0) return; g_DFU = 1; /* USER CODE END USB_DEVICE_Init_PreTreatment */ /* Init Device Library, add supported class and start the library. */ if (USBD_Init(&hUsbDeviceFS, &FS_Desc, DEVICE_FS) != USBD_OK) { Error_Handler(); } if (USBD_RegisterClass(&hUsbDeviceFS, &USBD_DFU) != USBD_OK) { Error_Handler(); } if (USBD_DFU_RegisterMedia(&hUsbDeviceFS, &USBD_DFU_fops_FS) != USBD_OK) { Error_Handler(); } if (USBD_Start(&hUsbDeviceFS) != USBD_OK) { Error_Handler(); } /* USER CODE BEGIN USB_DEVICE_Init_PostTreatment */ HAL_PWREx_EnableUSBVoltageDetector(); /* USER CODE END USB_DEVICE_Init_PostTreatment */ } /** * @} */ /** * @} */ /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/