MindSDK_MM32F5270/device/drivers/hal_adc.h
Yilin Sun 3977144e90
Initial MM32F527x commit.
Signed-off-by: Yilin Sun <imi415@imi.moe>
2023-03-27 21:54:40 +08:00

592 lines
23 KiB
C

/*
* Copyright 2022 MindMotion Microelectronics Co., Ltd.
* All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#ifndef __HAL_ADC_H__
#define __HAL_ADC_H__
#include "hal_common.h"
/*!
* @addtogroup ADC
* @{
*/
/*!
* @brief ADC driver version number.
*/
#define ADC_DRIVER_VERSION 1u /*!< adc_1. */
/*!
* @addtogroup ADC_STATUS
* Define ADC status.
* @{
*/
#define ADC_STATUS_CONV_SLOT_DONE (1u << 0u) /*!< Status flag when ADC slot conversion done. */
#define ADC_STATUS_CONV_SAMPLE_DONE (1u << 1u) /*!< Status flag when ADC sample done. */
#define ADC_STATUS_CONV_SEQ_DONE (1u << 2u) /*!< Status flag when ADC sequence conversion done. */
#define ADC_STATUS_CONV_COMPARE_DONE (1u << 3u) /*!< Status flag when ADC compare done. */
#define ADC_STATUS_CONV_CALIB_DONE (1u << 4u) /*!< Status flag when ADC calibration done */
#define ADC_STATUS_JCONV_SLOT_DONE (1u << 5u) /*!< Status flag when ADC inject slot conversion done. */
#define ADC_STATUS_JCONV_SAMPLE_DONE (1u << 6u) /*!< Status flag when ADC inject sample done. */
#define ADC_STATUS_JCONV_SEQ_DONE (1u << 7u) /*!< Status flag when ADC inject sequence conversion done. */
/*!
* @}
*/
/*!
* @addtogroup ADC_INT
* ADC interrupt define.
* @{
*/
#define ADC_INT_CONV_SLOT_DONE (1u << 0u) /*!< Interrupt when ADC slot conversion done. */
#define ADC_INT_CONV_SAMPLE_DONE (1u << 1u) /*!< Interrupt enable when ADC sample done. */
#define ADC_INT_CONV_SEQ_DONE (1u << 2u) /*!< Interrupt enable when ADC sequence conversion done. */
#define ADC_INT_CONV_COMPARE_DONE (1u << 3u) /*!< Interrupt enable when ADC compare done. */
#define ADC_INT_CONV_CALIB_DONE (1u << 4u) /*!< Interrupt enable when ADC calibration done */
#define ADC_INT_JCONV_SLOT_DONE (1u << 5u) /*!< Interrupt enable when ADC inject slot conversion done. */
#define ADC_INT_JCONV_SAMPLE_DONE (1u << 6u) /*!< Interrupt enable when ADC inject sample done. */
#define ADC_INT_JCONV_SEQ_DONE (1u << 7u) /*!< Interrupt enable when ADC inject sequence conversion done. */
/*!
* @}
*/
/*!
* @addtogroup ADC_RESULT_FLAGS
* Define ADC Convert result flags.
* @{
*/
#define ADC_CONV_RESULT_FLAG_OVERRUN (1u << 0u) /*!< Result flag when adc conversion result is overrun. */
#define ADC_CONV_RESULT_FLAG_VALID (1u << 1u) /*!< Result flag when adc conversion result valid. */
/*!
* @}
*/
/*!
* @brief ADC Resolution type.
*
* Select ADC conversion data resolution.
*/
typedef enum
{
ADC_Resolution_Alt0 = 0u, /*!< source 0 as a resolution source for ADC. */
ADC_Resolution_Alt1 = 1u, /*!< source 1 as a resolution source for ADC. */
ADC_Resolution_Alt2 = 2u, /*!< source 2 as a resolution source for ADC. */
ADC_Resolution_Alt3 = 3u, /*!< source 3 as a resolution source for ADC. */
ADC_Resolution_Alt4 = 4u, /*!< source 4 as a resolution source for ADC. */
} ADC_Resolution_Type;
/*!
* @brief ADC HwTriggerEdge type.
*
* Use hardware trigger in ADC, this trigger edge must be rising edge.
*/
typedef enum
{
ADC_HwTriggerEdge_RisingEdge = 2u, /*!< Rising edge trigger. */
} ADC_HwTriggerEdge_Type;
/*!
* @brief ADC HwTriggerDelayCycle type.
*
* After the hardware trigger signal is generated, delay N PCLK2 clock cycles before starting the first sample.
*/
typedef enum
{
ADC_HwTriggerDelayCycle_0 = 0u, /*!< Delay 0 cycle. */
ADC_HwTriggerDelayCycle_4 = 1u, /*!< Delay 4 cycle. */
ADC_HwTriggerDelayCycle_16 = 2u, /*!< Delay 16 cycle. */
ADC_HwTriggerDelayCycle_32 = 3u, /*!< Delay 32 cycle. */
ADC_HwTriggerDelayCycle_64 = 4u, /*!< Delay 64 cycle. */
ADC_HwTriggerDelayCycle_128 = 5u, /*!< Delay 128 cycle. */
ADC_HwTriggerDelayCycle_256 = 6u, /*!< Delay 256 cycle. */
ADC_HwTriggerDelayCycle_512 = 7u, /*!< Delay 512 cycle. */
} ADC_HwTriggerDelayCycle_Type;
/*!
* @brief ADC Align type.
*
* Choose to store the converted data as left-aligned or right-aligned.
*/
typedef enum
{
ADC_Align_Right = 0u, /*!< Data right align. */
ADC_Align_Left = 1u, /*!< Data left align. */
} ADC_Align_Type;
/*!
* @brief ADC SeqFixedDirection type.
*
* In single-cycle scan or continuous scan mode, set the order of scan channels.
*/
typedef enum
{
ADC_SeqFixedDirection_LowFirst = 0u, /*!< ADC scan direction from low channel to high channel. */
ADC_SeqFixedDirection_HighFirst = 1u, /*!< ADC scan direction from high channel to low channel. */
} ADC_SeqFixedDirection_Type;
/*!
* @brief ADC ConvMode type.
*
* Select the adc channel or sequence convert mode.
*/
typedef enum
{
ADC_ConvMode_SingleSlot = 0u, /*!< Run the conversion by channel. */
ADC_ConvMode_SeqOneTime = 1u, /*!< Run the conversion by sequence once. */
ADC_ConvMode_SeqContinues = 2u, /*!< Run the conversion by sequence again and again. */
} ADC_ConvMode_Type;
/*!
* @brief ADC SampleTime type.
*
* Select channel sample time.
*/
typedef enum
{
ADC_SampleTime_Alt0 = 0u, /*!< Channel sample time mode 0 . */
ADC_SampleTime_Alt1 = 1u, /*!< Channel sample time mode 1 . */
ADC_SampleTime_Alt2 = 2u, /*!< Channel sample time mode 2 . */
ADC_SampleTime_Alt3 = 3u, /*!< Channel sample time mode 3 . */
ADC_SampleTime_Alt4 = 4u, /*!< Channel sample time mode 4 . */
ADC_SampleTime_Alt5 = 5u, /*!< Channel sample time mode 5 . */
ADC_SampleTime_Alt6 = 6u, /*!< Channel sample time mode 6 . */
ADC_SampleTime_Alt7 = 7u, /*!< Channel sample time mode 7 . */
ADC_SampleTime_Alt8 = 8u, /*!< Channel sample time mode 8 . */
ADC_SampleTime_Alt9 = 9u, /*!< Channel sample time mode 9 . */
ADC_SampleTime_Alt10 = 10u, /*!< Channel sample time mode 10. */
ADC_SampleTime_Alt11 = 11u, /*!< Channel sample time mode 11. */
ADC_SampleTime_Alt12 = 12u, /*!< Channel sample time mode 12. */
ADC_SampleTime_Alt13 = 13u, /*!< Channel sample time mode 13. */
ADC_SampleTime_Alt14 = 14u, /*!< Channel sample time mode 14. */
ADC_SampleTime_Alt15 = 15u, /*!< Channel sample time mode 15. */
} ADC_SampleTime_Type;
/*!
* @brief ADC SingDiffConvMode type.
*
* Select ADC channel single-ended or difference conversion mode.
*/
typedef enum
{
ADC_SingleDiffConvMode_SingleEnd = 1u, /*!< Channel conversion mode is single-ended conversion. */
ADC_SingleDiffConvMode_Diff = 2u, /*!< Channel conversion mode is differential conversion. */
ADC_SingleDiffConvMode_PseudoDiff = 3u, /*!< Channel conversion mode is pseudo-difference conversion. */
}ADC_SingleDiffConvMode_Type;
/*!
* @brief ADC SingleConvVref type.
*
* Select the reference voltage for single-ended conversion mode.
*/
typedef enum
{
ADC_SingleConvVref_Internal = 1u, /*!< Select the internal reference voltage as the reference voltage for single-ended conversion. */
ADC_SingleConvVref_External = 0u, /*!< Select the external reference voltage as the reference voltage for single-ended conversion. */
}ADC_SingleConvVref_Type;
/*!
* @brief ADC DiffPair type.
*
* Select channel source as ADC differential or pseudo-difference conversion channels.
*/
typedef enum
{
ADC_DiffChnPair_0_1 = 1u, /*!< Select channel 0 and 1 for a group of differential or pseudo-difference channels. */
ADC_DiffChnPair_2_3 = 2u, /*!< Select channel 2 and 3 for a group of differential or pseudo-difference channels */
ADC_DiffChnPair_4_5 = 4u, /*!< Select channel 4 and 5 for a group of differential or pseudo-difference channels. */
ADC_DiffChnPair_6_7 = 8u, /*!< Select channel 6 and 7 for a group of differential or pseudo-difference channels. */
}ADC_DiffPair_Type;
/*!
* @brief ADC OverSampleRatio type.
*
* Select ADC oversampling rate, to confirm the number of conversions performed by ADC, the sum of these conversion data is calculated as ADC oversampling conversion data (before potential shift).
*/
typedef enum
{
ADC_OverSampleRatio_2 = 0u, /*!< Select the oversample ratio of 2, 2 ADC conversions are performed, sum of these conversions data is computed to result as the ADC oversampling conversion data,before potential shift. */
ADC_OverSampleRatio_4 = 1u, /*!< Select the oversample ratio of 4, 4 ADC conversions are performed, sum of these conversions data is computed to result as the ADC oversampling conversion data,before potential shift. */
ADC_OverSampleRatio_8 = 2u, /*!< Select the oversample ratio of 8, 8 ADC conversions are performed, sum of these conversions data is computed to result as the ADC oversampling conversion data,before potential shift. */
ADC_OverSampleRatio_16 = 3u, /*!< Select the oversample ratio of 16, 16 ADC conversions are performed, sum of these conversions data is computed to result as the ADC oversampling conversion data,before potential shift. */
ADC_OverSampleRatio_32 = 4u, /*!< Select the oversample ratio of 32, 32 ADC conversions are performed, sum of these conversions data is computed to result as the ADC oversampling conversion data,before potential shift. */
ADC_OverSampleRatio_64 = 5u, /*!< Select the oversample ratio of 64, 64 ADC conversions are performed, sum of these conversions data is computed to result as the ADC oversampling conversion data,before potential shift. */
ADC_OverSampleRatio_128 = 6u, /*!< Select the oversample ratio of 128,128 ADC conversions are performed, sum of these conversions data is computed to result as the ADC oversampling conversion data,before potential shift. */
ADC_OverSampleRatio_256 = 7u, /*!< Select the oversample ratio of 256, 256 ADC conversions are performed, sum of these conversions data is computed to result as the ADC oversampling conversion data,before potential shift. */
}ADC_OverSampleRatio_Type;
/*!
* @brief ADC OverSampleDataDiv type.
*
* Select ADC oversampling rate, to confirm the number of conversions performed by ADC, the sum of these conversion data is calculated as ADC oversampling conversion data (before potential shift).
*/
typedef enum
{
ADC_OverSampleDataDiv_0 = 0u, /*!< Select ADC oversampling no shift (sum of the ADC conversions data is not divided to result as the ADC oversampling conversion data). */
ADC_OverSampleDataDiv_1 = 1u, /*!< Select ADC oversampling 1 shift (sum of the ADC conversions data is divided by 2 to result as the ADC oversampling conversion data). */
ADC_OverSampleDataDiv_2 = 2u, /*!< Select ADC oversampling 2 shift (sum of the ADC conversions data is divided by 4 to result as the ADC oversampling conversion data). */
ADC_OverSampleDataDiv_3 = 3u, /*!< Select ADC oversampling 3 shift (sum of the ADC conversions data is divided by 8 to result as the ADC oversampling conversion data). */
ADC_OverSampleDataDiv_4 = 4u, /*!< Select ADC oversampling 4 shift (sum of the ADC conversions data is divided by 16 to result as the ADC oversampling conversion data). */
ADC_OverSampleDataDiv_5 = 5u, /*!< Select ADC oversampling 5 shift (sum of the ADC conversions data is divided by 32 to result as the ADC oversampling conversion data). */
ADC_OverSampleDataDiv_6 = 6u, /*!< Select ADC oversampling 6 shift (sum of the ADC conversions data is divided by 64 to result as the ADC oversampling conversion data). */
ADC_OverSampleDataDiv_7 = 7u, /*!< Select ADC oversampling 7 shift (sum of the ADC conversions data is divided by 128 to result as the ADC oversampling conversion data). */
ADC_OverSampleDataDiv_8 = 8u, /*!< Select ADC oversampling 8 shift (sum of the ADC conversions data is divided by 256 to result as the ADC oversampling conversion data). */
}ADC_OverSampleDataDiv_Type;
/*!
* @brief ADC ADC_OverSampleTrigMode type.
*
* Select ADC oversampling continuous or discontinuous mode
*/
typedef enum
{
ADC_OverSampleTriggerMode_Multi = 0u, /*!< All conversions of oversampling ratio are done from 1 trigger. */
ADC_OverSampleTriggerMode_Single = 1u, /*!< Each conversion of oversampling ratio needs a trigger. */
}ADC_OverSampleTriggerMode_Type;
/*!
* @brief This type of structure instance is used to keep the settings
* when calling the @ref ADC_Init() to initialize the ADC module.
*/
typedef struct
{
ADC_Resolution_Type Resolution; /*!< Specify the available bits for the conversion result data. */
ADC_Align_Type Align; /*!< Specify the data alignment. */
ADC_ConvMode_Type ConvMode; /*!< Specify the adc conversion mode. */
ADC_SingleDiffConvMode_Type SingleDiffMode; /*!< Select ADC channel single-ended or difference conversion mode.*/
ADC_DiffPair_Type DiffPair; /*!< Select channel source as ADC differential or pseudo-difference conversion channels. */
ADC_SingleConvVref_Type SingleVolt; /*!< Select the single-ended conversion vref source. */
} ADC_Init_Type;
/*!
* @brief This type of structure instance is used to keep the settings
* when calling the @ref ADC_EnableHwTrigger() to initialize the ADC hardware trigger module.
*/
typedef struct
{
ADC_HwTriggerEdge_Type Edge; /*!< Select the trigger edge. */
ADC_HwTriggerDelayCycle_Type DelayCycle; /*!< Select the hardware trigger shift sample. */
} ADC_HwTriggerConf_Type;
/*!
* @brief This type of structure instance is used to keep the settings
* when calling the @ref ADC_EnableHwComp() to enable the ADC windows compare mode.
*/
typedef struct
{
uint32_t ChnNum; /*!< Select the channel number binding to the compare. */
uint32_t HighLimit; /*!< The comparator high limit. */
uint32_t LowLimit; /*!< The comparator low limit. */
} ADC_HwCompConf_Type;
/*!
* @brief This type of structure instance is used to keep the settings
* This function just only used in any channel or inject channel.
* when calling the @ref ADC_SetOverSample() to initialize the ADC oversample module.
*/
typedef struct
{
ADC_OverSampleRatio_Type Ratio; /*!< Configures the oversampling ratio. */
ADC_OverSampleDataDiv_Type Div; /*!< Configures the division coefficient for the Oversampler. */
ADC_OverSampleTriggerMode_Type Mode; /*!< Select the oversample trigger mode. */
bool injectOverSampleMode; /*!< Whether injection channel oversampling is enable, ture is enable, false is disable. */
}ADC_OverSampleConf_Type;
/*!
* @brief Initialize the ADC module.
*
* @param ADCx ADC instance.
* @param init Pointer to the initialization structure. See to @ref ADC_Init_Type.
* @return None.
*/
void ADC_Init(ADC_Type * ADCx, ADC_Init_Type * init);
/*!
* @brief Enable the ADC module.
*
* The ADC module should be enabled before conversion data.
*
* @param ADCx ADC instance.
* @param enable 'true' to enable the module, 'false' to disable the module.
* @return None.
*/
void ADC_Enable(ADC_Type * ADCx, bool enable);
/*!
* @brief Enable Temperature sensor from the ADC module.
*
* The module should be enabled when Using the built-in temperature sensor to
* detect temperature changes inside the device.
*
* @param ADCx ADC instance.
* @param enable 'true' to enable the module, 'false' to disable the module.
* @return None.
*/
void ADC_EnableTempSensor(ADC_Type * ADCx, bool enable);
/*!
* @brief Enable Voltage sensor from the ADC module.
*
* The module should be enabled when using internal reference voltage .
*
* @param ADCx ADC instance.
* @param enable 'true' to enable the module, 'false' to disable the module.
* @return None.
*/
void ADC_EnableVoltSensor(ADC_Type * ADCx, bool enable);
/*!
* @brief Enable the DMA from the ADC module.
*
* @param ADCx ADC instance.
* @param enable 'true' to enable the DMA, 'false' to disable the DMA.
* @return None.
*/
void ADC_EnableDMA(ADC_Type * ADCx, bool enable);
/*!
* @brief Enable interrupts of the ADC module.
*
* @param ADCx ADC instance.
* @param interrupts Interrupt code masks.
* @param enable 'true' to enable the indicated interrupts, 'false' to disable the indicated interrupts.
* @return None.
*/
void ADC_EnableInterrupts(ADC_Type * ADCx, uint32_t interrupts, bool enable);
/*!
* @brief Get the current status flags of the ADC module.
*
* @param ADCx ADC instance.
* @return Status flags.
*/
uint32_t ADC_GetStatus(ADC_Type * ADCx);
/*!
* @brief Clear the status flags of the ADC module.
*
* @param ADCx ADC instance.
* @param flags The mask codes of the indicated interrupt flags to be cleared.
* @return None.
*/
void ADC_ClearStatus(ADC_Type * ADCx, uint32_t flags);
/*!
* @brief Get the channel convert data from the ADC module.
*
* @param ADCx ADC instance.
* @param channel The convert channel.
* @param flags The ADC convert result flags. See to @ref ADC_RESULT_FLAGS.
* @return The data value.
*/
uint32_t ADC_GetConvResult(ADC_Type * ADCx, uint32_t * channel, uint32_t * flags);
/*!
* @brief Get the indication slot conversion data from the ADC module.
*
* @param ADCx ADC instance.
* @param slot the adc conversion slot.
* @param flags The ADC convert result flags. See to @ref ADC_RESULT_FLAGS.
* @return The data value.
*/
uint32_t ADC_GetSlotConvResult(ADC_Type * ADCx, uint32_t slot, uint32_t * flags);
/*!
* @brief Get the inject channel convert data from the ADC module.
*
* @param ADCx ADC instance.
* @param channel The convert channel.
* @param flags The ADC convert result flags. See to @ref ADC_RESULT_FLAGS.
* @return The data value.
*/
uint32_t ADC_GetExtConvResult(ADC_Type * ADCx, uint32_t * channel, uint32_t * flags);
/*!
* @brief Get the indication external slot convert data from the ADC module.
*
* @param ADCx ADC instance.
* @param slot the adc external slot.
* @param flags The ADC convert result flags. See to @ref ADC_RESULT_FLAGS.
* @return The data value.
*/
uint32_t ADC_GetExtSlotConvResult(ADC_Type * ADCx, uint32_t slot, uint32_t * flags);
/*!
* @brief Configuration channel sample time of the ADC module.
*
* @param ADCx ADC instance.
* @param channel the adc convert channel.
* @param sampletime the adc channel sample time
* @return None.
*/
void ADC_SetChnSampleTime(ADC_Type * ADCx, uint32_t channel, ADC_SampleTime_Type sample_time);
/*!
* @brief Enable hardware trigger from the ADC module.
*
* The ADC module should be enabled before using hardware trrigger function.
* it also have interrupt.
*
* @param ADCx ADC instance.
* @param conf Select the hardware trigger source. See to @ref ADC_HwTrgConf_Type.
* @return None.
*/
void ADC_EnableHwTrigger(ADC_Type * ADCx, ADC_HwTriggerConf_Type * conf);
/*!
* @brief Enable fixed slot sequence conversion from the ADC module.
*
* The ADC module should be enabled before regular sequence function.
* it also have interrupt.
*
* @param ADCx ADC instance.
* @param seq_slot the fixed channel, it can be ascending or descending.
* @param seq_direction the sequence fixed scan direction.
* @return None.
*/
void ADC_EnableSeqSlotFixed(ADC_Type * ADCx, uint32_t seq_slot, ADC_SeqFixedDirection_Type dir);
/*!
* @brief Enable sequence conversion from the ADC module.
*
* The ADC module should be enabled before Any sequence function.
* it also have interrupt.
*
* @param ADCx ADC instance.
* @param slot_idx the sequence slot index.
* @param channel the conversion channel, it will be placed in each slot.
* @return None.
*/
void ADC_EnableSeqSlot(ADC_Type * ADCx, uint32_t slot_idx, uint32_t channel);
/*!
* @brief Enable external sequence conversion from the ADC module.
*
* The ADC module should be enabled before sequence conversion function.
* it also have interrupt.
*
* @param ADCx ADC instance.
* @param slot_idx the sequence slot index.
* @param channel the conversion channel, it will be placed in each slot.
* @return None.
*/
void ADC_EnableExtSeqSlot(ADC_Type * ADCx, uint32_t slot_idx, uint32_t channel);
/*!
* @brief Enable Inject sequence auto conversion from the ADC module.
* the sequence conversion done, the inject sequence start conversion.
*
* @param ADCx ADC instance.
* @param enable 'true' to enable the ADC start inject sequence convert, 'false' to disable.
* @return None.
*/
void ADC_EnableAutoExtSeqSlot(ADC_Type * ADCx, bool enable);
/*!
* @brief Do external chanenel sequence conversion software trigger.
*
* @param ADCx ADC instance.
* @param enable 'true' to enable the ADC start inject channel convert, 'false' to disable.
* @return None.
*/
void ADC_DoExtSeqSlotSwTrigger(ADC_Type * ADCx, bool enable);
/*!
* @brief Set inject chanenel data offset compensation.
*
* @param ADCx ADC instance.
* @param value difference between actual input value and converted value.
* @param slot the inject slot.
* @return None.
*/
void ADC_SetExtSlotCalibParam(ADC_Type * ADCx, uint32_t slot, uint32_t value);
/*!
* @brief Enable window comparison from the ADC module.
*
* The ADC module should be enabled before using analog watchdog function.
* it also have interrupt.
*
* @param ADCx ADC instance.
* @param conf Pointer to the initialization structure. See to @ref ADC_HwCompConf_Type.
* @return None.
*/
void ADC_EnableHwComp(ADC_Type * ADCx, ADC_HwCompConf_Type * conf);
/*!
* @brief Do soft trigger.
*
* @param ADCx ADC instance.
* @param enable 'true' to enable the ADC start convert, 'false' to disable.
* @return None.
*/
void ADC_DoSwTrigger(ADC_Type * ADCx, bool enable);
/*!
* @brief Do auto self-calibration.
*
* @param ADCx ADC instance.
* @return None.
*/
void ADC_DoAutoCalib(ADC_Type * ADCx);
/*!
* @brief Get Calibration factor through auto calibration.
*
* when you use the use this api to get the calibration factor when you write the calibration through the register.
* @param ADCx ADC instance.
* @param factor from self-calibration,the calibration parameter consists of 17 9-digit numbers.
* @param return 1;
*/
uint32_t ADC_GetCalibFactor(ADC_Type * ADCx, uint32_t * factor);
/*!
* @brief Set Calibration factor through register.
*
* when you use the use this api to write the calibration factor when you write the calibration through the register.
* @param ADCx ADC instance.
* @param factor the calibration parameters from ADC_GetCalibFactor().
* @return None.
*/
void ADC_SetCalibFactor(ADC_Type * ADCx, uint32_t * factor);
/*!
* @brief Set Set OverSample mode.
*
* Average value of converted data using hardware implementation.
* @param ADCx ADC instance.
* @param conf Pointer to the initialization structure. See to @ref ADC_OverSampleConf_Type.
* @return None.
*/
void ADC_SetOverSample(ADC_Type * ADCx, ADC_OverSampleConf_Type *conf);
/*!
* @brief Reset all the slot conversion.
*
* @param ADCx ADC instance.
* @return None.
*/
void ADC_ResetAllSlot(ADC_Type * ADCx);
/*!
*@}
*/
#endif /*__HAL_ADC_H__. */