259#ifdef HAL_ADC_MODULE_ENABLED 
  341#if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) 
  348    if (hadc->MspInitCallback == NULL)
 
  354    hadc->MspInitCallback(hadc);
 
  396  return tmp_hal_status;
 
 
  429#if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) 
  430    if (hadc->MspDeInitCallback == NULL)
 
  436    hadc->MspDeInitCallback(hadc);
 
  453  return tmp_hal_status;
 
 
  456#if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) 
  478  if (pCallback == NULL)
 
  481    hadc->
ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK;
 
  490      case HAL_ADC_CONVERSION_COMPLETE_CB_ID :
 
  491        hadc->ConvCpltCallback = pCallback;
 
  494      case HAL_ADC_CONVERSION_HALF_CB_ID :
 
  495        hadc->ConvHalfCpltCallback = pCallback;
 
  498      case HAL_ADC_LEVEL_OUT_OF_WINDOW_1_CB_ID :
 
  499        hadc->LevelOutOfWindowCallback = pCallback;
 
  502      case HAL_ADC_ERROR_CB_ID :
 
  503        hadc->ErrorCallback = pCallback;
 
  506      case HAL_ADC_INJ_CONVERSION_COMPLETE_CB_ID :
 
  507        hadc->InjectedConvCpltCallback = pCallback;
 
  510      case HAL_ADC_MSPINIT_CB_ID :
 
  511        hadc->MspInitCallback = pCallback;
 
  514      case HAL_ADC_MSPDEINIT_CB_ID :
 
  515        hadc->MspDeInitCallback = pCallback;
 
  520        hadc->
ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK;
 
  531      case HAL_ADC_MSPINIT_CB_ID :
 
  532        hadc->MspInitCallback = pCallback;
 
  535      case HAL_ADC_MSPDEINIT_CB_ID :
 
  536        hadc->MspDeInitCallback = pCallback;
 
  541        hadc->
ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK;
 
  551    hadc->
ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK;
 
  584      case HAL_ADC_CONVERSION_COMPLETE_CB_ID :
 
  588      case HAL_ADC_CONVERSION_HALF_CB_ID :
 
  592      case HAL_ADC_LEVEL_OUT_OF_WINDOW_1_CB_ID :
 
  596      case HAL_ADC_ERROR_CB_ID :
 
  600      case HAL_ADC_INJ_CONVERSION_COMPLETE_CB_ID :
 
  604      case HAL_ADC_MSPINIT_CB_ID :
 
  608      case HAL_ADC_MSPDEINIT_CB_ID :
 
  614        hadc->
ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK;
 
  625      case HAL_ADC_MSPINIT_CB_ID :
 
  629      case HAL_ADC_MSPDEINIT_CB_ID :
 
  635        hadc->
ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK;
 
  645    hadc->
ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK;
 
  718  __IO uint32_t counter = 0U;
 
  719  ADC_Common_TypeDef *tmpADC_Common;
 
  731  if ((hadc->
Instance->CR2 & ADC_CR2_ADON) != ADC_CR2_ADON)
 
  739    while (counter != 0U)
 
  757    if (READ_BIT(hadc->
Instance->CR1, ADC_CR1_JAUTO) != RESET)
 
  791#if defined(ADC2) && defined(ADC3) 
  792      if ((hadc->
Instance == ADC1) || ((hadc->
Instance == ADC2) && ((ADC->CCR & ADC_CCR_MULTI_Msk) < ADC_CCR_MULTI_0)) \
 
  793          || ((hadc->
Instance == ADC3) && ((ADC->CCR & ADC_CCR_MULTI_Msk) < ADC_CCR_MULTI_4)))
 
  797        if ((hadc->
Instance->CR2 & ADC_CR2_EXTEN) == RESET)
 
  800          hadc->
Instance->CR2 |= (uint32_t)ADC_CR2_SWSTART;
 
  802#if defined(ADC2) && defined(ADC3) 
  809      if ((hadc->
Instance == ADC1) && ((hadc->
Instance->CR2 & ADC_CR2_EXTEN) == RESET))
 
  812        hadc->
