text: /* USER CODE BEGIN Header */
  /**
    ******************************************************************************
    * @file         stm32f1xx_hal_msp.c
    * @brief        This file provides code for the MSP Initialization
    *               and de-Initialization codes.
    ******************************************************************************
    * @attention
    *
    * Copyright (c) 2022 STMicroelectronics.
    * All rights reserved.
    *
    * This software is licensed under terms that can be found in the LICENSE file
    * in the root directory of this software component.
    * If no LICENSE file comes with this software, it is provided AS-IS.
    *
    ******************************************************************************
    */
  /* USER CODE END Header */
  
  /* Includes ------------------------------------------------------------------*/
  #include "main.h"
  /* USER CODE BEGIN Includes */
  
  /* USER CODE END Includes */
  extern DMA_HandleTypeDef hdma_adc1;
  
  /* 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_AFIO_CLK_ENABLE();
    __HAL_RCC_PWR_CLK_ENABLE();
  
    /* System interrupt init*/
  
    /** NOJTAG: JTAG-DP Disabled and SW-DP Enabled
    */
    __HAL_AFIO_REMAP_SWJ_NOJTAG();
  
    /* USER CODE BEGIN MspInit 1 */
  
    /* USER CODE END MspInit 1 */
  }
  
  /**
  * @brief ADC MSP Initialization
  * This function configures the hardware resources used in this example
  * @param hadc: ADC handle pointer
  * @retval None
  */
  void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
  {
    GPIO_InitTypeDef GPIO_InitStruct = {0};
    if(hadc->Instance==ADC1)
    {
    /* USER CODE BEGIN ADC1_MspInit 0 */
  
    /* USER CODE END ADC1_MspInit 0 */
      /* Peripheral clock enable */
      __HAL_RCC_ADC1_CLK_ENABLE();
  
      __HAL_RCC_GPIOA_CLK_ENABLE();
      /**ADC1 GPIO Configuration
      PA1     ------> ADC1_IN1
      PA2     ------> ADC1_IN2
      PA3     ------> ADC1_IN3
      PA4     ------> ADC1_IN4
      */
      GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4;
      GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
      HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  
      /* ADC1 DMA Init */
      /* ADC1 Init */
      hdma_adc1.Instance = DMA1_Channel1;
      hdma_adc1.Init.Direction = DMA_PERIPH_TO_MEMORY;
      hdma_adc1.Init.PeriphInc = DMA_PINC_DISABLE;
      hdma_adc1.Init.MemInc = DMA_MINC_ENABLE;
      hdma_adc1.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD;
      hdma_adc1.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD;
      hdma_adc1.Init.Mode = DMA_CIRCULAR;
      hdma_adc1.Init.Priority = DMA_PRIORITY_LOW;
      if (HAL_DMA_Init(&hdma_adc1) != HAL_OK)
      {
        Error_Handler();
      }
  
      __HAL_LINKDMA(hadc,DMA_Handle,hdma_adc1);
  
    /* USER CODE BEGIN ADC1_MspInit 1 */
  
    /* USER CODE END ADC1_MspInit 1 */
    }
  
  }
  
  /**
  * @brief ADC MSP De-Initialization
  * This function freeze the hardware resources used in this example
  * @param hadc: ADC handle pointer
  * @retval None
  */
  void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
  {
    if(hadc->Instance==ADC1)
    {
    /* USER CODE BEGIN ADC1_MspDeInit 0 */
  
    /* USER CODE END ADC1_MspDeInit 0 */
      /* Peripheral clock disable */
      __HAL_RCC_ADC1_CLK_DISABLE();
  
      /**ADC1 GPIO Configuration
      PA1     ------> ADC1_IN1
      PA2     ------> ADC1_IN2
      PA3     ------> ADC1_IN3
      PA4     ------> ADC1_IN4
      */
      HAL_GPIO_DeInit(GPIOA, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4);
  
      /* ADC1 DMA DeInit */
      HAL_DMA_DeInit(hadc->DMA_Handle);
    /* USER CODE BEGIN ADC1_MspDeInit 1 */
  
    /* USER CODE END ADC1_MspDeInit 1 */
    }
  
  }
  
  /* USER CODE BEGIN 1 */
  
  /* USER CODE END 1 */
  
  