]> git.sur5r.net Git - freertos/blobdiff - FreeRTOS/Demo/CORTEX_MPU_STM32L4_Discovery_GCC_IAR_Keil/ST_Code/Core/Src/stm32l4xx_hal_msp.c
Rename STM32Cube to GCC for STM32L4 Discovery projects as GCC is
[freertos] / FreeRTOS / Demo / CORTEX_MPU_STM32L4_Discovery_GCC_IAR_Keil / ST_Code / Core / Src / stm32l4xx_hal_msp.c
diff --git a/FreeRTOS/Demo/CORTEX_MPU_STM32L4_Discovery_GCC_IAR_Keil/ST_Code/Core/Src/stm32l4xx_hal_msp.c b/FreeRTOS/Demo/CORTEX_MPU_STM32L4_Discovery_GCC_IAR_Keil/ST_Code/Core/Src/stm32l4xx_hal_msp.c
new file mode 100644 (file)
index 0000000..a8cea7a
--- /dev/null
@@ -0,0 +1,562 @@
+/* USER CODE BEGIN Header */\r
+/**\r
+  ******************************************************************************\r
+  * File Name          : stm32l4xx_hal_msp.c\r
+  * Description        : This file provides code for the MSP Initialization \r
+  *                      and de-Initialization codes.\r
+  ******************************************************************************\r
+  * @attention\r
+  *\r
+  * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.\r
+  * All rights reserved.</center></h2>\r
+  *\r
+  * This software component is licensed by ST under BSD 3-Clause license,\r
+  * the "License"; You may not use this file except in compliance with the\r
+  * License. You may obtain a copy of the License at:\r
+  *                        opensource.org/licenses/BSD-3-Clause\r
+  *\r
+  ******************************************************************************\r
+  */\r
+/* USER CODE END Header */\r
+\r
+/* Includes ------------------------------------------------------------------*/\r
+#include "main.h"\r
+/* USER CODE BEGIN Includes */\r
+\r
+/* USER CODE END Includes */\r
+\r
+/* Private typedef -----------------------------------------------------------*/\r
+/* USER CODE BEGIN TD */\r
+\r
+/* USER CODE END TD */\r
+\r
+/* Private define ------------------------------------------------------------*/\r
+/* USER CODE BEGIN Define */\r
\r
+/* USER CODE END Define */\r
+\r
+/* Private macro -------------------------------------------------------------*/\r
+/* USER CODE BEGIN Macro */\r
+\r
+/* USER CODE END Macro */\r
+\r
+/* Private variables ---------------------------------------------------------*/\r
+/* USER CODE BEGIN PV */\r
+\r
+/* USER CODE END PV */\r
+\r
+/* Private function prototypes -----------------------------------------------*/\r
+/* USER CODE BEGIN PFP */\r
+\r
+/* USER CODE END PFP */\r
+\r
+/* External functions --------------------------------------------------------*/\r
+/* USER CODE BEGIN ExternalFunctions */\r
+\r
+/* USER CODE END ExternalFunctions */\r
+\r
+/* USER CODE BEGIN 0 */\r
+\r
+/* USER CODE END 0 */\r
+/**\r
+  * Initializes the Global MSP.\r
+  */\r
+void HAL_MspInit(void)\r
+{\r
+  /* USER CODE BEGIN MspInit 0 */\r
+\r
+  /* USER CODE END MspInit 0 */\r
+\r
+  __HAL_RCC_SYSCFG_CLK_ENABLE();\r
+  __HAL_RCC_PWR_CLK_ENABLE();\r
+\r
+  /* System interrupt init*/\r
+\r
+  /* USER CODE BEGIN MspInit 1 */\r
+\r
+  /* USER CODE END MspInit 1 */\r
+}\r
+\r
+static uint32_t DFSDM1_Init = 0;\r
+/**\r
+* @brief DFSDM_Channel MSP Initialization\r
+* This function configures the hardware resources used in this example\r
+* @param hdfsdm_channel: DFSDM_Channel handle pointer\r
+* @retval None\r
+*/\r
+void HAL_DFSDM_ChannelMspInit(DFSDM_Channel_HandleTypeDef* hdfsdm_channel)\r
+{\r
+  GPIO_InitTypeDef GPIO_InitStruct = {0};\r
+  if(DFSDM1_Init == 0)\r
+  {\r
+  /* USER CODE BEGIN DFSDM1_MspInit 0 */\r
+\r
+  /* USER CODE END DFSDM1_MspInit 0 */\r
+    /* Peripheral clock enable */\r
+    __HAL_RCC_DFSDM1_CLK_ENABLE();\r
+  \r
+    __HAL_RCC_GPIOE_CLK_ENABLE();\r
+    /**DFSDM1 GPIO Configuration    \r
+    PE7     ------> DFSDM1_DATIN2\r
+    PE9     ------> DFSDM1_CKOUT \r
+    */\r
+    GPIO_InitStruct.Pin = DFSDM1_DATIN2_Pin|DFSDM1_CKOUT_Pin;\r
+    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;\r
+    GPIO_InitStruct.Pull = GPIO_NOPULL;\r
+    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;\r
+    GPIO_InitStruct.Alternate = GPIO_AF6_DFSDM1;\r
+    HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);\r
+\r
+  /* USER CODE BEGIN DFSDM1_MspInit 1 */\r
+\r
+  /* USER CODE END DFSDM1_MspInit 1 */\r
+  }\r
+\r
+}\r
+\r
+/**\r
+* @brief DFSDM_Channel MSP De-Initialization\r
+* This function freeze the hardware resources used in this example\r
+* @param hdfsdm_channel: DFSDM_Channel handle pointer\r
+* @retval None\r
+*/\r
+void HAL_DFSDM_ChannelMspDeInit(DFSDM_Channel_HandleTypeDef* hdfsdm_channel)\r
+{\r
+  DFSDM1_Init-- ;\r
+  if(DFSDM1_Init == 0)\r
+    {\r
+  /* USER CODE BEGIN DFSDM1_MspDeInit 0 */\r
+\r
+  /* USER CODE END DFSDM1_MspDeInit 0 */\r
+    /* Peripheral clock disable */\r
+    __HAL_RCC_DFSDM1_CLK_DISABLE();\r
+  \r
+    /**DFSDM1 GPIO Configuration    \r
+    PE7     ------> DFSDM1_DATIN2\r
+    PE9     ------> DFSDM1_CKOUT \r
+    */\r
+    HAL_GPIO_DeInit(GPIOE, DFSDM1_DATIN2_Pin|DFSDM1_CKOUT_Pin);\r
+\r
+  /* USER CODE BEGIN DFSDM1_MspDeInit 1 */\r
+\r
+  /* USER CODE END DFSDM1_MspDeInit 1 */\r
+  }\r
+\r
+}\r
+\r
+/**\r
+* @brief I2C MSP Initialization\r
+* This function configures the hardware resources used in this example\r
+* @param hi2c: I2C handle pointer\r
+* @retval None\r
+*/\r
+void HAL_I2C_MspInit(I2C_HandleTypeDef* hi2c)\r
+{\r
+  GPIO_InitTypeDef GPIO_InitStruct = {0};\r
+  if(hi2c->Instance==I2C2)\r
+  {\r
+  /* USER CODE BEGIN I2C2_MspInit 0 */\r
+\r
+  /* USER CODE END I2C2_MspInit 0 */\r
+  \r
+    __HAL_RCC_GPIOB_CLK_ENABLE();\r
+    /**I2C2 GPIO Configuration    \r
+    PB10     ------> I2C2_SCL\r
+    PB11     ------> I2C2_SDA \r
+    */\r
+    GPIO_InitStruct.Pin = INTERNAL_I2C2_SCL_Pin|INTERNAL_I2C2_SDA_Pin;\r
+    GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;\r
+    GPIO_InitStruct.Pull = GPIO_PULLUP;\r
+    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;\r
+    GPIO_InitStruct.Alternate = GPIO_AF4_I2C2;\r
+    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);\r
+\r
+    /* Peripheral clock enable */\r
+    __HAL_RCC_I2C2_CLK_ENABLE();\r
+  /* USER CODE BEGIN I2C2_MspInit 1 */\r
+\r
+  /* USER CODE END I2C2_MspInit 1 */\r
+  }\r
+\r
+}\r
+\r
+/**\r
+* @brief I2C MSP De-Initialization\r
+* This function freeze the hardware resources used in this example\r
+* @param hi2c: I2C handle pointer\r
+* @retval None\r
+*/\r
+void HAL_I2C_MspDeInit(I2C_HandleTypeDef* hi2c)\r
+{\r
+  if(hi2c->Instance==I2C2)\r
+  {\r
+  /* USER CODE BEGIN I2C2_MspDeInit 0 */\r
+\r
+  /* USER CODE END I2C2_MspDeInit 0 */\r
+    /* Peripheral clock disable */\r
+    __HAL_RCC_I2C2_CLK_DISABLE();\r
+  \r
+    /**I2C2 GPIO Configuration    \r
+    PB10     ------> I2C2_SCL\r
+    PB11     ------> I2C2_SDA \r
+    */\r
+    HAL_GPIO_DeInit(GPIOB, INTERNAL_I2C2_SCL_Pin|INTERNAL_I2C2_SDA_Pin);\r
+\r
+  /* USER CODE BEGIN I2C2_MspDeInit 1 */\r
+\r
+  /* USER CODE END I2C2_MspDeInit 1 */\r
+  }\r
+\r
+}\r
+\r
+/**\r
+* @brief QSPI MSP Initialization\r
+* This function configures the hardware resources used in this example\r
+* @param hqspi: QSPI handle pointer\r
+* @retval None\r
+*/\r
+void HAL_QSPI_MspInit(QSPI_HandleTypeDef* hqspi)\r
+{\r
+  GPIO_InitTypeDef GPIO_InitStruct = {0};\r
+  if(hqspi->Instance==QUADSPI)\r
+  {\r
+  /* USER CODE BEGIN QUADSPI_MspInit 0 */\r
+\r
+  /* USER CODE END QUADSPI_MspInit 0 */\r
+    /* Peripheral clock enable */\r
+    __HAL_RCC_QSPI_CLK_ENABLE();\r
+  \r
+    __HAL_RCC_GPIOE_CLK_ENABLE();\r
+    /**QUADSPI GPIO Configuration    \r
+    PE10     ------> QUADSPI_CLK\r
+    PE11     ------> QUADSPI_NCS\r
+    PE12     ------> QUADSPI_BK1_IO0\r
+    PE13     ------> QUADSPI_BK1_IO1\r
+    PE14     ------> QUADSPI_BK1_IO2\r
+    PE15     ------> QUADSPI_BK1_IO3 \r
+    */\r
+    GPIO_InitStruct.Pin = QUADSPI_CLK_Pin|QUADSPI_NCS_Pin|OQUADSPI_BK1_IO0_Pin|QUADSPI_BK1_IO1_Pin \r
+                          |QUAD_SPI_BK1_IO2_Pin|QUAD_SPI_BK1_IO3_Pin;\r
+    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;\r
+    GPIO_InitStruct.Pull = GPIO_NOPULL;\r
+    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;\r
+    GPIO_InitStruct.Alternate = GPIO_AF10_QUADSPI;\r
+    HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);\r
+\r
+  /* USER CODE BEGIN QUADSPI_MspInit 1 */\r
+\r
+  /* USER CODE END QUADSPI_MspInit 1 */\r
+  }\r
+\r
+}\r
+\r
+/**\r
+* @brief QSPI MSP De-Initialization\r
+* This function freeze the hardware resources used in this example\r
+* @param hqspi: QSPI handle pointer\r
+* @retval None\r
+*/\r
+void HAL_QSPI_MspDeInit(QSPI_HandleTypeDef* hqspi)\r
+{\r
+  if(hqspi->Instance==QUADSPI)\r
+  {\r
+  /* USER CODE BEGIN QUADSPI_MspDeInit 0 */\r
+\r
+  /* USER CODE END QUADSPI_MspDeInit 0 */\r
+    /* Peripheral clock disable */\r
+    __HAL_RCC_QSPI_CLK_DISABLE();\r
+  \r
+    /**QUADSPI GPIO Configuration    \r
+    PE10     ------> QUADSPI_CLK\r
+    PE11     ------> QUADSPI_NCS\r
+    PE12     ------> QUADSPI_BK1_IO0\r
+    PE13     ------> QUADSPI_BK1_IO1\r
+    PE14     ------> QUADSPI_BK1_IO2\r
+    PE15     ------> QUADSPI_BK1_IO3 \r
+    */\r
+    HAL_GPIO_DeInit(GPIOE, QUADSPI_CLK_Pin|QUADSPI_NCS_Pin|OQUADSPI_BK1_IO0_Pin|QUADSPI_BK1_IO1_Pin \r
+                          |QUAD_SPI_BK1_IO2_Pin|QUAD_SPI_BK1_IO3_Pin);\r
+\r
+  /* USER CODE BEGIN QUADSPI_MspDeInit 1 */\r
+\r
+  /* USER CODE END QUADSPI_MspDeInit 1 */\r
+  }\r
+\r
+}\r
+\r
+/**\r
+* @brief SPI MSP Initialization\r
+* This function configures the hardware resources used in this example\r
+* @param hspi: SPI handle pointer\r
+* @retval None\r
+*/\r
+void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)\r
+{\r
+  GPIO_InitTypeDef GPIO_InitStruct = {0};\r
+  if(hspi->Instance==SPI3)\r
+  {\r
+  /* USER CODE BEGIN SPI3_MspInit 0 */\r
+\r
+  /* USER CODE END SPI3_MspInit 0 */\r
+    /* Peripheral clock enable */\r
+    __HAL_RCC_SPI3_CLK_ENABLE();\r
+  \r
+    __HAL_RCC_GPIOC_CLK_ENABLE();\r
+    /**SPI3 GPIO Configuration    \r
+    PC10     ------> SPI3_SCK\r
+    PC11     ------> SPI3_MISO\r
+    PC12     ------> SPI3_MOSI \r
+    */\r
+    GPIO_InitStruct.Pin = INTERNAL_SPI3_SCK_Pin|INTERNAL_SPI3_MISO_Pin|INTERNAL_SPI3_MOSI_Pin;\r
+    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;\r
+    GPIO_InitStruct.Pull = GPIO_NOPULL;\r
+    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;\r
+    GPIO_InitStruct.Alternate = GPIO_AF6_SPI3;\r
+    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);\r
+\r
+  /* USER CODE BEGIN SPI3_MspInit 1 */\r
+\r
+  /* USER CODE END SPI3_MspInit 1 */\r
+  }\r
+\r
+}\r
+\r
+/**\r
+* @brief SPI MSP De-Initialization\r
+* This function freeze the hardware resources used in this example\r
+* @param hspi: SPI handle pointer\r
+* @retval None\r
+*/\r
+void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)\r
+{\r
+  if(hspi->Instance==SPI3)\r
+  {\r
+  /* USER CODE BEGIN SPI3_MspDeInit 0 */\r
+\r
+  /* USER CODE END SPI3_MspDeInit 0 */\r
+    /* Peripheral clock disable */\r
+    __HAL_RCC_SPI3_CLK_DISABLE();\r
+  \r
+    /**SPI3 GPIO Configuration    \r
+    PC10     ------> SPI3_SCK\r
+    PC11     ------> SPI3_MISO\r
+    PC12     ------> SPI3_MOSI \r
+    */\r
+    HAL_GPIO_DeInit(GPIOC, INTERNAL_SPI3_SCK_Pin|INTERNAL_SPI3_MISO_Pin|INTERNAL_SPI3_MOSI_Pin);\r
+\r
+  /* USER CODE BEGIN SPI3_MspDeInit 1 */\r
+\r
+  /* USER CODE END SPI3_MspDeInit 1 */\r
+  }\r
+\r
+}\r
+\r
+/**\r
+* @brief UART MSP Initialization\r
+* This function configures the hardware resources used in this example\r
+* @param huart: UART handle pointer\r
+* @retval None\r
+*/\r
+void HAL_UART_MspInit(UART_HandleTypeDef* huart)\r
+{\r
+  GPIO_InitTypeDef GPIO_InitStruct = {0};\r
+  if(huart->Instance==USART1)\r
+  {\r
+  /* USER CODE BEGIN USART1_MspInit 0 */\r
+\r
+  /* USER CODE END USART1_MspInit 0 */\r
+    /* Peripheral clock enable */\r
+    __HAL_RCC_USART1_CLK_ENABLE();\r
+  \r
+    __HAL_RCC_GPIOB_CLK_ENABLE();\r
+    /**USART1 GPIO Configuration    \r
+    PB6     ------> USART1_TX\r
+    PB7     ------> USART1_RX \r
+    */\r
+    GPIO_InitStruct.Pin = ST_LINK_UART1_TX_Pin|ST_LINK_UART1_RX_Pin;\r
+    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;\r
+    GPIO_InitStruct.Pull = GPIO_NOPULL;\r
+    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;\r
+    GPIO_InitStruct.Alternate = GPIO_AF7_USART1;\r
+    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);\r
+\r
+  /* USER CODE BEGIN USART1_MspInit 1 */\r
+\r
+  /* USER CODE END USART1_MspInit 1 */\r
+  }\r
+  else if(huart->Instance==USART3)\r
+  {\r
+  /* USER CODE BEGIN USART3_MspInit 0 */\r
+\r
+  /* USER CODE END USART3_MspInit 0 */\r
+    /* Peripheral clock enable */\r
+    __HAL_RCC_USART3_CLK_ENABLE();\r
+  \r
+    __HAL_RCC_GPIOD_CLK_ENABLE();\r
+    /**USART3 GPIO Configuration    \r
+    PD8     ------> USART3_TX\r
+    PD9     ------> USART3_RX \r
+    */\r
+    GPIO_InitStruct.Pin = INTERNAL_UART3_TX_Pin|INTERNAL_UART3_RX_Pin;\r
+    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;\r
+    GPIO_InitStruct.Pull = GPIO_NOPULL;\r
+    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;\r
+    GPIO_InitStruct.Alternate = GPIO_AF7_USART3;\r
+    HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);\r
+\r
+  /* USER CODE BEGIN USART3_MspInit 1 */\r
+\r
+  /* USER CODE END USART3_MspInit 1 */\r
+  }\r
+\r
+}\r
+\r
+/**\r
+* @brief UART MSP De-Initialization\r
+* This function freeze the hardware resources used in this example\r
+* @param huart: UART handle pointer\r
+* @retval None\r
+*/\r
+void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)\r
+{\r
+  if(huart->Instance==USART1)\r
+  {\r
+  /* USER CODE BEGIN USART1_MspDeInit 0 */\r
+\r
+  /* USER CODE END USART1_MspDeInit 0 */\r
+    /* Peripheral clock disable */\r
+    __HAL_RCC_USART1_CLK_DISABLE();\r
+  \r
+    /**USART1 GPIO Configuration    \r
+    PB6     ------> USART1_TX\r
+    PB7     ------> USART1_RX \r
+    */\r
+    HAL_GPIO_DeInit(GPIOB, ST_LINK_UART1_TX_Pin|ST_LINK_UART1_RX_Pin);\r
+\r
+  /* USER CODE BEGIN USART1_MspDeInit 1 */\r
+\r
+  /* USER CODE END USART1_MspDeInit 1 */\r
+  }\r
+  else if(huart->Instance==USART3)\r
+  {\r
+  /* USER CODE BEGIN USART3_MspDeInit 0 */\r
+\r
+  /* USER CODE END USART3_MspDeInit 0 */\r
+    /* Peripheral clock disable */\r
+    __HAL_RCC_USART3_CLK_DISABLE();\r
+  \r
+    /**USART3 GPIO Configuration    \r
+    PD8     ------> USART3_TX\r
+    PD9     ------> USART3_RX \r
+    */\r
+    HAL_GPIO_DeInit(GPIOD, INTERNAL_UART3_TX_Pin|INTERNAL_UART3_RX_Pin);\r
+\r
+  /* USER CODE BEGIN USART3_MspDeInit 1 */\r
+\r
+  /* USER CODE END USART3_MspDeInit 1 */\r
+  }\r
+\r
+}\r
+\r
+/**\r
+* @brief PCD MSP Initialization\r
+* This function configures the hardware resources used in this example\r
+* @param hpcd: PCD handle pointer\r
+* @retval None\r
+*/\r
+void HAL_PCD_MspInit(PCD_HandleTypeDef* hpcd)\r
+{\r
+  GPIO_InitTypeDef GPIO_InitStruct = {0};\r
+  if(hpcd->Instance==USB_OTG_FS)\r
+  {\r
+  /* USER CODE BEGIN USB_OTG_FS_MspInit 0 */\r
+\r
+  /* USER CODE END USB_OTG_FS_MspInit 0 */\r
+  \r
+    __HAL_RCC_GPIOA_CLK_ENABLE();\r
+    /**USB_OTG_FS GPIO Configuration    \r
+    PA9     ------> USB_OTG_FS_VBUS\r
+    PA10     ------> USB_OTG_FS_ID\r
+    PA11     ------> USB_OTG_FS_DM\r
+    PA12     ------> USB_OTG_FS_DP \r
+    */\r
+    GPIO_InitStruct.Pin = USB_OTG_FS_VBUS_Pin;\r
+    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;\r
+    GPIO_InitStruct.Pull = GPIO_NOPULL;\r
+    HAL_GPIO_Init(USB_OTG_FS_VBUS_GPIO_Port, &GPIO_InitStruct);\r
+\r
+    GPIO_InitStruct.Pin = USB_OTG_FS_ID_Pin|USB_OTG_FS_DM_Pin|USB_OTG_FS_DP_Pin;\r
+    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;\r
+    GPIO_InitStruct.Pull = GPIO_NOPULL;\r
+    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;\r
+    GPIO_InitStruct.Alternate = GPIO_AF10_OTG_FS;\r
+    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);\r
+\r
+    /* Peripheral clock enable */\r
+    __HAL_RCC_USB_OTG_FS_CLK_ENABLE();\r
+\r
+    /* Enable VDDUSB */\r
+    if(__HAL_RCC_PWR_IS_CLK_DISABLED())\r
+    {\r
+      __HAL_RCC_PWR_CLK_ENABLE();\r
+      HAL_PWREx_EnableVddUSB();\r
+      __HAL_RCC_PWR_CLK_DISABLE();\r
+    }\r
+    else\r
+    {\r
+      HAL_PWREx_EnableVddUSB();\r
+    }\r
+  /* USER CODE BEGIN USB_OTG_FS_MspInit 1 */\r
+\r
+  /* USER CODE END USB_OTG_FS_MspInit 1 */\r
+  }\r
+\r
+}\r
+\r
+/**\r
+* @brief PCD MSP De-Initialization\r
+* This function freeze the hardware resources used in this example\r
+* @param hpcd: PCD handle pointer\r
+* @retval None\r
+*/\r
+void HAL_PCD_MspDeInit(PCD_HandleTypeDef* hpcd)\r
+{\r
+  if(hpcd->Instance==USB_OTG_FS)\r
+  {\r
+  /* USER CODE BEGIN USB_OTG_FS_MspDeInit 0 */\r
+\r
+  /* USER CODE END USB_OTG_FS_MspDeInit 0 */\r
+    /* Peripheral clock disable */\r
+    __HAL_RCC_USB_OTG_FS_CLK_DISABLE();\r
+  \r
+    /**USB_OTG_FS GPIO Configuration    \r
+    PA9     ------> USB_OTG_FS_VBUS\r
+    PA10     ------> USB_OTG_FS_ID\r
+    PA11     ------> USB_OTG_FS_DM\r
+    PA12     ------> USB_OTG_FS_DP \r
+    */\r
+    HAL_GPIO_DeInit(GPIOA, USB_OTG_FS_VBUS_Pin|USB_OTG_FS_ID_Pin|USB_OTG_FS_DM_Pin|USB_OTG_FS_DP_Pin);\r
+\r
+    /* Disable VDDUSB */\r
+    if(__HAL_RCC_PWR_IS_CLK_DISABLED())\r
+    {\r
+      __HAL_RCC_PWR_CLK_ENABLE();\r
+      HAL_PWREx_DisableVddUSB();\r
+      __HAL_RCC_PWR_CLK_DISABLE();\r
+    }\r
+    else\r
+    {\r
+      HAL_PWREx_DisableVddUSB();\r
+    }\r
+  /* USER CODE BEGIN USB_OTG_FS_MspDeInit 1 */\r
+\r
+  /* USER CODE END USB_OTG_FS_MspDeInit 1 */\r
+  }\r
+\r
+}\r
+\r
+/* USER CODE BEGIN 1 */\r
+\r
+/* USER CODE END 1 */\r
+\r
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/\r