ADC.c

/**

******************************************************************************

* File Name : ADC.c

* Description : This file provides code for the configuration

* of the ADC instances.

******************************************************************************


*

******************************************************************************

*/


/* Includes ------------------------------------------------------------------*/

#include "adc.h"


/* USER CODE BEGIN 0 */


/* USER CODE END 0 */


ADC_HandleTypeDef hadc1;


/* ADC1 init function */

void MX_ADC1_Init(void)

{

ADC_MultiModeTypeDef multimode = {0};

ADC_ChannelConfTypeDef sConfig = {0};


/** Common config

*/

hadc1.Instance = ADC1;

hadc1.Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV1;

hadc1.Init.Resolution = ADC_RESOLUTION_8B;

hadc1.Init.ScanConvMode = ADC_SCAN_DISABLE;

hadc1.Init.ContinuousConvMode = ENABLE;

hadc1.Init.DiscontinuousConvMode = DISABLE;

hadc1.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE;

hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START;

hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT;

hadc1.Init.NbrOfConversion = 1;

hadc1.Init.DMAContinuousRequests = DISABLE;

hadc1.Init.EOCSelection = ADC_EOC_SINGLE_CONV;

hadc1.Init.LowPowerAutoWait = DISABLE;

hadc1.Init.Overrun = ADC_OVR_DATA_OVERWRITTEN;

if (HAL_ADC_Init(&hadc1) != HAL_OK)

{

Error_Handler();

}

/** Configure the ADC multi-mode

*/

multimode.Mode = ADC_MODE_INDEPENDENT;

if (HAL_ADCEx_MultiModeConfigChannel(&hadc1, &multimode) != HAL_OK)

{

Error_Handler();

}

/** Configure Regular Channel

*/

sConfig.Channel = ADC_CHANNEL_1;

sConfig.Rank = ADC_REGULAR_RANK_1;

sConfig.SingleDiff = ADC_SINGLE_ENDED;

sConfig.SamplingTime = ADC_SAMPLETIME_1CYCLE_5;

sConfig.OffsetNumber = ADC_OFFSET_NONE;

sConfig.Offset = 0;

if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)

{

Error_Handler();

}


}


void HAL_ADC_MspInit(ADC_HandleTypeDef* adcHandle)

{


GPIO_InitTypeDef GPIO_InitStruct = {0};

if(adcHandle->Instance==ADC1)

{

/* USER CODE BEGIN ADC1_MspInit 0 */


/* USER CODE END ADC1_MspInit 0 */

/* ADC1 clock enable */

__HAL_RCC_ADC12_CLK_ENABLE();


__HAL_RCC_GPIOA_CLK_ENABLE();

/**ADC1 GPIO Configuration

PA0 ------> ADC1_IN1

*/

GPIO_InitStruct.Pin = GPIO_PIN_0;

GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;

GPIO_InitStruct.Pull = GPIO_NOPULL;

HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);


/* USER CODE BEGIN ADC1_MspInit 1 */


/* USER CODE END ADC1_MspInit 1 */

}

}


void HAL_ADC_MspDeInit(ADC_HandleTypeDef* adcHandle)

{


if(adcHandle->Instance==ADC1)

{

/* USER CODE BEGIN ADC1_MspDeInit 0 */


/* USER CODE END ADC1_MspDeInit 0 */

/* Peripheral clock disable */

__HAL_RCC_ADC12_CLK_DISABLE();


/**ADC1 GPIO Configuration

PA0 ------> ADC1_IN1

*/

HAL_GPIO_DeInit(GPIOA, GPIO_PIN_0);


/* USER CODE BEGIN ADC1_MspDeInit 1 */


/* USER CODE END ADC1_MspDeInit 1 */

}

}


/* USER CODE BEGIN 1 */


/* USER CODE END 1 */


/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/