STM32F103xB HAL User Manual
Functions
IO operation functions
ADC Exported Functions

Input and Output operation functions. More...

Functions

HAL_StatusTypeDef HAL_ADC_Start (ADC_HandleTypeDef *hadc)
 Enables ADC, starts conversion of regular group.
HAL_StatusTypeDef HAL_ADC_Stop (ADC_HandleTypeDef *hadc)
 Stop ADC conversion of regular group (and injected channels in case of auto_injection mode), disable ADC peripheral.
HAL_StatusTypeDef HAL_ADC_PollForConversion (ADC_HandleTypeDef *hadc, uint32_t Timeout)
 Wait for regular group conversion to be completed.
HAL_StatusTypeDef HAL_ADC_PollForEvent (ADC_HandleTypeDef *hadc, uint32_t EventType, uint32_t Timeout)
 Poll for conversion event.
HAL_StatusTypeDef HAL_ADC_Start_IT (ADC_HandleTypeDef *hadc)
 Enables ADC, starts conversion of regular group with interruption.
HAL_StatusTypeDef HAL_ADC_Stop_IT (ADC_HandleTypeDef *hadc)
 Stop ADC conversion of regular group (and injected group in case of auto_injection mode), disable interrution of end-of-conversion, disable ADC peripheral.
HAL_StatusTypeDef HAL_ADC_Start_DMA (ADC_HandleTypeDef *hadc, uint32_t *pData, uint32_t Length)
 Enables ADC, starts conversion of regular group and transfers result through DMA.
HAL_StatusTypeDef HAL_ADC_Stop_DMA (ADC_HandleTypeDef *hadc)
 Stop ADC conversion of regular group (and injected group in case of auto_injection mode), disable ADC DMA transfer, disable ADC peripheral.
uint32_t HAL_ADC_GetValue (ADC_HandleTypeDef *hadc)
 Get ADC regular group conversion result.
void HAL_ADC_IRQHandler (ADC_HandleTypeDef *hadc)
 Handles ADC interrupt request.
__weak void HAL_ADC_ConvCpltCallback (ADC_HandleTypeDef *hadc)
 Conversion complete callback in non blocking mode.
__weak void HAL_ADC_ConvHalfCpltCallback (ADC_HandleTypeDef *hadc)
 Conversion DMA half-transfer callback in non blocking mode.
__weak void HAL_ADC_LevelOutOfWindowCallback (ADC_HandleTypeDef *hadc)
 Analog watchdog callback in non blocking mode.
__weak void HAL_ADC_ErrorCallback (ADC_HandleTypeDef *hadc)
 ADC error callback in non blocking mode (ADC conversion with interruption or transfer by DMA)

Detailed Description

Input and Output operation functions.

 ===============================================================================
                      ##### IO operation functions #####
 ===============================================================================
    [..]  This section provides functions allowing to:
      (+) Start conversion of regular group.
      (+) Stop conversion of regular group.
      (+) Poll for conversion complete on regular group.
      (+) Poll for conversion event.
      (+) Get result of regular channel conversion.
      (+) Start conversion of regular group and enable interruptions.
      (+) Stop conversion of regular group and disable interruptions.
      (+) Handle ADC interrupt request
      (+) Start conversion of regular group and enable DMA transfer.
      (+) Stop conversion of regular group and disable ADC DMA transfer.

Function Documentation

Conversion complete callback in non blocking mode.

Parameters:
hadc,:ADC handle
Return values:
None

Definition at line 1916 of file stm32f1xx_hal_adc.c.

Referenced by ADC_DMAConvCplt(), HAL_ADC_Init(), HAL_ADC_IRQHandler(), and HAL_ADC_UnRegisterCallback().

Conversion DMA half-transfer callback in non blocking mode.

Parameters:
hadc,:ADC handle
Return values:
None

Definition at line 1930 of file stm32f1xx_hal_adc.c.

Referenced by ADC_DMAHalfConvCplt(), HAL_ADC_Init(), and HAL_ADC_UnRegisterCallback().

ADC error callback in non blocking mode (ADC conversion with interruption or transfer by DMA)

Parameters:
hadc,:ADC handle
Return values:
None

Definition at line 1959 of file stm32f1xx_hal_adc.c.

Referenced by ADC_DMAError(), HAL_ADC_Init(), and HAL_ADC_UnRegisterCallback().

uint32_t HAL_ADC_GetValue ( ADC_HandleTypeDef hadc)

Get ADC regular group conversion result.

Note:
Reading register DR automatically clears ADC flag EOC (ADC group regular end of unitary conversion).
This function does not clear ADC flag EOS (ADC group regular end of sequence conversion). Occurrence of flag EOS rising:
Parameters:
hadc,:ADC handle
Return values:
ADCgroup regular conversion data

Definition at line 1772 of file stm32f1xx_hal_adc.c.

References assert_param, and __ADC_HandleTypeDef::Instance.

Analog watchdog callback in non blocking mode.

Parameters:
hadc,:ADC handle
Return values:
None