Instance->CR2 |= (uint32_t)ADC_CR2_SWSTART;
 
 
  884  uint32_t tickstart = 0U;
 
  913      if ((Timeout == 0U) || ((
HAL_GetTick() - tickstart) > Timeout))
 
 
  973  uint32_t tickstart = 0U;
 
  988      if ((Timeout == 0U) || ((
HAL_GetTick() - tickstart) > Timeout))
 
 
 1039  __IO uint32_t counter = 0U;
 
 1040  ADC_Common_TypeDef *tmpADC_Common;
 
 1052  if ((hadc->
Instance->CR2 & ADC_CR2_ADON) != ADC_CR2_ADON)
 
 1060    while (counter != 0U)
 
 1078    if (READ_BIT(hadc->
Instance->CR1, ADC_CR1_JAUTO) != RESET)
 
 1115#if defined(ADC2) && defined(ADC3) 
 1116      if ((hadc->
Instance == ADC1) || ((hadc->
Instance == ADC2) && ((ADC->CCR & ADC_CCR_MULTI_Msk) < ADC_CCR_MULTI_0)) \
 
 1117          || ((hadc->
Instance == ADC3) && ((ADC->CCR & ADC_CCR_MULTI_Msk) < ADC_CCR_MULTI_4)))
 
 1121        if ((hadc->
Instance->CR2 & ADC_CR2_EXTEN) == RESET)
 
 1124          hadc->
Instance->CR2 |= (uint32_t)ADC_CR2_SWSTART;
 
 1126#if defined(ADC2) && defined(ADC3) 
 1133      if ((hadc->
Instance == ADC1) && ((hadc->
Instance->CR2 & ADC_CR2_EXTEN) == RESET))
 
 1136        hadc->
Instance->CR2 |= (uint32_t)ADC_CR2_SWSTART;
 
 
 1201  uint32_t tmp1 = 0U, tmp2 = 0U;
 
 1203  uint32_t tmp_sr = hadc->
Instance->SR;
 
 1204  uint32_t tmp_cr1 = hadc->
Instance->CR1;
 
 1250#if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) 
 1251    hadc->ConvCpltCallback(hadc);
 
 1297#if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) 
 1298    hadc->InjectedConvCpltCallback(hadc);
 
 1318#if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) 
 1319      hadc->LevelOutOfWindowCallback(hadc);
 
 1345#if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) 
 1346    hadc->ErrorCallback(hadc);
 
 
 1366  __IO uint32_t counter = 0U;
 
 1367  ADC_Common_TypeDef *tmpADC_Common;
 
 1379  if ((hadc->
Instance->CR2 & ADC_CR2_ADON) != ADC_CR2_ADON)
 
 1387    while (counter != 0U)
 
 1395  if ((hadc->
Instance->CR2 & ADC_CR2_DMA) == ADC_CR2_DMA)
 
 1397    CLEAR_BIT(hadc->
Instance->CR2, ADC_CR2_DMA);
 
 1412    if (READ_BIT(hadc->
Instance->CR1, ADC_CR1_JAUTO) != RESET)
 
 1460    hadc->
Instance->CR2 |= ADC_CR2_DMA;
 
 1468#if defined(ADC2) && defined(ADC3) 
 1469      if ((hadc->
Instance == ADC1) || ((hadc->
Instance == ADC2) && ((ADC->CCR & ADC_CCR_MULTI_Msk) < ADC_CCR_MULTI_0)) \
 
 1470          || ((hadc->
Instance == ADC3) && ((ADC->CCR & ADC_CCR_MULTI_Msk) < ADC_CCR_MULTI_4)))
 
 1474        if ((hadc->
Instance->CR2 & ADC_CR2_EXTEN) == RESET)
 
 1477          hadc->
