text: /* USER CODE BEGIN Header */
  /**
    ******************************************************************************
    * @file         stm32h7xx_hal_msp.c
    * @brief        This file provides code for the MSP Initialization
    *               and de-Initialization codes.
    ******************************************************************************
    * @attention
    *
    * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
    * All rights reserved.</center></h2>
    *
    * This software component is licensed by ST under BSD 3-Clause license,
    * the "License"; You may not use this file except in compliance with the
    * License. You may obtain a copy of the License at:
    *                        opensource.org/licenses/BSD-3-Clause
    *
    ******************************************************************************
    */
  /* USER CODE END Header */
  
  /* Includes ------------------------------------------------------------------*/
  #include "main.h"
  /* USER CODE BEGIN Includes */
  
  /* USER CODE END Includes */
  extern DMA_HandleTypeDef hdma_dcmi;
  
  extern DMA_HandleTypeDef hdma_spi2_tx;
  
  /* Private typedef -----------------------------------------------------------*/
  /* USER CODE BEGIN TD */
  
  /* USER CODE END TD */
  
  /* Private define ------------------------------------------------------------*/
  /* USER CODE BEGIN Define */
  
  /* USER CODE END Define */
  
  /* Private macro -------------------------------------------------------------*/
  /* USER CODE BEGIN Macro */
  
  /* USER CODE END Macro */
  
  /* Private variables ---------------------------------------------------------*/
  /* USER CODE BEGIN PV */
  
  /* USER CODE END PV */
  
  /* Private function prototypes -----------------------------------------------*/
  /* USER CODE BEGIN PFP */
  
  /* USER CODE END PFP */
  
  /* External functions --------------------------------------------------------*/
  /* USER CODE BEGIN ExternalFunctions */
  
  /* USER CODE END ExternalFunctions */
  
  /* USER CODE BEGIN 0 */
  
  /* USER CODE END 0 */
  /**
    * Initializes the Global MSP.
    */
  void HAL_MspInit(void)
  {
    /* USER CODE BEGIN MspInit 0 */
  
    /* USER CODE END MspInit 0 */
  
    __HAL_RCC_SYSCFG_CLK_ENABLE();
  
    /* System interrupt init*/
  
    /* USER CODE BEGIN MspInit 1 */
  
    /* USER CODE END MspInit 1 */
  }
  
  /**
  * @brief CRC MSP Initialization
  * This function configures the hardware resources used in this example
  * @param hcrc: CRC handle pointer
  * @retval None
  */
  void HAL_CRC_MspInit(CRC_HandleTypeDef* hcrc)
  {
    if(hcrc->Instance==CRC)
    {
    /* USER CODE BEGIN CRC_MspInit 0 */
  
    /* USER CODE END CRC_MspInit 0 */
      /* Peripheral clock enable */
      __HAL_RCC_CRC_CLK_ENABLE();
    /* USER CODE BEGIN CRC_MspInit 1 */
  
    /* USER CODE END CRC_MspInit 1 */
    }
  
  }
  
  /**
  * @brief CRC MSP De-Initialization
  * This function freeze the hardware resources used in this example
  * @param hcrc: CRC handle pointer
  * @retval None
  */
  void HAL_CRC_MspDeInit(CRC_HandleTypeDef* hcrc)
  {
    if(hcrc->Instance==CRC)
    {
    /* USER CODE BEGIN CRC_MspDeInit 0 */
  
    /* USER CODE END CRC_MspDeInit 0 */
      /* Peripheral clock disable */
      __HAL_RCC_CRC_CLK_DISABLE();
    /* USER CODE BEGIN CRC_MspDeInit 1 */
  
    /* USER CODE END CRC_MspDeInit 1 */
    }
  
  }
  
  /**
  * @brief DCMI MSP Initialization
  * This function configures the hardware resources used in this example
  * @param hdcmi: DCMI handle pointer
  * @retval None
  */
  void HAL_DCMI_MspInit(DCMI_HandleTypeDef* hdcmi)
  {
    GPIO_InitTypeDef GPIO_InitStruct = {0};
    if(hdcmi->Instance==DCMI)
    {
    /* USER CODE BEGIN DCMI_MspInit 0 */
  
    /* USER CODE END DCMI_MspInit 0 */
      /* Peripheral clock enable */
      __HAL_RCC_DCMI_CLK_ENABLE();
  
      __HAL_RCC_GPIOE_CLK_ENABLE();
      __HAL_RCC_GPIOA_CLK_ENABLE();
      __HAL_RCC_GPIOC_CLK_ENABLE();
      __HAL_RCC_GPIOD_CLK_ENABLE();
      __HAL_RCC_GPIOB_CLK_ENABLE();
      /**DCMI GPIO Configuration
      PE4     ------> DCMI_D4
      PE5     ------> DCMI_D6
      PE6     ------> DCMI_D7
      PA4     ------> DCMI_HSYNC
      PA6     ------> DCMI_PIXCLK
      PC6     ------> DCMI_D0
      PC7     ------> DCMI_D1
      PC8     ------> DCMI_D2
      PC9     ------> DCMI_D3
      PD3     ------> DCMI_D5
      PB7     ------> DCMI_VSYNC
      */
      GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6;
      GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
      GPIO_InitStruct.Pull = GPIO_NOPULL;
      GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
      GPIO_InitStruct.Alternate = GPIO_AF13_DCMI;
      HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
  
      GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_6;
      GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
      GPIO_InitStruct.Pull = GPIO_NOPULL;
      GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
      GPIO_InitStruct.Alternate = GPIO_AF13_DCMI;
      HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  
      GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9;
      GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
      GPIO_InitStruct.Pull = GPIO_NOPULL;
      GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
      GPIO_InitStruct.Alternate = GPIO_AF13_DCMI;
      HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
  
      GPIO_InitStruct.Pin = GPIO_PIN_3;
      GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
      GPIO_InitStruct.Pull = GPIO_NOPULL;
      GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
      GPIO_InitStruct.Alternate = GPIO_AF13_DCMI;
      HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
  
      GPIO_InitStruct.Pin = GPIO_PIN_7;
      GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
      GPIO_InitStruct.Pull = GPIO_NOPULL;
      GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
      GPIO_InitStruct.Alternate = GPIO_AF13_DCMI;
      HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  
      /* DCMI DMA Init */
      /* DCMI Init */
      hdma_dcmi.Instance = DMA2_Stream1;
      hdma_dcmi.Init.Request = DMA_REQUEST_DCMI;
      hdma_dcmi.Init.Direction = DMA_PERIPH_TO_MEMORY;
      hdma_dcmi.Init.PeriphInc = DMA_PINC_DISABLE;
      hdma_dcmi.Init.MemInc = DMA_MINC_ENABLE;
      hdma_dcmi.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD;
      hdma_dcmi.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
      hdma_dcmi.Init.Mode = DMA_CIRCULAR;
      hdma_dcmi.Init.Priority = DMA_PRIORITY_VERY_HIGH;
      hdma_dcmi.Init.FIFOMode = DMA_FIFOMODE_ENABLE;
      hdma_dcmi.Init.FIFOThreshold = DMA_FIFO_THRESHOLD_FULL;
      hdma_dcmi.Init.MemBurst = DMA_MBURST_SINGLE;
      hdma_dcmi.Init.PeriphBurst = DMA_PBURST_SINGLE;
      if (HAL_DMA_Init(&hdma_dcmi) != HAL_OK)
      {
        Error_Handler();
      }
  
      __HAL_LINKDMA(hdcmi,DMA_Handle,hdma_dcmi);
  
    /* USER CODE BEGIN DCMI_MspInit 1 */
  
    /* USER CODE END DCMI_MspInit 1 */
    }
  
  }
  
  /**
  * @brief DCMI MSP De-Initialization
  * This function freeze the hardware resources used in this example
  * @param hdcmi: DCMI handle pointer
  * @retval None
  */
  void HAL_DCMI_MspDeInit(DCMI_HandleTypeDef* hdcmi)
  {
    if(hdcmi->Instance==DCMI)
    {
    /* USER CODE BEGIN DCMI_MspDeInit 0 */
  
    /* USER CODE END DCMI_MspDeInit 0 */
      /* Peripheral clock disable */
      __HAL_RCC_DCMI_CLK_DISABLE();
  
      /**DCMI GPIO Configuration
      PE4     ------> DCMI_D4
      PE5     ------> DCMI_D6
      PE6     ------> DCMI_D7
      PA4     ------> DCMI_HSYNC
      PA6     ------> DCMI_PIXCLK
      PC6     ------> DCMI_D0
      PC7     ------> DCMI_D1
      PC8     ------> DCMI_D2
      PC9     ------> DCMI_D3
      PD3     ------> DCMI_D5
      PB7     ------> DCMI_VSYNC
      */
      HAL_GPIO_DeInit(GPIOE, GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6);
  
      HAL_GPIO_DeInit(GPIOA, GPIO_PIN_4|GPIO_PIN_6);
  
      HAL_GPIO_DeInit(GPIOC, GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9);
  
      HAL_GPIO_DeInit(GPIOD, GPIO_PIN_3);
  
      HAL_GPIO_DeInit(GPIOB, GPIO_PIN_7);
  
      /* DCMI DMA DeInit */
      HAL_DMA_DeInit(hdcmi->DMA_Handle);
    /* USER CODE BEGIN DCMI_MspDeInit 1 */
  
    /* USER CODE END DCMI_MspDeInit 1 */
    }
  
  }
  
  /**
  * @brief I2C MSP Initialization
  * This function configures the hardware resources used in this example
  * @param hi2c: I2C handle pointer
  * @retval None
  */
  void HAL_I2C_MspInit(I2C_HandleTypeDef* hi2c)
  {
    GPIO_InitTypeDef GPIO_InitStruct = {0};
    RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
    if(hi2c->Instance==I2C1)
    {
    /* USER CODE BEGIN I2C1_MspInit 0 */
  
    /* USER CODE END I2C1_MspInit 0 */
    /** Initializes the peripherals clock
    */
      PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_I2C1;
      PeriphClkInitStruct.I2c123ClockSelection = RCC_I2C123CLKSOURCE_D2PCLK1;
      if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
      {
        Error_Handler();
      }
  
      __HAL_RCC_GPIOB_CLK_ENABLE();
      /**I2C1 GPIO Configuration
      PB6     ------> I2C1_SCL
      PB9     ------> I2C1_SDA
      */
      GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_9;
      GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
      GPIO_InitStruct.Pull = GPIO_PULLUP;
      GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
      GPIO_InitStruct.Alternate = GPIO_AF4_I2C1;
      HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  
      /* Peripheral clock enable */
      __HAL_RCC_I2C1_CLK_ENABLE();
    /* USER CODE BEGIN I2C1_MspInit 1 */
  
    /* USER CODE END I2C1_MspInit 1 */
    }
  
  }
  
  /**
  * @brief I2C MSP De-Initialization
  * This function freeze the hardware resources used in this example
  * @param hi2c: I2C handle pointer
  * @retval None
  */
  void HAL_I2C_MspDeInit(I2C_HandleTypeDef* hi2c)
  {
    if(hi2c->Instance==I2C1)
    {
    /* USER CODE BEGIN I2C1_MspDeInit 0 */
  
    /* USER CODE END I2C1_MspDeInit 0 */
      /* Peripheral clock disable */
      __HAL_RCC_I2C1_CLK_DISABLE();
  
      /**I2C1 GPIO Configuration
      PB6     ------> I2C1_SCL
      PB9     ------> I2C1_SDA
      */
      HAL_GPIO_DeInit(GPIOB, GPIO_PIN_6);
  
      HAL_GPIO_DeInit(GPIOB, GPIO_PIN_9);
  
    /* USER CODE BEGIN I2C1_MspDeInit 1 */
  
    /* USER CODE END I2C1_MspDeInit 1 */
    }
  
  }
  
  /**
  * @brief RTC MSP Initialization
  * This function configures the hardware resources used in this example
  * @param hrtc: RTC handle pointer
  * @retval None
  */
  void HAL_RTC_MspInit(RTC_HandleTypeDef* hrtc)
  {
    RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
    if(hrtc->Instance==RTC)
    {
    /* USER CODE BEGIN RTC_MspInit 0 */
  
    /* USER CODE END RTC_MspInit 0 */
    /** Initializes the peripherals clock
    */
      PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC;
      PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSE;
      if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
      {
        Error_Handler();
      }
  
      /* Peripheral clock enable */
      __HAL_RCC_RTC_ENABLE();
    /* USER CODE BEGIN RTC_MspInit 1 */
  
    /* USER CODE END RTC_MspInit 1 */
    }
  
  }
  
  /**
  * @brief RTC MSP De-Initialization
  * This function freeze the hardware resources used in this example
  * @param hrtc: RTC handle pointer
  * @retval None
  */
  void HAL_RTC_MspDeInit(RTC_HandleTypeDef* hrtc)
  {
    if(hrtc->Instance==RTC)
    {
    /* USER CODE BEGIN RTC_MspDeInit 0 */
  
    /* USER CODE END RTC_MspDeInit 0 */
      /* Peripheral clock disable */
      __HAL_RCC_RTC_DISABLE();
    /* USER CODE BEGIN RTC_MspDeInit 1 */
  
    /* USER CODE END RTC_MspDeInit 1 */
    }
  
  }
  
  /**
  * @brief SPI MSP Initialization
  * This function configures the hardware resources used in this example
  * @param hspi: SPI handle pointer
  * @retval None
  */
  void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
  {
    GPIO_InitTypeDef GPIO_InitStruct = {0};
    RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
    if(hspi->Instance==SPI2)
    {
    /* USER CODE BEGIN SPI2_MspInit 0 */
  
    /* USER CODE END SPI2_MspInit 0 */
    /** Initializes the peripherals clock
    */
      PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_SPI2;
      PeriphClkInitStruct.PLL2.PLL2M = 4;
      PeriphClkInitStruct.PLL2.PLL2N = 100;
      PeriphClkInitStruct.PLL2.PLL2P = 5;
      PeriphClkInitStruct.PLL2.PLL2Q = 2;
      PeriphClkInitStruct.PLL2.PLL2R = 2;
      PeriphClkInitStruct.PLL2.PLL2RGE = RCC_PLL2VCIRANGE_2;
      PeriphClkInitStruct.PLL2.PLL2VCOSEL = RCC_PLL2VCOWIDE;
      PeriphClkInitStruct.PLL2.PLL2FRACN = 0;
      PeriphClkInitStruct.Spi123ClockSelection = RCC_SPI123CLKSOURCE_PLL2;
      if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
      {
        Error_Handler();
      }
  
      /* Peripheral clock enable */
      __HAL_RCC_SPI2_CLK_ENABLE();
  
      __HAL_RCC_GPIOB_CLK_ENABLE();
      /**SPI2 GPIO Configuration
      PB13     ------> SPI2_SCK
      PB15     ------> SPI2_MOSI
      */
      GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_15;
      GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
      GPIO_InitStruct.Pull = GPIO_NOPULL;
      GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
      GPIO_InitStruct.Alternate = GPIO_AF5_SPI2;
      HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  
      /* SPI2 DMA Init */
      /* SPI2_TX Init */
      hdma_spi2_tx.Instance = DMA1_Stream7;
      hdma_spi2_tx.Init.Request = DMA_REQUEST_SPI2_TX;
      hdma_spi2_tx.Init.Direction = DMA_MEMORY_TO_PERIPH;
      hdma_spi2_tx.Init.PeriphInc = DMA_PINC_DISABLE;
      hdma_spi2_tx.Init.MemInc = DMA_MINC_ENABLE;
      hdma_spi2_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
      hdma_spi2_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
      hdma_spi2_tx.Init.Mode = DMA_NORMAL;
      hdma_spi2_tx.Init.Priority = DMA_PRIORITY_HIGH;
      hdma_spi2_tx.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
      if (HAL_DMA_Init(&hdma_spi2_tx) != HAL_OK)
      {
        Error_Handler();
      }
  
      __HAL_LINKDMA(hspi,hdmatx,hdma_spi2_tx);
  
      /* SPI2 interrupt Init */
      HAL_NVIC_SetPriority(SPI2_IRQn, 0, 0);
      HAL_NVIC_EnableIRQ(SPI2_IRQn);
    /* USER CODE BEGIN SPI2_MspInit 1 */
  
    /* USER CODE END SPI2_MspInit 1 */
    }
  
  }
  
  /**
  * @brief SPI MSP De-Initialization
  * This function freeze the hardware resources used in this example
  * @param hspi: SPI handle pointer
  * @retval None
  */
  void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
  {
    if(hspi->Instance==SPI2)
    {
    /* USER CODE BEGIN SPI2_MspDeInit 0 */
  
    /* USER CODE END SPI2_MspDeInit 0 */
      /* Peripheral clock disable */
      __HAL_RCC_SPI2_CLK_DISABLE();
  
      /**SPI2 GPIO Configuration
      PB13     ------> SPI2_SCK
      PB15     ------> SPI2_MOSI
      */
      HAL_GPIO_DeInit(GPIOB, GPIO_PIN_13|GPIO_PIN_15);
  
      /* SPI2 DMA DeInit */
      HAL_DMA_DeInit(hspi->hdmatx);
  
      /* SPI2 interrupt DeInit */
      HAL_NVIC_DisableIRQ(SPI2_IRQn);
    /* USER CODE BEGIN SPI2_MspDeInit 1 */
  
    /* USER CODE END SPI2_MspDeInit 1 */
    }
  
  }
  
  /**
  * @brief TIM_Base MSP Initialization
  * This function configures the hardware resources used in this example
  * @param htim_base: TIM_Base handle pointer
  * @retval None
  */
  void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
  {
    if(htim_base->Instance==TIM6)
    {
    /* USER CODE BEGIN TIM6_MspInit 0 */
  
    /* USER CODE END TIM6_MspInit 0 */
      /* Peripheral clock enable */
      __HAL_RCC_TIM6_CLK_ENABLE();
      /* TIM6 interrupt Init */
      HAL_NVIC_SetPriority(TIM6_DAC_IRQn, 0, 0);
      HAL_NVIC_EnableIRQ(TIM6_DAC_IRQn);
    /* USER CODE BEGIN TIM6_MspInit 1 */
  
    /* USER CODE END TIM6_MspInit 1 */
    }
  
  }
  
  /**
  * @brief TIM_Base MSP De-Initialization
  * This function freeze the hardware resources used in this example
  * @param htim_base: TIM_Base handle pointer
  * @retval None
  */
  void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
  {
    if(htim_base->Instance==TIM6)
    {
    /* USER CODE BEGIN TIM6_MspDeInit 0 */
  
    /* USER CODE END TIM6_MspDeInit 0 */
      /* Peripheral clock disable */
      __HAL_RCC_TIM6_CLK_DISABLE();
  
      /* TIM6 interrupt DeInit */
      HAL_NVIC_DisableIRQ(TIM6_DAC_IRQn);
    /* USER CODE BEGIN TIM6_MspDeInit 1 */
  
    /* USER CODE END TIM6_MspDeInit 1 */
    }
  
  }
  
  /**
  * @brief UART MSP Initialization
  * This function configures the hardware resources used in this example
  * @param huart: UART handle pointer
  * @retval None
  */
  void HAL_UART_MspInit(UART_HandleTypeDef* huart)
  {
    GPIO_InitTypeDef GPIO_InitStruct = {0};
    RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
    if(huart->Instance==USART3)
    {
    /* USER CODE BEGIN USART3_MspInit 0 */
  
    /* USER CODE END USART3_MspInit 0 */
    /** Initializes the peripherals clock
    */
      PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USART3;
      PeriphClkInitStruct.Usart234578ClockSelection = RCC_USART234578CLKSOURCE_D2PCLK1;
      if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
      {
        Error_Handler();
      }
  
      /* Peripheral clock enable */
      __HAL_RCC_USART3_CLK_ENABLE();
  
      __HAL_RCC_GPIOB_CLK_ENABLE();
      /**USART3 GPIO Configuration
      PB10     ------> USART3_TX
      PB11     ------> USART3_RX
      */
      GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_11;
      GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
      GPIO_InitStruct.Pull = GPIO_NOPULL;
      GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
      GPIO_InitStruct.Alternate = GPIO_AF7_USART3;
      HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  
    /* USER CODE BEGIN USART3_MspInit 1 */
  
    /* USER CODE END USART3_MspInit 1 */
    }
  
  }
  
  /**
  * @brief UART MSP De-Initialization
  * This function freeze the hardware resources used in this example
  * @param huart: UART handle pointer
  * @retval None
  */
  void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
  {
    if(huart->Instance==USART3)
    {
    /* USER CODE BEGIN USART3_MspDeInit 0 */
  
    /* USER CODE END USART3_MspDeInit 0 */
      /* Peripheral clock disable */
      __HAL_RCC_USART3_CLK_DISABLE();
  
      /**USART3 GPIO Configuration
      PB10     ------> USART3_TX
      PB11     ------> USART3_RX
      */
      HAL_GPIO_DeInit(GPIOB, GPIO_PIN_10|GPIO_PIN_11);
  
    /* USER CODE BEGIN USART3_MspDeInit 1 */
  
    /* USER CODE END USART3_MspDeInit 1 */
    }
  
  }
  
  /* USER CODE BEGIN 1 */
  
  /* USER CODE END 1 */
  
  /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
  