Definition at line 1944 of file stm32f1xx_hal_adc.c.

Referenced by HAL_ADC_Init(), HAL_ADC_IRQHandler(), and HAL_ADC_UnRegisterCallback().

HAL_StatusTypeDef HAL_ADC_PollForConversion ( ADC_HandleTypeDef hadc,
uint32_t  Timeout 
)

Wait for regular group conversion to be completed.

Note:
This function cannot be used in a particular setup: ADC configured in DMA mode. In this case, DMA resets the flag EOC and polling cannot be performed on each conversion.
On STM32F1 devices, limitation in case of sequencer enabled (several ranks selected): polling cannot be done on each conversion inside the sequence. In this case, polling is replaced by wait for maximum conversion time.
Parameters:
hadc,:ADC handle
Timeout,:Timeout value in millisecond.
Return values:
HALstatus

Definition at line 1203 of file stm32f1xx_hal_adc.c.

References __HAL_ADC_CLEAR_FLAG, ADC_CONVCYCLES_MAX_RANGE, ADC_FLAG_EOC, ADC_FLAG_STRT, ADC_IS_SOFTWARE_START_REGULAR, assert_param, ADC_InitTypeDef::ContinuousConvMode, HAL_ADC_STATE_ERROR_CONFIG, HAL_ADC_STATE_INJ_BUSY, HAL_ADC_STATE_READY, HAL_ADC_STATE_REG_BUSY, HAL_ADC_STATE_REG_EOC, HAL_ADC_STATE_TIMEOUT, HAL_GetTick(), HAL_RCCEx_GetPeriphCLKFreq(), __ADC_HandleTypeDef::Init, __ADC_HandleTypeDef::Instance, RCC_PERIPHCLK_ADC, and __ADC_HandleTypeDef::State.

HAL_StatusTypeDef HAL_ADC_PollForEvent ( ADC_HandleTypeDef hadc,
uint32_t  EventType,
uint32_t  Timeout 
)

Poll for conversion event.

Parameters:
hadc,:ADC handle
EventType,:the ADC event type. This parameter can be one of the following values:
  • ADC_AWD_EVENT: ADC Analog watchdog event.
Timeout,:Timeout value in millisecond.
Return values:
HALstatus

Definition at line 1342 of file stm32f1xx_hal_adc.c.

References __HAL_ADC_CLEAR_FLAG, __HAL_ADC_GET_FLAG, ADC_FLAG_AWD, assert_param, HAL_ADC_STATE_AWD1, HAL_ADC_STATE_TIMEOUT, HAL_GetTick(), __ADC_HandleTypeDef::Instance, IS_ADC_EVENT_TYPE, and __ADC_HandleTypeDef::State.

HAL_StatusTypeDef HAL_ADC_Start ( ADC_HandleTypeDef hadc)
HAL_StatusTypeDef HAL_ADC_Start_DMA ( ADC_HandleTypeDef hadc,
uint32_t *  pData,
uint32_t  Length 
)

Enables ADC, starts conversion of regular group and transfers result through DMA.

Interruptions enabled in this function:

  • DMA transfer complete
  • DMA half transfer Each of these interruptions has its dedicated callback function.
    Note:
    For devices with several ADCs: This function is for single-ADC mode only. For multimode, use the dedicated MultimodeStart function.
    On STM32F1 devices, only ADC1 and ADC3 (ADC availability depending on devices) have DMA capability. ADC2 converted data can be transferred in dual ADC mode using DMA of ADC1 (ADC master in multimode). In case of using ADC1 with DMA on a device featuring 2 ADC instances: ADC1 conversion register DR contains ADC1 conversion result (ADC1 register DR bits 0 to 11) and, additionally, ADC2 last conversion result (ADC1 register DR bits 16 to 27). Therefore, to have DMA transferring the conversion results of ADC1 only, DMA must be configured to transfer size: half word.
    Parameters:
    hadc,:ADC handle
    pData,:The destination Buffer address.
    Length,:The length of data to be transferred from ADC peripheral to memory.
    Return values:
    None

Definition at line 1563 of file stm32f1xx_hal_adc.c.

References __HAL_ADC_CLEAR_FLAG, ADC_CLEAR_ERRORCODE, ADC_DMAConvCplt(), ADC_DMAError(), ADC_DMAHalfConvCplt(), ADC_Enable(), ADC_FLAG_EOC, ADC_IS_SOFTWARE_START_REGULAR, ADC_MULTIMODE_AUTO_INJECTED, ADC_MULTIMODE_IS_ENABLE, ADC_NONMULTIMODE_OR_MULTIMODEMASTER, ADC_STATE_CLR_SET, assert_param, __ADC_HandleTypeDef::DMA_Handle, __ADC_HandleTypeDef::ErrorCode, HAL_ADC_ERROR_DMA, HAL_ADC_ERROR_OVR, HAL_ADC_STATE_INJ_BUSY, HAL_ADC_STATE_INJ_EOC, HAL_ADC_STATE_MULTIMODE_SLAVE, HAL_ADC_STATE_READY, HAL_ADC_STATE_REG_BUSY, HAL_ADC_STATE_REG_EOC, HAL_ADC_STATE_REG_EOSMP, HAL_ADC_STATE_REG_OVR, HAL_DMA_Start_IT(), __ADC_HandleTypeDef::Instance, __ADC_HandleTypeDef::State, __DMA_HandleTypeDef::XferCpltCallback, __DMA_HandleTypeDef::XferErrorCallback, and __DMA_HandleTypeDef::XferHalfCpltCallback.