Instance->CR2 |= (uint32_t)ADC_CR2_SWSTART;
 
 1479#if defined(ADC2) && defined(ADC3) 
 1486      if ((hadc->
Instance == ADC1) && ((hadc->
Instance->CR2 & ADC_CR2_EXTEN) == RESET))
 
 1489        hadc->
Instance->CR2 |= (uint32_t)ADC_CR2_SWSTART;
 
 
 1530    hadc->
Instance->CR2 &= ~ADC_CR2_DMA;
 
 1539      if (tmp_hal_status != 
HAL_OK)
 
 1559  return tmp_hal_status;
 
 
 1671  __IO uint32_t counter = 0U;
 
 1672  ADC_Common_TypeDef *tmpADC_Common;
 
 1686    hadc->
Instance->SMPR1 &= ~ADC_SMPR1(ADC_SMPR1_SMP10, sConfig->
Channel);
 
 1694    hadc->
Instance->SMPR2 &= ~ADC_SMPR2(ADC_SMPR2_SMP0, sConfig->
Channel);
 
 1701  if (sConfig->
Rank < 7U)
 
 1704    hadc->
Instance->SQR3 &= ~ADC_SQR3_RK(ADC_SQR3_SQ1, sConfig->
Rank);
 
 1710  else if (sConfig->
Rank < 13U)
 
 1713    hadc->
Instance->SQR2 &= ~ADC_SQR2_RK(ADC_SQR2_SQ7, sConfig->
Rank);
 
 1722    hadc->
Instance->SQR1 &= ~ADC_SQR1_RK(ADC_SQR1_SQ13, sConfig->
Rank);
 
 1739      tmpADC_Common->CCR &= ~ADC_CCR_TSVREFE;
 
 1742    tmpADC_Common->CCR |= ADC_CCR_VBATE;
 
 1752      tmpADC_Common->CCR &= ~ADC_CCR_VBATE;
 
 1755    tmpADC_Common->CCR |= ADC_CCR_TSVREFE;
 
 1762      while (counter != 0U)
 
 
 1794#ifdef USE_FULL_ASSERT 
 1803#ifdef USE_FULL_ASSERT 
 1812  if (AnalogWDGConfig->
ITMode == ENABLE)
 
 1824  hadc->
Instance->CR1 &=  ~(ADC_CR1_AWDSGL | ADC_CR1_JAWDEN | ADC_CR1_AWDEN);
 
 1836  hadc->
Instance->CR1 &= ~ADC_CR1_AWDCH;
 
 1839  hadc->
Instance->CR1 |= (uint32_t)((uint16_t)(AnalogWDGConfig->
Channel));
 
 
 1908  ADC_Common_TypeDef *tmpADC_Common;
 
 1917  tmpADC_Common->CCR &= ~(ADC_CCR_ADCPRE);
 
 1921  hadc->
Instance->CR1 &= ~(ADC_CR1_SCAN);
 
 1925  hadc->
Instance->CR1 &= ~(ADC_CR1_RES);
 
 1929  hadc->
Instance->CR2 &= ~(ADC_CR2_ALIGN);
 
 1940    hadc->
Instance->CR2 &= ~(ADC_CR2_EXTSEL);
 
 1944    hadc->
Instance->CR2 &= ~(ADC_CR2_EXTEN);
 
 1950    hadc->
Instance->CR2 &= ~(ADC_CR2_EXTSEL);
 
 1951    hadc->
Instance->CR2 &= ~(ADC_CR2_EXTEN);
 
 1955  hadc->
Instance->CR2 &= ~(ADC_CR2_CONT);
 
 1963    hadc->
Instance->CR1 |= (uint32_t)ADC_CR1_DISCEN;
 
 1966    hadc->
Instance->CR1 &= ~(ADC_CR1_DISCNUM);
 
 1972    hadc->
Instance->CR1 &= ~(ADC_CR1_DISCEN);
 
 1976  hadc->
Instance->SQR1 &= ~(ADC_SQR1_L);
 
 1980  hadc->
Instance->CR2 &= ~(ADC_CR2_DDS);
 
 1984  hadc->
Instance->CR2 &= ~(ADC_CR2_EOCS);
 
 
 2032#if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) 
 2033    hadc->ConvCpltCallback(hadc);
 
 2043#if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) 
 2044      hadc->ErrorCallback(hadc);
 
 
 2067#if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) 
 2068  hadc->ConvHalfCpltCallback(hadc);
 
 
 2087#if (USE_HAL_ADC_REGISTER_CALLBACKS == 1) 
 2088  hadc->ErrorCallback(hadc);
 
 
void HAL_ADCEx_InjectedConvCpltCallback(ADC_HandleTypeDef *hadc)
Injected conversion complete callback in non blocking mode.
 
#define IS_ADC_CHANNEL(CHANNEL)
 
#define ADC_COMMON_REGISTER(__HANDLE__)
Defines if the selected ADC is within ADC common register ADC123 or ADC1 if available (ADC2,...
 
#define ADC_CHANNEL_TEMPSENSOR
 
#define HAL_ADC_ERROR_OVR
 
#define HAL_ADC_ERROR_INTERNAL
 
#define HAL_ADC_ERROR_DMA
 
HAL_StatusTypeDef HAL_ADC_DeInit(ADC_HandleTypeDef *hadc)
Deinitializes the ADCx peripheral registers to their default reset values.
 
HAL_StatusTypeDef HAL_ADC_Init(ADC_HandleTypeDef *hadc)
Initializes the ADCx peripheral according to the specified parameters in the ADC_InitStruct and initi...
 
void HAL_ADC_MspInit(ADC_HandleTypeDef *hadc)
Initializes the ADC MSP.
 
void HAL_ADC_MspDeInit(ADC_HandleTypeDef *hadc)
DeInitializes the ADC MSP.
 
HAL_StatusTypeDef HAL_ADC_PollForEvent(ADC_HandleTypeDef *hadc, uint32_t EventType, uint32_t Timeout)
Poll for conversion event.
 
HAL_StatusTypeDef HAL_ADC_Start(ADC_HandleTypeDef *hadc)
Enables ADC and starts conversion of the regular channels.
 
HAL_StatusTypeDef HAL_ADC_Stop(ADC_HandleTypeDef *hadc)
Disables ADC and stop conversion of regular channels.
 
void HAL_ADC_IRQHandler(ADC_HandleTypeDef *hadc)
Handles ADC interrupt request.
 
uint32_t HAL_ADC_GetValue(ADC_HandleTypeDef *hadc)
Gets the converted value from data register of regular channel.
 
void HAL_ADC_LevelOutOfWindowCallback(ADC_HandleTypeDef *hadc)
Analog watchdog callback in non blocking mode.
 
HAL_StatusTypeDef HAL_ADC_Start_DMA(ADC_HandleTypeDef *hadc, uint32_t *pData, uint32_t Length)
Enables ADC DMA request after last transfer (Single-ADC mode) and enables ADC peripheral.
 
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef *hadc)
Regular conversion complete callback in non blocking mode.
 
void HAL_ADC_ConvHalfCpltCallback(ADC_HandleTypeDef *hadc)
Regular conversion half DMA transfer callback in non blocking mode.
 
HAL_StatusTypeDef HAL_ADC_PollForConversion(ADC_HandleTypeDef *hadc, uint32_t Timeout)
Poll for regular conversion complete.
 
void HAL_ADC_ErrorCallback(ADC_HandleTypeDef *hadc)
Error ADC callback.
 
HAL_StatusTypeDef HAL_ADC_Stop_DMA(ADC_HandleTypeDef *hadc)
Disables ADC DMA (Single-ADC mode) and disables ADC peripheral.
 
HAL_StatusTypeDef HAL_ADC_Stop_IT(ADC_HandleTypeDef *hadc)
Disables the interrupt and stop ADC conversion of regular channels.
 