HAL_StatusTypeDef HAL_ADC_Start_IT ( ADC_HandleTypeDef hadc)

Enables ADC, starts conversion of regular group with interruption.

Interruptions enabled in this function:

  • EOC (end of conversion of regular group) Each of these interruptions has its dedicated callback function.
    Parameters:
    hadc,:ADC handle
    Return values:
    HALstatus

Definition at line 1395 of file stm32f1xx_hal_adc.c.

References __HAL_ADC_CLEAR_FLAG, __HAL_ADC_ENABLE_IT, ADC_CLEAR_ERRORCODE, ADC_Enable(), ADC_FLAG_EOC, ADC_IS_SOFTWARE_START_REGULAR, ADC_IT_EOC, ADC_MULTIMODE_AUTO_INJECTED, ADC_NONMULTIMODE_OR_MULTIMODEMASTER, ADC_STATE_CLR_SET, assert_param, __ADC_HandleTypeDef::ErrorCode, HAL_ADC_ERROR_DMA, HAL_ADC_ERROR_OVR, HAL_ADC_STATE_INJ_BUSY, HAL_ADC_STATE_INJ_EOC, HAL_ADC_STATE_MULTIMODE_SLAVE, HAL_ADC_STATE_READY, HAL_ADC_STATE_REG_BUSY, HAL_ADC_STATE_REG_EOC, HAL_ADC_STATE_REG_EOSMP, HAL_ADC_STATE_REG_OVR, __ADC_HandleTypeDef::Instance, and __ADC_HandleTypeDef::State.

HAL_StatusTypeDef HAL_ADC_Stop ( ADC_HandleTypeDef hadc)

Stop ADC conversion of regular group (and injected channels in case of auto_injection mode), disable ADC peripheral.

Note:
: ADC peripheral disable is forcing stop of potential conversion on injected group. If injected group is under use, it should be preliminarily stopped using HAL_ADCEx_InjectedStop function.
Parameters:
hadc,:ADC handle
Return values:
HALstatus.

Definition at line 1159 of file stm32f1xx_hal_adc.c.

References ADC_ConversionStop_Disable(), ADC_STATE_CLR_SET, assert_param, HAL_ADC_STATE_INJ_BUSY, HAL_ADC_STATE_READY, HAL_ADC_STATE_REG_BUSY, __ADC_HandleTypeDef::Instance, and __ADC_HandleTypeDef::State.

HAL_StatusTypeDef HAL_ADC_Stop_DMA ( ADC_HandleTypeDef hadc)

Stop ADC conversion of regular group (and injected group in case of auto_injection mode), disable ADC DMA transfer, disable ADC peripheral.

Note:
: ADC peripheral disable is forcing stop of potential conversion on injected group. If injected group is under use, it should be preliminarily stopped using HAL_ADCEx_InjectedStop function.
For devices with several ADCs: This function is for single-ADC mode only. For multimode, use the dedicated MultimodeStop function.
On STM32F1 devices, only ADC1 and ADC3 (ADC availability depending on devices) have DMA capability.
Parameters:
hadc,:ADC handle
Return values:
HALstatus.

Definition at line 1704 of file stm32f1xx_hal_adc.c.

References ADC_ConversionStop_Disable(), ADC_STATE_CLR_SET, assert_param, __ADC_HandleTypeDef::DMA_Handle, HAL_ADC_STATE_ERROR_DMA, HAL_ADC_STATE_INJ_BUSY, HAL_ADC_STATE_READY, HAL_ADC_STATE_REG_BUSY, HAL_DMA_Abort(), HAL_DMA_STATE_BUSY, __ADC_HandleTypeDef::Instance, __DMA_HandleTypeDef::State, and __ADC_HandleTypeDef::State.

HAL_StatusTypeDef HAL_ADC_Stop_IT ( ADC_HandleTypeDef hadc)

Stop ADC conversion of regular group (and injected group in case of auto_injection mode), disable interrution of end-of-conversion, disable ADC peripheral.

Parameters:
hadc,:ADC handle
Return values:
None

Definition at line 1506 of file stm32f1xx_hal_adc.c.

References __HAL_ADC_DISABLE_IT, ADC_ConversionStop_Disable(), ADC_IT_EOC, ADC_STATE_CLR_SET, assert_param, HAL_ADC_STATE_INJ_BUSY, HAL_ADC_STATE_READY, HAL_ADC_STATE_REG_BUSY, __ADC_HandleTypeDef::Instance, and __ADC_HandleTypeDef::State.