HAL_StatusTypeDef HAL_ADC_Start_IT(ADC_HandleTypeDef *hadc)
Enables the interrupt and starts ADC conversion of regular channels.
 
HAL_StatusTypeDef HAL_ADC_ConfigChannel(ADC_HandleTypeDef *hadc, ADC_ChannelConfTypeDef *sConfig)
Configures for the selected ADC regular channel its corresponding rank in the sequencer and its sampl...
 
HAL_StatusTypeDef HAL_ADC_AnalogWDGConfig(ADC_HandleTypeDef *hadc, ADC_AnalogWDGConfTypeDef *AnalogWDGConfig)
Configures the analog watchdog.
 
uint32_t HAL_ADC_GetError(ADC_HandleTypeDef *hadc)
Return the ADC error code.
 
uint32_t HAL_ADC_GetState(ADC_HandleTypeDef *hadc)
return the ADC state
 
#define __HAL_ADC_ENABLE_IT(__HANDLE__, __INTERRUPT__)
Enable the ADC end of conversion interrupt.
 
#define __HAL_ADC_DISABLE(__HANDLE__)
Disable the ADC peripheral.
 
#define __HAL_ADC_ENABLE(__HANDLE__)
Enable the ADC peripheral.
 
#define __HAL_ADC_DISABLE_IT(__HANDLE__, __INTERRUPT__)
Disable the ADC end of conversion interrupt.
 
#define __HAL_ADC_CLEAR_FLAG(__HANDLE__, __FLAG__)
Clear the ADC's pending flags.
 
#define __HAL_ADC_GET_FLAG(__HANDLE__, __FLAG__)
Get the selected ADC's flag status.
 
#define HAL_ADC_STATE_INJ_BUSY
 
#define HAL_ADC_STATE_REG_OVR
 
#define HAL_ADC_STATE_ERROR_CONFIG
 
#define HAL_ADC_STATE_AWD1
 
#define HAL_ADC_STATE_RESET
HAL ADC state machine: ADC states definition (bitfields)
 
#define HAL_ADC_STATE_REG_BUSY
 
#define HAL_ADC_STATE_ERROR_DMA
 
#define HAL_ADC_STATE_ERROR_INTERNAL
 
#define HAL_ADC_STATE_BUSY_INTERNAL
 
#define HAL_ADC_STATE_TIMEOUT
 
#define HAL_ADC_STATE_READY
 
#define HAL_ADC_STATE_REG_EOC
 
#define HAL_ADC_STATE_INJ_EOC
 
#define ADC_SOFTWARE_START
 
#define ADC_TEMPSENSOR_DELAY_US
 
#define ADC_STAB_DELAY_US
 
static void ADC_DMAError(DMA_HandleTypeDef *hdma)
DMA error callback.
 
static void ADC_DMAConvCplt(DMA_HandleTypeDef *hdma)
DMA transfer complete callback.
 
static void ADC_DMAHalfConvCplt(DMA_HandleTypeDef *hdma)
DMA half transfer complete callback.
 
static void ADC_Init(ADC_HandleTypeDef *hadc)
Initializes the ADCx peripheral according to the specified parameters in the ADC_InitStruct without i...
 
#define ADC_SQR3_RK(_CHANNELNB_, _RANKNB_)
Set the selected regular channel rank for rank between 1 and 6.
 
#define ADC_SQR1(_NbrOfConversion_)
Set ADC Regular channel sequence length.
 
#define IS_ADC_REGULAR_LENGTH(LENGTH)
 
#define IS_ADC_EOCSelection(EOCSelection)
 
#define IS_ADC_EVENT_TYPE(EVENT)
 
#define IS_ADC_DATA_ALIGN(ALIGN)
 
#define ADC_SMPR1(_SAMPLETIME_, _CHANNELNB_)
Set the ADC's sample time for channel numbers between 10 and 18.
 
#define ADC_IS_SOFTWARE_START_REGULAR(__HANDLE__)
Test if conversion trigger of regular group is software start or external trigger.
 
#define IS_ADC_SAMPLE_TIME(TIME)
 
#define IS_ADC_RESOLUTION(RESOLUTION)
 
#define IS_ADC_CLOCKPRESCALER(ADC_CLOCK)
 
#define IS_ADC_ANALOG_WATCHDOG(WATCHDOG)
 
#define IS_ADC_REGULAR_RANK(RANK)
 
#define ADC_CR1_DISCONTINUOUS(_NBR_DISCONTINUOUSCONV_)
Configures the number of discontinuous conversions for the regular group channels.
 
#define ADC_SQR1_RK(_CHANNELNB_, _RANKNB_)
Set the selected regular channel rank for rank between 13 and 16.
 
#define ADC_CR2_DMAContReq(_DMAContReq_MODE_)
Enable the ADC DMA continuous request.
 
#define ADC_IS_SOFTWARE_START_INJECTED(__HANDLE__)
Test if conversion trigger of injected group is software start or external trigger.
 
#define ADC_CR2_EOCSelection(_EOCSelection_MODE_)
Enable the ADC end of conversion selection.
 
#define ADC_STATE_CLR_SET
Simultaneously clears and sets specific bits of the handle State.
 
#define IS_ADC_REGULAR_DISC_NUMBER(NUMBER)
 
#define IS_ADC_EXT_TRIG(REGTRIG)
 
#define ADC_CLEAR_ERRORCODE(__HANDLE__)
Clear ADC error code (set it to error code: "no error")
 
#define ADC_SQR2_RK(_CHANNELNB_, _RANKNB_)
Set the selected regular channel rank for rank between 7 and 12.
 
#define ADC_CR1_SCANCONV(_SCANCONV_MODE_)
Enable ADC scan mode.
 
#define IS_ADC_EXT_TRIG_EDGE(EDGE)
 
#define IS_ADC_RANGE(RESOLUTION, ADC_VALUE)
 
#define ADC_GET_RESOLUTION(__HANDLE__)
Return resolution bits in CR1 register.
 
#define ADC_CR2_CONTINUOUS(_CONTINUOUS_MODE_)
Enable ADC continuous conversion mode.
 
#define ADC_SMPR2(_SAMPLETIME_, _CHANNELNB_)
Set the ADC's sample time for channel numbers between 0 and 9.
 
#define ADC_CHANNEL_VREFINT
 
HAL_StatusTypeDef HAL_DMA_Abort(DMA_HandleTypeDef *hdma)
Aborts the DMA Transfer.
 
HAL_StatusTypeDef HAL_DMA_Start_IT(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength)
Start the DMA Transfer with interrupt enabled.
 
uint32_t HAL_GetTick(void)
Provides a tick value in millisecond.
 
#define assert_param(expr)
 
This file contains all the functions prototypes for the HAL module driver.
 
#define HAL_IS_BIT_SET(REG, BIT)
 
HAL_StatusTypeDef
HAL Status structures definition
 
#define __HAL_UNLOCK(__HANDLE__)
 
#define HAL_IS_BIT_CLR(REG, BIT)
 
#define __HAL_LOCK(__HANDLE__)
 
ADC Configuration multi-mode structure definition.
 
Structure definition of ADC channel for regular group.
 
ADC handle Structure definition.
 
DMA_HandleTypeDef * DMA_Handle
 
FunctionalState ContinuousConvMode
 
FunctionalState DMAContinuousRequests
 
uint32_t ExternalTrigConv
 
uint32_t NbrOfDiscConversion
 
uint32_t ExternalTrigConvEdge
 
FunctionalState DiscontinuousConvMode
 
DMA handle Structure definition.
 
void(* XferCpltCallback)(struct __DMA_HandleTypeDef *hdma)
 
void(* XferErrorCallback)(struct __DMA_HandleTypeDef *hdma)
 
__IO HAL_DMA_StateTypeDef State
 
void(* XferHalfCpltCallback)(struct __DMA_HandleTypeDef *hdma)