Fork of the official mbed C/C SDK provides the software platform and libraries to build your applications for RenBED.

Dependents:   1-RenBuggyTimed RenBED_RGB RenBED_RGB_PWM RenBED_RGB

Fork of mbed by mbed official

Committer:
elijahorr
Date:
Thu Apr 14 07:28:54 2016 +0000
Revision:
121:672067c3ada4
Parent:
100:cbbeb26dbd92
.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Kojto 100:cbbeb26dbd92 1 /**
Kojto 100:cbbeb26dbd92 2 ******************************************************************************
Kojto 100:cbbeb26dbd92 3 * @file stm32f3xx_hal_adc_ex.h
Kojto 100:cbbeb26dbd92 4 * @author MCD Application Team
Kojto 100:cbbeb26dbd92 5 * @version V1.1.0
Kojto 100:cbbeb26dbd92 6 * @date 12-Sept-2014
Kojto 100:cbbeb26dbd92 7 * @brief Header file containing functions prototypes of ADC HAL library.
Kojto 100:cbbeb26dbd92 8 ******************************************************************************
Kojto 100:cbbeb26dbd92 9 * @attention
Kojto 100:cbbeb26dbd92 10 *
Kojto 100:cbbeb26dbd92 11 * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
Kojto 100:cbbeb26dbd92 12 *
Kojto 100:cbbeb26dbd92 13 * Redistribution and use in source and binary forms, with or without modification,
Kojto 100:cbbeb26dbd92 14 * are permitted provided that the following conditions are met:
Kojto 100:cbbeb26dbd92 15 * 1. Redistributions of source code must retain the above copyright notice,
Kojto 100:cbbeb26dbd92 16 * this list of conditions and the following disclaimer.
Kojto 100:cbbeb26dbd92 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
Kojto 100:cbbeb26dbd92 18 * this list of conditions and the following disclaimer in the documentation
Kojto 100:cbbeb26dbd92 19 * and/or other materials provided with the distribution.
Kojto 100:cbbeb26dbd92 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
Kojto 100:cbbeb26dbd92 21 * may be used to endorse or promote products derived from this software
Kojto 100:cbbeb26dbd92 22 * without specific prior written permission.
Kojto 100:cbbeb26dbd92 23 *
Kojto 100:cbbeb26dbd92 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
Kojto 100:cbbeb26dbd92 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
Kojto 100:cbbeb26dbd92 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
Kojto 100:cbbeb26dbd92 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
Kojto 100:cbbeb26dbd92 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
Kojto 100:cbbeb26dbd92 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
Kojto 100:cbbeb26dbd92 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
Kojto 100:cbbeb26dbd92 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
Kojto 100:cbbeb26dbd92 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
Kojto 100:cbbeb26dbd92 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Kojto 100:cbbeb26dbd92 34 *
Kojto 100:cbbeb26dbd92 35 ******************************************************************************
Kojto 100:cbbeb26dbd92 36 */
Kojto 100:cbbeb26dbd92 37
Kojto 100:cbbeb26dbd92 38 /* Define to prevent recursive inclusion -------------------------------------*/
Kojto 100:cbbeb26dbd92 39 #ifndef __STM32F3xx_ADC_EX_H
Kojto 100:cbbeb26dbd92 40 #define __STM32F3xx_ADC_EX_H
Kojto 100:cbbeb26dbd92 41
Kojto 100:cbbeb26dbd92 42 #ifdef __cplusplus
Kojto 100:cbbeb26dbd92 43 extern "C" {
Kojto 100:cbbeb26dbd92 44 #endif
Kojto 100:cbbeb26dbd92 45
Kojto 100:cbbeb26dbd92 46 /* Includes ------------------------------------------------------------------*/
Kojto 100:cbbeb26dbd92 47 #include "stm32f3xx_hal_def.h"
Kojto 100:cbbeb26dbd92 48
Kojto 100:cbbeb26dbd92 49 /** @addtogroup STM32F3xx_HAL_Driver
Kojto 100:cbbeb26dbd92 50 * @{
Kojto 100:cbbeb26dbd92 51 */
Kojto 100:cbbeb26dbd92 52
Kojto 100:cbbeb26dbd92 53 /** @addtogroup ADCEx ADC Extended HAL module driver
Kojto 100:cbbeb26dbd92 54 * @{
Kojto 100:cbbeb26dbd92 55 */
Kojto 100:cbbeb26dbd92 56
Kojto 100:cbbeb26dbd92 57 /* Exported types ------------------------------------------------------------*/
Kojto 100:cbbeb26dbd92 58 /** @defgroup ADCEx_Exported_Types ADC Extented Exported Types
Kojto 100:cbbeb26dbd92 59 * @{
Kojto 100:cbbeb26dbd92 60 */
Kojto 100:cbbeb26dbd92 61 struct __ADC_HandleTypeDef;
Kojto 100:cbbeb26dbd92 62
Kojto 100:cbbeb26dbd92 63 #if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx) || \
Kojto 100:cbbeb26dbd92 64 defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx) || \
Kojto 100:cbbeb26dbd92 65 defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx) || \
Kojto 100:cbbeb26dbd92 66 defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx)
Kojto 100:cbbeb26dbd92 67 /**
Kojto 100:cbbeb26dbd92 68 * @brief Structure definition of ADC initialization and regular group
Kojto 100:cbbeb26dbd92 69 * @note Parameters of this structure are shared within 2 scopes:
Kojto 100:cbbeb26dbd92 70 * - Scope entire ADC (affects regular and injected groups): ClockPrescaler, Resolution, DataAlign,
Kojto 100:cbbeb26dbd92 71 * ScanConvMode, EOCSelection, LowPowerAutoWait.
Kojto 100:cbbeb26dbd92 72 * - Scope regular group: ContinuousConvMode, NbrOfConversion, DiscontinuousConvMode, NbrOfDiscConversion, ExternalTrigConvEdge, ExternalTrigConv, DMAContinuousRequests, Overrun.
Kojto 100:cbbeb26dbd92 73 * @note The setting of these parameters with function HAL_ADC_Init() is conditioned to ADC state.
Kojto 100:cbbeb26dbd92 74 * ADC state can be either:
Kojto 100:cbbeb26dbd92 75 * - For all parameters: ADC disabled
Kojto 100:cbbeb26dbd92 76 * - For all parameters except 'LowPowerAutoWait' and 'DMAContinuousRequests': ADC enabled without conversion on going on regular group.
Kojto 100:cbbeb26dbd92 77 * - For parameters 'LowPowerAutoWait' and 'DMAContinuousRequests': ADC enabled without conversion on going on regular and injected groups.
Kojto 100:cbbeb26dbd92 78 * If ADC is not in the appropriate state to modify some parameters, these parameters setting is bypassed
Kojto 100:cbbeb26dbd92 79 * without error reporting without error reporting (as it can be the expected behaviour in case of intended action to update another parameter (which fullfills the ADC state condition) on the fly).
Kojto 100:cbbeb26dbd92 80 */
Kojto 100:cbbeb26dbd92 81 typedef struct
Kojto 100:cbbeb26dbd92 82 {
Kojto 100:cbbeb26dbd92 83 uint32_t ClockPrescaler; /*!< Select ADC clock source (synchronous clock derived from AHB clock or asynchronous clock derived from ADC dedicated PLL 72MHz) and clock prescaler.
Kojto 100:cbbeb26dbd92 84 The clock is common for all the ADCs.
Kojto 100:cbbeb26dbd92 85 This parameter can be a value of @ref ADCEx_ClockPrescaler
Kojto 100:cbbeb26dbd92 86 Note: In case of usage of channels on injected group, ADC frequency should be low than AHB clock frequency /4 for resolution 12 or 10 bits,
Kojto 100:cbbeb26dbd92 87 AHB clock frequency /3 for resolution 8 bits, AHB clock frequency /2 for resolution 6 bits.
Kojto 100:cbbeb26dbd92 88 Note: In case of usage of the ADC dedicated PLL clock, this clock must be preliminarily enabled and prescaler set at RCC top level.
Kojto 100:cbbeb26dbd92 89 Note: This parameter can be modified only if all ADCs of the common ADC group are disabled (for products with several ADCs) */
Kojto 100:cbbeb26dbd92 90 uint32_t Resolution; /*!< Configures the ADC resolution.
Kojto 100:cbbeb26dbd92 91 This parameter can be a value of @ref ADCEx_Resolution */
Kojto 100:cbbeb26dbd92 92 uint32_t DataAlign; /*!< Specifies ADC data alignment to right (for resolution 12 bits: MSB on register bit 11 and LSB on register bit 0) (default setting)
Kojto 100:cbbeb26dbd92 93 or to left (for resolution 12 bits, if offset disabled: MSB on register bit 15 and LSB on register bit 4, if offset enabled: MSB on register bit 14 and LSB on register bit 3).
Kojto 100:cbbeb26dbd92 94 See reference manual for alignments with other resolutions.
Kojto 100:cbbeb26dbd92 95 This parameter can be a value of @ref ADCEx_Data_align */
Kojto 100:cbbeb26dbd92 96 uint32_t ScanConvMode; /*!< Configures the sequencer of regular and injected groups.
Kojto 100:cbbeb26dbd92 97 This parameter can be associated to parameter 'DiscontinuousConvMode' to have main sequence subdivided in successive parts.
Kojto 100:cbbeb26dbd92 98 If disabled: Conversion is performed in single mode (one channel converted, the one defined in rank 1).
Kojto 100:cbbeb26dbd92 99 Parameters 'NbrOfConversion' and 'InjectedNbrOfConversion' are discarded (equivalent to set to 1).
Kojto 100:cbbeb26dbd92 100 If enabled: Conversions are performed in sequence mode (multiple ranks defined by 'NbrOfConversion'/'InjectedNbrOfConversion' and each channel rank).
Kojto 100:cbbeb26dbd92 101 Scan direction is upward: from rank1 to rank 'n'.
Kojto 100:cbbeb26dbd92 102 This parameter can be a value of @ref ADCEx_Scan_mode */
Kojto 100:cbbeb26dbd92 103 uint32_t EOCSelection; /*!< Specifies what EOC (End Of Conversion) flag is used for conversion by polling and interruption: end of conversion of each rank or complete sequence.
Kojto 100:cbbeb26dbd92 104 This parameter can be a value of @ref ADCEx_EOCSelection. */
Kojto 100:cbbeb26dbd92 105 uint32_t LowPowerAutoWait; /*!< Selects the dynamic low power Auto Delay: new conversion start only when the previous
Kojto 100:cbbeb26dbd92 106 conversion (for regular group) or previous sequence (for injected group) has been treated by user software.
Kojto 100:cbbeb26dbd92 107 This feature automatically adapts the speed of ADC to the speed of the system that reads the data. Moreover, this avoids risk of overrun for low frequency applications.
Kojto 100:cbbeb26dbd92 108 This parameter can be set to ENABLE or DISABLE.
Kojto 100:cbbeb26dbd92 109 Note: Do not use with interruption or DMA (HAL_ADC_Start_IT(), HAL_ADC_Start_DMA()) since they have to clear immediately the EOC flag to free the IRQ vector sequencer.
Kojto 100:cbbeb26dbd92 110 Do use with polling: 1. Start conversion with HAL_ADC_Start(), 2. Later on, when conversion data is needed: use HAL_ADC_PollForConversion() to ensure that conversion is completed
Kojto 100:cbbeb26dbd92 111 and use HAL_ADC_GetValue() to retrieve conversion result and trig another conversion. */
Kojto 100:cbbeb26dbd92 112 uint32_t ContinuousConvMode; /*!< Specifies whether the conversion is performed in single mode (one conversion) or continuous mode for regular group,
Kojto 100:cbbeb26dbd92 113 after the selected trigger occurred (software start or external trigger).
Kojto 100:cbbeb26dbd92 114 This parameter can be set to ENABLE or DISABLE. */
Kojto 100:cbbeb26dbd92 115 uint32_t NbrOfConversion; /*!< Specifies the number of ranks that will be converted within the regular group sequencer.
Kojto 100:cbbeb26dbd92 116 To use the regular group sequencer and convert several ranks, parameter 'ScanConvMode' must be enabled.
Kojto 100:cbbeb26dbd92 117 This parameter must be a number between Min_Data = 1 and Max_Data = 16.
Kojto 100:cbbeb26dbd92 118 Note: This parameter must be modified when no conversion is on going on regular group (ADC disabled, or ADC enabled without continuous mode or external trigger that could lauch a conversion). */
Kojto 100:cbbeb26dbd92 119 uint32_t DiscontinuousConvMode; /*!< Specifies whether the conversions sequence of regular group is performed in Complete-sequence/Discontinuous-sequence (main sequence subdivided in successive parts).
Kojto 100:cbbeb26dbd92 120 Discontinuous mode is used only if sequencer is enabled (parameter 'ScanConvMode'). If sequencer is disabled, this parameter is discarded.
Kojto 100:cbbeb26dbd92 121 Discontinuous mode can be enabled only if continuous mode is disabled. If continuous mode is enabled, this parameter setting is discarded.
Kojto 100:cbbeb26dbd92 122 This parameter can be set to ENABLE or DISABLE. */
Kojto 100:cbbeb26dbd92 123 uint32_t NbrOfDiscConversion; /*!< Specifies the number of discontinuous conversions in which the main sequence of regular group (parameter NbrOfConversion) will be subdivided.
Kojto 100:cbbeb26dbd92 124 If parameter 'DiscontinuousConvMode' is disabled, this parameter is discarded.
Kojto 100:cbbeb26dbd92 125 This parameter must be a number between Min_Data = 1 and Max_Data = 8. */
Kojto 100:cbbeb26dbd92 126 uint32_t ExternalTrigConv; /*!< Selects the external event used to trigger the conversion start of regular group.
Kojto 100:cbbeb26dbd92 127 If set to ADC_SOFTWARE_START, external triggers are disabled.
Kojto 100:cbbeb26dbd92 128 This parameter can be a value of @ref ADCEx_External_trigger_source_Regular
Kojto 100:cbbeb26dbd92 129 Caution: For devices with several ADCs, external trigger source is common to ADC common group (for example: ADC1&ADC2, ADC3&ADC4, if available) */
Kojto 100:cbbeb26dbd92 130 uint32_t ExternalTrigConvEdge; /*!< Selects the external trigger edge of regular group.
Kojto 100:cbbeb26dbd92 131 If trigger is set to ADC_SOFTWARE_START, this parameter is discarded.
Kojto 100:cbbeb26dbd92 132 This parameter can be a value of @ref ADCEx_External_trigger_edge_Regular */
Kojto 100:cbbeb26dbd92 133 uint32_t DMAContinuousRequests; /*!< Specifies whether the DMA requests are performed in one shot mode (DMA transfer stop when number of conversions is reached)
Kojto 100:cbbeb26dbd92 134 or in Continuous mode (DMA transfer unlimited, whatever number of conversions).
Kojto 100:cbbeb26dbd92 135 Note: In continuous mode, DMA must be configured in circular mode. Otherwise an overrun will be triggered when DMA buffer maximum pointer is reached.
Kojto 100:cbbeb26dbd92 136 This parameter can be set to ENABLE or DISABLE.
Kojto 100:cbbeb26dbd92 137 Note: This parameter must be modified when no conversion is on going on both regular and injected groups (ADC disabled, or ADC enabled without continuous mode or external trigger that could lauch a conversion). */
Kojto 100:cbbeb26dbd92 138 uint32_t Overrun; /*!< Select the behaviour in case of overrun: data overwritten (default) or preserved.
Kojto 100:cbbeb26dbd92 139 This parameter is for regular group only.
Kojto 100:cbbeb26dbd92 140 This parameter can be a value of @ref ADCEx_Overrun
Kojto 100:cbbeb26dbd92 141 Note: Case of overrun set to data preserved and usage with end on conversion interruption (HAL_Start_IT()): ADC IRQ handler has to clear end of conversion flags, this induces the release of the preserved data. If needed, this data can be saved into function HAL_ADC_ConvCpltCallback() (called before end of conversion flags clear).
Kojto 100:cbbeb26dbd92 142 Note: Error reporting in function of conversion mode:
Kojto 100:cbbeb26dbd92 143 - Usage with ADC conversion by polling for event or interruption: Error is reported only if overrun is set to data preserved. If overrun is set to data overwritten, user can willingly not read the conversion data each time, this is not considered as an erroneous case.
Kojto 100:cbbeb26dbd92 144 - Usage with ADC conversion by DMA: Error is reported whatever overrun setting (DMA is expected to process all data from data register, any data missed would be abnormal). */
Kojto 100:cbbeb26dbd92 145 }ADC_InitTypeDef;
Kojto 100:cbbeb26dbd92 146
Kojto 100:cbbeb26dbd92 147 /**
Kojto 100:cbbeb26dbd92 148 * @brief Structure definition of ADC channel for regular group
Kojto 100:cbbeb26dbd92 149 * @note The setting of these parameters with function HAL_ADC_ConfigChannel() is conditioned to ADC state.
Kojto 100:cbbeb26dbd92 150 * ADC state can be either:
Kojto 100:cbbeb26dbd92 151 * - For all parameters: ADC disabled (this is the only possible ADC state to modify parameter 'SingleDiff')
Kojto 100:cbbeb26dbd92 152 * - For all except parameters 'SamplingTime', 'Offset', 'OffsetNumber': ADC enabled without conversion on going on regular group.
Kojto 100:cbbeb26dbd92 153 * - For parameters 'SamplingTime', 'Offset', 'OffsetNumber': ADC enabled without conversion on going on regular and injected groups.
Kojto 100:cbbeb26dbd92 154 * If ADC is not in the appropriate state to modify some parameters, these parameters setting is bypassed
Kojto 100:cbbeb26dbd92 155 * without error reporting (as it can be the expected behaviour in case of intended action to update another parameter (which fulfills the ADC state condition) on the fly).
Kojto 100:cbbeb26dbd92 156 */
Kojto 100:cbbeb26dbd92 157 typedef struct
Kojto 100:cbbeb26dbd92 158 {
Kojto 100:cbbeb26dbd92 159 uint32_t Channel; /*!< Specifies the channel to configure into ADC regular group.
Kojto 100:cbbeb26dbd92 160 This parameter can be a value of @ref ADCEx_channels
Kojto 100:cbbeb26dbd92 161 Note: Depending on devices, some channels may not be available on package pins. Refer to device datasheet for channels availability. */
Kojto 100:cbbeb26dbd92 162 uint32_t Rank; /*!< Specifies the rank in the regular group sequencer.
Kojto 100:cbbeb26dbd92 163 This parameter can be a value of @ref ADCEx_regular_rank
Kojto 100:cbbeb26dbd92 164 Note: In case of need to disable a channel or change order of conversion sequencer, rank containing a previous channel setting can be overwritten by the new channel setting (or parameter number of conversions can be adjusted) */
Kojto 100:cbbeb26dbd92 165 uint32_t SamplingTime; /*!< Sampling time value to be set for the selected channel.
Kojto 100:cbbeb26dbd92 166 Unit: ADC clock cycles
Kojto 100:cbbeb26dbd92 167 Conversion time is the addition of sampling time and processing time (12.5 ADC clock cycles at ADC resolution 12 bits, 10.5 cycles at 10 bits, 8.5 cycles at 8 bits, 6.5 cycles at 6 bits).
Kojto 100:cbbeb26dbd92 168 This parameter can be a value of @ref ADCEx_sampling_times
Kojto 100:cbbeb26dbd92 169 Caution: This parameter updates the parameter property of the channel, that can be used into regular and/or injected groups.
Kojto 100:cbbeb26dbd92 170 If this same channel has been previously configured in the other group (regular/injected), it will be updated to last setting.
Kojto 100:cbbeb26dbd92 171 Note: In case of usage of internal measurement channels (VrefInt/Vbat/TempSensor),
Kojto 100:cbbeb26dbd92 172 sampling time constraints must be respected (sampling time can be adjusted in function of ADC clock frequency and sampling time setting)
Kojto 100:cbbeb26dbd92 173 Refer to device datasheet for timings values, parameters TS_vrefint, TS_vbat, TS_temp (values rough order: 2.2us min). */
Kojto 100:cbbeb26dbd92 174 uint32_t SingleDiff; /*!< Selection of single-ended or differential input.
Kojto 100:cbbeb26dbd92 175 In differential mode: Differential measurement is between the selected channel 'i' (positive input) and channel 'i+1' (negative input).
Kojto 100:cbbeb26dbd92 176 Only channel 'i' has to be configured, channel 'i+1' is configured automatically.
Kojto 100:cbbeb26dbd92 177 This parameter must be a value of @ref ADCEx_SingleDifferential
Kojto 100:cbbeb26dbd92 178 Caution: This parameter updates the parameter property of the channel, that can be used into regular and/or injected groups.
Kojto 100:cbbeb26dbd92 179 If this same channel has been previously configured in the other group (regular/injected), it will be updated to last setting.
Kojto 100:cbbeb26dbd92 180 Note: Channels 1 to 14 are available in differential mode. Channels 15, 16, 17, 18 can be used only in single-ended mode.
Kojto 100:cbbeb26dbd92 181 Note: When configuring a channel 'i' in differential mode, the channel 'i+1' is not usable separately.
Kojto 100:cbbeb26dbd92 182 Note: This parameter must be modified when ADC is disabled (before ADC start conversion or after ADC stop conversion).
Kojto 100:cbbeb26dbd92 183 If ADC is enabled, this parameter setting is bypassed without error reporting (as it can be the expected behaviour in case of another parameter update on the fly) */
Kojto 100:cbbeb26dbd92 184 uint32_t OffsetNumber; /*!< Selects the offset number
Kojto 100:cbbeb26dbd92 185 This parameter can be a value of @ref ADCEx_OffsetNumber
Kojto 100:cbbeb26dbd92 186 Caution: Only one channel is allowed per channel. If another channel was on this offset number, the offset will be changed to the new channel */
Kojto 100:cbbeb26dbd92 187 uint32_t Offset; /*!< Defines the offset to be subtracted from the raw converted data when convert channels.
Kojto 100:cbbeb26dbd92 188 Offset value must be a positive number.
Kojto 100:cbbeb26dbd92 189 Depending of ADC resolution selected (12, 10, 8 or 6 bits), this parameter must be a number between Min_Data = 0x000 and Max_Data = 0xFFF, 0x3FF, 0xFF or 0x3F respectively.
Kojto 100:cbbeb26dbd92 190 Note: This parameter must be modified when no conversion is on going on both regular and injected groups (ADC disabled, or ADC enabled without continuous mode or external trigger that could lauch a conversion). */
Kojto 100:cbbeb26dbd92 191 }ADC_ChannelConfTypeDef;
Kojto 100:cbbeb26dbd92 192
Kojto 100:cbbeb26dbd92 193 /**
Kojto 100:cbbeb26dbd92 194 * @brief Structure definition of ADC injected group and ADC channel for injected group
Kojto 100:cbbeb26dbd92 195 * @note Parameters of this structure are shared within 2 scopes:
Kojto 100:cbbeb26dbd92 196 * - Scope channel: InjectedChannel, InjectedRank, InjectedSamplingTime , InjectedSingleDiff, InjectedOffsetNumber, InjectedOffset
Kojto 100:cbbeb26dbd92 197 * - Scope injected group (affects all channels of injected group): InjectedNbrOfConversion, InjectedDiscontinuousConvMode,
Kojto 100:cbbeb26dbd92 198 * AutoInjectedConv, QueueInjectedContext, ExternalTrigInjecConvEdge, ExternalTrigInjecConv.
Kojto 100:cbbeb26dbd92 199 * @note The setting of these parameters with function HAL_ADCEx_InjectedConfigChannel() is conditioned to ADC state.
Kojto 100:cbbeb26dbd92 200 * ADC state can be either:
Kojto 100:cbbeb26dbd92 201 * - For all parameters: ADC disabled (this is the only possible ADC state to modify parameter 'InjectedSingleDiff')
Kojto 100:cbbeb26dbd92 202 * - For parameters 'InjectedDiscontinuousConvMode', 'QueueInjectedContext': ADC enabled without conversion on going on injected group.
Kojto 100:cbbeb26dbd92 203 * - For parameters 'InjectedSamplingTime', 'InjectedOffset', 'InjectedOffsetNumber', 'AutoInjectedConv': ADC enabled without conversion on going on regular and injected groups.
Kojto 100:cbbeb26dbd92 204 * - For parameters 'InjectedChannel', 'InjectedRank', 'InjectedNbrOfConversion', 'ExternalTrigInjecConv', 'ExternalTrigInjecConvEdge': ADC enabled and while conversion on going on regular and injected groups.
Kojto 100:cbbeb26dbd92 205 * If ADC is not in the appropriate state to modify some parameters, these parameters setting is bypassed
Kojto 100:cbbeb26dbd92 206 * without error reporting without error reporting (as it can be the expected behaviour in case of intended action to update another parameter (which fulfills the ADC state condition) on the fly).
Kojto 100:cbbeb26dbd92 207 */
Kojto 100:cbbeb26dbd92 208 typedef struct
Kojto 100:cbbeb26dbd92 209 {
Kojto 100:cbbeb26dbd92 210 uint32_t InjectedChannel; /*!< Configure the ADC injected channel
Kojto 100:cbbeb26dbd92 211 This parameter can be a value of @ref ADCEx_channels
Kojto 100:cbbeb26dbd92 212 Note: Depending on devices, some channels may not be available on package pins. Refer to device datasheet for channels availability. */
Kojto 100:cbbeb26dbd92 213 uint32_t InjectedRank; /*!< The rank in the regular group sequencer
Kojto 100:cbbeb26dbd92 214 This parameter must be a value of @ref ADCEx_injected_rank
Kojto 100:cbbeb26dbd92 215 Note: In case of need to disable a channel or change order of conversion sequencer, rank containing a previous channel setting can be overwritten by the new channel setting (or parameter number of conversions can be adjusted) */
Kojto 100:cbbeb26dbd92 216 uint32_t InjectedSamplingTime; /*!< Sampling time value to be set for the selected channel.
Kojto 100:cbbeb26dbd92 217 Unit: ADC clock cycles
Kojto 100:cbbeb26dbd92 218 Conversion time is the addition of sampling time and processing time (12.5 ADC clock cycles at ADC resolution 12 bits, 10.5 cycles at 10 bits, 8.5 cycles at 8 bits, 6.5 cycles at 6 bits).
Kojto 100:cbbeb26dbd92 219 This parameter can be a value of @ref ADCEx_sampling_times
Kojto 100:cbbeb26dbd92 220 Caution: This parameter updates the parameter property of the channel, that can be used into regular and/or injected groups.
Kojto 100:cbbeb26dbd92 221 If this same channel has been previously configured in the other group (regular/injected), it will be updated to last setting.
Kojto 100:cbbeb26dbd92 222 Note: In case of usage of internal measurement channels (VrefInt/Vbat/TempSensor),
Kojto 100:cbbeb26dbd92 223 sampling time constraints must be respected (sampling time can be adjusted in function of ADC clock frequency and sampling time setting)
Kojto 100:cbbeb26dbd92 224 Refer to device datasheet for timings values, parameters TS_vrefint, TS_vbat, TS_temp (values rough order: 2.2us min). */
Kojto 100:cbbeb26dbd92 225 uint32_t InjectedSingleDiff; /*!< Selection of single-ended or differential input.
Kojto 100:cbbeb26dbd92 226 In differential mode: Differential measurement is between the selected channel 'i' (positive input) and channel 'i+1' (negative input).
Kojto 100:cbbeb26dbd92 227 Only channel 'i' has to be configured, channel 'i+1' is configured automatically.
Kojto 100:cbbeb26dbd92 228 This parameter must be a value of @ref ADCEx_SingleDifferential
Kojto 100:cbbeb26dbd92 229 Caution: This parameter updates the parameter property of the channel, that can be used into regular and/or injected groups.
Kojto 100:cbbeb26dbd92 230 If this same channel has been previously configured in the other group (regular/injected), it will be updated to last setting.
Kojto 100:cbbeb26dbd92 231 Note: Channels 1 to 14 are available in differential mode. Channels 15, 16, 17, 18 can be used only in single-ended mode.
Kojto 100:cbbeb26dbd92 232 Note: When configuring a channel 'i' in differential mode, the channel 'i-1' is not usable separately.
Kojto 100:cbbeb26dbd92 233 Note: This parameter must be modified when ADC is disabled (before ADC start conversion or after ADC stop conversion).
Kojto 100:cbbeb26dbd92 234 If ADC is enabled, this parameter setting is bypassed without error reporting (as it can be the expected behaviour in case of another parameter update on the fly) */
Kojto 100:cbbeb26dbd92 235 uint32_t InjectedOffsetNumber; /*!< Selects the offset number
Kojto 100:cbbeb26dbd92 236 This parameter can be a value of @ref ADCEx_OffsetNumber
Kojto 100:cbbeb26dbd92 237 Caution: Only one channel is allowed per offset number. If another channel was on this offset number, the offset will be changed to the new channel. */
Kojto 100:cbbeb26dbd92 238 uint32_t InjectedOffset; /*!< Defines the offset to be subtracted from the raw converted data.
Kojto 100:cbbeb26dbd92 239 Offset value must be a positive number.
Kojto 100:cbbeb26dbd92 240 Depending of ADC resolution selected (12, 10, 8 or 6 bits),
Kojto 100:cbbeb26dbd92 241 this parameter must be a number between Min_Data = 0x000 and Max_Data = 0xFFF, 0x3FF, 0xFF or 0x3F respectively. */
Kojto 100:cbbeb26dbd92 242 uint32_t InjectedNbrOfConversion; /*!< Specifies the number of ranks that will be converted within the injected group sequencer.
Kojto 100:cbbeb26dbd92 243 To use the injected group sequencer and convert several ranks, parameter 'ScanConvMode' must be enabled.
Kojto 100:cbbeb26dbd92 244 This parameter must be a number between Min_Data = 1 and Max_Data = 4.
Kojto 100:cbbeb26dbd92 245 Caution: this setting impacts the entire injected group. Therefore, call of HAL_ADCEx_InjectedConfigChannel() to
Kojto 100:cbbeb26dbd92 246 configure a channel on injected group can impact the configuration of other channels previously set. */
Kojto 100:cbbeb26dbd92 247 uint32_t InjectedDiscontinuousConvMode; /*!< Specifies whether the conversions sequence of injected group is performed in Complete-sequence/Discontinuous-sequence (main sequence subdivided in successive parts).
Kojto 100:cbbeb26dbd92 248 Discontinuous mode is used only if sequencer is enabled (parameter 'ScanConvMode'). If sequencer is disabled, this parameter is discarded.
Kojto 100:cbbeb26dbd92 249 Discontinuous mode can be enabled only if continuous mode is disabled. If continuous mode is enabled, this parameter setting is discarded.
Kojto 100:cbbeb26dbd92 250 This parameter can be set to ENABLE or DISABLE.
Kojto 100:cbbeb26dbd92 251 Note: This parameter must be modified when ADC is disabled (before ADC start conversion or after ADC stop conversion).
Kojto 100:cbbeb26dbd92 252 Note: For injected group, number of discontinuous ranks increment is fixed to one-by-one.
Kojto 100:cbbeb26dbd92 253 Caution: this setting impacts the entire injected group. Therefore, call of HAL_ADCEx_InjectedConfigChannel() to
Kojto 100:cbbeb26dbd92 254 configure a channel on injected group can impact the configuration of other channels previously set. */
Kojto 100:cbbeb26dbd92 255 uint32_t AutoInjectedConv; /*!< Enables or disables the selected ADC automatic injected group conversion after regular one
Kojto 100:cbbeb26dbd92 256 This parameter can be set to ENABLE or DISABLE.
Kojto 100:cbbeb26dbd92 257 Note: To use Automatic injected conversion, discontinuous mode must be disabled ('DiscontinuousConvMode' and 'InjectedDiscontinuousConvMode' set to DISABLE)
Kojto 100:cbbeb26dbd92 258 Note: To use Automatic injected conversion, injected group external triggers must be disabled ('ExternalTrigInjecConv' set to ADC_SOFTWARE_START)
Kojto 100:cbbeb26dbd92 259 Note: In case of DMA used with regular group: if DMA configured in normal mode (single shot) JAUTO will be stopped upon DMA transfer complete.
Kojto 100:cbbeb26dbd92 260 To maintain JAUTO always enabled, DMA must be configured in circular mode.
Kojto 100:cbbeb26dbd92 261 Caution: this setting impacts the entire injected group. Therefore, call of HAL_ADCEx_InjectedConfigChannel() to
Kojto 100:cbbeb26dbd92 262 configure a channel on injected group can impact the configuration of other channels previously set. */
Kojto 100:cbbeb26dbd92 263 uint32_t QueueInjectedContext; /*!< Specifies whether the context queue feature is enabled.
Kojto 100:cbbeb26dbd92 264 This parameter can be set to ENABLE or DISABLE.
Kojto 100:cbbeb26dbd92 265 If context queue is enabled, injected sequencer&channels configurations are queued on up to 2 contexts. If a
Kojto 100:cbbeb26dbd92 266 new injected context is set when queue is full, error is triggered by interruption and through function 'HAL_ADCEx_InjectedQueueOverflowCallback'.
Kojto 100:cbbeb26dbd92 267 Caution: This feature request that the sequence is fully configured before injected conversion start.
Kojto 100:cbbeb26dbd92 268 Therefore, configure channels with HAL_ADCEx_InjectedConfigChannel() as many times as value of 'InjectedNbrOfConversion' parameter.
Kojto 100:cbbeb26dbd92 269 Caution: this setting impacts the entire injected group. Therefore, call of HAL_ADCEx_InjectedConfigChannel() to
Kojto 100:cbbeb26dbd92 270 configure a channel on injected group can impact the configuration of other channels previously set.
Kojto 100:cbbeb26dbd92 271 Note: This parameter must be modified when ADC is disabled (before ADC start conversion or after ADC stop conversion). */
Kojto 100:cbbeb26dbd92 272 uint32_t ExternalTrigInjecConv; /*!< Selects the external event used to trigger the conversion start of injected group.
Kojto 100:cbbeb26dbd92 273 If set to ADC_INJECTED_SOFTWARE_START, external triggers are disabled.
Kojto 100:cbbeb26dbd92 274 This parameter can be a value of @ref ADCEx_External_trigger_source_Injected
Kojto 100:cbbeb26dbd92 275 Caution: this setting impacts the entire injected group. Therefore, call of HAL_ADCEx_InjectedConfigChannel() to
Kojto 100:cbbeb26dbd92 276 configure a channel on injected group can impact the configuration of other channels previously set. */
Kojto 100:cbbeb26dbd92 277 uint32_t ExternalTrigInjecConvEdge; /*!< Selects the external trigger edge of injected group.
Kojto 100:cbbeb26dbd92 278 This parameter can be a value of @ref ADCEx_External_trigger_edge_Injected.
Kojto 100:cbbeb26dbd92 279 If trigger is set to ADC_INJECTED_SOFTWARE_START, this parameter is discarded.
Kojto 100:cbbeb26dbd92 280 Caution: this setting impacts the entire injected group. Therefore, call of HAL_ADCEx_InjectedConfigChannel() to
Kojto 100:cbbeb26dbd92 281 configure a channel on injected group can impact the configuration of other channels previously set. */
Kojto 100:cbbeb26dbd92 282 }ADC_InjectionConfTypeDef;
Kojto 100:cbbeb26dbd92 283
Kojto 100:cbbeb26dbd92 284 /**
Kojto 100:cbbeb26dbd92 285 * @brief Structure definition of ADC analog watchdog
Kojto 100:cbbeb26dbd92 286 * @note The setting of these parameters with function HAL_ADC_AnalogWDGConfig() is conditioned to ADC state.
Kojto 100:cbbeb26dbd92 287 * ADC state can be either: ADC disabled or ADC enabled without conversion on going on regular and injected groups.
Kojto 100:cbbeb26dbd92 288 */
Kojto 100:cbbeb26dbd92 289 typedef struct
Kojto 100:cbbeb26dbd92 290 {
Kojto 100:cbbeb26dbd92 291 uint32_t WatchdogNumber; /*!< Selects which ADC analog watchdog to apply to the selected channel.
Kojto 100:cbbeb26dbd92 292 For Analog Watchdog 1: Only 1 channel can be monitored (or overall group of channels by setting parameter 'WatchdogMode')
Kojto 100:cbbeb26dbd92 293 For Analog Watchdog 2 and 3: Several channels can be monitored (by successive calls of 'HAL_ADC_AnalogWDGConfig()' for each channel)
Kojto 100:cbbeb26dbd92 294 This parameter can be a value of @ref ADCEx_analog_watchdog_number. */
Kojto 100:cbbeb26dbd92 295 uint32_t WatchdogMode; /*!< For Analog Watchdog 1: Configures the ADC analog watchdog mode: single channel/overall group of channels, regular/injected group.
Kojto 100:cbbeb26dbd92 296 For Analog Watchdog 2 and 3: There is no configuration for overall group of channels as AWD1. Set value 'ADC_ANALOGWATCHDOG_NONE' to reset channels group programmed with parameter 'Channel', set any other value to not use this parameter.
Kojto 100:cbbeb26dbd92 297 This parameter can be a value of @ref ADCEx_analog_watchdog_mode. */
Kojto 100:cbbeb26dbd92 298 uint32_t Channel; /*!< Selects which ADC channel to monitor by analog watchdog.
Kojto 100:cbbeb26dbd92 299 For Analog Watchdog 1: this parameter has an effect only if parameter 'WatchdogMode' is configured on single channel. Only 1 channel can be monitored.
Kojto 100:cbbeb26dbd92 300 For Analog Watchdog 2 and 3: Several channels can be monitored (successive calls of HAL_ADC_AnalogWDGConfig() must be done, one for each channel.
Kojto 100:cbbeb26dbd92 301 Channels group reset can be done by setting WatchdogMode to 'ADC_ANALOGWATCHDOG_NONE').
Kojto 100:cbbeb26dbd92 302 This parameter can be a value of @ref ADCEx_channels. */
Kojto 100:cbbeb26dbd92 303 uint32_t ITMode; /*!< Specifies whether the analog watchdog is configured in interrupt or polling mode.
Kojto 100:cbbeb26dbd92 304 This parameter can be set to ENABLE or DISABLE */
Kojto 100:cbbeb26dbd92 305 uint32_t HighThreshold; /*!< Configures the ADC analog watchdog High threshold value.
Kojto 100:cbbeb26dbd92 306 Depending of ADC resolution selected (12, 10, 8 or 6 bits), this parameter must be a number between Min_Data = 0x000 and Max_Data = 0xFFF, 0x3FF, 0xFF or 0x3F respectively.
Kojto 100:cbbeb26dbd92 307 Note: Analog watchdog 2 and 3 are limited to a resolution of 8 bits: if ADC resolution is 12 bits
Kojto 100:cbbeb26dbd92 308 the 4 LSB are ignored, if ADC resolution is 10 bits the 2 LSB are ignored. */
Kojto 100:cbbeb26dbd92 309 uint32_t LowThreshold; /*!< Configures the ADC analog watchdog High threshold value.
Kojto 100:cbbeb26dbd92 310 Depending of ADC resolution selected (12, 10, 8 or 6 bits), this parameter must be a number between Min_Data = 0x000 and Max_Data = 0xFFF, 0x3FF, 0xFF or 0x3F respectively.
Kojto 100:cbbeb26dbd92 311 Note: Analog watchdog 2 and 3 are limited to a resolution of 8 bits: if ADC resolution is 12 bits
Kojto 100:cbbeb26dbd92 312 the 4 LSB are ignored, if ADC resolution is 10 bits the 2 LSB are ignored. */
Kojto 100:cbbeb26dbd92 313 }ADC_AnalogWDGConfTypeDef;
Kojto 100:cbbeb26dbd92 314
Kojto 100:cbbeb26dbd92 315 /**
Kojto 100:cbbeb26dbd92 316 * @brief Structure definition of ADC multimode
Kojto 100:cbbeb26dbd92 317 * @note The setting of these parameters with function HAL_ADCEx_MultiModeConfigChannel() is conditioned to ADCs state (both ADCs of the common group).
Kojto 100:cbbeb26dbd92 318 * State of ADCs of the common group must be: disabled.
Kojto 100:cbbeb26dbd92 319 */
Kojto 100:cbbeb26dbd92 320 typedef struct
Kojto 100:cbbeb26dbd92 321 {
Kojto 100:cbbeb26dbd92 322 uint32_t Mode; /*!< Configures the ADC to operate in independent or multi mode.
Kojto 100:cbbeb26dbd92 323 This parameter can be a value of @ref ADCEx_Common_mode */
Kojto 100:cbbeb26dbd92 324 uint32_t DMAAccessMode; /*!< Configures the DMA mode for multi ADC mode:
Kojto 100:cbbeb26dbd92 325 selection whether 2 DMA channels (each ADC use its own DMA channel) or 1 DMA channel (one DMA channel for both ADC, DMA of ADC master)
Kojto 100:cbbeb26dbd92 326 This parameter can be a value of @ref ADCEx_Direct_memory_access_mode_for_multimode
Kojto 100:cbbeb26dbd92 327 Caution: Limitations with multimode DMA access enabled (1 DMA channel used): In case of dual mode in high speed (more than 5Msps) or high activity of DMA by other peripherals, there is a risk of DMA overrun.
Kojto 100:cbbeb26dbd92 328 Therefore, it is recommended to disable multimode DMA access: each ADC use its own DMA channel. */
Kojto 100:cbbeb26dbd92 329 uint32_t TwoSamplingDelay; /*!< Configures the Delay between 2 sampling phases.
Kojto 100:cbbeb26dbd92 330 This parameter can be a value of @ref ADCEx_delay_between_2_sampling_phases
Kojto 100:cbbeb26dbd92 331 Delay range depends on selected resolution: from 1 to 12 clock cycles for 12 bits, from 1 to 10 clock cycles for 10 bits
Kojto 100:cbbeb26dbd92 332 from 1 to 8 clock cycles for 8 bits, from 1 to 6 clock cycles for 6 bits */
Kojto 100:cbbeb26dbd92 333 }ADC_MultiModeTypeDef;
Kojto 100:cbbeb26dbd92 334 #endif /* STM32F302xE || STM32F303xE || STM32F398xx || */
Kojto 100:cbbeb26dbd92 335 /* STM32F302xC || STM32F303xC || STM32F358xx || */
Kojto 100:cbbeb26dbd92 336 /* STM32F303x8 || STM32F334x8 || STM32F328xx || */
Kojto 100:cbbeb26dbd92 337 /* STM32F301x8 || STM32F302x8 || STM32F318xx */
Kojto 100:cbbeb26dbd92 338
Kojto 100:cbbeb26dbd92 339 #if defined(STM32F373xC) || defined(STM32F378xx)
Kojto 100:cbbeb26dbd92 340 /**
Kojto 100:cbbeb26dbd92 341 * @brief Structure definition of ADC and regular group initialization
Kojto 100:cbbeb26dbd92 342 * @note Parameters of this structure are shared within 2 scopes:
Kojto 100:cbbeb26dbd92 343 * - Scope entire ADC (affects regular and injected groups): DataAlign, ScanConvMode.
Kojto 100:cbbeb26dbd92 344 * - Scope regular group: ContinuousConvMode, NbrOfConversion, DiscontinuousConvMode, NbrOfDiscConversion, ExternalTrigConvEdge, ExternalTrigConv.
Kojto 100:cbbeb26dbd92 345 * @note The setting of these parameters with function HAL_ADC_Init() is conditioned to ADC state.
Kojto 100:cbbeb26dbd92 346 * ADC can be either disabled or enabled without conversion on going on regular group.
Kojto 100:cbbeb26dbd92 347 */
Kojto 100:cbbeb26dbd92 348 typedef struct
Kojto 100:cbbeb26dbd92 349 {
Kojto 100:cbbeb26dbd92 350 uint32_t DataAlign; /*!< Specifies ADC data alignment to right (MSB on register bit 11 and LSB on register bit 0) (default setting)
Kojto 100:cbbeb26dbd92 351 or to left (if regular group: MSB on register bit 15 and LSB on register bit 4, if injected group (MSB kept as signed value due to potential negative value after offset application): MSB on register bit 14 and LSB on register bit 3).
Kojto 100:cbbeb26dbd92 352 This parameter can be a value of @ref ADCEx_Data_align */
Kojto 100:cbbeb26dbd92 353 uint32_t ScanConvMode; /*!< Configures the sequencer of regular and injected groups.
Kojto 100:cbbeb26dbd92 354 This parameter can be associated to parameter 'DiscontinuousConvMode' to have main sequence subdivided in successive parts.
Kojto 100:cbbeb26dbd92 355 If disabled: Conversion is performed in single mode (one channel converted, the one defined in rank 1).
Kojto 100:cbbeb26dbd92 356 Parameters 'NbrOfConversion' and 'InjectedNbrOfConversion' are discarded (equivalent to set to 1).
Kojto 100:cbbeb26dbd92 357 If enabled: Conversions are performed in sequence mode (multiple ranks defined by 'NbrOfConversion'/'InjectedNbrOfConversion' and each channel rank).
Kojto 100:cbbeb26dbd92 358 Scan direction is upward: from rank1 to rank 'n'.
Kojto 100:cbbeb26dbd92 359 This parameter can be a value of @ref ADCEx_Scan_mode
Kojto 100:cbbeb26dbd92 360 Note: For regular group, this parameter should be enabled in conversion either by polling (HAL_ADC_Start with Discontinuous mode and NbrOfDiscConversion=1)
Kojto 100:cbbeb26dbd92 361 or by DMA (HAL_ADC_Start_DMA), but not by interruption (HAL_ADC_Start_IT): in scan mode, interruption is triggered only on the
Kojto 100:cbbeb26dbd92 362 the last conversion of the sequence. All previous conversions would be overwritten by the last one.
Kojto 100:cbbeb26dbd92 363 Injected group used with scan mode has not this constraint: each rank has its own result register, no data is overwritten. */
Kojto 100:cbbeb26dbd92 364 uint32_t ContinuousConvMode; /*!< Specifies whether the conversion is performed in single mode (one conversion) or continuous mode for regular group,
Kojto 100:cbbeb26dbd92 365 after the selected trigger occurred (software start or external trigger).
Kojto 100:cbbeb26dbd92 366 This parameter can be set to ENABLE or DISABLE. */
Kojto 100:cbbeb26dbd92 367 uint32_t NbrOfConversion; /*!< Specifies the number of ranks that will be converted within the regular group sequencer.
Kojto 100:cbbeb26dbd92 368 To use regular group sequencer and convert several ranks, parameter 'ScanConvMode' must be enabled.
Kojto 100:cbbeb26dbd92 369 This parameter must be a number between Min_Data = 1 and Max_Data = 16. */
Kojto 100:cbbeb26dbd92 370 uint32_t DiscontinuousConvMode; /*!< Specifies whether the conversions sequence of regular group is performed in Complete-sequence/Discontinuous-sequence (main sequence subdivided in successive parts).
Kojto 100:cbbeb26dbd92 371 Discontinuous mode is used only if sequencer is enabled (parameter 'ScanConvMode'). If sequencer is disabled, this parameter is discarded.
Kojto 100:cbbeb26dbd92 372 Discontinuous mode can be enabled only if continuous mode is disabled. If continuous mode is enabled, this parameter setting is discarded.
Kojto 100:cbbeb26dbd92 373 This parameter can be set to ENABLE or DISABLE. */
Kojto 100:cbbeb26dbd92 374 uint32_t NbrOfDiscConversion; /*!< Specifies the number of discontinuous conversions in which the main sequence of regular group (parameter NbrOfConversion) will be subdivided.
Kojto 100:cbbeb26dbd92 375 If parameter 'DiscontinuousConvMode' is disabled, this parameter is discarded.
Kojto 100:cbbeb26dbd92 376 This parameter must be a number between Min_Data = 1 and Max_Data = 8. */
Kojto 100:cbbeb26dbd92 377 uint32_t ExternalTrigConv; /*!< Selects the external event used to trigger the conversion start of regular group.
Kojto 100:cbbeb26dbd92 378 If set to ADC_SOFTWARE_START, external triggers are disabled.
Kojto 100:cbbeb26dbd92 379 If set to external trigger source, triggering is on event rising edge.
Kojto 100:cbbeb26dbd92 380 This parameter can be a value of @ref ADCEx_External_trigger_source_Regular */
Kojto 100:cbbeb26dbd92 381 }ADC_InitTypeDef;
Kojto 100:cbbeb26dbd92 382
Kojto 100:cbbeb26dbd92 383 /**
Kojto 100:cbbeb26dbd92 384 * @brief Structure definition of ADC channel for regular group
Kojto 100:cbbeb26dbd92 385 * @note The setting of these parameters with function HAL_ADC_ConfigChannel() is conditioned to ADC state.
Kojto 100:cbbeb26dbd92 386 * ADC can be either disabled or enabled without conversion on going on regular group.
Kojto 100:cbbeb26dbd92 387 */
Kojto 100:cbbeb26dbd92 388 typedef struct
Kojto 100:cbbeb26dbd92 389 {
Kojto 100:cbbeb26dbd92 390 uint32_t Channel; /*!< Specifies the channel to configure into ADC regular group.
Kojto 100:cbbeb26dbd92 391 This parameter can be a value of @ref ADCEx_channels
Kojto 100:cbbeb26dbd92 392 Note: Depending on devices, some channels may not be available on package pins. Refer to device datasheet for channels availability. */
Kojto 100:cbbeb26dbd92 393 uint32_t Rank; /*!< Specifies the rank in the regular group sequencer
Kojto 100:cbbeb26dbd92 394 This parameter can be a value of @ref ADCEx_regular_rank
Kojto 100:cbbeb26dbd92 395 Note: In case of need to disable a channel or change order of conversion sequencer, rank containing a previous channel setting can be overwritten by the new channel setting (or parameter number of conversions can be adjusted) */
Kojto 100:cbbeb26dbd92 396 uint32_t SamplingTime; /*!< Sampling time value to be set for the selected channel.
Kojto 100:cbbeb26dbd92 397 Unit: ADC clock cycles
Kojto 100:cbbeb26dbd92 398 Conversion time is the addition of sampling time and processing time (12.5 ADC clock cycles at ADC resolution 12 bits).
Kojto 100:cbbeb26dbd92 399 This parameter can be a value of @ref ADCEx_sampling_times
Kojto 100:cbbeb26dbd92 400 Caution: This parameter updates the parameter property of the channel, that can be used into regular and/or injected groups.
Kojto 100:cbbeb26dbd92 401 If this same channel has been previously configured in the other group (regular/injected), it will be updated to last setting.
Kojto 100:cbbeb26dbd92 402 Note: In case of usage of internal measurement channels (VrefInt/Vbat/TempSensor),
Kojto 100:cbbeb26dbd92 403 sampling time constraints must be respected (sampling time can be adjusted in function of ADC clock frequency and sampling time setting)
Kojto 100:cbbeb26dbd92 404 Refer to device datasheet for timings values, parameters TS_vrefint, TS_vbat, TS_temp (values rough order: 5us to 17.1us min). */
Kojto 100:cbbeb26dbd92 405 }ADC_ChannelConfTypeDef;
Kojto 100:cbbeb26dbd92 406
Kojto 100:cbbeb26dbd92 407 /**
Kojto 100:cbbeb26dbd92 408 * @brief ADC Configuration injected Channel structure definition
Kojto 100:cbbeb26dbd92 409 * @note Parameters of this structure are shared within 2 scopes:
Kojto 100:cbbeb26dbd92 410 * - Scope channel: InjectedChannel, InjectedRank, InjectedSamplingTime, InjectedOffset
Kojto 100:cbbeb26dbd92 411 * - Scope injected group (affects all channels of injected group): InjectedNbrOfConversion, InjectedDiscontinuousConvMode,
Kojto 100:cbbeb26dbd92 412 * AutoInjectedConv, ExternalTrigInjecConvEdge, ExternalTrigInjecConv.
Kojto 100:cbbeb26dbd92 413 * @note The setting of these parameters with function HAL_ADCEx_InjectedConfigChannel() is conditioned to ADC state.
Kojto 100:cbbeb26dbd92 414 * ADC state can be either:
Kojto 100:cbbeb26dbd92 415 * - For all parameters: ADC disabled (this is the only possible ADC state to modify parameter 'ExternalTrigInjecConv')
Kojto 100:cbbeb26dbd92 416 * - For all except parameters 'ExternalTrigInjecConv': ADC enabled without conversion on going on injected group.
Kojto 100:cbbeb26dbd92 417 */
Kojto 100:cbbeb26dbd92 418 typedef struct
Kojto 100:cbbeb26dbd92 419 {
Kojto 100:cbbeb26dbd92 420 uint32_t InjectedChannel; /*!< Selection of ADC channel to configure
Kojto 100:cbbeb26dbd92 421 This parameter can be a value of @ref ADCEx_channels
Kojto 100:cbbeb26dbd92 422 Note: Depending on devices, some channels may not be available on package pins. Refer to device datasheet for channels availability. */
Kojto 100:cbbeb26dbd92 423 uint32_t InjectedRank; /*!< Rank in the injected group sequencer
Kojto 100:cbbeb26dbd92 424 This parameter must be a value of @ref ADCEx_injected_rank
Kojto 100:cbbeb26dbd92 425 Note: In case of need to disable a channel or change order of conversion sequencer, rank containing a previous channel setting can be overwritten by the new channel setting (or parameter number of conversions can be adjusted) */
Kojto 100:cbbeb26dbd92 426 uint32_t InjectedSamplingTime; /*!< Sampling time value to be set for the selected channel.
Kojto 100:cbbeb26dbd92 427 Unit: ADC clock cycles
Kojto 100:cbbeb26dbd92 428 Conversion time is the addition of sampling time and processing time (12.5 ADC clock cycles at ADC resolution 12 bits).
Kojto 100:cbbeb26dbd92 429 This parameter can be a value of @ref ADCEx_sampling_times
Kojto 100:cbbeb26dbd92 430 Caution: This parameter updates the parameter property of the channel, that can be used into regular and/or injected groups.
Kojto 100:cbbeb26dbd92 431 If this same channel has been previously configured in the other group (regular/injected), it will be updated to last setting.
Kojto 100:cbbeb26dbd92 432 Note: In case of usage of internal measurement channels (VrefInt/Vbat/TempSensor),
Kojto 100:cbbeb26dbd92 433 sampling time constraints must be respected (sampling time can be adjusted in function of ADC clock frequency and sampling time setting)
Kojto 100:cbbeb26dbd92 434 Refer to device datasheet for timings values, parameters TS_vrefint, TS_vbat, TS_temp (values rough order: 5us to 17.1us min). */
Kojto 100:cbbeb26dbd92 435 uint32_t InjectedOffset; /*!< Defines the offset to be subtracted from the raw converted data (for channels set on injected group only).
Kojto 100:cbbeb26dbd92 436 Offset value must be a positive number.
Kojto 100:cbbeb26dbd92 437 Depending of ADC resolution selected (12, 10, 8 or 6 bits),
Kojto 100:cbbeb26dbd92 438 this parameter must be a number between Min_Data = 0x000 and Max_Data = 0xFFF, 0x3FF, 0xFF or 0x3F respectively. */
Kojto 100:cbbeb26dbd92 439 uint32_t InjectedNbrOfConversion; /*!< Specifies the number of ranks that will be converted within the injected group sequencer.
Kojto 100:cbbeb26dbd92 440 To use the injected group sequencer and convert several ranks, parameter 'ScanConvMode' must be enabled.
Kojto 100:cbbeb26dbd92 441 This parameter must be a number between Min_Data = 1 and Max_Data = 4.
Kojto 100:cbbeb26dbd92 442 Caution: this setting impacts the entire injected group. Therefore, call of HAL_ADCEx_InjectedConfigChannel() to
Kojto 100:cbbeb26dbd92 443 configure a channel on injected group can impact the configuration of other channels previously set. */
Kojto 100:cbbeb26dbd92 444 uint32_t InjectedDiscontinuousConvMode; /*!< Specifies whether the conversions sequence of injected group is performed in Complete-sequence/Discontinuous-sequence (main sequence subdivided in successive parts).
Kojto 100:cbbeb26dbd92 445 Discontinuous mode is used only if sequencer is enabled (parameter 'ScanConvMode'). If sequencer is disabled, this parameter is discarded.
Kojto 100:cbbeb26dbd92 446 Discontinuous mode can be enabled only if continuous mode is disabled. If continuous mode is enabled, this parameter setting is discarded.
Kojto 100:cbbeb26dbd92 447 This parameter can be set to ENABLE or DISABLE.
Kojto 100:cbbeb26dbd92 448 Note: For injected group, number of discontinuous ranks increment is fixed to one-by-one.
Kojto 100:cbbeb26dbd92 449 Caution: this setting impacts the entire injected group. Therefore, call of HAL_ADCEx_InjectedConfigChannel() to
Kojto 100:cbbeb26dbd92 450 configure a channel on injected group can impact the configuration of other channels previously set. */
Kojto 100:cbbeb26dbd92 451 uint32_t AutoInjectedConv; /*!< Enables or disables the selected ADC automatic injected group conversion after regular one
Kojto 100:cbbeb26dbd92 452 This parameter can be set to ENABLE or DISABLE.
Kojto 100:cbbeb26dbd92 453 Note: To use Automatic injected conversion, discontinuous mode must be disabled ('DiscontinuousConvMode' and 'InjectedDiscontinuousConvMode' set to DISABLE)
Kojto 100:cbbeb26dbd92 454 Note: To use Automatic injected conversion, injected group external triggers must be disabled ('ExternalTrigInjecConv' set to ADC_SOFTWARE_START)
Kojto 100:cbbeb26dbd92 455 Note: In case of DMA used with regular group: if DMA configured in normal mode (single shot) JAUTO will be stopped upon DMA transfer complete.
Kojto 100:cbbeb26dbd92 456 To maintain JAUTO always enabled, DMA must be configured in circular mode.
Kojto 100:cbbeb26dbd92 457 Caution: this setting impacts the entire injected group. Therefore, call of HAL_ADCEx_InjectedConfigChannel() to
Kojto 100:cbbeb26dbd92 458 configure a channel on injected group can impact the configuration of other channels previously set. */
Kojto 100:cbbeb26dbd92 459 uint32_t ExternalTrigInjecConv; /*!< Selects the external event used to trigger the conversion start of injected group.
Kojto 100:cbbeb26dbd92 460 If set to ADC_INJECTED_SOFTWARE_START, external triggers are disabled.
Kojto 100:cbbeb26dbd92 461 If set to external trigger source, triggering is on event rising edge.
Kojto 100:cbbeb26dbd92 462 This parameter can be a value of @ref ADCEx_External_trigger_source_Injected
Kojto 100:cbbeb26dbd92 463 Note: This parameter must be modified when ADC is disabled (before ADC start conversion or after ADC stop conversion).
Kojto 100:cbbeb26dbd92 464 If ADC is enabled, this parameter setting is bypassed without error reporting (as it can be the expected behaviour in case of another parameter update on the fly)
Kojto 100:cbbeb26dbd92 465 Caution: this setting impacts the entire injected group. Therefore, call of HAL_ADCEx_InjectedConfigChannel() to
Kojto 100:cbbeb26dbd92 466 configure a channel on injected group can impact the configuration of other channels previously set. */
Kojto 100:cbbeb26dbd92 467 }ADC_InjectionConfTypeDef;
Kojto 100:cbbeb26dbd92 468
Kojto 100:cbbeb26dbd92 469 /**
Kojto 100:cbbeb26dbd92 470 * @brief ADC Configuration analog watchdog definition
Kojto 100:cbbeb26dbd92 471 * @note The setting of these parameters with function is conditioned to ADC state.
Kojto 100:cbbeb26dbd92 472 * ADC state can be either disabled or enabled without conversion on going on regular and injected groups.
Kojto 100:cbbeb26dbd92 473 */
Kojto 100:cbbeb26dbd92 474 typedef struct
Kojto 100:cbbeb26dbd92 475 {
Kojto 100:cbbeb26dbd92 476 uint32_t WatchdogMode; /*!< Configures the ADC analog watchdog mode: single/all channels, regular/injected group.
Kojto 100:cbbeb26dbd92 477 This parameter can be a value of @ref ADCEx_analog_watchdog_mode. */
Kojto 100:cbbeb26dbd92 478 uint32_t Channel; /*!< Selects which ADC channel to monitor by analog watchdog.
Kojto 100:cbbeb26dbd92 479 This parameter has an effect only if watchdog mode is configured on single channel (parameter WatchdogMode)
Kojto 100:cbbeb26dbd92 480 This parameter can be a value of @ref ADCEx_channels. */
Kojto 100:cbbeb26dbd92 481 uint32_t ITMode; /*!< Specifies whether the analog watchdog is configured in interrupt or polling mode.
Kojto 100:cbbeb26dbd92 482 This parameter can be set to ENABLE or DISABLE */
Kojto 100:cbbeb26dbd92 483 uint32_t HighThreshold; /*!< Configures the ADC analog watchdog High threshold value.
Kojto 100:cbbeb26dbd92 484 This parameter must be a number between Min_Data = 0x000 and Max_Data = 0xFFF. */
Kojto 100:cbbeb26dbd92 485 uint32_t LowThreshold; /*!< Configures the ADC analog watchdog High threshold value.
Kojto 100:cbbeb26dbd92 486 This parameter must be a number between Min_Data = 0x000 and Max_Data = 0xFFF. */
Kojto 100:cbbeb26dbd92 487 uint32_t WatchdogNumber; /*!< Reserved for future use, can be set to 0 */
Kojto 100:cbbeb26dbd92 488 }ADC_AnalogWDGConfTypeDef;
Kojto 100:cbbeb26dbd92 489 #endif /* STM32F373xC || STM32F378xx */
Kojto 100:cbbeb26dbd92 490 /**
Kojto 100:cbbeb26dbd92 491 * @}
Kojto 100:cbbeb26dbd92 492 */
Kojto 100:cbbeb26dbd92 493
Kojto 100:cbbeb26dbd92 494 /* Exported constants --------------------------------------------------------*/
Kojto 100:cbbeb26dbd92 495
Kojto 100:cbbeb26dbd92 496 /** @defgroup ADCEx_Exported_Constants ADC Extended Exported Constants
Kojto 100:cbbeb26dbd92 497 * @{
Kojto 100:cbbeb26dbd92 498 */
Kojto 100:cbbeb26dbd92 499
Kojto 100:cbbeb26dbd92 500 /** @defgroup ADCEx_Error_Code ADC Extended Error Code
Kojto 100:cbbeb26dbd92 501 * @{
Kojto 100:cbbeb26dbd92 502 */
Kojto 100:cbbeb26dbd92 503 #define HAL_ADC_ERROR_NONE ((uint32_t)0x00) /*!< No error */
Kojto 100:cbbeb26dbd92 504 #define HAL_ADC_ERROR_INTERNAL ((uint32_t)0x01) /*!< ADC IP internal error: if problem of clocking,
Kojto 100:cbbeb26dbd92 505 enable/disable, erroneous state */
Kojto 100:cbbeb26dbd92 506 #define HAL_ADC_ERROR_OVR ((uint32_t)0x02) /*!< Overrun error */
Kojto 100:cbbeb26dbd92 507 #define HAL_ADC_ERROR_DMA ((uint32_t)0x04) /*!< DMA transfer error */
Kojto 100:cbbeb26dbd92 508 #define HAL_ADC_ERROR_JQOVF ((uint32_t)0x08) /*!< Injected context queue overflow error */
Kojto 100:cbbeb26dbd92 509 /**
Kojto 100:cbbeb26dbd92 510 * @}
Kojto 100:cbbeb26dbd92 511 */
Kojto 100:cbbeb26dbd92 512
Kojto 100:cbbeb26dbd92 513 #if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx) || \
Kojto 100:cbbeb26dbd92 514 defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx) || \
Kojto 100:cbbeb26dbd92 515 defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx) || \
Kojto 100:cbbeb26dbd92 516 defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx)
Kojto 100:cbbeb26dbd92 517 /** @defgroup ADCEx_ClockPrescaler ADC Extended Clock Prescaler
Kojto 100:cbbeb26dbd92 518 * @{
Kojto 100:cbbeb26dbd92 519 */
Kojto 100:cbbeb26dbd92 520 #define ADC_CLOCK_ASYNC ((uint32_t)0x00000000) /*!< ADC asynchronous clock derived from ADC dedicated PLL */
Kojto 100:cbbeb26dbd92 521
Kojto 100:cbbeb26dbd92 522 #if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx) || \
Kojto 100:cbbeb26dbd92 523 defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx) || \
Kojto 100:cbbeb26dbd92 524 defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx)
Kojto 100:cbbeb26dbd92 525 #define ADC_CLOCK_SYNC_PCLK_DIV1 ((uint32_t)ADC12_CCR_CKMODE_0) /*!< ADC synchronous clock derived from AHB clock without prescaler */
Kojto 100:cbbeb26dbd92 526 #define ADC_CLOCK_SYNC_PCLK_DIV2 ((uint32_t)ADC12_CCR_CKMODE_1) /*!< ADC synchronous clock derived from AHB clock divided by a prescaler of 2 */
Kojto 100:cbbeb26dbd92 527 #define ADC_CLOCK_SYNC_PCLK_DIV4 ((uint32_t)ADC12_CCR_CKMODE) /*!< ADC synchronous clock derived from AHB clock divided by a prescaler of 4 */
Kojto 100:cbbeb26dbd92 528 #endif /* STM32F302xE || STM32F303xE || STM32F398xx || */
Kojto 100:cbbeb26dbd92 529 /* STM32F302xC || STM32F303xC || STM32F358xx || */
Kojto 100:cbbeb26dbd92 530 /* STM32F303x8 || STM32F334x8 || STM32F328xx */
Kojto 100:cbbeb26dbd92 531
Kojto 100:cbbeb26dbd92 532 #if defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx)
Kojto 100:cbbeb26dbd92 533 #define ADC_CLOCK_SYNC_PCLK_DIV1 ((uint32_t)ADC1_CCR_CKMODE_0) /*!< ADC synchronous clock derived from AHB clock without prescaler */
Kojto 100:cbbeb26dbd92 534 #define ADC_CLOCK_SYNC_PCLK_DIV2 ((uint32_t)ADC1_CCR_CKMODE_1) /*!< ADC synchronous clock derived from AHB clock divided by a prescaler of 2 */
Kojto 100:cbbeb26dbd92 535 #define ADC_CLOCK_SYNC_PCLK_DIV4 ((uint32_t)ADC1_CCR_CKMODE) /*!< ADC synchronous clock derived from AHB clock divided by a prescaler of 4 */
Kojto 100:cbbeb26dbd92 536 #endif /* STM32F301x8 || STM32F318xx || STM32F302x8 */
Kojto 100:cbbeb26dbd92 537
Kojto 100:cbbeb26dbd92 538 #define ADC_CLOCKPRESCALER_PCLK_DIV1 ADC_CLOCK_SYNC_PCLK_DIV1 /* Obsolete naming, kept for compatibility with some other devices */
Kojto 100:cbbeb26dbd92 539 #define ADC_CLOCKPRESCALER_PCLK_DIV2 ADC_CLOCK_SYNC_PCLK_DIV2 /* Obsolete naming, kept for compatibility with some other devices */
Kojto 100:cbbeb26dbd92 540 #define ADC_CLOCKPRESCALER_PCLK_DIV4 ADC_CLOCK_SYNC_PCLK_DIV4 /* Obsolete naming, kept for compatibility with some other devices */
Kojto 100:cbbeb26dbd92 541
Kojto 100:cbbeb26dbd92 542 #define IS_ADC_CLOCKPRESCALER(ADC_CLOCK) (((ADC_CLOCK) == ADC_CLOCK_ASYNC) || \
Kojto 100:cbbeb26dbd92 543 ((ADC_CLOCK) == ADC_CLOCK_SYNC_PCLK_DIV1) || \
Kojto 100:cbbeb26dbd92 544 ((ADC_CLOCK) == ADC_CLOCK_SYNC_PCLK_DIV2) || \
Kojto 100:cbbeb26dbd92 545 ((ADC_CLOCK) == ADC_CLOCK_SYNC_PCLK_DIV4) )
Kojto 100:cbbeb26dbd92 546 /**
Kojto 100:cbbeb26dbd92 547 * @}
Kojto 100:cbbeb26dbd92 548 */
Kojto 100:cbbeb26dbd92 549
Kojto 100:cbbeb26dbd92 550 /** @defgroup ADCEx_Resolution ADC Extended Resolution
Kojto 100:cbbeb26dbd92 551 * @{
Kojto 100:cbbeb26dbd92 552 */
Kojto 100:cbbeb26dbd92 553 #define ADC_RESOLUTION12b ((uint32_t)0x00000000) /*!< ADC 12-bit resolution */
Kojto 100:cbbeb26dbd92 554 #define ADC_RESOLUTION10b ((uint32_t)ADC_CFGR_RES_0) /*!< ADC 10-bit resolution */
Kojto 100:cbbeb26dbd92 555 #define ADC_RESOLUTION8b ((uint32_t)ADC_CFGR_RES_1) /*!< ADC 8-bit resolution */
Kojto 100:cbbeb26dbd92 556 #define ADC_RESOLUTION6b ((uint32_t)ADC_CFGR_RES) /*!< ADC 6-bit resolution */
Kojto 100:cbbeb26dbd92 557
Kojto 100:cbbeb26dbd92 558 #define IS_ADC_RESOLUTION(RESOLUTION) (((RESOLUTION) == ADC_RESOLUTION12b) || \
Kojto 100:cbbeb26dbd92 559 ((RESOLUTION) == ADC_RESOLUTION10b) || \
Kojto 100:cbbeb26dbd92 560 ((RESOLUTION) == ADC_RESOLUTION8b) || \
Kojto 100:cbbeb26dbd92 561 ((RESOLUTION) == ADC_RESOLUTION6b) )
Kojto 100:cbbeb26dbd92 562
Kojto 100:cbbeb26dbd92 563 #define IS_ADC_RESOLUTION_8_6_BITS(RESOLUTION) (((RESOLUTION) == ADC_RESOLUTION8b) || \
Kojto 100:cbbeb26dbd92 564 ((RESOLUTION) == ADC_RESOLUTION6b) )
Kojto 100:cbbeb26dbd92 565 /**
Kojto 100:cbbeb26dbd92 566 * @}
Kojto 100:cbbeb26dbd92 567 */
Kojto 100:cbbeb26dbd92 568
Kojto 100:cbbeb26dbd92 569 /** @defgroup ADCEx_Data_align ADC Extended Data Alignment
Kojto 100:cbbeb26dbd92 570 * @{
Kojto 100:cbbeb26dbd92 571 */
Kojto 100:cbbeb26dbd92 572 #define ADC_DATAALIGN_RIGHT ((uint32_t)0x00000000)
Kojto 100:cbbeb26dbd92 573 #define ADC_DATAALIGN_LEFT ((uint32_t)ADC_CFGR_ALIGN)
Kojto 100:cbbeb26dbd92 574
Kojto 100:cbbeb26dbd92 575 #define IS_ADC_DATA_ALIGN(ALIGN) (((ALIGN) == ADC_DATAALIGN_RIGHT) || \
Kojto 100:cbbeb26dbd92 576 ((ALIGN) == ADC_DATAALIGN_LEFT) )
Kojto 100:cbbeb26dbd92 577 /**
Kojto 100:cbbeb26dbd92 578 * @}
Kojto 100:cbbeb26dbd92 579 */
Kojto 100:cbbeb26dbd92 580
Kojto 100:cbbeb26dbd92 581 /** @defgroup ADCEx_Scan_mode ADC Extended Scan Mode
Kojto 100:cbbeb26dbd92 582 * @{
Kojto 100:cbbeb26dbd92 583 */
Kojto 100:cbbeb26dbd92 584 #define ADC_SCAN_DISABLE ((uint32_t)0x00000000)
Kojto 100:cbbeb26dbd92 585 #define ADC_SCAN_ENABLE ((uint32_t)0x00000001)
Kojto 100:cbbeb26dbd92 586
Kojto 100:cbbeb26dbd92 587 #define IS_ADC_SCAN_MODE(SCAN_MODE) (((SCAN_MODE) == ADC_SCAN_DISABLE) || \
Kojto 100:cbbeb26dbd92 588 ((SCAN_MODE) == ADC_SCAN_ENABLE) )
Kojto 100:cbbeb26dbd92 589 /**
Kojto 100:cbbeb26dbd92 590 * @}
Kojto 100:cbbeb26dbd92 591 */
Kojto 100:cbbeb26dbd92 592
Kojto 100:cbbeb26dbd92 593 /** @defgroup ADCEx_External_trigger_edge_Regular ADC Extended External trigger enable and polarity selection for regular channels
Kojto 100:cbbeb26dbd92 594 * @{
Kojto 100:cbbeb26dbd92 595 */
Kojto 100:cbbeb26dbd92 596 #define ADC_EXTERNALTRIGCONVEDGE_NONE ((uint32_t)0x00000000)
Kojto 100:cbbeb26dbd92 597 #define ADC_EXTERNALTRIGCONVEDGE_RISING ((uint32_t)ADC_CFGR_EXTEN_0)
Kojto 100:cbbeb26dbd92 598 #define ADC_EXTERNALTRIGCONVEDGE_FALLING ((uint32_t)ADC_CFGR_EXTEN_1)
Kojto 100:cbbeb26dbd92 599 #define ADC_EXTERNALTRIGCONVEDGE_RISINGFALLING ((uint32_t)ADC_CFGR_EXTEN)
Kojto 100:cbbeb26dbd92 600
Kojto 100:cbbeb26dbd92 601 #define IS_ADC_EXTTRIG_EDGE(EDGE) (((EDGE) == ADC_EXTERNALTRIGCONVEDGE_NONE) || \
Kojto 100:cbbeb26dbd92 602 ((EDGE) == ADC_EXTERNALTRIGCONVEDGE_RISING) || \
Kojto 100:cbbeb26dbd92 603 ((EDGE) == ADC_EXTERNALTRIGCONVEDGE_FALLING) || \
Kojto 100:cbbeb26dbd92 604 ((EDGE) == ADC_EXTERNALTRIGCONVEDGE_RISINGFALLING) )
Kojto 100:cbbeb26dbd92 605 /**
Kojto 100:cbbeb26dbd92 606 * @}
Kojto 100:cbbeb26dbd92 607 */
Kojto 100:cbbeb26dbd92 608
Kojto 100:cbbeb26dbd92 609 /** @defgroup ADCEx_External_trigger_source_Regular ADC Extended External trigger selection for regular group
Kojto 100:cbbeb26dbd92 610 * @{
Kojto 100:cbbeb26dbd92 611 */
Kojto 100:cbbeb26dbd92 612 #if defined(STM32F303xE) || defined(STM32F398xx) || \
Kojto 100:cbbeb26dbd92 613 defined(STM32F303xC) || defined(STM32F358xx)
Kojto 100:cbbeb26dbd92 614 /*!< List of external triggers with generic trigger name, independently of */
Kojto 100:cbbeb26dbd92 615 /* ADC target (caution: applies to other ADCs sharing the same common group), */
Kojto 100:cbbeb26dbd92 616 /* sorted by trigger name: */
Kojto 100:cbbeb26dbd92 617
Kojto 100:cbbeb26dbd92 618 /*!< External triggers of regular group for ADC1&ADC2 only */
Kojto 100:cbbeb26dbd92 619 #define ADC_EXTERNALTRIGCONV_T1_CC1 ADC1_2_EXTERNALTRIG_T1_CC1
Kojto 100:cbbeb26dbd92 620 #define ADC_EXTERNALTRIGCONV_T1_CC2 ADC1_2_EXTERNALTRIG_T1_CC2
Kojto 100:cbbeb26dbd92 621 #define ADC_EXTERNALTRIGCONV_T2_CC2 ADC1_2_EXTERNALTRIG_T2_CC2
Kojto 100:cbbeb26dbd92 622 #define ADC_EXTERNALTRIGCONV_T3_CC4 ADC1_2_EXTERNALTRIG_T3_CC4
Kojto 100:cbbeb26dbd92 623 #define ADC_EXTERNALTRIGCONV_T4_CC4 ADC1_2_EXTERNALTRIG_T4_CC4
Kojto 100:cbbeb26dbd92 624 #define ADC_EXTERNALTRIGCONV_T6_TRGO ADC1_2_EXTERNALTRIG_T6_TRGO
Kojto 100:cbbeb26dbd92 625 #define ADC_EXTERNALTRIGCONV_EXT_IT11 ADC1_2_EXTERNALTRIG_EXT_IT11
Kojto 100:cbbeb26dbd92 626
Kojto 100:cbbeb26dbd92 627 /*!< External triggers of regular group for ADC3&ADC4 only */
Kojto 100:cbbeb26dbd92 628 #define ADC_EXTERNALTRIGCONV_T2_CC1 ADC3_4_EXTERNALTRIG_T2_CC1
Kojto 100:cbbeb26dbd92 629 #define ADC_EXTERNALTRIGCONV_T2_CC3 ADC3_4_EXTERNALTRIG_T2_CC3
Kojto 100:cbbeb26dbd92 630 #define ADC_EXTERNALTRIGCONV_T3_CC1 ADC3_4_EXTERNALTRIG_T3_CC1
Kojto 100:cbbeb26dbd92 631 #define ADC_EXTERNALTRIGCONV_T4_CC1 ADC3_4_EXTERNALTRIG_T4_CC1
Kojto 100:cbbeb26dbd92 632 #define ADC_EXTERNALTRIGCONV_T7_TRGO ADC3_4_EXTERNALTRIG_T7_TRGO
Kojto 100:cbbeb26dbd92 633 #define ADC_EXTERNALTRIGCONV_T8_CC1 ADC3_4_EXTERNALTRIG_T8_CC1
Kojto 100:cbbeb26dbd92 634 #define ADC_EXTERNALTRIGCONV_EXT_IT2 ADC3_4_EXTERNALTRIG_EXT_IT2
Kojto 100:cbbeb26dbd92 635
Kojto 100:cbbeb26dbd92 636 /*!< External triggers of regular group for ADC1&ADC2, ADC3&ADC4 */
Kojto 100:cbbeb26dbd92 637 /* Note: Triggers affected to group ADC1_2 by default, redirected to group */
Kojto 100:cbbeb26dbd92 638 /* ADC3_4 by driver when needed. */
Kojto 100:cbbeb26dbd92 639 #define ADC_EXTERNALTRIGCONV_T1_CC3 ADC1_2_EXTERNALTRIG_T1_CC3
Kojto 100:cbbeb26dbd92 640 #define ADC_EXTERNALTRIGCONV_T1_TRGO ADC1_2_EXTERNALTRIG_T1_TRGO
Kojto 100:cbbeb26dbd92 641 #define ADC_EXTERNALTRIGCONV_T1_TRGO2 ADC1_2_EXTERNALTRIG_T1_TRGO2
Kojto 100:cbbeb26dbd92 642 #define ADC_EXTERNALTRIGCONV_T2_TRGO ADC1_2_EXTERNALTRIG_T2_TRGO
Kojto 100:cbbeb26dbd92 643 #define ADC_EXTERNALTRIGCONV_T3_TRGO ADC1_2_EXTERNALTRIG_T3_TRGO
Kojto 100:cbbeb26dbd92 644 #define ADC_EXTERNALTRIGCONV_T4_TRGO ADC1_2_EXTERNALTRIG_T4_TRGO
Kojto 100:cbbeb26dbd92 645 #define ADC_EXTERNALTRIGCONV_T8_TRGO ADC1_2_EXTERNALTRIG_T8_TRGO
Kojto 100:cbbeb26dbd92 646 #define ADC_EXTERNALTRIGCONV_T8_TRGO2 ADC1_2_EXTERNALTRIG_T8_TRGO2
Kojto 100:cbbeb26dbd92 647 #define ADC_EXTERNALTRIGCONV_T15_TRGO ADC1_2_EXTERNALTRIG_T15_TRGO
Kojto 100:cbbeb26dbd92 648
Kojto 100:cbbeb26dbd92 649 #define ADC_SOFTWARE_START ((uint32_t)0x00000001)
Kojto 100:cbbeb26dbd92 650
Kojto 100:cbbeb26dbd92 651 #if defined(STM32F303xE) || defined(STM32F398xx)
Kojto 100:cbbeb26dbd92 652 /* ADC external triggers specific to device STM303xE: mask to differentiate */
Kojto 100:cbbeb26dbd92 653 /* standard triggers from specific timer 20, needed for reallocation of */
Kojto 100:cbbeb26dbd92 654 /* triggers common to ADC1&2/ADC3&4 and to avoind mixing with standard */
Kojto 100:cbbeb26dbd92 655 /* triggers without remap. */
Kojto 100:cbbeb26dbd92 656 #define ADC_EXTERNALTRIGCONV_T20_MASK 0x1000
Kojto 100:cbbeb26dbd92 657
Kojto 100:cbbeb26dbd92 658 /*!< List of external triggers specific to device STM303xE: using Timer20 */
Kojto 100:cbbeb26dbd92 659 /* with ADC trigger input remap. */
Kojto 100:cbbeb26dbd92 660 /* To remap ADC trigger from other timers/ExtLine to timer20: use macro */
Kojto 100:cbbeb26dbd92 661 /* " __HAL_REMAPADCTRIGGER_ENABLE(...) " with parameters described below: */
Kojto 100:cbbeb26dbd92 662
Kojto 100:cbbeb26dbd92 663 /*!< External triggers of regular group for ADC1&ADC2 only, specific to */
Kojto 100:cbbeb26dbd92 664 /* device STM303xE: : using Timer20 with ADC trigger input remap */
Kojto 100:cbbeb26dbd92 665 #define ADC_EXTERNALTRIGCONV_T20_CC2 ADC_EXTERNALTRIGCONV_T6_TRGO /*!< Remap trigger using macro __HAL_REMAPADCTRIGGER_ENABLE(HAL_REMAPADCTRIGGER_ADC12_EXT13) */
Kojto 100:cbbeb26dbd92 666 #define ADC_EXTERNALTRIGCONV_T20_CC3 ADC_EXTERNALTRIGCONV_T3_CC4 /*!< Remap trigger using macro __HAL_REMAPADCTRIGGER_ENABLE(HAL_REMAPADCTRIGGER_ADC12_EXT15) */
Kojto 100:cbbeb26dbd92 667
Kojto 100:cbbeb26dbd92 668 /*!< External triggers of regular group for ADC3&ADC4 only, specific to */
Kojto 100:cbbeb26dbd92 669 /* device STM303xE: : using Timer20 with ADC trigger input remap */
Kojto 100:cbbeb26dbd92 670 /* None */
Kojto 100:cbbeb26dbd92 671
Kojto 100:cbbeb26dbd92 672 /*!< External triggers of regular group for ADC1&ADC2, ADC3&ADC4, specific to */
Kojto 100:cbbeb26dbd92 673 /* device STM303xE: : using Timer20 with ADC trigger input remap */
Kojto 100:cbbeb26dbd92 674 /* Note: Triggers affected to group ADC1_2 by default, redirected to group */
Kojto 100:cbbeb26dbd92 675 /* ADC3_4 by driver when needed. */
Kojto 100:cbbeb26dbd92 676 #define ADC_EXTERNALTRIGCONV_T20_CC1 (ADC_EXTERNALTRIGCONV_T4_CC4 | ADC_EXTERNALTRIGCONV_T20_MASK) /*!< For ADC1&ADC2: Remap trigger using macro __HAL_REMAPADCTRIGGER_ENABLE(HAL_REMAPADCTRIGGER_ADC12_EXT5) */
Kojto 100:cbbeb26dbd92 677 /*!< For ADC3&ADC4: Remap trigger using macro __HAL_REMAPADCTRIGGER_ENABLE(HAL_REMAPADCTRIGGER_ADC34_EXT15) */
Kojto 100:cbbeb26dbd92 678 #define ADC_EXTERNALTRIGCONV_T20_TRGO (ADC_EXTERNALTRIGCONV_T1_CC3 | ADC_EXTERNALTRIGCONV_T20_MASK) /*!< For ADC1&ADC2: Remap trigger using macro __HAL_REMAPADCTRIGGER_ENABLE(HAL_REMAPADCTRIGGER_ADC12_EXT2) */
Kojto 100:cbbeb26dbd92 679 /*!< For ADC3&ADC4: Remap trigger using macro __HAL_REMAPADCTRIGGER_ENABLE(HAL_REMAPADCTRIGGER_ADC34_EXT5) */
Kojto 100:cbbeb26dbd92 680 #define ADC_EXTERNALTRIGCONV_T20_TRGO2 (ADC_EXTERNALTRIGCONV_T2_CC2 | ADC_EXTERNALTRIGCONV_T20_MASK) /*!< For ADC1&ADC2: Remap trigger using macro __HAL_REMAPADCTRIGGER_ENABLE(HAL_REMAPADCTRIGGER_ADC12_EXT3) */
Kojto 100:cbbeb26dbd92 681 /*!< For ADC3&ADC4: Remap trigger using macro __HAL_REMAPADCTRIGGER_ENABLE(HAL_REMAPADCTRIGGER_ADC34_EXT6) */
Kojto 100:cbbeb26dbd92 682 #endif /* STM32F303xE || STM32F398xx */
Kojto 100:cbbeb26dbd92 683
Kojto 100:cbbeb26dbd92 684 #if defined(STM32F303xC) || defined(STM32F358xx)
Kojto 100:cbbeb26dbd92 685 #define IS_ADC_EXTTRIG(REGTRIG) (((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_CC1) || \
Kojto 100:cbbeb26dbd92 686 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_CC2) || \
Kojto 100:cbbeb26dbd92 687 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T2_CC2) || \
Kojto 100:cbbeb26dbd92 688 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T3_CC4) || \
Kojto 100:cbbeb26dbd92 689 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T4_CC4) || \
Kojto 100:cbbeb26dbd92 690 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T6_TRGO) || \
Kojto 100:cbbeb26dbd92 691 ((REGTRIG) == ADC_EXTERNALTRIGCONV_EXT_IT11) || \
Kojto 100:cbbeb26dbd92 692 \
Kojto 100:cbbeb26dbd92 693 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T2_CC1) || \
Kojto 100:cbbeb26dbd92 694 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T2_CC3) || \
Kojto 100:cbbeb26dbd92 695 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T3_CC1) || \
Kojto 100:cbbeb26dbd92 696 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T4_CC1) || \
Kojto 100:cbbeb26dbd92 697 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T7_TRGO) || \
Kojto 100:cbbeb26dbd92 698 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T8_CC1) || \
Kojto 100:cbbeb26dbd92 699 ((REGTRIG) == ADC_EXTERNALTRIGCONV_EXT_IT2) || \
Kojto 100:cbbeb26dbd92 700 \
Kojto 100:cbbeb26dbd92 701 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_CC3) || \
Kojto 100:cbbeb26dbd92 702 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_TRGO) || \
Kojto 100:cbbeb26dbd92 703 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_TRGO2) || \
Kojto 100:cbbeb26dbd92 704 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T2_TRGO) || \
Kojto 100:cbbeb26dbd92 705 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T3_TRGO) || \
Kojto 100:cbbeb26dbd92 706 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T4_TRGO) || \
Kojto 100:cbbeb26dbd92 707 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T8_TRGO) || \
Kojto 100:cbbeb26dbd92 708 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T8_TRGO2) || \
Kojto 100:cbbeb26dbd92 709 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T15_TRGO) || \
Kojto 100:cbbeb26dbd92 710 \
Kojto 100:cbbeb26dbd92 711 ((REGTRIG) == ADC_SOFTWARE_START) )
Kojto 100:cbbeb26dbd92 712 #endif /* STM32F303xC || STM32F358xx */
Kojto 100:cbbeb26dbd92 713
Kojto 100:cbbeb26dbd92 714 #if defined(STM32F303xE) || defined(STM32F398xx)
Kojto 100:cbbeb26dbd92 715 #define IS_ADC_EXTTRIG(REGTRIG) (((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_CC1) || \
Kojto 100:cbbeb26dbd92 716 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_CC2) || \
Kojto 100:cbbeb26dbd92 717 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T2_CC2) || \
Kojto 100:cbbeb26dbd92 718 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T3_CC4) || \
Kojto 100:cbbeb26dbd92 719 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T4_CC4) || \
Kojto 100:cbbeb26dbd92 720 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T6_TRGO) || \
Kojto 100:cbbeb26dbd92 721 ((REGTRIG) == ADC_EXTERNALTRIGCONV_EXT_IT11) || \
Kojto 100:cbbeb26dbd92 722 \
Kojto 100:cbbeb26dbd92 723 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T2_CC1) || \
Kojto 100:cbbeb26dbd92 724 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T2_CC3) || \
Kojto 100:cbbeb26dbd92 725 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T3_CC1) || \
Kojto 100:cbbeb26dbd92 726 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T4_CC1) || \
Kojto 100:cbbeb26dbd92 727 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T7_TRGO) || \
Kojto 100:cbbeb26dbd92 728 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T8_CC1) || \
Kojto 100:cbbeb26dbd92 729 ((REGTRIG) == ADC_EXTERNALTRIGCONV_EXT_IT2) || \
Kojto 100:cbbeb26dbd92 730 \
Kojto 100:cbbeb26dbd92 731 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_CC3) || \
Kojto 100:cbbeb26dbd92 732 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_TRGO) || \
Kojto 100:cbbeb26dbd92 733 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_TRGO2) || \
Kojto 100:cbbeb26dbd92 734 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T2_TRGO) || \
Kojto 100:cbbeb26dbd92 735 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T3_TRGO) || \
Kojto 100:cbbeb26dbd92 736 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T4_TRGO) || \
Kojto 100:cbbeb26dbd92 737 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T8_TRGO) || \
Kojto 100:cbbeb26dbd92 738 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T8_TRGO2) || \
Kojto 100:cbbeb26dbd92 739 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T15_TRGO) || \
Kojto 100:cbbeb26dbd92 740 \
Kojto 100:cbbeb26dbd92 741 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T20_CC2) || \
Kojto 100:cbbeb26dbd92 742 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T20_CC3) || \
Kojto 100:cbbeb26dbd92 743 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T20_CC1) || \
Kojto 100:cbbeb26dbd92 744 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T20_TRGO) || \
Kojto 100:cbbeb26dbd92 745 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T20_TRGO2) || \
Kojto 100:cbbeb26dbd92 746 \
Kojto 100:cbbeb26dbd92 747 ((REGTRIG) == ADC_SOFTWARE_START) )
Kojto 100:cbbeb26dbd92 748 #endif /* STM32F303xE || STM32F398xx */
Kojto 100:cbbeb26dbd92 749
Kojto 100:cbbeb26dbd92 750 #endif /* STM32F303xE || STM32F398xx || */
Kojto 100:cbbeb26dbd92 751 /* STM32F303xC || STM32F358xx */
Kojto 100:cbbeb26dbd92 752
Kojto 100:cbbeb26dbd92 753 #if defined(STM32F302xE) || \
Kojto 100:cbbeb26dbd92 754 defined(STM32F302xC)
Kojto 100:cbbeb26dbd92 755 /*!< List of external triggers with generic trigger name, independently of */
Kojto 100:cbbeb26dbd92 756 /* ADC target (caution: applies to other ADCs sharing the same common group), */
Kojto 100:cbbeb26dbd92 757 /* sorted by trigger name: */
Kojto 100:cbbeb26dbd92 758
Kojto 100:cbbeb26dbd92 759 /*!< External triggers of regular group for ADC1&ADC2 */
Kojto 100:cbbeb26dbd92 760 #define ADC_EXTERNALTRIGCONV_T1_CC1 ADC1_2_EXTERNALTRIG_T1_CC1
Kojto 100:cbbeb26dbd92 761 #define ADC_EXTERNALTRIGCONV_T1_CC2 ADC1_2_EXTERNALTRIG_T1_CC2
Kojto 100:cbbeb26dbd92 762 #define ADC_EXTERNALTRIGCONV_T1_CC3 ADC1_2_EXTERNALTRIG_T1_CC3
Kojto 100:cbbeb26dbd92 763 #define ADC_EXTERNALTRIGCONV_T1_TRGO ADC1_2_EXTERNALTRIG_T1_TRGO
Kojto 100:cbbeb26dbd92 764 #define ADC_EXTERNALTRIGCONV_T1_TRGO2 ADC1_2_EXTERNALTRIG_T1_TRGO2
Kojto 100:cbbeb26dbd92 765 #define ADC_EXTERNALTRIGCONV_T2_CC2 ADC1_2_EXTERNALTRIG_T2_CC2
Kojto 100:cbbeb26dbd92 766 #define ADC_EXTERNALTRIGCONV_T2_TRGO ADC1_2_EXTERNALTRIG_T2_TRGO
Kojto 100:cbbeb26dbd92 767 #define ADC_EXTERNALTRIGCONV_T3_CC4 ADC1_2_EXTERNALTRIG_T3_CC4
Kojto 100:cbbeb26dbd92 768 #define ADC_EXTERNALTRIGCONV_T3_TRGO ADC1_2_EXTERNALTRIG_T3_TRGO
Kojto 100:cbbeb26dbd92 769 #define ADC_EXTERNALTRIGCONV_T4_CC4 ADC1_2_EXTERNALTRIG_T4_CC4
Kojto 100:cbbeb26dbd92 770 #define ADC_EXTERNALTRIGCONV_T4_TRGO ADC1_2_EXTERNALTRIG_T4_TRGO
Kojto 100:cbbeb26dbd92 771 #define ADC_EXTERNALTRIGCONV_T6_TRGO ADC1_2_EXTERNALTRIG_T6_TRGO
Kojto 100:cbbeb26dbd92 772 #define ADC_EXTERNALTRIGCONV_T15_TRGO ADC1_2_EXTERNALTRIG_T15_TRGO
Kojto 100:cbbeb26dbd92 773 #define ADC_EXTERNALTRIGCONV_EXT_IT11 ADC1_2_EXTERNALTRIG_EXT_IT11
Kojto 100:cbbeb26dbd92 774 #define ADC_SOFTWARE_START ((uint32_t)0x00000001)
Kojto 100:cbbeb26dbd92 775
Kojto 100:cbbeb26dbd92 776 #if defined(STM32F302xE)
Kojto 100:cbbeb26dbd92 777 /* ADC external triggers specific to device STM302xE: mask to differentiate */
Kojto 100:cbbeb26dbd92 778 /* standard triggers from specific timer 20, needed for reallocation of */
Kojto 100:cbbeb26dbd92 779 /* triggers common to ADC1&2 and to avoind mixing with standard */
Kojto 100:cbbeb26dbd92 780 /* triggers without remap. */
Kojto 100:cbbeb26dbd92 781 #define ADC_EXTERNALTRIGCONV_T20_MASK 0x1000
Kojto 100:cbbeb26dbd92 782
Kojto 100:cbbeb26dbd92 783 /*!< List of external triggers specific to device STM302xE: using Timer20 */
Kojto 100:cbbeb26dbd92 784 /* with ADC trigger input remap. */
Kojto 100:cbbeb26dbd92 785 /* To remap ADC trigger from other timers/ExtLine to timer20: use macro */
Kojto 100:cbbeb26dbd92 786 /* " __HAL_REMAPADCTRIGGER_ENABLE(...) " with parameters described below: */
Kojto 100:cbbeb26dbd92 787
Kojto 100:cbbeb26dbd92 788 /*!< External triggers of regular group for ADC1&ADC2 only, specific to */
Kojto 100:cbbeb26dbd92 789 /* device STM302xE: : using Timer20 with ADC trigger input remap */
Kojto 100:cbbeb26dbd92 790 #define ADC_EXTERNALTRIGCONV_T20_CC2 ADC_EXTERNALTRIGCONV_T6_TRGO /*!< Remap trigger using macro __HAL_REMAPADCTRIGGER_ENABLE(HAL_REMAPADCTRIGGER_ADC12_EXT13) */
Kojto 100:cbbeb26dbd92 791 #define ADC_EXTERNALTRIGCONV_T20_CC3 ADC_EXTERNALTRIGCONV_T3_CC4 /*!< Remap trigger using macro __HAL_REMAPADCTRIGGER_ENABLE(HAL_REMAPADCTRIGGER_ADC12_EXT15) */
Kojto 100:cbbeb26dbd92 792 #endif /* STM32F302xE */
Kojto 100:cbbeb26dbd92 793
Kojto 100:cbbeb26dbd92 794 #if defined(STM32F302xE)
Kojto 100:cbbeb26dbd92 795 #define IS_ADC_EXTTRIG(REGTRIG) (((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_CC1) || \
Kojto 100:cbbeb26dbd92 796 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_CC2) || \
Kojto 100:cbbeb26dbd92 797 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_CC3) || \
Kojto 100:cbbeb26dbd92 798 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T2_CC2) || \
Kojto 100:cbbeb26dbd92 799 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T3_TRGO) || \
Kojto 100:cbbeb26dbd92 800 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T4_CC4) || \
Kojto 100:cbbeb26dbd92 801 ((REGTRIG) == ADC_EXTERNALTRIGCONV_EXT_IT11) || \
Kojto 100:cbbeb26dbd92 802 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_TRGO) || \
Kojto 100:cbbeb26dbd92 803 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_TRGO2) || \
Kojto 100:cbbeb26dbd92 804 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T2_TRGO) || \
Kojto 100:cbbeb26dbd92 805 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T4_TRGO) || \
Kojto 100:cbbeb26dbd92 806 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T6_TRGO) || \
Kojto 100:cbbeb26dbd92 807 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T15_TRGO) || \
Kojto 100:cbbeb26dbd92 808 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T3_CC4) || \
Kojto 100:cbbeb26dbd92 809 \
Kojto 100:cbbeb26dbd92 810 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T20_CC2) || \
Kojto 100:cbbeb26dbd92 811 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T20_CC3) || \
Kojto 100:cbbeb26dbd92 812 \
Kojto 100:cbbeb26dbd92 813 ((REGTRIG) == ADC_SOFTWARE_START) )
Kojto 100:cbbeb26dbd92 814 #endif /* STM32F302xE */
Kojto 100:cbbeb26dbd92 815
Kojto 100:cbbeb26dbd92 816 #if defined(STM32F302xC)
Kojto 100:cbbeb26dbd92 817 #define IS_ADC_EXTTRIG(REGTRIG) (((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_CC1) || \
Kojto 100:cbbeb26dbd92 818 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_CC2) || \
Kojto 100:cbbeb26dbd92 819 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_CC3) || \
Kojto 100:cbbeb26dbd92 820 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T2_CC2) || \
Kojto 100:cbbeb26dbd92 821 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T3_TRGO) || \
Kojto 100:cbbeb26dbd92 822 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T4_CC4) || \
Kojto 100:cbbeb26dbd92 823 ((REGTRIG) == ADC_EXTERNALTRIGCONV_EXT_IT11) || \
Kojto 100:cbbeb26dbd92 824 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_TRGO) || \
Kojto 100:cbbeb26dbd92 825 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_TRGO2) || \
Kojto 100:cbbeb26dbd92 826 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T2_TRGO) || \
Kojto 100:cbbeb26dbd92 827 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T4_TRGO) || \
Kojto 100:cbbeb26dbd92 828 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T6_TRGO) || \
Kojto 100:cbbeb26dbd92 829 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T15_TRGO) || \
Kojto 100:cbbeb26dbd92 830 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T3_CC4) || \
Kojto 100:cbbeb26dbd92 831 \
Kojto 100:cbbeb26dbd92 832 ((REGTRIG) == ADC_SOFTWARE_START) )
Kojto 100:cbbeb26dbd92 833 #endif /* STM32F302xC */
Kojto 100:cbbeb26dbd92 834
Kojto 100:cbbeb26dbd92 835 #endif /* STM32F302xE || */
Kojto 100:cbbeb26dbd92 836 /* STM32F302xC */
Kojto 100:cbbeb26dbd92 837
Kojto 100:cbbeb26dbd92 838 #if defined(STM32F303x8) || defined(STM32F328xx)
Kojto 100:cbbeb26dbd92 839 /*!< List of external triggers with generic trigger name, independently of */
Kojto 100:cbbeb26dbd92 840 /* ADC target (caution: applies to other ADCs sharing the same common group), */
Kojto 100:cbbeb26dbd92 841 /* sorted by trigger name: */
Kojto 100:cbbeb26dbd92 842
Kojto 100:cbbeb26dbd92 843 /*!< External triggers of regular group for ADC1&ADC2 */
Kojto 100:cbbeb26dbd92 844 #define ADC_EXTERNALTRIGCONV_T1_CC1 ADC1_2_EXTERNALTRIG_T1_CC1
Kojto 100:cbbeb26dbd92 845 #define ADC_EXTERNALTRIGCONV_T1_CC2 ADC1_2_EXTERNALTRIG_T1_CC2
Kojto 100:cbbeb26dbd92 846 #define ADC_EXTERNALTRIGCONV_T1_CC3 ADC1_2_EXTERNALTRIG_T1_CC3
Kojto 100:cbbeb26dbd92 847 #define ADC_EXTERNALTRIGCONV_T1_TRGO ADC1_2_EXTERNALTRIG_T1_TRGO
Kojto 100:cbbeb26dbd92 848 #define ADC_EXTERNALTRIGCONV_T1_TRGO2 ADC1_2_EXTERNALTRIG_T1_TRGO2
Kojto 100:cbbeb26dbd92 849 #define ADC_EXTERNALTRIGCONV_T2_CC2 ADC1_2_EXTERNALTRIG_T2_CC2
Kojto 100:cbbeb26dbd92 850 #define ADC_EXTERNALTRIGCONV_T2_TRGO ADC1_2_EXTERNALTRIG_T2_TRGO
Kojto 100:cbbeb26dbd92 851 #define ADC_EXTERNALTRIGCONV_T3_CC4 ADC1_2_EXTERNALTRIG_T3_CC4
Kojto 100:cbbeb26dbd92 852 #define ADC_EXTERNALTRIGCONV_T3_TRGO ADC1_2_EXTERNALTRIG_T3_TRGO
Kojto 100:cbbeb26dbd92 853 #define ADC_EXTERNALTRIGCONV_T4_CC4 ADC1_2_EXTERNALTRIG_T4_CC4
Kojto 100:cbbeb26dbd92 854 #define ADC_EXTERNALTRIGCONV_T4_TRGO ADC1_2_EXTERNALTRIG_T4_TRGO
Kojto 100:cbbeb26dbd92 855 #define ADC_EXTERNALTRIGCONV_T8_TRGO ADC1_2_EXTERNALTRIG_T8_TRGO
Kojto 100:cbbeb26dbd92 856 #define ADC_EXTERNALTRIGCONV_T8_TRGO2 ADC1_2_EXTERNALTRIG_T8_TRGO2
Kojto 100:cbbeb26dbd92 857 #define ADC_EXTERNALTRIGCONV_T6_TRGO ADC1_2_EXTERNALTRIG_T6_TRGO
Kojto 100:cbbeb26dbd92 858 #define ADC_EXTERNALTRIGCONV_T15_TRGO ADC1_2_EXTERNALTRIG_T15_TRGO
Kojto 100:cbbeb26dbd92 859 #define ADC_EXTERNALTRIGCONV_EXT_IT11 ADC1_2_EXTERNALTRIG_EXT_IT11
Kojto 100:cbbeb26dbd92 860 #define ADC_SOFTWARE_START ((uint32_t)0x00000001)
Kojto 100:cbbeb26dbd92 861
Kojto 100:cbbeb26dbd92 862 #define IS_ADC_EXTTRIG(REGTRIG) (((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_CC1) || \
Kojto 100:cbbeb26dbd92 863 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_CC2) || \
Kojto 100:cbbeb26dbd92 864 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_CC3) || \
Kojto 100:cbbeb26dbd92 865 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T2_CC2) || \
Kojto 100:cbbeb26dbd92 866 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T3_TRGO) || \
Kojto 100:cbbeb26dbd92 867 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T4_CC4) || \
Kojto 100:cbbeb26dbd92 868 ((REGTRIG) == ADC_EXTERNALTRIGCONV_EXT_IT11) || \
Kojto 100:cbbeb26dbd92 869 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T8_TRGO) || \
Kojto 100:cbbeb26dbd92 870 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T8_TRGO2) || \
Kojto 100:cbbeb26dbd92 871 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_TRGO) || \
Kojto 100:cbbeb26dbd92 872 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_TRGO2) || \
Kojto 100:cbbeb26dbd92 873 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T2_TRGO) || \
Kojto 100:cbbeb26dbd92 874 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T4_TRGO) || \
Kojto 100:cbbeb26dbd92 875 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T6_TRGO) || \
Kojto 100:cbbeb26dbd92 876 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T15_TRGO) || \
Kojto 100:cbbeb26dbd92 877 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T3_CC4) || \
Kojto 100:cbbeb26dbd92 878 \
Kojto 100:cbbeb26dbd92 879 ((REGTRIG) == ADC_SOFTWARE_START) )
Kojto 100:cbbeb26dbd92 880 #endif /* STM32F303x8 || STM32F328xx */
Kojto 100:cbbeb26dbd92 881
Kojto 100:cbbeb26dbd92 882 #if defined(STM32F334x8)
Kojto 100:cbbeb26dbd92 883 /*!< List of external triggers with generic trigger name, independently of */
Kojto 100:cbbeb26dbd92 884 /* ADC target (caution: applies to other ADCs sharing the same common group), */
Kojto 100:cbbeb26dbd92 885 /* sorted by trigger name: */
Kojto 100:cbbeb26dbd92 886
Kojto 100:cbbeb26dbd92 887 /*!< External triggers of regular group for ADC1&ADC2 */
Kojto 100:cbbeb26dbd92 888 #define ADC_EXTERNALTRIGCONV_T1_CC1 ADC1_2_EXTERNALTRIG_T1_CC1
Kojto 100:cbbeb26dbd92 889 #define ADC_EXTERNALTRIGCONV_T1_CC2 ADC1_2_EXTERNALTRIG_T1_CC2
Kojto 100:cbbeb26dbd92 890 #define ADC_EXTERNALTRIGCONV_T1_CC3 ADC1_2_EXTERNALTRIG_T1_CC3
Kojto 100:cbbeb26dbd92 891 #define ADC_EXTERNALTRIGCONV_T1_TRGO ADC1_2_EXTERNALTRIG_T1_TRGO
Kojto 100:cbbeb26dbd92 892 #define ADC_EXTERNALTRIGCONV_T1_TRGO2 ADC1_2_EXTERNALTRIG_T1_TRGO2
Kojto 100:cbbeb26dbd92 893 #define ADC_EXTERNALTRIGCONV_T2_CC2 ADC1_2_EXTERNALTRIG_T2_CC2
Kojto 100:cbbeb26dbd92 894 #define ADC_EXTERNALTRIGCONV_T2_TRGO ADC1_2_EXTERNALTRIG_T2_TRGO
Kojto 100:cbbeb26dbd92 895 #define ADC_EXTERNALTRIGCONV_T3_CC4 ADC1_2_EXTERNALTRIG_T3_CC4
Kojto 100:cbbeb26dbd92 896 #define ADC_EXTERNALTRIGCONV_T3_TRGO ADC1_2_EXTERNALTRIG_T3_TRGO
Kojto 100:cbbeb26dbd92 897 #define ADC_EXTERNALTRIGCONV_T6_TRGO ADC1_2_EXTERNALTRIG_T6_TRGO
Kojto 100:cbbeb26dbd92 898 #define ADC_EXTERNALTRIGCONV_T15_TRGO ADC1_2_EXTERNALTRIG_T15_TRGO
Kojto 100:cbbeb26dbd92 899 #define ADC_EXTERNALTRIGCONVHRTIM_TRG1 ADC1_2_EXTERNALTRIG_HRTIM_TRG1
Kojto 100:cbbeb26dbd92 900 #define ADC_EXTERNALTRIGCONVHRTIM_TRG3 ADC1_2_EXTERNALTRIG_HRTIM_TRG3
Kojto 100:cbbeb26dbd92 901 #define ADC_EXTERNALTRIGCONV_EXT_IT11 ADC1_2_EXTERNALTRIG_EXT_IT11
Kojto 100:cbbeb26dbd92 902 #define ADC_SOFTWARE_START ((uint32_t)0x00000001)
Kojto 100:cbbeb26dbd92 903
Kojto 100:cbbeb26dbd92 904 #define IS_ADC_EXTTRIG(REGTRIG) (((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_CC1) || \
Kojto 100:cbbeb26dbd92 905 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_CC2) || \
Kojto 100:cbbeb26dbd92 906 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_CC3) || \
Kojto 100:cbbeb26dbd92 907 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T2_CC2) || \
Kojto 100:cbbeb26dbd92 908 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T3_TRGO) || \
Kojto 100:cbbeb26dbd92 909 ((REGTRIG) == ADC_EXTERNALTRIGCONV_EXT_IT11) || \
Kojto 100:cbbeb26dbd92 910 ((REGTRIG) == ADC_EXTERNALTRIGCONVHRTIM_TRG1) || \
Kojto 100:cbbeb26dbd92 911 ((REGTRIG) == ADC_EXTERNALTRIGCONVHRTIM_TRG3) || \
Kojto 100:cbbeb26dbd92 912 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_TRGO) || \
Kojto 100:cbbeb26dbd92 913 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_TRGO2) || \
Kojto 100:cbbeb26dbd92 914 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T2_TRGO) || \
Kojto 100:cbbeb26dbd92 915 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T6_TRGO) || \
Kojto 100:cbbeb26dbd92 916 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T15_TRGO) || \
Kojto 100:cbbeb26dbd92 917 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T3_CC4) || \
Kojto 100:cbbeb26dbd92 918 \
Kojto 100:cbbeb26dbd92 919 ((REGTRIG) == ADC_SOFTWARE_START) )
Kojto 100:cbbeb26dbd92 920 #endif /* STM32F334x8 */
Kojto 100:cbbeb26dbd92 921
Kojto 100:cbbeb26dbd92 922 #if defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx)
Kojto 100:cbbeb26dbd92 923 /* List of external triggers with generic trigger name, sorted by trigger */
Kojto 100:cbbeb26dbd92 924 /* name: */
Kojto 100:cbbeb26dbd92 925
Kojto 100:cbbeb26dbd92 926 /* External triggers of regular group for ADC1 */
Kojto 100:cbbeb26dbd92 927 #define ADC_EXTERNALTRIGCONV_T1_CC1 ADC1_EXTERNALTRIG_T1_CC1
Kojto 100:cbbeb26dbd92 928 #define ADC_EXTERNALTRIGCONV_T1_CC2 ADC1_EXTERNALTRIG_T1_CC2
Kojto 100:cbbeb26dbd92 929 #define ADC_EXTERNALTRIGCONV_T1_CC3 ADC1_EXTERNALTRIG_T1_CC3
Kojto 100:cbbeb26dbd92 930 #define ADC_EXTERNALTRIGCONV_EXT_IT11 ADC1_EXTERNALTRIG_EXT_IT11
Kojto 100:cbbeb26dbd92 931 #define ADC_EXTERNALTRIGCONV_T1_TRGO ADC1_EXTERNALTRIG_T1_TRGO
Kojto 100:cbbeb26dbd92 932 #define ADC_EXTERNALTRIGCONV_T1_TRGO2 ADC1_EXTERNALTRIG_T1_TRGO2
Kojto 100:cbbeb26dbd92 933 #define ADC_EXTERNALTRIGCONV_T2_TRGO ADC1_EXTERNALTRIG_T2_TRGO
Kojto 100:cbbeb26dbd92 934 #define ADC_EXTERNALTRIGCONV_T6_TRGO ADC1_EXTERNALTRIG_T6_TRGO
Kojto 100:cbbeb26dbd92 935 #define ADC_EXTERNALTRIGCONV_T15_TRGO ADC1_EXTERNALTRIG_T15_TRGO
Kojto 100:cbbeb26dbd92 936 #define ADC_SOFTWARE_START ((uint32_t)0x00000001)
Kojto 100:cbbeb26dbd92 937
Kojto 100:cbbeb26dbd92 938 #define IS_ADC_EXTTRIG(REGTRIG) (((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_CC1) || \
Kojto 100:cbbeb26dbd92 939 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_CC2) || \
Kojto 100:cbbeb26dbd92 940 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_CC3) || \
Kojto 100:cbbeb26dbd92 941 ((REGTRIG) == ADC_EXTERNALTRIGCONV_EXT_IT11) || \
Kojto 100:cbbeb26dbd92 942 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_TRGO) || \
Kojto 100:cbbeb26dbd92 943 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_TRGO2) || \
Kojto 100:cbbeb26dbd92 944 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T2_TRGO) || \
Kojto 100:cbbeb26dbd92 945 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T6_TRGO) || \
Kojto 100:cbbeb26dbd92 946 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T15_TRGO) || \
Kojto 100:cbbeb26dbd92 947 ((REGTRIG) == ADC_SOFTWARE_START) )
Kojto 100:cbbeb26dbd92 948 #endif /* STM32F301x8 || STM32F302x8 || STM32F318xx */
Kojto 100:cbbeb26dbd92 949 /**
Kojto 100:cbbeb26dbd92 950 * @}
Kojto 100:cbbeb26dbd92 951 */
Kojto 100:cbbeb26dbd92 952
Kojto 100:cbbeb26dbd92 953 /** @defgroup ADCEx_Internal_HAL_driver_Ext_trig_src_Regular ADC Extended External trigger selection for regular group (Used Internally)
Kojto 100:cbbeb26dbd92 954 * @{
Kojto 100:cbbeb26dbd92 955 */
Kojto 100:cbbeb26dbd92 956 #if defined(STM32F303xE) || defined(STM32F398xx) || \
Kojto 100:cbbeb26dbd92 957 defined(STM32F303xC) || defined(STM32F358xx)
Kojto 100:cbbeb26dbd92 958 /* List of external triggers for common groups ADC1&ADC2 and/or ADC3&ADC4: */
Kojto 100:cbbeb26dbd92 959 /* (used internally by HAL driver. To not use into HAL structure parameters) */
Kojto 100:cbbeb26dbd92 960
Kojto 100:cbbeb26dbd92 961 /* External triggers of regular group for ADC1 & ADC2 */
Kojto 100:cbbeb26dbd92 962 #define ADC1_2_EXTERNALTRIG_T1_CC1 ((uint32_t)0x00000000)
Kojto 100:cbbeb26dbd92 963 #define ADC1_2_EXTERNALTRIG_T1_CC2 ((uint32_t)ADC_CFGR_EXTSEL_0)
Kojto 100:cbbeb26dbd92 964 #define ADC1_2_EXTERNALTRIG_T1_CC3 ((uint32_t)ADC_CFGR_EXTSEL_1)
Kojto 100:cbbeb26dbd92 965 #define ADC1_2_EXTERNALTRIG_T2_CC2 ((uint32_t)(ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL_0))
Kojto 100:cbbeb26dbd92 966 #define ADC1_2_EXTERNALTRIG_T3_TRGO ((uint32_t)ADC_CFGR_EXTSEL_2)
Kojto 100:cbbeb26dbd92 967 #define ADC1_2_EXTERNALTRIG_T4_CC4 ((uint32_t)(ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_0))
Kojto 100:cbbeb26dbd92 968 #define ADC1_2_EXTERNALTRIG_EXT_IT11 ((uint32_t)(ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_1))
Kojto 100:cbbeb26dbd92 969 #define ADC1_2_EXTERNALTRIG_T8_TRGO ((uint32_t)(ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL_0))
Kojto 100:cbbeb26dbd92 970 #define ADC1_2_EXTERNALTRIG_T8_TRGO2 ((uint32_t) ADC_CFGR_EXTSEL_3)
Kojto 100:cbbeb26dbd92 971 #define ADC1_2_EXTERNALTRIG_T1_TRGO ((uint32_t)(ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_0))
Kojto 100:cbbeb26dbd92 972 #define ADC1_2_EXTERNALTRIG_T1_TRGO2 ((uint32_t)(ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_1))
Kojto 100:cbbeb26dbd92 973 #define ADC1_2_EXTERNALTRIG_T2_TRGO ((uint32_t)(ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL_0))
Kojto 100:cbbeb26dbd92 974 #define ADC1_2_EXTERNALTRIG_T4_TRGO ((uint32_t)(ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_2))
Kojto 100:cbbeb26dbd92 975 #define ADC1_2_EXTERNALTRIG_T6_TRGO ((uint32_t)(ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_0))
Kojto 100:cbbeb26dbd92 976 #define ADC1_2_EXTERNALTRIG_T15_TRGO ((uint32_t)(ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_1))
Kojto 100:cbbeb26dbd92 977 #define ADC1_2_EXTERNALTRIG_T3_CC4 ((uint32_t)ADC_CFGR_EXTSEL)
Kojto 100:cbbeb26dbd92 978
Kojto 100:cbbeb26dbd92 979 /* External triggers of regular group for ADC3 & ADC4 */
Kojto 100:cbbeb26dbd92 980 #define ADC3_4_EXTERNALTRIG_T3_CC1 ((uint32_t)0x00000000)
Kojto 100:cbbeb26dbd92 981 #define ADC3_4_EXTERNALTRIG_T2_CC3 ((uint32_t)ADC_CFGR_EXTSEL_0)
Kojto 100:cbbeb26dbd92 982 #define ADC3_4_EXTERNALTRIG_T1_CC3 ((uint32_t)ADC_CFGR_EXTSEL_1)
Kojto 100:cbbeb26dbd92 983 #define ADC3_4_EXTERNALTRIG_T8_CC1 ((uint32_t)(ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL_0))
Kojto 100:cbbeb26dbd92 984 #define ADC3_4_EXTERNALTRIG_T8_TRGO ((uint32_t)ADC_CFGR_EXTSEL_2)
Kojto 100:cbbeb26dbd92 985 #define ADC3_4_EXTERNALTRIG_EXT_IT2 ((uint32_t)(ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_0))
Kojto 100:cbbeb26dbd92 986 #define ADC3_4_EXTERNALTRIG_T4_CC1 ((uint32_t)(ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_1))
Kojto 100:cbbeb26dbd92 987 #define ADC3_4_EXTERNALTRIG_T2_TRGO ((uint32_t)(ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL_0))
Kojto 100:cbbeb26dbd92 988 #define ADC3_4_EXTERNALTRIG_T8_TRGO2 ((uint32_t)ADC_CFGR_EXTSEL_3)
Kojto 100:cbbeb26dbd92 989 #define ADC3_4_EXTERNALTRIG_T1_TRGO ((uint32_t)(ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_0))
Kojto 100:cbbeb26dbd92 990 #define ADC3_4_EXTERNALTRIG_T1_TRGO2 ((uint32_t)(ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_1))
Kojto 100:cbbeb26dbd92 991 #define ADC3_4_EXTERNALTRIG_T3_TRGO ((uint32_t)(ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL_0))
Kojto 100:cbbeb26dbd92 992 #define ADC3_4_EXTERNALTRIG_T4_TRGO ((uint32_t)(ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_2))
Kojto 100:cbbeb26dbd92 993 #define ADC3_4_EXTERNALTRIG_T7_TRGO ((uint32_t)(ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_0))
Kojto 100:cbbeb26dbd92 994 #define ADC3_4_EXTERNALTRIG_T15_TRGO ((uint32_t)(ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_1))
Kojto 100:cbbeb26dbd92 995 #define ADC3_4_EXTERNALTRIG_T2_CC1 ((uint32_t)ADC_CFGR_EXTSEL)
Kojto 100:cbbeb26dbd92 996 #endif /* STM32F303xE || STM32F398xx || */
Kojto 100:cbbeb26dbd92 997 /* STM32F303xC || STM32F358xx */
Kojto 100:cbbeb26dbd92 998
Kojto 100:cbbeb26dbd92 999 #if defined(STM32F302xE) || \
Kojto 100:cbbeb26dbd92 1000 defined(STM32F302xC)
Kojto 100:cbbeb26dbd92 1001 /* List of external triggers of common group ADC1&ADC2: */
Kojto 100:cbbeb26dbd92 1002 /* (used internally by HAL driver. To not use into HAL structure parameters) */
Kojto 100:cbbeb26dbd92 1003 #define ADC1_2_EXTERNALTRIG_T1_CC1 ((uint32_t)0x00000000)
Kojto 100:cbbeb26dbd92 1004 #define ADC1_2_EXTERNALTRIG_T1_CC2 ((uint32_t)ADC_CFGR_EXTSEL_0)
Kojto 100:cbbeb26dbd92 1005 #define ADC1_2_EXTERNALTRIG_T1_CC3 ((uint32_t)ADC_CFGR_EXTSEL_1)
Kojto 100:cbbeb26dbd92 1006 #define ADC1_2_EXTERNALTRIG_T1_TRGO ((uint32_t)(ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_0))
Kojto 100:cbbeb26dbd92 1007 #define ADC1_2_EXTERNALTRIG_T1_TRGO2 ((uint32_t)(ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_1))
Kojto 100:cbbeb26dbd92 1008 #define ADC1_2_EXTERNALTRIG_T2_CC2 ((uint32_t)(ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL_0))
Kojto 100:cbbeb26dbd92 1009 #define ADC1_2_EXTERNALTRIG_T2_TRGO ((uint32_t)(ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL_0))
Kojto 100:cbbeb26dbd92 1010 #define ADC1_2_EXTERNALTRIG_T3_CC4 ((uint32_t)ADC_CFGR_EXTSEL)
Kojto 100:cbbeb26dbd92 1011 #define ADC1_2_EXTERNALTRIG_T3_TRGO ((uint32_t)ADC_CFGR_EXTSEL_2)
Kojto 100:cbbeb26dbd92 1012 #define ADC1_2_EXTERNALTRIG_T4_CC4 ((uint32_t)(ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_0))
Kojto 100:cbbeb26dbd92 1013 #define ADC1_2_EXTERNALTRIG_T4_TRGO ((uint32_t)(ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_2))
Kojto 100:cbbeb26dbd92 1014 #define ADC1_2_EXTERNALTRIG_T6_TRGO ((uint32_t)(ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_0))
Kojto 100:cbbeb26dbd92 1015 #define ADC1_2_EXTERNALTRIG_T15_TRGO ((uint32_t)(ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_1))
Kojto 100:cbbeb26dbd92 1016 #define ADC1_2_EXTERNALTRIG_EXT_IT11 ((uint32_t)(ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_1))
Kojto 100:cbbeb26dbd92 1017 #endif /* STM32F302xE || */
Kojto 100:cbbeb26dbd92 1018 /* STM32F302xC */
Kojto 100:cbbeb26dbd92 1019
Kojto 100:cbbeb26dbd92 1020 #if defined(STM32F303x8) || defined(STM32F328xx)
Kojto 100:cbbeb26dbd92 1021 /* List of external triggers of common group ADC1&ADC2: */
Kojto 100:cbbeb26dbd92 1022 /* (used internally by HAL driver. To not use into HAL structure parameters) */
Kojto 100:cbbeb26dbd92 1023 #define ADC1_2_EXTERNALTRIG_T1_CC1 ((uint32_t)0x00000000)
Kojto 100:cbbeb26dbd92 1024 #define ADC1_2_EXTERNALTRIG_T1_CC2 ((uint32_t)ADC_CFGR_EXTSEL_0)
Kojto 100:cbbeb26dbd92 1025 #define ADC1_2_EXTERNALTRIG_T1_CC3 ((uint32_t)ADC_CFGR_EXTSEL_1)
Kojto 100:cbbeb26dbd92 1026 #define ADC1_2_EXTERNALTRIG_T2_CC2 ((uint32_t)(ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL_0))
Kojto 100:cbbeb26dbd92 1027 #define ADC1_2_EXTERNALTRIG_T3_TRGO ((uint32_t)ADC_CFGR_EXTSEL_2)
Kojto 100:cbbeb26dbd92 1028 #define ADC1_2_EXTERNALTRIG_T4_CC4 ((uint32_t)(ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_0))
Kojto 100:cbbeb26dbd92 1029 #define ADC1_2_EXTERNALTRIG_EXT_IT11 ((uint32_t)(ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_1))
Kojto 100:cbbeb26dbd92 1030 #define ADC1_2_EXTERNALTRIG_T8_TRGO ((uint32_t)(ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL_0))
Kojto 100:cbbeb26dbd92 1031 #define ADC1_2_EXTERNALTRIG_T8_TRGO2 ((uint32_t) ADC_CFGR_EXTSEL_3)
Kojto 100:cbbeb26dbd92 1032 #define ADC1_2_EXTERNALTRIG_T1_TRGO ((uint32_t)(ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_0))
Kojto 100:cbbeb26dbd92 1033 #define ADC1_2_EXTERNALTRIG_T1_TRGO2 ((uint32_t)(ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_1))
Kojto 100:cbbeb26dbd92 1034 #define ADC1_2_EXTERNALTRIG_T2_TRGO ((uint32_t)(ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL_0))
Kojto 100:cbbeb26dbd92 1035 #define ADC1_2_EXTERNALTRIG_T4_TRGO ((uint32_t)(ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_2))
Kojto 100:cbbeb26dbd92 1036 #define ADC1_2_EXTERNALTRIG_T6_TRGO ((uint32_t)(ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_0))
Kojto 100:cbbeb26dbd92 1037 #define ADC1_2_EXTERNALTRIG_T15_TRGO ((uint32_t)(ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_1))
Kojto 100:cbbeb26dbd92 1038 #define ADC1_2_EXTERNALTRIG_T3_CC4 ((uint32_t)ADC_CFGR_EXTSEL)
Kojto 100:cbbeb26dbd92 1039 #endif /* STM32F303x8 || STM32F328xx */
Kojto 100:cbbeb26dbd92 1040
Kojto 100:cbbeb26dbd92 1041 #if defined(STM32F334x8)
Kojto 100:cbbeb26dbd92 1042 /* List of external triggers of common group ADC1&ADC2: */
Kojto 100:cbbeb26dbd92 1043 /* (used internally by HAL driver. To not use into HAL structure parameters) */
Kojto 100:cbbeb26dbd92 1044 #define ADC1_2_EXTERNALTRIG_T1_CC1 ((uint32_t)0x00000000)
Kojto 100:cbbeb26dbd92 1045 #define ADC1_2_EXTERNALTRIG_T1_CC2 ((uint32_t)ADC_CFGR_EXTSEL_0)
Kojto 100:cbbeb26dbd92 1046 #define ADC1_2_EXTERNALTRIG_T1_CC3 ((uint32_t)ADC_CFGR_EXTSEL_1)
Kojto 100:cbbeb26dbd92 1047 #define ADC1_2_EXTERNALTRIG_T2_CC2 ((uint32_t)(ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL_0))
Kojto 100:cbbeb26dbd92 1048 #define ADC1_2_EXTERNALTRIG_T3_TRGO ((uint32_t)ADC_CFGR_EXTSEL_2)
Kojto 100:cbbeb26dbd92 1049 #define ADC1_2_EXTERNALTRIG_EXT_IT11 ((uint32_t)(ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_1))
Kojto 100:cbbeb26dbd92 1050 #define ADC1_2_EXTERNALTRIG_HRTIM_TRG1 ((uint32_t)(ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL_0))
Kojto 100:cbbeb26dbd92 1051 #define ADC1_2_EXTERNALTRIG_HRTIM_TRG3 ((uint32_t) ADC_CFGR_EXTSEL_3)
Kojto 100:cbbeb26dbd92 1052 #define ADC1_2_EXTERNALTRIG_T1_TRGO ((uint32_t)(ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_0))
Kojto 100:cbbeb26dbd92 1053 #define ADC1_2_EXTERNALTRIG_T1_TRGO2 ((uint32_t)(ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_1))
Kojto 100:cbbeb26dbd92 1054 #define ADC1_2_EXTERNALTRIG_T2_TRGO ((uint32_t)(ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL_0))
Kojto 100:cbbeb26dbd92 1055 #define ADC1_2_EXTERNALTRIG_T6_TRGO ((uint32_t)(ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_0))
Kojto 100:cbbeb26dbd92 1056 #define ADC1_2_EXTERNALTRIG_T15_TRGO ((uint32_t)(ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_1))
Kojto 100:cbbeb26dbd92 1057 #define ADC1_2_EXTERNALTRIG_T3_CC4 ((uint32_t)ADC_CFGR_EXTSEL)
Kojto 100:cbbeb26dbd92 1058 #endif /* STM32F334x8 */
Kojto 100:cbbeb26dbd92 1059
Kojto 100:cbbeb26dbd92 1060 #if defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx)
Kojto 100:cbbeb26dbd92 1061 /* List of external triggers of regular group for ADC1: */
Kojto 100:cbbeb26dbd92 1062 /* (used internally by HAL driver. To not use into HAL structure parameters) */
Kojto 100:cbbeb26dbd92 1063 #define ADC1_EXTERNALTRIG_T1_CC1 ((uint32_t)0x00000000)
Kojto 100:cbbeb26dbd92 1064 #define ADC1_EXTERNALTRIG_T1_CC2 ((uint32_t)ADC_CFGR_EXTSEL_0)
Kojto 100:cbbeb26dbd92 1065 #define ADC1_EXTERNALTRIG_T1_CC3 ((uint32_t)ADC_CFGR_EXTSEL_1)
Kojto 100:cbbeb26dbd92 1066 #define ADC1_EXTERNALTRIG_EXT_IT11 ((uint32_t)(ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_1))
Kojto 100:cbbeb26dbd92 1067 #define ADC1_EXTERNALTRIG_T1_TRGO ((uint32_t)(ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_0))
Kojto 100:cbbeb26dbd92 1068 #define ADC1_EXTERNALTRIG_T1_TRGO2 ((uint32_t)(ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_1))
Kojto 100:cbbeb26dbd92 1069 #define ADC1_EXTERNALTRIG_T2_TRGO ((uint32_t)(ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL_0))
Kojto 100:cbbeb26dbd92 1070 #define ADC1_EXTERNALTRIG_T6_TRGO ((uint32_t)(ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_0))
Kojto 100:cbbeb26dbd92 1071 #define ADC1_EXTERNALTRIG_T15_TRGO ((uint32_t)(ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_1))
Kojto 100:cbbeb26dbd92 1072 #define ADC_SOFTWARE_START ((uint32_t)0x00000001)
Kojto 100:cbbeb26dbd92 1073 #endif /* STM32F301x8 || STM32F302x8 || STM32F318xx */
Kojto 100:cbbeb26dbd92 1074 /**
Kojto 100:cbbeb26dbd92 1075 * @}
Kojto 100:cbbeb26dbd92 1076 */
Kojto 100:cbbeb26dbd92 1077
Kojto 100:cbbeb26dbd92 1078
Kojto 100:cbbeb26dbd92 1079 /** @defgroup ADCEx_EOCSelection ADC Extended End of Regular Sequence/Conversion
Kojto 100:cbbeb26dbd92 1080 * @{
Kojto 100:cbbeb26dbd92 1081 */
Kojto 100:cbbeb26dbd92 1082 #define EOC_SINGLE_CONV ((uint32_t) ADC_ISR_EOC)
Kojto 100:cbbeb26dbd92 1083 #define EOC_SEQ_CONV ((uint32_t) ADC_ISR_EOS)
Kojto 100:cbbeb26dbd92 1084 #define EOC_SINGLE_SEQ_CONV ((uint32_t)(ADC_ISR_EOC | ADC_ISR_EOS)) /*!< reserved for future use */
Kojto 100:cbbeb26dbd92 1085
Kojto 100:cbbeb26dbd92 1086 #define IS_ADC_EOC_SELECTION(EOC_SELECTION) (((EOC_SELECTION) == EOC_SINGLE_CONV) || \
Kojto 100:cbbeb26dbd92 1087 ((EOC_SELECTION) == EOC_SEQ_CONV) || \
Kojto 100:cbbeb26dbd92 1088 ((EOC_SELECTION) == EOC_SINGLE_SEQ_CONV) )
Kojto 100:cbbeb26dbd92 1089 /**
Kojto 100:cbbeb26dbd92 1090 * @}
Kojto 100:cbbeb26dbd92 1091 */
Kojto 100:cbbeb26dbd92 1092
Kojto 100:cbbeb26dbd92 1093 /** @defgroup ADCEx_Overrun ADC Extended overrun
Kojto 100:cbbeb26dbd92 1094 * @{
Kojto 100:cbbeb26dbd92 1095 */
Kojto 100:cbbeb26dbd92 1096 #define OVR_DATA_OVERWRITTEN ((uint32_t)0x00000000) /*!< Default setting, to be used for compatibility with other STM32 devices */
Kojto 100:cbbeb26dbd92 1097 #define OVR_DATA_PRESERVED ((uint32_t)0x00000001)
Kojto 100:cbbeb26dbd92 1098
Kojto 100:cbbeb26dbd92 1099 #define IS_ADC_OVERRUN(OVR) (((OVR) == OVR_DATA_PRESERVED) || \
Kojto 100:cbbeb26dbd92 1100 ((OVR) == OVR_DATA_OVERWRITTEN) )
Kojto 100:cbbeb26dbd92 1101 /**
Kojto 100:cbbeb26dbd92 1102 * @}
Kojto 100:cbbeb26dbd92 1103 */
Kojto 100:cbbeb26dbd92 1104
Kojto 100:cbbeb26dbd92 1105 /** @defgroup ADCEx_channels ADC Extended Channels
Kojto 100:cbbeb26dbd92 1106 * @{
Kojto 100:cbbeb26dbd92 1107 */
Kojto 100:cbbeb26dbd92 1108 /* Note: Depending on devices, some channels may not be available on package */
Kojto 100:cbbeb26dbd92 1109 /* pins. Refer to device datasheet for channels availability. */
Kojto 100:cbbeb26dbd92 1110 #define ADC_CHANNEL_1 ((uint32_t)(ADC_SQR3_SQ10_0))
Kojto 100:cbbeb26dbd92 1111 #define ADC_CHANNEL_2 ((uint32_t)(ADC_SQR3_SQ10_1))
Kojto 100:cbbeb26dbd92 1112 #define ADC_CHANNEL_3 ((uint32_t)(ADC_SQR3_SQ10_1 | ADC_SQR3_SQ10_0))
Kojto 100:cbbeb26dbd92 1113 #define ADC_CHANNEL_4 ((uint32_t)(ADC_SQR3_SQ10_2))
Kojto 100:cbbeb26dbd92 1114 #define ADC_CHANNEL_5 ((uint32_t)(ADC_SQR3_SQ10_2 | ADC_SQR3_SQ10_0))
Kojto 100:cbbeb26dbd92 1115 #define ADC_CHANNEL_6 ((uint32_t)(ADC_SQR3_SQ10_2 | ADC_SQR3_SQ10_1))
Kojto 100:cbbeb26dbd92 1116 #define ADC_CHANNEL_7 ((uint32_t)(ADC_SQR3_SQ10_2 | ADC_SQR3_SQ10_1 | ADC_SQR3_SQ10_0))
Kojto 100:cbbeb26dbd92 1117 #define ADC_CHANNEL_8 ((uint32_t)(ADC_SQR3_SQ10_3))
Kojto 100:cbbeb26dbd92 1118 #define ADC_CHANNEL_9 ((uint32_t)(ADC_SQR3_SQ10_3 | ADC_SQR3_SQ10_0))
Kojto 100:cbbeb26dbd92 1119 #define ADC_CHANNEL_10 ((uint32_t)(ADC_SQR3_SQ10_3 | ADC_SQR3_SQ10_1))
Kojto 100:cbbeb26dbd92 1120 #define ADC_CHANNEL_11 ((uint32_t)(ADC_SQR3_SQ10_3 | ADC_SQR3_SQ10_1 | ADC_SQR3_SQ10_0))
Kojto 100:cbbeb26dbd92 1121 #define ADC_CHANNEL_12 ((uint32_t)(ADC_SQR3_SQ10_3 | ADC_SQR3_SQ10_2))
Kojto 100:cbbeb26dbd92 1122 #define ADC_CHANNEL_13 ((uint32_t)(ADC_SQR3_SQ10_3 | ADC_SQR3_SQ10_2 | ADC_SQR3_SQ10_0))
Kojto 100:cbbeb26dbd92 1123 #define ADC_CHANNEL_14 ((uint32_t)(ADC_SQR3_SQ10_3 | ADC_SQR3_SQ10_2 | ADC_SQR3_SQ10_1))
Kojto 100:cbbeb26dbd92 1124 #define ADC_CHANNEL_15 ((uint32_t)(ADC_SQR3_SQ10_3 | ADC_SQR3_SQ10_2 | ADC_SQR3_SQ10_1 | ADC_SQR3_SQ10_0))
Kojto 100:cbbeb26dbd92 1125 #define ADC_CHANNEL_16 ((uint32_t)(ADC_SQR3_SQ10_4))
Kojto 100:cbbeb26dbd92 1126 #define ADC_CHANNEL_17 ((uint32_t)(ADC_SQR3_SQ10_4 | ADC_SQR3_SQ10_0))
Kojto 100:cbbeb26dbd92 1127 #define ADC_CHANNEL_18 ((uint32_t)(ADC_SQR3_SQ10_4 | ADC_SQR3_SQ10_1))
Kojto 100:cbbeb26dbd92 1128
Kojto 100:cbbeb26dbd92 1129 /* Note: Vopamp1, TempSensor and Vbat internal channels available on ADC1 only */
Kojto 100:cbbeb26dbd92 1130 #define ADC_CHANNEL_VOPAMP1 ADC_CHANNEL_15
Kojto 100:cbbeb26dbd92 1131 #define ADC_CHANNEL_TEMPSENSOR ADC_CHANNEL_16
Kojto 100:cbbeb26dbd92 1132 #define ADC_CHANNEL_VBAT ADC_CHANNEL_17
Kojto 100:cbbeb26dbd92 1133
Kojto 100:cbbeb26dbd92 1134 /* Note: Vopamp2/3/4 internal channels available on ADC2/3/4 respectively */
Kojto 100:cbbeb26dbd92 1135 #define ADC_CHANNEL_VOPAMP2 ADC_CHANNEL_17
Kojto 100:cbbeb26dbd92 1136 #define ADC_CHANNEL_VOPAMP3 ADC_CHANNEL_17
Kojto 100:cbbeb26dbd92 1137 #define ADC_CHANNEL_VOPAMP4 ADC_CHANNEL_17
Kojto 100:cbbeb26dbd92 1138
Kojto 100:cbbeb26dbd92 1139 /* Note: VrefInt internal channels available on all ADCs, but only */
Kojto 100:cbbeb26dbd92 1140 /* one ADC is allowed to be connected to VrefInt at the same time. */
Kojto 100:cbbeb26dbd92 1141 #define ADC_CHANNEL_VREFINT ((uint32_t)ADC_CHANNEL_18)
Kojto 100:cbbeb26dbd92 1142
Kojto 100:cbbeb26dbd92 1143 #define IS_ADC_CHANNEL(CHANNEL) (((CHANNEL) == ADC_CHANNEL_1) || \
Kojto 100:cbbeb26dbd92 1144 ((CHANNEL) == ADC_CHANNEL_2) || \
Kojto 100:cbbeb26dbd92 1145 ((CHANNEL) == ADC_CHANNEL_3) || \
Kojto 100:cbbeb26dbd92 1146 ((CHANNEL) == ADC_CHANNEL_4) || \
Kojto 100:cbbeb26dbd92 1147 ((CHANNEL) == ADC_CHANNEL_5) || \
Kojto 100:cbbeb26dbd92 1148 ((CHANNEL) == ADC_CHANNEL_6) || \
Kojto 100:cbbeb26dbd92 1149 ((CHANNEL) == ADC_CHANNEL_7) || \
Kojto 100:cbbeb26dbd92 1150 ((CHANNEL) == ADC_CHANNEL_8) || \
Kojto 100:cbbeb26dbd92 1151 ((CHANNEL) == ADC_CHANNEL_9) || \
Kojto 100:cbbeb26dbd92 1152 ((CHANNEL) == ADC_CHANNEL_10) || \
Kojto 100:cbbeb26dbd92 1153 ((CHANNEL) == ADC_CHANNEL_11) || \
Kojto 100:cbbeb26dbd92 1154 ((CHANNEL) == ADC_CHANNEL_12) || \
Kojto 100:cbbeb26dbd92 1155 ((CHANNEL) == ADC_CHANNEL_13) || \
Kojto 100:cbbeb26dbd92 1156 ((CHANNEL) == ADC_CHANNEL_14) || \
Kojto 100:cbbeb26dbd92 1157 ((CHANNEL) == ADC_CHANNEL_15) || \
Kojto 100:cbbeb26dbd92 1158 ((CHANNEL) == ADC_CHANNEL_TEMPSENSOR) || \
Kojto 100:cbbeb26dbd92 1159 ((CHANNEL) == ADC_CHANNEL_VBAT) || \
Kojto 100:cbbeb26dbd92 1160 ((CHANNEL) == ADC_CHANNEL_VREFINT) || \
Kojto 100:cbbeb26dbd92 1161 ((CHANNEL) == ADC_CHANNEL_VOPAMP1) || \
Kojto 100:cbbeb26dbd92 1162 ((CHANNEL) == ADC_CHANNEL_VOPAMP2) || \
Kojto 100:cbbeb26dbd92 1163 ((CHANNEL) == ADC_CHANNEL_VOPAMP3) || \
Kojto 100:cbbeb26dbd92 1164 ((CHANNEL) == ADC_CHANNEL_VOPAMP4) )
Kojto 100:cbbeb26dbd92 1165
Kojto 100:cbbeb26dbd92 1166 #define IS_ADC_DIFF_CHANNEL(CHANNEL) (((CHANNEL) == ADC_CHANNEL_1) || \
Kojto 100:cbbeb26dbd92 1167 ((CHANNEL) == ADC_CHANNEL_2) || \
Kojto 100:cbbeb26dbd92 1168 ((CHANNEL) == ADC_CHANNEL_3) || \
Kojto 100:cbbeb26dbd92 1169 ((CHANNEL) == ADC_CHANNEL_4) || \
Kojto 100:cbbeb26dbd92 1170 ((CHANNEL) == ADC_CHANNEL_5) || \
Kojto 100:cbbeb26dbd92 1171 ((CHANNEL) == ADC_CHANNEL_6) || \
Kojto 100:cbbeb26dbd92 1172 ((CHANNEL) == ADC_CHANNEL_7) || \
Kojto 100:cbbeb26dbd92 1173 ((CHANNEL) == ADC_CHANNEL_8) || \
Kojto 100:cbbeb26dbd92 1174 ((CHANNEL) == ADC_CHANNEL_9) || \
Kojto 100:cbbeb26dbd92 1175 ((CHANNEL) == ADC_CHANNEL_10) || \
Kojto 100:cbbeb26dbd92 1176 ((CHANNEL) == ADC_CHANNEL_11) || \
Kojto 100:cbbeb26dbd92 1177 ((CHANNEL) == ADC_CHANNEL_12) || \
Kojto 100:cbbeb26dbd92 1178 ((CHANNEL) == ADC_CHANNEL_13) || \
Kojto 100:cbbeb26dbd92 1179 ((CHANNEL) == ADC_CHANNEL_14) )
Kojto 100:cbbeb26dbd92 1180
Kojto 100:cbbeb26dbd92 1181 /**
Kojto 100:cbbeb26dbd92 1182 * @}
Kojto 100:cbbeb26dbd92 1183 */
Kojto 100:cbbeb26dbd92 1184
Kojto 100:cbbeb26dbd92 1185 /** @defgroup ADCEx_sampling_times ADC Extended Sampling Times
Kojto 100:cbbeb26dbd92 1186 * @{
Kojto 100:cbbeb26dbd92 1187 */
Kojto 100:cbbeb26dbd92 1188 #define ADC_SAMPLETIME_1CYCLE_5 ((uint32_t)0x00000000) /*!< Sampling time 1.5 ADC clock cycle */
Kojto 100:cbbeb26dbd92 1189 #define ADC_SAMPLETIME_2CYCLES_5 ((uint32_t)ADC_SMPR2_SMP10_0) /*!< Sampling time 2.5 ADC clock cycles */
Kojto 100:cbbeb26dbd92 1190 #define ADC_SAMPLETIME_4CYCLES_5 ((uint32_t)ADC_SMPR2_SMP10_1) /*!< Sampling time 4.5 ADC clock cycles */
Kojto 100:cbbeb26dbd92 1191 #define ADC_SAMPLETIME_7CYCLES_5 ((uint32_t)(ADC_SMPR2_SMP10_1 | ADC_SMPR2_SMP10_0)) /*!< Sampling time 7.5 ADC clock cycles */
Kojto 100:cbbeb26dbd92 1192 #define ADC_SAMPLETIME_19CYCLES_5 ((uint32_t)ADC_SMPR2_SMP10_2) /*!< Sampling time 19.5 ADC clock cycles */
Kojto 100:cbbeb26dbd92 1193 #define ADC_SAMPLETIME_61CYCLES_5 ((uint32_t)(ADC_SMPR2_SMP10_2 | ADC_SMPR2_SMP10_0)) /*!< Sampling time 61.5 ADC clock cycles */
Kojto 100:cbbeb26dbd92 1194 #define ADC_SAMPLETIME_181CYCLES_5 ((uint32_t)(ADC_SMPR2_SMP10_2 | ADC_SMPR2_SMP10_1)) /*!< Sampling time 181.5 ADC clock cycles */
Kojto 100:cbbeb26dbd92 1195 #define ADC_SAMPLETIME_601CYCLES_5 ((uint32_t)ADC_SMPR2_SMP10) /*!< Sampling time 601.5 ADC clock cycles */
Kojto 100:cbbeb26dbd92 1196
Kojto 100:cbbeb26dbd92 1197 #define IS_ADC_SAMPLE_TIME(TIME) (((TIME) == ADC_SAMPLETIME_1CYCLE_5) || \
Kojto 100:cbbeb26dbd92 1198 ((TIME) == ADC_SAMPLETIME_2CYCLES_5) || \
Kojto 100:cbbeb26dbd92 1199 ((TIME) == ADC_SAMPLETIME_4CYCLES_5) || \
Kojto 100:cbbeb26dbd92 1200 ((TIME) == ADC_SAMPLETIME_7CYCLES_5) || \
Kojto 100:cbbeb26dbd92 1201 ((TIME) == ADC_SAMPLETIME_19CYCLES_5) || \
Kojto 100:cbbeb26dbd92 1202 ((TIME) == ADC_SAMPLETIME_61CYCLES_5) || \
Kojto 100:cbbeb26dbd92 1203 ((TIME) == ADC_SAMPLETIME_181CYCLES_5) || \
Kojto 100:cbbeb26dbd92 1204 ((TIME) == ADC_SAMPLETIME_601CYCLES_5) )
Kojto 100:cbbeb26dbd92 1205 /**
Kojto 100:cbbeb26dbd92 1206 * @}
Kojto 100:cbbeb26dbd92 1207 */
Kojto 100:cbbeb26dbd92 1208
Kojto 100:cbbeb26dbd92 1209 /** @defgroup ADCEx_SingleDifferential ADC Extended Single-ended/Differential input mode
Kojto 100:cbbeb26dbd92 1210 * @{
Kojto 100:cbbeb26dbd92 1211 */
Kojto 100:cbbeb26dbd92 1212 #define ADC_SINGLE_ENDED ((uint32_t)0x00000000)
Kojto 100:cbbeb26dbd92 1213 #define ADC_DIFFERENTIAL_ENDED ((uint32_t)0x00000001)
Kojto 100:cbbeb26dbd92 1214
Kojto 100:cbbeb26dbd92 1215 #define IS_ADC_SINGLE_DIFFERENTIAL(SING_DIFF) (((SING_DIFF) == ADC_SINGLE_ENDED) || \
Kojto 100:cbbeb26dbd92 1216 ((SING_DIFF) == ADC_DIFFERENTIAL_ENDED) )
Kojto 100:cbbeb26dbd92 1217 /**
Kojto 100:cbbeb26dbd92 1218 * @}
Kojto 100:cbbeb26dbd92 1219 */
Kojto 100:cbbeb26dbd92 1220
Kojto 100:cbbeb26dbd92 1221 /** @defgroup ADCEx_OffsetNumber ADC Extended Offset Number
Kojto 100:cbbeb26dbd92 1222 * @{
Kojto 100:cbbeb26dbd92 1223 */
Kojto 100:cbbeb26dbd92 1224 #define ADC_OFFSET_NONE ((uint32_t)0x00)
Kojto 100:cbbeb26dbd92 1225 #define ADC_OFFSET_1 ((uint32_t)0x01)
Kojto 100:cbbeb26dbd92 1226 #define ADC_OFFSET_2 ((uint32_t)0x02)
Kojto 100:cbbeb26dbd92 1227 #define ADC_OFFSET_3 ((uint32_t)0x03)
Kojto 100:cbbeb26dbd92 1228 #define ADC_OFFSET_4 ((uint32_t)0x04)
Kojto 100:cbbeb26dbd92 1229
Kojto 100:cbbeb26dbd92 1230 #define IS_ADC_OFFSET_NUMBER(OFFSET_NUMBER) (((OFFSET_NUMBER) == ADC_OFFSET_NONE) || \
Kojto 100:cbbeb26dbd92 1231 ((OFFSET_NUMBER) == ADC_OFFSET_1) || \
Kojto 100:cbbeb26dbd92 1232 ((OFFSET_NUMBER) == ADC_OFFSET_2) || \
Kojto 100:cbbeb26dbd92 1233 ((OFFSET_NUMBER) == ADC_OFFSET_3) || \
Kojto 100:cbbeb26dbd92 1234 ((OFFSET_NUMBER) == ADC_OFFSET_4) )
Kojto 100:cbbeb26dbd92 1235 /**
Kojto 100:cbbeb26dbd92 1236 * @}
Kojto 100:cbbeb26dbd92 1237 */
Kojto 100:cbbeb26dbd92 1238
Kojto 100:cbbeb26dbd92 1239 /** @defgroup ADCEx_regular_rank ADC Extended Regular Channel Rank
Kojto 100:cbbeb26dbd92 1240 * @{
Kojto 100:cbbeb26dbd92 1241 */
Kojto 100:cbbeb26dbd92 1242 #define ADC_REGULAR_RANK_1 ((uint32_t)0x00000001)
Kojto 100:cbbeb26dbd92 1243 #define ADC_REGULAR_RANK_2 ((uint32_t)0x00000002)
Kojto 100:cbbeb26dbd92 1244 #define ADC_REGULAR_RANK_3 ((uint32_t)0x00000003)
Kojto 100:cbbeb26dbd92 1245 #define ADC_REGULAR_RANK_4 ((uint32_t)0x00000004)
Kojto 100:cbbeb26dbd92 1246 #define ADC_REGULAR_RANK_5 ((uint32_t)0x00000005)
Kojto 100:cbbeb26dbd92 1247 #define ADC_REGULAR_RANK_6 ((uint32_t)0x00000006)
Kojto 100:cbbeb26dbd92 1248 #define ADC_REGULAR_RANK_7 ((uint32_t)0x00000007)
Kojto 100:cbbeb26dbd92 1249 #define ADC_REGULAR_RANK_8 ((uint32_t)0x00000008)
Kojto 100:cbbeb26dbd92 1250 #define ADC_REGULAR_RANK_9 ((uint32_t)0x00000009)
Kojto 100:cbbeb26dbd92 1251 #define ADC_REGULAR_RANK_10 ((uint32_t)0x0000000A)
Kojto 100:cbbeb26dbd92 1252 #define ADC_REGULAR_RANK_11 ((uint32_t)0x0000000B)
Kojto 100:cbbeb26dbd92 1253 #define ADC_REGULAR_RANK_12 ((uint32_t)0x0000000C)
Kojto 100:cbbeb26dbd92 1254 #define ADC_REGULAR_RANK_13 ((uint32_t)0x0000000D)
Kojto 100:cbbeb26dbd92 1255 #define ADC_REGULAR_RANK_14 ((uint32_t)0x0000000E)
Kojto 100:cbbeb26dbd92 1256 #define ADC_REGULAR_RANK_15 ((uint32_t)0x0000000F)
Kojto 100:cbbeb26dbd92 1257 #define ADC_REGULAR_RANK_16 ((uint32_t)0x00000010)
Kojto 100:cbbeb26dbd92 1258
Kojto 100:cbbeb26dbd92 1259 #define IS_ADC_REGULAR_RANK(CHANNEL) (((CHANNEL) == ADC_REGULAR_RANK_1 ) || \
Kojto 100:cbbeb26dbd92 1260 ((CHANNEL) == ADC_REGULAR_RANK_2 ) || \
Kojto 100:cbbeb26dbd92 1261 ((CHANNEL) == ADC_REGULAR_RANK_3 ) || \
Kojto 100:cbbeb26dbd92 1262 ((CHANNEL) == ADC_REGULAR_RANK_4 ) || \
Kojto 100:cbbeb26dbd92 1263 ((CHANNEL) == ADC_REGULAR_RANK_5 ) || \
Kojto 100:cbbeb26dbd92 1264 ((CHANNEL) == ADC_REGULAR_RANK_6 ) || \
Kojto 100:cbbeb26dbd92 1265 ((CHANNEL) == ADC_REGULAR_RANK_7 ) || \
Kojto 100:cbbeb26dbd92 1266 ((CHANNEL) == ADC_REGULAR_RANK_8 ) || \
Kojto 100:cbbeb26dbd92 1267 ((CHANNEL) == ADC_REGULAR_RANK_9 ) || \
Kojto 100:cbbeb26dbd92 1268 ((CHANNEL) == ADC_REGULAR_RANK_10) || \
Kojto 100:cbbeb26dbd92 1269 ((CHANNEL) == ADC_REGULAR_RANK_11) || \
Kojto 100:cbbeb26dbd92 1270 ((CHANNEL) == ADC_REGULAR_RANK_12) || \
Kojto 100:cbbeb26dbd92 1271 ((CHANNEL) == ADC_REGULAR_RANK_13) || \
Kojto 100:cbbeb26dbd92 1272 ((CHANNEL) == ADC_REGULAR_RANK_14) || \
Kojto 100:cbbeb26dbd92 1273 ((CHANNEL) == ADC_REGULAR_RANK_15) || \
Kojto 100:cbbeb26dbd92 1274 ((CHANNEL) == ADC_REGULAR_RANK_16) )
Kojto 100:cbbeb26dbd92 1275 /**
Kojto 100:cbbeb26dbd92 1276 * @}
Kojto 100:cbbeb26dbd92 1277 */
Kojto 100:cbbeb26dbd92 1278
Kojto 100:cbbeb26dbd92 1279 /** @defgroup ADCEx_injected_rank ADC Extended Injected Channel Rank
Kojto 100:cbbeb26dbd92 1280 * @{
Kojto 100:cbbeb26dbd92 1281 */
Kojto 100:cbbeb26dbd92 1282 #define ADC_INJECTED_RANK_1 ((uint32_t)0x00000001)
Kojto 100:cbbeb26dbd92 1283 #define ADC_INJECTED_RANK_2 ((uint32_t)0x00000002)
Kojto 100:cbbeb26dbd92 1284 #define ADC_INJECTED_RANK_3 ((uint32_t)0x00000003)
Kojto 100:cbbeb26dbd92 1285 #define ADC_INJECTED_RANK_4 ((uint32_t)0x00000004)
Kojto 100:cbbeb26dbd92 1286
Kojto 100:cbbeb26dbd92 1287 #define IS_ADC_INJECTED_RANK(CHANNEL) (((CHANNEL) == ADC_INJECTED_RANK_1) || \
Kojto 100:cbbeb26dbd92 1288 ((CHANNEL) == ADC_INJECTED_RANK_2) || \
Kojto 100:cbbeb26dbd92 1289 ((CHANNEL) == ADC_INJECTED_RANK_3) || \
Kojto 100:cbbeb26dbd92 1290 ((CHANNEL) == ADC_INJECTED_RANK_4) )
Kojto 100:cbbeb26dbd92 1291 /**
Kojto 100:cbbeb26dbd92 1292 * @}
Kojto 100:cbbeb26dbd92 1293 */
Kojto 100:cbbeb26dbd92 1294
Kojto 100:cbbeb26dbd92 1295 /** @defgroup ADCEx_External_trigger_edge_Injected External Trigger Edge of Injected Group
Kojto 100:cbbeb26dbd92 1296 * @{
Kojto 100:cbbeb26dbd92 1297 */
Kojto 100:cbbeb26dbd92 1298 #define ADC_EXTERNALTRIGINJECCONV_EDGE_NONE ((uint32_t)0x00000000)
Kojto 100:cbbeb26dbd92 1299 #define ADC_EXTERNALTRIGINJECCONV_EDGE_RISING ((uint32_t)ADC_JSQR_JEXTEN_0)
Kojto 100:cbbeb26dbd92 1300 #define ADC_EXTERNALTRIGINJECCONV_EDGE_FALLING ((uint32_t)ADC_JSQR_JEXTEN_1)
Kojto 100:cbbeb26dbd92 1301 #define ADC_EXTERNALTRIGINJECCONV_EDGE_RISINGFALLING ((uint32_t)ADC_JSQR_JEXTEN)
Kojto 100:cbbeb26dbd92 1302
Kojto 100:cbbeb26dbd92 1303 #define IS_ADC_EXTTRIGINJEC_EDGE(EDGE) (((EDGE) == ADC_EXTERNALTRIGINJECCONV_EDGE_NONE) || \
Kojto 100:cbbeb26dbd92 1304 ((EDGE) == ADC_EXTERNALTRIGINJECCONV_EDGE_RISING) || \
Kojto 100:cbbeb26dbd92 1305 ((EDGE) == ADC_EXTERNALTRIGINJECCONV_EDGE_FALLING) || \
Kojto 100:cbbeb26dbd92 1306 ((EDGE) == ADC_EXTERNALTRIGINJECCONV_EDGE_RISINGFALLING) )
Kojto 100:cbbeb26dbd92 1307 /**
Kojto 100:cbbeb26dbd92 1308 * @}
Kojto 100:cbbeb26dbd92 1309 */
Kojto 100:cbbeb26dbd92 1310
Kojto 100:cbbeb26dbd92 1311 /** @defgroup ADCEx_External_trigger_source_Injected External Trigger Source of Injected Group
Kojto 100:cbbeb26dbd92 1312 * @{
Kojto 100:cbbeb26dbd92 1313 */
Kojto 100:cbbeb26dbd92 1314 #if defined(STM32F303xE) || defined(STM32F398xx) || \
Kojto 100:cbbeb26dbd92 1315 defined(STM32F303xC) || defined(STM32F358xx)
Kojto 100:cbbeb26dbd92 1316 /* List of external triggers with generic trigger name, independently of ADC */
Kojto 100:cbbeb26dbd92 1317 /* target (caution: applies to other ADCs sharing the same common group), */
Kojto 100:cbbeb26dbd92 1318 /* sorted by trigger name: */
Kojto 100:cbbeb26dbd92 1319
Kojto 100:cbbeb26dbd92 1320 /* External triggers of injected group for ADC1&ADC2 only */
Kojto 100:cbbeb26dbd92 1321 #define ADC_EXTERNALTRIGINJECCONV_T2_CC1 ADC1_2_EXTERNALTRIGINJEC_T2_CC1
Kojto 100:cbbeb26dbd92 1322 #define ADC_EXTERNALTRIGINJECCONV_T3_CC1 ADC1_2_EXTERNALTRIGINJEC_T3_CC1
Kojto 100:cbbeb26dbd92 1323 #define ADC_EXTERNALTRIGINJECCONV_T3_CC3 ADC1_2_EXTERNALTRIGINJEC_T3_CC3
Kojto 100:cbbeb26dbd92 1324 #define ADC_EXTERNALTRIGINJECCONV_T3_CC4 ADC1_2_EXTERNALTRIGINJEC_T3_CC4
Kojto 100:cbbeb26dbd92 1325 #define ADC_EXTERNALTRIGINJECCONV_T6_TRGO ADC1_2_EXTERNALTRIGINJEC_T6_TRGO
Kojto 100:cbbeb26dbd92 1326 #define ADC_EXTERNALTRIGINJECCONV_EXT_IT15 ADC1_2_EXTERNALTRIGINJEC_EXT_IT15
Kojto 100:cbbeb26dbd92 1327
Kojto 100:cbbeb26dbd92 1328 /* External triggers of injected group for ADC3&ADC4 only */
Kojto 100:cbbeb26dbd92 1329 #define ADC_EXTERNALTRIGINJECCONV_T1_CC3 ADC3_4_EXTERNALTRIGINJEC_T1_CC3
Kojto 100:cbbeb26dbd92 1330 #define ADC_EXTERNALTRIGINJECCONV_T4_CC3 ADC3_4_EXTERNALTRIGINJEC_T4_CC3
Kojto 100:cbbeb26dbd92 1331 #define ADC_EXTERNALTRIGINJECCONV_T4_CC4 ADC3_4_EXTERNALTRIGINJEC_T4_CC4
Kojto 100:cbbeb26dbd92 1332 #define ADC_EXTERNALTRIGINJECCONV_T7_TRGO ADC3_4_EXTERNALTRIGINJEC_T7_TRGO
Kojto 100:cbbeb26dbd92 1333 #define ADC_EXTERNALTRIGINJECCONV_T8_CC2 ADC3_4_EXTERNALTRIGINJEC_T8_CC2
Kojto 100:cbbeb26dbd92 1334
Kojto 100:cbbeb26dbd92 1335 /* External triggers of injected group for ADC1&ADC2, ADC3&ADC4 */
Kojto 100:cbbeb26dbd92 1336 /* Note: Triggers affected to group ADC1_2 by default, redirected to group */
Kojto 100:cbbeb26dbd92 1337 /* ADC3_4 by driver when needed. */
Kojto 100:cbbeb26dbd92 1338 #define ADC_EXTERNALTRIGINJECCONV_T1_CC4 ADC1_2_EXTERNALTRIGINJEC_T1_CC4
Kojto 100:cbbeb26dbd92 1339 #define ADC_EXTERNALTRIGINJECCONV_T1_TRGO ADC1_2_EXTERNALTRIGINJEC_T1_TRGO
Kojto 100:cbbeb26dbd92 1340 #define ADC_EXTERNALTRIGINJECCONV_T1_TRGO2 ADC1_2_EXTERNALTRIGINJEC_T1_TRGO2
Kojto 100:cbbeb26dbd92 1341 #define ADC_EXTERNALTRIGINJECCONV_T2_TRGO ADC1_2_EXTERNALTRIGINJEC_T2_TRGO
Kojto 100:cbbeb26dbd92 1342 #define ADC_EXTERNALTRIGINJECCONV_T3_TRGO ADC1_2_EXTERNALTRIGINJEC_T3_TRGO
Kojto 100:cbbeb26dbd92 1343 #define ADC_EXTERNALTRIGINJECCONV_T4_TRGO ADC1_2_EXTERNALTRIGINJEC_T4_TRGO
Kojto 100:cbbeb26dbd92 1344 #define ADC_EXTERNALTRIGINJECCONV_T8_CC4 ADC1_2_EXTERNALTRIGINJEC_T8_CC4
Kojto 100:cbbeb26dbd92 1345 #define ADC_EXTERNALTRIGINJECCONV_T8_TRGO ADC1_2_EXTERNALTRIGINJEC_T8_TRGO
Kojto 100:cbbeb26dbd92 1346 #define ADC_EXTERNALTRIGINJECCONV_T8_TRGO2 ADC1_2_EXTERNALTRIGINJEC_T8_TRGO2
Kojto 100:cbbeb26dbd92 1347 #define ADC_EXTERNALTRIGINJECCONV_T15_TRGO ADC1_2_EXTERNALTRIGINJEC_T15_TRGO
Kojto 100:cbbeb26dbd92 1348
Kojto 100:cbbeb26dbd92 1349 #define ADC_INJECTED_SOFTWARE_START ((uint32_t)0x00000001)
Kojto 100:cbbeb26dbd92 1350
Kojto 100:cbbeb26dbd92 1351 #if defined(STM32F303xE) || defined(STM32F398xx)
Kojto 100:cbbeb26dbd92 1352 /*!< List of external triggers specific to device STM303xE: using Timer20 */
Kojto 100:cbbeb26dbd92 1353 /* with ADC trigger input remap. */
Kojto 100:cbbeb26dbd92 1354 /* To remap ADC trigger from other timers/ExtLine to timer20: use macro */
Kojto 100:cbbeb26dbd92 1355 /* " __HAL_REMAPADCTRIGGER_ENABLE(...) " with parameters described below: */
Kojto 100:cbbeb26dbd92 1356
Kojto 100:cbbeb26dbd92 1357 /*!< External triggers of injected group for ADC1&ADC2 only, specific to */
Kojto 100:cbbeb26dbd92 1358 /* device STM303xE: : using Timer20 with ADC trigger input remap */
Kojto 100:cbbeb26dbd92 1359 #define ADC_EXTERNALTRIGINJECCONV_T20_CC4 ADC_EXTERNALTRIGINJECCONV_T3_CC1 /*!< Remap trigger using macro __HAL_REMAPADCTRIGGER_ENABLE(HAL_REMAPADCTRIGGER_ADC12_JEXT13) */
Kojto 100:cbbeb26dbd92 1360
Kojto 100:cbbeb26dbd92 1361 /*!< External triggers of injected group for ADC3&ADC4 only, specific to */
Kojto 100:cbbeb26dbd92 1362 /* device STM303xE: : using Timer20 with ADC trigger input remap */
Kojto 100:cbbeb26dbd92 1363 #define ADC_EXTERNALTRIGINJECCONV_T20_CC2 ADC_EXTERNALTRIGINJECCONV_T7_TRGO /*!< Remap trigger using macro __HAL_REMAPADCTRIGGER_ENABLE(HAL_REMAPADCTRIGGER_ADC34_JEXT14) */
Kojto 100:cbbeb26dbd92 1364
Kojto 100:cbbeb26dbd92 1365 /*!< External triggers of regular group for ADC1&ADC2, ADC3&ADC4, specific to */
Kojto 100:cbbeb26dbd92 1366 /* device STM303xE: : using Timer20 with ADC trigger input remap */
Kojto 100:cbbeb26dbd92 1367 /* Note: Triggers affected to group ADC1_2 by default, redirected to group */
Kojto 100:cbbeb26dbd92 1368 /* ADC3_4 by driver when needed. */
Kojto 100:cbbeb26dbd92 1369 #define ADC_EXTERNALTRIGINJECCONV_T20_TRGO (ADC_EXTERNALTRIGINJECCONV_T2_CC1 | ADC_EXTERNALTRIGCONV_T20_MASK) /*!< For ADC1&ADC2: Remap trigger using macro __HAL_REMAPADCTRIGGER_ENABLE(HAL_REMAPADCTRIGGER_ADC12_JEXT3) */
Kojto 100:cbbeb26dbd92 1370 /*!< For ADC3&ADC4: Remap trigger using macro __HAL_REMAPADCTRIGGER_ENABLE(HAL_REMAPADCTRIGGER_ADC34_JEXT5) */
Kojto 100:cbbeb26dbd92 1371 #define ADC_EXTERNALTRIGINJECCONV_T20_TRGO2 (ADC_EXTERNALTRIGINJECCONV_EXT_IT15 | ADC_EXTERNALTRIGCONV_T20_MASK) /*!< For ADC1&ADC2: Remap trigger using macro __HAL_REMAPADCTRIGGER_ENABLE(HAL_REMAPADCTRIGGER_ADC12_JEXT6) */
Kojto 100:cbbeb26dbd92 1372 /*!< For ADC3&ADC4: Remap trigger using macro __HAL_REMAPADCTRIGGER_ENABLE(HAL_REMAPADCTRIGGER_ADC34_JEXT11) */
Kojto 100:cbbeb26dbd92 1373 #endif /* STM32F303xE || STM32F398xx */
Kojto 100:cbbeb26dbd92 1374
Kojto 100:cbbeb26dbd92 1375 #if defined(STM32F303xC) || defined(STM32F358xx)
Kojto 100:cbbeb26dbd92 1376 #define IS_ADC_EXTTRIGINJEC(INJTRIG) (((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T2_CC1) || \
Kojto 100:cbbeb26dbd92 1377 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T3_CC1) || \
Kojto 100:cbbeb26dbd92 1378 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T3_CC4) || \
Kojto 100:cbbeb26dbd92 1379 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T6_TRGO) || \
Kojto 100:cbbeb26dbd92 1380 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_EXT_IT15) || \
Kojto 100:cbbeb26dbd92 1381 \
Kojto 100:cbbeb26dbd92 1382 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T4_CC3) || \
Kojto 100:cbbeb26dbd92 1383 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T4_CC4) || \
Kojto 100:cbbeb26dbd92 1384 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T7_TRGO) || \
Kojto 100:cbbeb26dbd92 1385 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T8_CC2) || \
Kojto 100:cbbeb26dbd92 1386 \
Kojto 100:cbbeb26dbd92 1387 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T1_CC4) || \
Kojto 100:cbbeb26dbd92 1388 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T1_TRGO) || \
Kojto 100:cbbeb26dbd92 1389 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T1_TRGO2) || \
Kojto 100:cbbeb26dbd92 1390 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T2_TRGO) || \
Kojto 100:cbbeb26dbd92 1391 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T3_CC3) || \
Kojto 100:cbbeb26dbd92 1392 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T3_TRGO) || \
Kojto 100:cbbeb26dbd92 1393 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T4_TRGO) || \
Kojto 100:cbbeb26dbd92 1394 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T8_CC4) || \
Kojto 100:cbbeb26dbd92 1395 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T8_TRGO) || \
Kojto 100:cbbeb26dbd92 1396 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T8_TRGO2) || \
Kojto 100:cbbeb26dbd92 1397 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T15_TRGO) || \
Kojto 100:cbbeb26dbd92 1398 \
Kojto 100:cbbeb26dbd92 1399 ((INJTRIG) == ADC_INJECTED_SOFTWARE_START) )
Kojto 100:cbbeb26dbd92 1400 #endif /* STM32F303xC || STM32F358xx */
Kojto 100:cbbeb26dbd92 1401
Kojto 100:cbbeb26dbd92 1402 #if defined(STM32F303xE) || defined(STM32F398xx)
Kojto 100:cbbeb26dbd92 1403 #define IS_ADC_EXTTRIGINJEC(INJTRIG) (((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T2_CC1) || \
Kojto 100:cbbeb26dbd92 1404 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T3_CC1) || \
Kojto 100:cbbeb26dbd92 1405 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T3_CC4) || \
Kojto 100:cbbeb26dbd92 1406 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T6_TRGO) || \
Kojto 100:cbbeb26dbd92 1407 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_EXT_IT15) || \
Kojto 100:cbbeb26dbd92 1408 \
Kojto 100:cbbeb26dbd92 1409 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T4_CC3) || \
Kojto 100:cbbeb26dbd92 1410 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T4_CC4) || \
Kojto 100:cbbeb26dbd92 1411 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T7_TRGO) || \
Kojto 100:cbbeb26dbd92 1412 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T8_CC2) || \
Kojto 100:cbbeb26dbd92 1413 \
Kojto 100:cbbeb26dbd92 1414 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T1_CC4) || \
Kojto 100:cbbeb26dbd92 1415 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T1_TRGO) || \
Kojto 100:cbbeb26dbd92 1416 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T1_TRGO2) || \
Kojto 100:cbbeb26dbd92 1417 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T2_TRGO) || \
Kojto 100:cbbeb26dbd92 1418 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T3_CC3) || \
Kojto 100:cbbeb26dbd92 1419 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T3_TRGO) || \
Kojto 100:cbbeb26dbd92 1420 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T4_TRGO) || \
Kojto 100:cbbeb26dbd92 1421 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T8_CC4) || \
Kojto 100:cbbeb26dbd92 1422 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T8_TRGO) || \
Kojto 100:cbbeb26dbd92 1423 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T8_TRGO2) || \
Kojto 100:cbbeb26dbd92 1424 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T15_TRGO) || \
Kojto 100:cbbeb26dbd92 1425 \
Kojto 100:cbbeb26dbd92 1426 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T20_CC4) || \
Kojto 100:cbbeb26dbd92 1427 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T20_CC2) || \
Kojto 100:cbbeb26dbd92 1428 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T20_TRGO) || \
Kojto 100:cbbeb26dbd92 1429 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T20_TRGO2) || \
Kojto 100:cbbeb26dbd92 1430 \
Kojto 100:cbbeb26dbd92 1431 ((INJTRIG) == ADC_INJECTED_SOFTWARE_START) )
Kojto 100:cbbeb26dbd92 1432 #endif /* STM32F303xE || STM32F398xx */
Kojto 100:cbbeb26dbd92 1433
Kojto 100:cbbeb26dbd92 1434 #endif /* STM32F303xC || STM32F303xE || STM32F398xx || STM32F358xx */
Kojto 100:cbbeb26dbd92 1435
Kojto 100:cbbeb26dbd92 1436 #if defined(STM32F302xE) || \
Kojto 100:cbbeb26dbd92 1437 defined(STM32F302xC)
Kojto 100:cbbeb26dbd92 1438 /*!< List of external triggers with generic trigger name, independently of */
Kojto 100:cbbeb26dbd92 1439 /* ADC target (caution: applies to other ADCs sharing the same common group), */
Kojto 100:cbbeb26dbd92 1440 /* sorted by trigger name: */
Kojto 100:cbbeb26dbd92 1441
Kojto 100:cbbeb26dbd92 1442 /* External triggers of injected group for ADC1&ADC2 */
Kojto 100:cbbeb26dbd92 1443 #define ADC_EXTERNALTRIGINJECCONV_T1_CC4 ADC1_2_EXTERNALTRIGINJEC_T1_CC4
Kojto 100:cbbeb26dbd92 1444 #define ADC_EXTERNALTRIGINJECCONV_T1_TRGO ADC1_2_EXTERNALTRIGINJEC_T1_TRGO
Kojto 100:cbbeb26dbd92 1445 #define ADC_EXTERNALTRIGINJECCONV_T1_TRGO2 ADC1_2_EXTERNALTRIGINJEC_T1_TRGO2
Kojto 100:cbbeb26dbd92 1446 #define ADC_EXTERNALTRIGINJECCONV_T2_CC1 ADC1_2_EXTERNALTRIGINJEC_T2_CC1
Kojto 100:cbbeb26dbd92 1447 #define ADC_EXTERNALTRIGINJECCONV_T2_TRGO ADC1_2_EXTERNALTRIGINJEC_T2_TRGO
Kojto 100:cbbeb26dbd92 1448 #define ADC_EXTERNALTRIGINJECCONV_T3_CC1 ADC1_2_EXTERNALTRIGINJEC_T3_CC1
Kojto 100:cbbeb26dbd92 1449 #define ADC_EXTERNALTRIGINJECCONV_T3_CC3 ADC1_2_EXTERNALTRIGINJEC_T3_CC3
Kojto 100:cbbeb26dbd92 1450 #define ADC_EXTERNALTRIGINJECCONV_T3_CC4 ADC1_2_EXTERNALTRIGINJEC_T3_CC4
Kojto 100:cbbeb26dbd92 1451 #define ADC_EXTERNALTRIGINJECCONV_T3_TRGO ADC1_2_EXTERNALTRIGINJEC_T3_TRGO
Kojto 100:cbbeb26dbd92 1452 #define ADC_EXTERNALTRIGINJECCONV_T4_TRGO ADC1_2_EXTERNALTRIGINJEC_T4_TRGO
Kojto 100:cbbeb26dbd92 1453 #define ADC_EXTERNALTRIGINJECCONV_T6_TRGO ADC1_2_EXTERNALTRIGINJEC_T6_TRGO
Kojto 100:cbbeb26dbd92 1454 #define ADC_EXTERNALTRIGINJECCONV_T15_TRGO ADC1_2_EXTERNALTRIGINJEC_T15_TRGO
Kojto 100:cbbeb26dbd92 1455 #define ADC_EXTERNALTRIGINJECCONV_EXT_IT15 ADC1_2_EXTERNALTRIGINJEC_EXT_IT15
Kojto 100:cbbeb26dbd92 1456
Kojto 100:cbbeb26dbd92 1457 #define ADC_INJECTED_SOFTWARE_START ((uint32_t)0x00000001)
Kojto 100:cbbeb26dbd92 1458
Kojto 100:cbbeb26dbd92 1459 #if defined(STM32F302xE)
Kojto 100:cbbeb26dbd92 1460 /*!< List of external triggers specific to device STM302xE: using Timer20 */
Kojto 100:cbbeb26dbd92 1461 /* with ADC trigger input remap. */
Kojto 100:cbbeb26dbd92 1462 /* To remap ADC trigger from other timers/ExtLine to timer20: use macro */
Kojto 100:cbbeb26dbd92 1463 /* " __HAL_REMAPADCTRIGGER_ENABLE(...) " with parameters described below: */
Kojto 100:cbbeb26dbd92 1464
Kojto 100:cbbeb26dbd92 1465 /*!< External triggers of injected group for ADC1&ADC2 only, specific to */
Kojto 100:cbbeb26dbd92 1466 /* device STM302xE: : using Timer20 with ADC trigger input remap */
Kojto 100:cbbeb26dbd92 1467 #define ADC_EXTERNALTRIGINJECCONV_T20_CC4 ADC_EXTERNALTRIGINJECCONV_T3_CC1 /*!< Remap trigger using macro __HAL_REMAPADCTRIGGER_ENABLE(HAL_REMAPADCTRIGGER_ADC12_JEXT13) */
Kojto 100:cbbeb26dbd92 1468 #define ADC_EXTERNALTRIGINJECCONV_T20_TRGO (ADC_EXTERNALTRIGINJECCONV_T2_CC1 | ADC_EXTERNALTRIGCONV_T20_MASK) /*!< For ADC1&ADC2: Remap trigger using macro __HAL_REMAPADCTRIGGER_ENABLE(HAL_REMAPADCTRIGGER_ADC12_JEXT3) */
Kojto 100:cbbeb26dbd92 1469 #define ADC_EXTERNALTRIGINJECCONV_T20_TRGO2 (ADC_EXTERNALTRIGINJECCONV_EXT_IT15 | ADC_EXTERNALTRIGCONV_T20_MASK) /*!< For ADC1&ADC2: Remap trigger using macro __HAL_REMAPADCTRIGGER_ENABLE(HAL_REMAPADCTRIGGER_ADC12_JEXT6) */
Kojto 100:cbbeb26dbd92 1470 #endif /* STM32F302xE */
Kojto 100:cbbeb26dbd92 1471
Kojto 100:cbbeb26dbd92 1472 #if defined(STM32F302xE)
Kojto 100:cbbeb26dbd92 1473 #define IS_ADC_EXTTRIGINJEC(INJTRIG) (((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T1_CC4) || \
Kojto 100:cbbeb26dbd92 1474 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T1_TRGO) || \
Kojto 100:cbbeb26dbd92 1475 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T1_TRGO2) || \
Kojto 100:cbbeb26dbd92 1476 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T2_CC1) || \
Kojto 100:cbbeb26dbd92 1477 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T2_TRGO) || \
Kojto 100:cbbeb26dbd92 1478 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T3_CC1) || \
Kojto 100:cbbeb26dbd92 1479 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T3_CC3) || \
Kojto 100:cbbeb26dbd92 1480 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T3_CC4) || \
Kojto 100:cbbeb26dbd92 1481 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T3_TRGO) || \
Kojto 100:cbbeb26dbd92 1482 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T4_TRGO) || \
Kojto 100:cbbeb26dbd92 1483 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T6_TRGO) || \
Kojto 100:cbbeb26dbd92 1484 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T15_TRGO) || \
Kojto 100:cbbeb26dbd92 1485 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_EXT_IT15) || \
Kojto 100:cbbeb26dbd92 1486 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T20_CC4) || \
Kojto 100:cbbeb26dbd92 1487 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T20_TRGO) || \
Kojto 100:cbbeb26dbd92 1488 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T20_TRGO2) || \
Kojto 100:cbbeb26dbd92 1489 ((INJTRIG) == ADC_INJECTED_SOFTWARE_START) )
Kojto 100:cbbeb26dbd92 1490 #endif /* STM32F302xE */
Kojto 100:cbbeb26dbd92 1491
Kojto 100:cbbeb26dbd92 1492 #if defined(STM32F302xC)
Kojto 100:cbbeb26dbd92 1493 #define IS_ADC_EXTTRIGINJEC(INJTRIG) (((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T1_CC4) || \
Kojto 100:cbbeb26dbd92 1494 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T1_TRGO) || \
Kojto 100:cbbeb26dbd92 1495 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T1_TRGO2) || \
Kojto 100:cbbeb26dbd92 1496 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T2_CC1) || \
Kojto 100:cbbeb26dbd92 1497 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T2_TRGO) || \
Kojto 100:cbbeb26dbd92 1498 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T3_CC1) || \
Kojto 100:cbbeb26dbd92 1499 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T3_CC3) || \
Kojto 100:cbbeb26dbd92 1500 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T3_CC4) || \
Kojto 100:cbbeb26dbd92 1501 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T3_TRGO) || \
Kojto 100:cbbeb26dbd92 1502 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T4_TRGO) || \
Kojto 100:cbbeb26dbd92 1503 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T6_TRGO) || \
Kojto 100:cbbeb26dbd92 1504 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T15_TRGO) || \
Kojto 100:cbbeb26dbd92 1505 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_EXT_IT15) || \
Kojto 100:cbbeb26dbd92 1506 ((INJTRIG) == ADC_INJECTED_SOFTWARE_START) )
Kojto 100:cbbeb26dbd92 1507 #endif /* STM32F302xC */
Kojto 100:cbbeb26dbd92 1508
Kojto 100:cbbeb26dbd92 1509 #endif /* STM32F302xE || */
Kojto 100:cbbeb26dbd92 1510 /* STM32F302xC */
Kojto 100:cbbeb26dbd92 1511
Kojto 100:cbbeb26dbd92 1512 #if defined(STM32F303x8) || defined(STM32F328xx)
Kojto 100:cbbeb26dbd92 1513 /*!< List of external triggers with generic trigger name, independently of */
Kojto 100:cbbeb26dbd92 1514 /* ADC target (caution: applies to other ADCs sharing the same common group), */
Kojto 100:cbbeb26dbd92 1515 /* sorted by trigger name: */
Kojto 100:cbbeb26dbd92 1516
Kojto 100:cbbeb26dbd92 1517 /* External triggers of injected group for ADC1&ADC2 */
Kojto 100:cbbeb26dbd92 1518 #define ADC_EXTERNALTRIGINJECCONV_T1_CC4 ADC1_2_EXTERNALTRIGINJEC_T1_CC4
Kojto 100:cbbeb26dbd92 1519 #define ADC_EXTERNALTRIGINJECCONV_T1_TRGO ADC1_2_EXTERNALTRIGINJEC_T1_TRGO
Kojto 100:cbbeb26dbd92 1520 #define ADC_EXTERNALTRIGINJECCONV_T1_TRGO2 ADC1_2_EXTERNALTRIGINJEC_T1_TRGO2
Kojto 100:cbbeb26dbd92 1521 #define ADC_EXTERNALTRIGINJECCONV_T2_CC1 ADC1_2_EXTERNALTRIGINJEC_T2_CC1
Kojto 100:cbbeb26dbd92 1522 #define ADC_EXTERNALTRIGINJECCONV_T2_TRGO ADC1_2_EXTERNALTRIGINJEC_T2_TRGO
Kojto 100:cbbeb26dbd92 1523 #define ADC_EXTERNALTRIGINJECCONV_T3_CC1 ADC1_2_EXTERNALTRIGINJEC_T3_CC1
Kojto 100:cbbeb26dbd92 1524 #define ADC_EXTERNALTRIGINJECCONV_T3_CC3 ADC1_2_EXTERNALTRIGINJEC_T3_CC3
Kojto 100:cbbeb26dbd92 1525 #define ADC_EXTERNALTRIGINJECCONV_T3_CC4 ADC1_2_EXTERNALTRIGINJEC_T3_CC4
Kojto 100:cbbeb26dbd92 1526 #define ADC_EXTERNALTRIGINJECCONV_T3_TRGO ADC1_2_EXTERNALTRIGINJEC_T3_TRGO
Kojto 100:cbbeb26dbd92 1527 #define ADC_EXTERNALTRIGINJECCONV_T4_TRGO ADC1_2_EXTERNALTRIGINJEC_T4_TRGO
Kojto 100:cbbeb26dbd92 1528 #define ADC_EXTERNALTRIGINJECCONV_T6_TRGO ADC1_2_EXTERNALTRIGINJEC_T6_TRGO
Kojto 100:cbbeb26dbd92 1529 #define ADC_EXTERNALTRIGINJECCONV_T8_CC4 ADC1_2_EXTERNALTRIGINJEC_T8_CC4
Kojto 100:cbbeb26dbd92 1530 #define ADC_EXTERNALTRIGINJECCONV_T8_TRGO ADC1_2_EXTERNALTRIGINJEC_T8_TRGO
Kojto 100:cbbeb26dbd92 1531 #define ADC_EXTERNALTRIGINJECCONV_T8_TRGO2 ADC1_2_EXTERNALTRIGINJEC_T8_TRGO2
Kojto 100:cbbeb26dbd92 1532 #define ADC_EXTERNALTRIGINJECCONV_T15_TRGO ADC1_2_EXTERNALTRIGINJEC_T15_TRGO
Kojto 100:cbbeb26dbd92 1533 #define ADC_EXTERNALTRIGINJECCONV_EXT_IT15 ADC1_2_EXTERNALTRIGINJEC_EXT_IT15
Kojto 100:cbbeb26dbd92 1534
Kojto 100:cbbeb26dbd92 1535 #define ADC_INJECTED_SOFTWARE_START ((uint32_t)0x00000001)
Kojto 100:cbbeb26dbd92 1536
Kojto 100:cbbeb26dbd92 1537 #define IS_ADC_EXTTRIGINJEC(INJTRIG) (((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T1_TRGO) || \
Kojto 100:cbbeb26dbd92 1538 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T1_CC4) || \
Kojto 100:cbbeb26dbd92 1539 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T2_TRGO) || \
Kojto 100:cbbeb26dbd92 1540 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T2_CC1) || \
Kojto 100:cbbeb26dbd92 1541 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T3_CC4) || \
Kojto 100:cbbeb26dbd92 1542 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T4_TRGO) || \
Kojto 100:cbbeb26dbd92 1543 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_EXT_IT15) || \
Kojto 100:cbbeb26dbd92 1544 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T8_CC4) || \
Kojto 100:cbbeb26dbd92 1545 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T1_TRGO2) || \
Kojto 100:cbbeb26dbd92 1546 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T8_TRGO) || \
Kojto 100:cbbeb26dbd92 1547 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T8_TRGO2) || \
Kojto 100:cbbeb26dbd92 1548 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T3_CC3) || \
Kojto 100:cbbeb26dbd92 1549 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T3_TRGO) || \
Kojto 100:cbbeb26dbd92 1550 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T3_CC1) || \
Kojto 100:cbbeb26dbd92 1551 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T6_TRGO) || \
Kojto 100:cbbeb26dbd92 1552 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T15_TRGO) || \
Kojto 100:cbbeb26dbd92 1553 ((INJTRIG) == ADC_INJECTED_SOFTWARE_START) )
Kojto 100:cbbeb26dbd92 1554 #endif /* STM32F303x8 || STM32F328xx */
Kojto 100:cbbeb26dbd92 1555
Kojto 100:cbbeb26dbd92 1556 #if defined(STM32F334x8)
Kojto 100:cbbeb26dbd92 1557 /*!< List of external triggers with generic trigger name, independently of */
Kojto 100:cbbeb26dbd92 1558 /* ADC target (caution: applies to other ADCs sharing the same common group), */
Kojto 100:cbbeb26dbd92 1559 /* sorted by trigger name: */
Kojto 100:cbbeb26dbd92 1560
Kojto 100:cbbeb26dbd92 1561 /* External triggers of injected group for ADC1&ADC2 */
Kojto 100:cbbeb26dbd92 1562 #define ADC_EXTERNALTRIGINJECCONV_T1_CC4 ADC1_2_EXTERNALTRIGINJEC_T1_CC4
Kojto 100:cbbeb26dbd92 1563 #define ADC_EXTERNALTRIGINJECCONV_T1_TRGO ADC1_2_EXTERNALTRIGINJEC_T1_TRGO
Kojto 100:cbbeb26dbd92 1564 #define ADC_EXTERNALTRIGINJECCONV_T1_TRGO2 ADC1_2_EXTERNALTRIGINJEC_T1_TRGO2
Kojto 100:cbbeb26dbd92 1565 #define ADC_EXTERNALTRIGINJECCONV_T2_CC1 ADC1_2_EXTERNALTRIGINJEC_T2_CC1
Kojto 100:cbbeb26dbd92 1566 #define ADC_EXTERNALTRIGINJECCONV_T2_TRGO ADC1_2_EXTERNALTRIGINJEC_T2_TRGO
Kojto 100:cbbeb26dbd92 1567 #define ADC_EXTERNALTRIGINJECCONV_T3_CC1 ADC1_2_EXTERNALTRIGINJEC_T3_CC1
Kojto 100:cbbeb26dbd92 1568 #define ADC_EXTERNALTRIGINJECCONV_T3_CC3 ADC1_2_EXTERNALTRIGINJEC_T3_CC3
Kojto 100:cbbeb26dbd92 1569 #define ADC_EXTERNALTRIGINJECCONV_T3_CC4 ADC1_2_EXTERNALTRIGINJEC_T3_CC4
Kojto 100:cbbeb26dbd92 1570 #define ADC_EXTERNALTRIGINJECCONV_T3_TRGO ADC1_2_EXTERNALTRIGINJEC_T3_TRGO
Kojto 100:cbbeb26dbd92 1571 #define ADC_EXTERNALTRIGINJECCONV_T6_TRGO ADC1_2_EXTERNALTRIGINJEC_T6_TRGO
Kojto 100:cbbeb26dbd92 1572 #define ADC_EXTERNALTRIGINJECCONV_T15_TRGO ADC1_2_EXTERNALTRIGINJEC_T15_TRGO
Kojto 100:cbbeb26dbd92 1573 #define ADC_EXTERNALTRIGINJECCONV_HRTIM_TRG2 ADC1_2_EXTERNALTRIGINJEC_HRTIM_TRG2
Kojto 100:cbbeb26dbd92 1574 #define ADC_EXTERNALTRIGINJECCONV_HRTIM_TRG4 ADC1_2_EXTERNALTRIGINJEC_HRTIM_TRG4
Kojto 100:cbbeb26dbd92 1575 #define ADC_EXTERNALTRIGINJECCONV_EXT_IT15 ADC1_2_EXTERNALTRIGINJEC_EXT_IT15
Kojto 100:cbbeb26dbd92 1576
Kojto 100:cbbeb26dbd92 1577 #define ADC_INJECTED_SOFTWARE_START ((uint32_t)0x00000001)
Kojto 100:cbbeb26dbd92 1578
Kojto 100:cbbeb26dbd92 1579 #define IS_ADC_EXTTRIGINJEC(INJTRIG) (((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T1_TRGO) || \
Kojto 100:cbbeb26dbd92 1580 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T1_CC4) || \
Kojto 100:cbbeb26dbd92 1581 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T2_TRGO) || \
Kojto 100:cbbeb26dbd92 1582 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T2_CC1) || \
Kojto 100:cbbeb26dbd92 1583 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T3_CC4) || \
Kojto 100:cbbeb26dbd92 1584 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_EXT_IT15) || \
Kojto 100:cbbeb26dbd92 1585 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T1_TRGO2) || \
Kojto 100:cbbeb26dbd92 1586 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_HRTIM_TRG2) || \
Kojto 100:cbbeb26dbd92 1587 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_HRTIM_TRG4) || \
Kojto 100:cbbeb26dbd92 1588 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T3_CC3) || \
Kojto 100:cbbeb26dbd92 1589 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T3_TRGO) || \
Kojto 100:cbbeb26dbd92 1590 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T3_CC1) || \
Kojto 100:cbbeb26dbd92 1591 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T6_TRGO) || \
Kojto 100:cbbeb26dbd92 1592 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T15_TRGO) || \
Kojto 100:cbbeb26dbd92 1593 ((INJTRIG) == ADC_INJECTED_SOFTWARE_START) )
Kojto 100:cbbeb26dbd92 1594 #endif /* STM32F334x8 */
Kojto 100:cbbeb26dbd92 1595
Kojto 100:cbbeb26dbd92 1596 #if defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx)
Kojto 100:cbbeb26dbd92 1597 /* List of external triggers with generic trigger name, sorted by trigger */
Kojto 100:cbbeb26dbd92 1598 /* name: */
Kojto 100:cbbeb26dbd92 1599
Kojto 100:cbbeb26dbd92 1600 /* External triggers of injected group for ADC1 */
Kojto 100:cbbeb26dbd92 1601 #define ADC_EXTERNALTRIGINJECCONV_T1_CC4 ADC1_EXTERNALTRIGINJEC_T1_CC4
Kojto 100:cbbeb26dbd92 1602 #define ADC_EXTERNALTRIGINJECCONV_T1_TRGO ADC1_EXTERNALTRIGINJEC_T1_TRGO
Kojto 100:cbbeb26dbd92 1603 #define ADC_EXTERNALTRIGINJECCONV_T1_TRGO2 ADC1_EXTERNALTRIGINJEC_T1_TRGO2
Kojto 100:cbbeb26dbd92 1604 #define ADC_EXTERNALTRIGINJECCONV_T6_TRGO ADC1_EXTERNALTRIGINJEC_T6_TRGO
Kojto 100:cbbeb26dbd92 1605 #define ADC_EXTERNALTRIGINJECCONV_T15_TRGO ADC1_EXTERNALTRIGINJEC_T15_TRGO
Kojto 100:cbbeb26dbd92 1606 #define ADC_EXTERNALTRIGINJECCONV_EXT_IT15 ADC1_EXTERNALTRIGINJEC_EXT_IT15
Kojto 100:cbbeb26dbd92 1607
Kojto 100:cbbeb26dbd92 1608 #define ADC_INJECTED_SOFTWARE_START ((uint32_t)0x00000001)
Kojto 100:cbbeb26dbd92 1609
Kojto 100:cbbeb26dbd92 1610 #define IS_ADC_EXTTRIGINJEC(INJTRIG) (((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T1_TRGO) || \
Kojto 100:cbbeb26dbd92 1611 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T1_CC4) || \
Kojto 100:cbbeb26dbd92 1612 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_EXT_IT15) || \
Kojto 100:cbbeb26dbd92 1613 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T1_TRGO2) || \
Kojto 100:cbbeb26dbd92 1614 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T6_TRGO) || \
Kojto 100:cbbeb26dbd92 1615 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T15_TRGO) || \
Kojto 100:cbbeb26dbd92 1616 ((INJTRIG) == ADC_INJECTED_SOFTWARE_START) )
Kojto 100:cbbeb26dbd92 1617 #endif /* STM32F301x8 || STM32F302x8 || STM32F318xx */
Kojto 100:cbbeb26dbd92 1618 /**
Kojto 100:cbbeb26dbd92 1619 * @}
Kojto 100:cbbeb26dbd92 1620 */
Kojto 100:cbbeb26dbd92 1621
Kojto 100:cbbeb26dbd92 1622 /** @defgroup ADCEx_Internal_HAL_driver_Ext_trig_src_Injected ADC Extended External Trigger Source of Injected Group (Internal)
Kojto 100:cbbeb26dbd92 1623 * @{
Kojto 100:cbbeb26dbd92 1624 */
Kojto 100:cbbeb26dbd92 1625 #if defined(STM32F303xE) || defined(STM32F398xx) || \
Kojto 100:cbbeb26dbd92 1626 defined(STM32F303xC) || defined(STM32F358xx)
Kojto 100:cbbeb26dbd92 1627 /* List of external triggers sorted of groups ADC1&ADC2 and/or ADC3&ADC4: */
Kojto 100:cbbeb26dbd92 1628 /* (used internally by HAL driver. To not use into HAL structure parameters) */
Kojto 100:cbbeb26dbd92 1629
Kojto 100:cbbeb26dbd92 1630 /* External triggers for injected groups of ADC1 & ADC2 */
Kojto 100:cbbeb26dbd92 1631 #define ADC1_2_EXTERNALTRIGINJEC_T1_TRGO ((uint32_t)0x00000000)
Kojto 100:cbbeb26dbd92 1632 #define ADC1_2_EXTERNALTRIGINJEC_T1_CC4 ((uint32_t)ADC_JSQR_JEXTSEL_0)
Kojto 100:cbbeb26dbd92 1633 #define ADC1_2_EXTERNALTRIGINJEC_T2_TRGO ((uint32_t)ADC_JSQR_JEXTSEL_1)
Kojto 100:cbbeb26dbd92 1634 #define ADC1_2_EXTERNALTRIGINJEC_T2_CC1 ((uint32_t)(ADC_JSQR_JEXTSEL_1 | ADC_JSQR_JEXTSEL_0))
Kojto 100:cbbeb26dbd92 1635 #define ADC1_2_EXTERNALTRIGINJEC_T3_CC4 ((uint32_t)ADC_JSQR_JEXTSEL_2)
Kojto 100:cbbeb26dbd92 1636 #define ADC1_2_EXTERNALTRIGINJEC_T4_TRGO ((uint32_t)(ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_0))
Kojto 100:cbbeb26dbd92 1637 #define ADC1_2_EXTERNALTRIGINJEC_EXT_IT15 ((uint32_t)(ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_1))
Kojto 100:cbbeb26dbd92 1638 #define ADC1_2_EXTERNALTRIGINJEC_T8_CC4 ((uint32_t)(ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_1 | ADC_JSQR_JEXTSEL_0))
Kojto 100:cbbeb26dbd92 1639 #define ADC1_2_EXTERNALTRIGINJEC_T1_TRGO2 ((uint32_t)ADC_JSQR_JEXTSEL_3)
Kojto 100:cbbeb26dbd92 1640 #define ADC1_2_EXTERNALTRIGINJEC_T8_TRGO ((uint32_t)(ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_0))
Kojto 100:cbbeb26dbd92 1641 #define ADC1_2_EXTERNALTRIGINJEC_T8_TRGO2 ((uint32_t)(ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_1))
Kojto 100:cbbeb26dbd92 1642 #define ADC1_2_EXTERNALTRIGINJEC_T3_CC3 ((uint32_t)(ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_1 | ADC_JSQR_JEXTSEL_0))
Kojto 100:cbbeb26dbd92 1643 #define ADC1_2_EXTERNALTRIGINJEC_T3_TRGO ((uint32_t)(ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_2))
Kojto 100:cbbeb26dbd92 1644 #define ADC1_2_EXTERNALTRIGINJEC_T3_CC1 ((uint32_t)(ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_0))
Kojto 100:cbbeb26dbd92 1645 #define ADC1_2_EXTERNALTRIGINJEC_T6_TRGO ((uint32_t)(ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_1))
Kojto 100:cbbeb26dbd92 1646 #define ADC1_2_EXTERNALTRIGINJEC_T15_TRGO ((uint32_t)ADC_JSQR_JEXTSEL)
Kojto 100:cbbeb26dbd92 1647
Kojto 100:cbbeb26dbd92 1648 /* External triggers for injected groups of ADC3 & ADC4 */
Kojto 100:cbbeb26dbd92 1649 /* Note: External triggers JEXT2 and JEXT5 are the same (TIM4_CC3 event). */
Kojto 100:cbbeb26dbd92 1650 /* JEXT2 is the main trigger, JEXT5 could be redirected to another */
Kojto 100:cbbeb26dbd92 1651 /* in future devices. */
Kojto 100:cbbeb26dbd92 1652 /* However, this channel is implemented with a SW offset of 0x10000 for */
Kojto 100:cbbeb26dbd92 1653 /* differentiation between similar triggers of common groups ADC1&ADC2, */
Kojto 100:cbbeb26dbd92 1654 /* ADC3&ADC4 (Differentiation processed into macro */
Kojto 100:cbbeb26dbd92 1655 /* __HAL_ADC_JSQR_JEXTSEL) */
Kojto 100:cbbeb26dbd92 1656 #define ADC3_4_EXTERNALTRIGINJEC_T1_TRGO ((uint32_t)0x00000000)
Kojto 100:cbbeb26dbd92 1657 #define ADC3_4_EXTERNALTRIGINJEC_T1_CC4 ((uint32_t)ADC_JSQR_JEXTSEL_0)
Kojto 100:cbbeb26dbd92 1658 #define ADC3_4_EXTERNALTRIGINJEC_T4_CC3 ((uint32_t)ADC_JSQR_JEXTSEL_1 | 0x10000)
Kojto 100:cbbeb26dbd92 1659 #define ADC3_4_EXTERNALTRIGINJEC_T8_CC2 ((uint32_t)(ADC_JSQR_JEXTSEL_1 | ADC_JSQR_JEXTSEL_0))
Kojto 100:cbbeb26dbd92 1660 #define ADC3_4_EXTERNALTRIGINJEC_T8_CC4 ((uint32_t)ADC_JSQR_JEXTSEL_2)
Kojto 100:cbbeb26dbd92 1661
Kojto 100:cbbeb26dbd92 1662 #if defined(STM32F303xE) || defined(STM32F398xx)
Kojto 100:cbbeb26dbd92 1663 #define ADC3_4_EXTERNALTRIGINJEC_T20_TRGO ((uint32_t)(ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_0))
Kojto 100:cbbeb26dbd92 1664 #endif /* STM32F303xE || STM32F398xx */
Kojto 100:cbbeb26dbd92 1665
Kojto 100:cbbeb26dbd92 1666 #define ADC3_4_EXTERNALTRIGINJEC_T4_CC4 ((uint32_t)(ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_1))
Kojto 100:cbbeb26dbd92 1667 #define ADC3_4_EXTERNALTRIGINJEC_T4_TRGO ((uint32_t)(ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_1 | ADC_JSQR_JEXTSEL_0))
Kojto 100:cbbeb26dbd92 1668 #define ADC3_4_EXTERNALTRIGINJEC_T1_TRGO2 ((uint32_t)ADC_JSQR_JEXTSEL_3)
Kojto 100:cbbeb26dbd92 1669 #define ADC3_4_EXTERNALTRIGINJEC_T8_TRGO ((uint32_t)(ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_0))
Kojto 100:cbbeb26dbd92 1670 #define ADC3_4_EXTERNALTRIGINJEC_T8_TRGO2 ((uint32_t)(ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_1))
Kojto 100:cbbeb26dbd92 1671 #define ADC3_4_EXTERNALTRIGINJEC_T1_CC3 ((uint32_t)(ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_1 | ADC_JSQR_JEXTSEL_0))
Kojto 100:cbbeb26dbd92 1672 #define ADC3_4_EXTERNALTRIGINJEC_T3_TRGO ((uint32_t)(ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_2))
Kojto 100:cbbeb26dbd92 1673 #define ADC3_4_EXTERNALTRIGINJEC_T2_TRGO ((uint32_t)(ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_0))
Kojto 100:cbbeb26dbd92 1674 #define ADC3_4_EXTERNALTRIGINJEC_T7_TRGO ((uint32_t)(ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_1))
Kojto 100:cbbeb26dbd92 1675 #define ADC3_4_EXTERNALTRIGINJEC_T15_TRGO ((uint32_t)ADC_JSQR_JEXTSEL)
Kojto 100:cbbeb26dbd92 1676 #endif /* STM32F303xE || STM32F398xx || */
Kojto 100:cbbeb26dbd92 1677 /* STM32F303xC || STM32F358xx */
Kojto 100:cbbeb26dbd92 1678
Kojto 100:cbbeb26dbd92 1679 #if defined(STM32F302xE) || \
Kojto 100:cbbeb26dbd92 1680 defined(STM32F302xC)
Kojto 100:cbbeb26dbd92 1681 /* List of external triggers of group ADC1&ADC2: */
Kojto 100:cbbeb26dbd92 1682 /* (used internally by HAL driver. To not use into HAL structure parameters) */
Kojto 100:cbbeb26dbd92 1683 #define ADC1_2_EXTERNALTRIGINJEC_T1_TRGO ((uint32_t)0x00000000)
Kojto 100:cbbeb26dbd92 1684 #define ADC1_2_EXTERNALTRIGINJEC_T1_CC4 ((uint32_t)ADC_JSQR_JEXTSEL_0)
Kojto 100:cbbeb26dbd92 1685 #define ADC1_2_EXTERNALTRIGINJEC_T2_TRGO ((uint32_t)ADC_JSQR_JEXTSEL_1)
Kojto 100:cbbeb26dbd92 1686 #define ADC1_2_EXTERNALTRIGINJEC_T2_CC1 ((uint32_t)(ADC_JSQR_JEXTSEL_1 | ADC_JSQR_JEXTSEL_0))
Kojto 100:cbbeb26dbd92 1687 #define ADC1_2_EXTERNALTRIGINJEC_T3_CC4 ((uint32_t)ADC_JSQR_JEXTSEL_2)
Kojto 100:cbbeb26dbd92 1688 #define ADC1_2_EXTERNALTRIGINJEC_T4_TRGO ((uint32_t)(ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_0))
Kojto 100:cbbeb26dbd92 1689 #define ADC1_2_EXTERNALTRIGINJEC_EXT_IT15 ((uint32_t)(ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_1))
Kojto 100:cbbeb26dbd92 1690 #define ADC1_2_EXTERNALTRIGINJEC_T1_TRGO2 ((uint32_t)ADC_JSQR_JEXTSEL_3)
Kojto 100:cbbeb26dbd92 1691 #define ADC1_2_EXTERNALTRIGINJEC_T3_CC3 ((uint32_t)(ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_1 | ADC_JSQR_JEXTSEL_0))
Kojto 100:cbbeb26dbd92 1692 #define ADC1_2_EXTERNALTRIGINJEC_T3_TRGO ((uint32_t)(ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_2))
Kojto 100:cbbeb26dbd92 1693 #define ADC1_2_EXTERNALTRIGINJEC_T3_CC1 ((uint32_t)(ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_0))
Kojto 100:cbbeb26dbd92 1694 #define ADC1_2_EXTERNALTRIGINJEC_T6_TRGO ((uint32_t)(ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_1))
Kojto 100:cbbeb26dbd92 1695 #define ADC1_2_EXTERNALTRIGINJEC_T15_TRGO ((uint32_t)ADC_JSQR_JEXTSEL)
Kojto 100:cbbeb26dbd92 1696 #endif /* STM32F302xE || */
Kojto 100:cbbeb26dbd92 1697 /* STM32F302xC */
Kojto 100:cbbeb26dbd92 1698
Kojto 100:cbbeb26dbd92 1699 #if defined(STM32F303x8) || defined(STM32F328xx)
Kojto 100:cbbeb26dbd92 1700 /* List of external triggers of group ADC1&ADC2: */
Kojto 100:cbbeb26dbd92 1701 /* (used internally by HAL driver. To not use into HAL structure parameters) */
Kojto 100:cbbeb26dbd92 1702 #define ADC1_2_EXTERNALTRIGINJEC_T1_TRGO ((uint32_t)0x00000000)
Kojto 100:cbbeb26dbd92 1703 #define ADC1_2_EXTERNALTRIGINJEC_T1_CC4 ((uint32_t)ADC_JSQR_JEXTSEL_0)
Kojto 100:cbbeb26dbd92 1704 #define ADC1_2_EXTERNALTRIGINJEC_T2_TRGO ((uint32_t)ADC_JSQR_JEXTSEL_1)
Kojto 100:cbbeb26dbd92 1705 #define ADC1_2_EXTERNALTRIGINJEC_T2_CC1 ((uint32_t)(ADC_JSQR_JEXTSEL_1 | ADC_JSQR_JEXTSEL_0))
Kojto 100:cbbeb26dbd92 1706 #define ADC1_2_EXTERNALTRIGINJEC_T3_CC4 ((uint32_t)ADC_JSQR_JEXTSEL_2)
Kojto 100:cbbeb26dbd92 1707 #define ADC1_2_EXTERNALTRIGINJEC_T4_TRGO ((uint32_t)(ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_0))
Kojto 100:cbbeb26dbd92 1708 #define ADC1_2_EXTERNALTRIGINJEC_EXT_IT15 ((uint32_t)(ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_1))
Kojto 100:cbbeb26dbd92 1709 #define ADC1_2_EXTERNALTRIGINJEC_T8_CC4 ((uint32_t)(ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_1 | ADC_JSQR_JEXTSEL_0))
Kojto 100:cbbeb26dbd92 1710 #define ADC1_2_EXTERNALTRIGINJEC_T1_TRGO2 ((uint32_t)ADC_JSQR_JEXTSEL_3)
Kojto 100:cbbeb26dbd92 1711 #define ADC1_2_EXTERNALTRIGINJEC_T8_TRGO ((uint32_t)(ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_0))
Kojto 100:cbbeb26dbd92 1712 #define ADC1_2_EXTERNALTRIGINJEC_T8_TRGO2 ((uint32_t)(ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_1))
Kojto 100:cbbeb26dbd92 1713 #define ADC1_2_EXTERNALTRIGINJEC_T3_CC3 ((uint32_t)(ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_1 | ADC_JSQR_JEXTSEL_0))
Kojto 100:cbbeb26dbd92 1714 #define ADC1_2_EXTERNALTRIGINJEC_T3_TRGO ((uint32_t)(ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_2))
Kojto 100:cbbeb26dbd92 1715 #define ADC1_2_EXTERNALTRIGINJEC_T3_CC1 ((uint32_t)(ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_0))
Kojto 100:cbbeb26dbd92 1716 #define ADC1_2_EXTERNALTRIGINJEC_T6_TRGO ((uint32_t)(ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_1))
Kojto 100:cbbeb26dbd92 1717 #define ADC1_2_EXTERNALTRIGINJEC_T15_TRGO ((uint32_t)ADC_JSQR_JEXTSEL)
Kojto 100:cbbeb26dbd92 1718 #endif /* STM32F303x8 || STM32F328xx */
Kojto 100:cbbeb26dbd92 1719
Kojto 100:cbbeb26dbd92 1720 #if defined(STM32F334x8)
Kojto 100:cbbeb26dbd92 1721 /* List of external triggers of group ADC1&ADC2: */
Kojto 100:cbbeb26dbd92 1722 /* (used internally by HAL driver. To not use into HAL structure parameters) */
Kojto 100:cbbeb26dbd92 1723 #define ADC1_2_EXTERNALTRIGINJEC_T1_TRGO ((uint32_t)0x00000000)
Kojto 100:cbbeb26dbd92 1724 #define ADC1_2_EXTERNALTRIGINJEC_T1_CC4 ((uint32_t)ADC_JSQR_JEXTSEL_0)
Kojto 100:cbbeb26dbd92 1725 #define ADC1_2_EXTERNALTRIGINJEC_T2_TRGO ((uint32_t)ADC_JSQR_JEXTSEL_1)
Kojto 100:cbbeb26dbd92 1726 #define ADC1_2_EXTERNALTRIGINJEC_T2_CC1 ((uint32_t)(ADC_JSQR_JEXTSEL_1 | ADC_JSQR_JEXTSEL_0))
Kojto 100:cbbeb26dbd92 1727 #define ADC1_2_EXTERNALTRIGINJEC_T3_CC4 ((uint32_t)ADC_JSQR_JEXTSEL_2)
Kojto 100:cbbeb26dbd92 1728 #define ADC1_2_EXTERNALTRIGINJEC_EXT_IT15 ((uint32_t)(ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_1))
Kojto 100:cbbeb26dbd92 1729 #define ADC1_2_EXTERNALTRIGINJEC_T1_TRGO2 ((uint32_t)ADC_JSQR_JEXTSEL_3)
Kojto 100:cbbeb26dbd92 1730 #define ADC1_2_EXTERNALTRIGINJEC_HRTIM_TRG2 ((uint32_t)(ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_0))
Kojto 100:cbbeb26dbd92 1731 #define ADC1_2_EXTERNALTRIGINJEC_HRTIM_TRG4 ((uint32_t)(ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_1))
Kojto 100:cbbeb26dbd92 1732 #define ADC1_2_EXTERNALTRIGINJEC_T3_CC3 ((uint32_t)(ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_1 | ADC_JSQR_JEXTSEL_0))
Kojto 100:cbbeb26dbd92 1733 #define ADC1_2_EXTERNALTRIGINJEC_T3_TRGO ((uint32_t)(ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_2))
Kojto 100:cbbeb26dbd92 1734 #define ADC1_2_EXTERNALTRIGINJEC_T3_CC1 ((uint32_t)(ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_0))
Kojto 100:cbbeb26dbd92 1735 #define ADC1_2_EXTERNALTRIGINJEC_T6_TRGO ((uint32_t)(ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_1))
Kojto 100:cbbeb26dbd92 1736 #define ADC1_2_EXTERNALTRIGINJEC_T15_TRGO ((uint32_t)ADC_JSQR_JEXTSEL)
Kojto 100:cbbeb26dbd92 1737 #endif /* STM32F334x8 */
Kojto 100:cbbeb26dbd92 1738
Kojto 100:cbbeb26dbd92 1739 #if defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx)
Kojto 100:cbbeb26dbd92 1740 /* List of external triggers of injected group for ADC1: */
Kojto 100:cbbeb26dbd92 1741 /* (used internally by HAL driver. To not use into HAL structure parameters) */
Kojto 100:cbbeb26dbd92 1742 #define ADC1_EXTERNALTRIGINJEC_T1_TRGO ((uint32_t)0x00000000)
Kojto 100:cbbeb26dbd92 1743 #define ADC1_EXTERNALTRIGINJEC_T1_CC4 ((uint32_t)ADC_JSQR_JEXTSEL_0)
Kojto 100:cbbeb26dbd92 1744 #define ADC1_EXTERNALTRIGINJEC_EXT_IT15 ((uint32_t)(ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_1))
Kojto 100:cbbeb26dbd92 1745 #define ADC1_EXTERNALTRIGINJEC_T1_TRGO2 ((uint32_t)ADC_JSQR_JEXTSEL_3)
Kojto 100:cbbeb26dbd92 1746 #define ADC1_EXTERNALTRIGINJEC_T6_TRGO ((uint32_t)(ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_1))
Kojto 100:cbbeb26dbd92 1747 #define ADC1_EXTERNALTRIGINJEC_T15_TRGO ((uint32_t)ADC_JSQR_JEXTSEL)
Kojto 100:cbbeb26dbd92 1748 #endif /* STM32F301x8 || STM32F302x8 || STM32F318xx */
Kojto 100:cbbeb26dbd92 1749 /**
Kojto 100:cbbeb26dbd92 1750 * @}
Kojto 100:cbbeb26dbd92 1751 */
Kojto 100:cbbeb26dbd92 1752
Kojto 100:cbbeb26dbd92 1753 /** @defgroup ADCEx_Common_mode ADC Extended Dual ADC Mode
Kojto 100:cbbeb26dbd92 1754 * @{
Kojto 100:cbbeb26dbd92 1755 */
Kojto 100:cbbeb26dbd92 1756 #define ADC_MODE_INDEPENDENT ((uint32_t)(0x00000000))
Kojto 100:cbbeb26dbd92 1757 #define ADC_DUALMODE_REGSIMULT_INJECSIMULT ((uint32_t)(ADC12_CCR_MULTI_0))
Kojto 100:cbbeb26dbd92 1758 #define ADC_DUALMODE_REGSIMULT_ALTERTRIG ((uint32_t)(ADC12_CCR_MULTI_1))
Kojto 100:cbbeb26dbd92 1759 #define ADC_DUALMODE_INJECSIMULT ((uint32_t)(ADC12_CCR_MULTI_2 | ADC12_CCR_MULTI_0))
Kojto 100:cbbeb26dbd92 1760 #define ADC_DUALMODE_REGSIMULT ((uint32_t)(ADC12_CCR_MULTI_2 | ADC12_CCR_MULTI_1))
Kojto 100:cbbeb26dbd92 1761 #define ADC_DUALMODE_INTERL ((uint32_t)(ADC12_CCR_MULTI_2 | ADC12_CCR_MULTI_1 | ADC12_CCR_MULTI_0))
Kojto 100:cbbeb26dbd92 1762 #define ADC_DUALMODE_ALTERTRIG ((uint32_t)(ADC12_CCR_MULTI_3 | ADC12_CCR_MULTI_0))
Kojto 100:cbbeb26dbd92 1763
Kojto 100:cbbeb26dbd92 1764 #define IS_ADC_MODE(MODE) (((MODE) == ADC_MODE_INDEPENDENT) || \
Kojto 100:cbbeb26dbd92 1765 ((MODE) == ADC_DUALMODE_REGSIMULT_INJECSIMULT) || \
Kojto 100:cbbeb26dbd92 1766 ((MODE) == ADC_DUALMODE_REGSIMULT_ALTERTRIG) || \
Kojto 100:cbbeb26dbd92 1767 ((MODE) == ADC_DUALMODE_INJECSIMULT) || \
Kojto 100:cbbeb26dbd92 1768 ((MODE) == ADC_DUALMODE_REGSIMULT) || \
Kojto 100:cbbeb26dbd92 1769 ((MODE) == ADC_DUALMODE_INTERL) || \
Kojto 100:cbbeb26dbd92 1770 ((MODE) == ADC_DUALMODE_ALTERTRIG) )
Kojto 100:cbbeb26dbd92 1771 /**
Kojto 100:cbbeb26dbd92 1772 * @}
Kojto 100:cbbeb26dbd92 1773 */
Kojto 100:cbbeb26dbd92 1774
Kojto 100:cbbeb26dbd92 1775
Kojto 100:cbbeb26dbd92 1776 /** @defgroup ADCEx_Direct_memory_access_mode_for_multimode ADC Extended DMA Mode for Dual ADC Mode
Kojto 100:cbbeb26dbd92 1777 * @{
Kojto 100:cbbeb26dbd92 1778 */
Kojto 100:cbbeb26dbd92 1779 #define ADC_DMAACCESSMODE_DISABLED ((uint32_t)0x00000000) /*!< DMA multimode disabled: each ADC will use its own DMA channel */
Kojto 100:cbbeb26dbd92 1780 #define ADC_DMAACCESSMODE_12_10_BITS ((uint32_t)ADC12_CCR_MDMA_1) /*!< DMA multimode enabled (one DMA channel for both ADC, DMA of ADC master) for 12 and 10 bits resolution */
Kojto 100:cbbeb26dbd92 1781 #define ADC_DMAACCESSMODE_8_6_BITS ((uint32_t)ADC12_CCR_MDMA) /*!< DMA multimode enabled (one DMA channel for both ADC, DMA of ADC master) for 8 and 6 bits resolution */
Kojto 100:cbbeb26dbd92 1782
Kojto 100:cbbeb26dbd92 1783 #define IS_ADC_DMA_ACCESS_MODE(MODE) (((MODE) == ADC_DMAACCESSMODE_DISABLED) || \
Kojto 100:cbbeb26dbd92 1784 ((MODE) == ADC_DMAACCESSMODE_12_10_BITS) || \
Kojto 100:cbbeb26dbd92 1785 ((MODE) == ADC_DMAACCESSMODE_8_6_BITS) )
Kojto 100:cbbeb26dbd92 1786 /**
Kojto 100:cbbeb26dbd92 1787 * @}
Kojto 100:cbbeb26dbd92 1788 */
Kojto 100:cbbeb26dbd92 1789
Kojto 100:cbbeb26dbd92 1790 /** @defgroup ADCEx_delay_between_2_sampling_phases ADC Extended Delay Between 2 Sampling Phases
Kojto 100:cbbeb26dbd92 1791 * @{
Kojto 100:cbbeb26dbd92 1792 */
Kojto 100:cbbeb26dbd92 1793 #define ADC_TWOSAMPLINGDELAY_1CYCLE ((uint32_t)(0x00000000))
Kojto 100:cbbeb26dbd92 1794 #define ADC_TWOSAMPLINGDELAY_2CYCLES ((uint32_t)(ADC12_CCR_DELAY_0))
Kojto 100:cbbeb26dbd92 1795 #define ADC_TWOSAMPLINGDELAY_3CYCLES ((uint32_t)(ADC12_CCR_DELAY_1))
Kojto 100:cbbeb26dbd92 1796 #define ADC_TWOSAMPLINGDELAY_4CYCLES ((uint32_t)(ADC12_CCR_DELAY_1 | ADC12_CCR_DELAY_0))
Kojto 100:cbbeb26dbd92 1797 #define ADC_TWOSAMPLINGDELAY_5CYCLES ((uint32_t)(ADC12_CCR_DELAY_2))
Kojto 100:cbbeb26dbd92 1798 #define ADC_TWOSAMPLINGDELAY_6CYCLES ((uint32_t)(ADC12_CCR_DELAY_2 | ADC12_CCR_DELAY_0))
Kojto 100:cbbeb26dbd92 1799 #define ADC_TWOSAMPLINGDELAY_7CYCLES ((uint32_t)(ADC12_CCR_DELAY_2 | ADC12_CCR_DELAY_1))
Kojto 100:cbbeb26dbd92 1800 #define ADC_TWOSAMPLINGDELAY_8CYCLES ((uint32_t)(ADC12_CCR_DELAY_2 | ADC12_CCR_DELAY_1 | ADC12_CCR_DELAY_0))
Kojto 100:cbbeb26dbd92 1801 #define ADC_TWOSAMPLINGDELAY_9CYCLES ((uint32_t)(ADC12_CCR_DELAY_3))
Kojto 100:cbbeb26dbd92 1802 #define ADC_TWOSAMPLINGDELAY_10CYCLES ((uint32_t)(ADC12_CCR_DELAY_3 | ADC12_CCR_DELAY_0))
Kojto 100:cbbeb26dbd92 1803 #define ADC_TWOSAMPLINGDELAY_11CYCLES ((uint32_t)(ADC12_CCR_DELAY_3 | ADC12_CCR_DELAY_1))
Kojto 100:cbbeb26dbd92 1804 #define ADC_TWOSAMPLINGDELAY_12CYCLES ((uint32_t)(ADC12_CCR_DELAY_3 | ADC12_CCR_DELAY_1 | ADC12_CCR_DELAY_0))
Kojto 100:cbbeb26dbd92 1805
Kojto 100:cbbeb26dbd92 1806 #define IS_ADC_SAMPLING_DELAY(DELAY) (((DELAY) == ADC_TWOSAMPLINGDELAY_1CYCLE) || \
Kojto 100:cbbeb26dbd92 1807 ((DELAY) == ADC_TWOSAMPLINGDELAY_2CYCLES) || \
Kojto 100:cbbeb26dbd92 1808 ((DELAY) == ADC_TWOSAMPLINGDELAY_3CYCLES) || \
Kojto 100:cbbeb26dbd92 1809 ((DELAY) == ADC_TWOSAMPLINGDELAY_4CYCLES) || \
Kojto 100:cbbeb26dbd92 1810 ((DELAY) == ADC_TWOSAMPLINGDELAY_5CYCLES) || \
Kojto 100:cbbeb26dbd92 1811 ((DELAY) == ADC_TWOSAMPLINGDELAY_6CYCLES) || \
Kojto 100:cbbeb26dbd92 1812 ((DELAY) == ADC_TWOSAMPLINGDELAY_7CYCLES) || \
Kojto 100:cbbeb26dbd92 1813 ((DELAY) == ADC_TWOSAMPLINGDELAY_8CYCLES) || \
Kojto 100:cbbeb26dbd92 1814 ((DELAY) == ADC_TWOSAMPLINGDELAY_9CYCLES) || \
Kojto 100:cbbeb26dbd92 1815 ((DELAY) == ADC_TWOSAMPLINGDELAY_10CYCLES) || \
Kojto 100:cbbeb26dbd92 1816 ((DELAY) == ADC_TWOSAMPLINGDELAY_11CYCLES) || \
Kojto 100:cbbeb26dbd92 1817 ((DELAY) == ADC_TWOSAMPLINGDELAY_12CYCLES) )
Kojto 100:cbbeb26dbd92 1818 /**
Kojto 100:cbbeb26dbd92 1819 * @}
Kojto 100:cbbeb26dbd92 1820 */
Kojto 100:cbbeb26dbd92 1821
Kojto 100:cbbeb26dbd92 1822 /** @defgroup ADCEx_analog_watchdog_number ADC Extended Analog Watchdog Selection
Kojto 100:cbbeb26dbd92 1823 * @{
Kojto 100:cbbeb26dbd92 1824 */
Kojto 100:cbbeb26dbd92 1825 #define ADC_ANALOGWATCHDOG_1 ((uint32_t)0x00000001)
Kojto 100:cbbeb26dbd92 1826 #define ADC_ANALOGWATCHDOG_2 ((uint32_t)0x00000002)
Kojto 100:cbbeb26dbd92 1827 #define ADC_ANALOGWATCHDOG_3 ((uint32_t)0x00000003)
Kojto 100:cbbeb26dbd92 1828
Kojto 100:cbbeb26dbd92 1829 #define IS_ADC_ANALOG_WATCHDOG_NUMBER(WATCHDOG) (((WATCHDOG) == ADC_ANALOGWATCHDOG_1) || \
Kojto 100:cbbeb26dbd92 1830 ((WATCHDOG) == ADC_ANALOGWATCHDOG_2) || \
Kojto 100:cbbeb26dbd92 1831 ((WATCHDOG) == ADC_ANALOGWATCHDOG_3) )
Kojto 100:cbbeb26dbd92 1832 /**
Kojto 100:cbbeb26dbd92 1833 * @}
Kojto 100:cbbeb26dbd92 1834 */
Kojto 100:cbbeb26dbd92 1835
Kojto 100:cbbeb26dbd92 1836 /** @defgroup ADCEx_analog_watchdog_mode ADC Extended Analog Watchdog Mode
Kojto 100:cbbeb26dbd92 1837 * @{
Kojto 100:cbbeb26dbd92 1838 */
Kojto 100:cbbeb26dbd92 1839 #define ADC_ANALOGWATCHDOG_NONE ((uint32_t) 0x00000000)
Kojto 100:cbbeb26dbd92 1840 #define ADC_ANALOGWATCHDOG_SINGLE_REG ((uint32_t)(ADC_CFGR_AWD1SGL | ADC_CFGR_AWD1EN))
Kojto 100:cbbeb26dbd92 1841 #define ADC_ANALOGWATCHDOG_SINGLE_INJEC ((uint32_t)(ADC_CFGR_AWD1SGL | ADC_CFGR_JAWD1EN))
Kojto 100:cbbeb26dbd92 1842 #define ADC_ANALOGWATCHDOG_SINGLE_REGINJEC ((uint32_t)(ADC_CFGR_AWD1SGL | ADC_CFGR_AWD1EN | ADC_CFGR_JAWD1EN))
Kojto 100:cbbeb26dbd92 1843 #define ADC_ANALOGWATCHDOG_ALL_REG ((uint32_t) ADC_CFGR_AWD1EN)
Kojto 100:cbbeb26dbd92 1844 #define ADC_ANALOGWATCHDOG_ALL_INJEC ((uint32_t) ADC_CFGR_JAWD1EN)
Kojto 100:cbbeb26dbd92 1845 #define ADC_ANALOGWATCHDOG_ALL_REGINJEC ((uint32_t)(ADC_CFGR_AWD1EN | ADC_CFGR_JAWD1EN))
Kojto 100:cbbeb26dbd92 1846
Kojto 100:cbbeb26dbd92 1847 #define IS_ADC_ANALOG_WATCHDOG_MODE(WATCHDOG) (((WATCHDOG) == ADC_ANALOGWATCHDOG_NONE) || \
Kojto 100:cbbeb26dbd92 1848 ((WATCHDOG) == ADC_ANALOGWATCHDOG_SINGLE_REG) || \
Kojto 100:cbbeb26dbd92 1849 ((WATCHDOG) == ADC_ANALOGWATCHDOG_SINGLE_INJEC) || \
Kojto 100:cbbeb26dbd92 1850 ((WATCHDOG) == ADC_ANALOGWATCHDOG_SINGLE_REGINJEC) || \
Kojto 100:cbbeb26dbd92 1851 ((WATCHDOG) == ADC_ANALOGWATCHDOG_ALL_REG) || \
Kojto 100:cbbeb26dbd92 1852 ((WATCHDOG) == ADC_ANALOGWATCHDOG_ALL_INJEC) || \
Kojto 100:cbbeb26dbd92 1853 ((WATCHDOG) == ADC_ANALOGWATCHDOG_ALL_REGINJEC) )
Kojto 100:cbbeb26dbd92 1854 /**
Kojto 100:cbbeb26dbd92 1855 * @}
Kojto 100:cbbeb26dbd92 1856 */
Kojto 100:cbbeb26dbd92 1857
Kojto 100:cbbeb26dbd92 1858 /** @defgroup ADC_conversion_group ADC Conversion Group
Kojto 100:cbbeb26dbd92 1859 * @{
Kojto 100:cbbeb26dbd92 1860 */
Kojto 100:cbbeb26dbd92 1861 #define REGULAR_GROUP ((uint32_t)(ADC_FLAG_EOC | ADC_FLAG_EOS))
Kojto 100:cbbeb26dbd92 1862 #define INJECTED_GROUP ((uint32_t)(ADC_FLAG_JEOC | ADC_FLAG_JEOS))
Kojto 100:cbbeb26dbd92 1863 #define REGULAR_INJECTED_GROUP ((uint32_t)(ADC_FLAG_EOC | ADC_FLAG_EOS | ADC_FLAG_JEOC | ADC_FLAG_JEOS))
Kojto 100:cbbeb26dbd92 1864
Kojto 100:cbbeb26dbd92 1865 #define IS_ADC_CONVERSION_GROUP(CONVERSION) (((CONVERSION) == REGULAR_GROUP) || \
Kojto 100:cbbeb26dbd92 1866 ((CONVERSION) == INJECTED_GROUP) || \
Kojto 100:cbbeb26dbd92 1867 ((CONVERSION) == REGULAR_INJECTED_GROUP) )
Kojto 100:cbbeb26dbd92 1868 /**
Kojto 100:cbbeb26dbd92 1869 * @}
Kojto 100:cbbeb26dbd92 1870 */
Kojto 100:cbbeb26dbd92 1871
Kojto 100:cbbeb26dbd92 1872 /** @defgroup ADCEx_Event_type ADC Extended Event Type
Kojto 100:cbbeb26dbd92 1873 * @{
Kojto 100:cbbeb26dbd92 1874 */
Kojto 100:cbbeb26dbd92 1875 #define AWD1_EVENT ((uint32_t)ADC_FLAG_AWD1) /*!< ADC Analog watchdog 1 event (main analog watchdog, present on all STM32 devices) */
Kojto 100:cbbeb26dbd92 1876 #define AWD2_EVENT ((uint32_t)ADC_FLAG_AWD2) /*!< ADC Analog watchdog 2 event (additional analog watchdog, present only on STM32F3 devices) */
Kojto 100:cbbeb26dbd92 1877 #define AWD3_EVENT ((uint32_t)ADC_FLAG_AWD3) /*!< ADC Analog watchdog 3 event (additional analog watchdog, present only on STM32F3 devices) */
Kojto 100:cbbeb26dbd92 1878 #define OVR_EVENT ((uint32_t)ADC_FLAG_OVR) /*!< ADC overrun event */
Kojto 100:cbbeb26dbd92 1879 #define JQOVF_EVENT ((uint32_t)ADC_FLAG_JQOVF) /*!< ADC Injected Context Queue Overflow event */
Kojto 100:cbbeb26dbd92 1880
Kojto 100:cbbeb26dbd92 1881 #define AWD_EVENT AWD1_EVENT /*!< ADC Analog watchdog 1 event: Naming for compatibility with other STM32 devices having only 1 analog watchdog */
Kojto 100:cbbeb26dbd92 1882
Kojto 100:cbbeb26dbd92 1883 #define IS_ADC_EVENT_TYPE(EVENT) (((EVENT) == AWD_EVENT) || \
Kojto 100:cbbeb26dbd92 1884 ((EVENT) == AWD2_EVENT) || \
Kojto 100:cbbeb26dbd92 1885 ((EVENT) == AWD3_EVENT) || \
Kojto 100:cbbeb26dbd92 1886 ((EVENT) == OVR_EVENT) || \
Kojto 100:cbbeb26dbd92 1887 ((EVENT) == JQOVF_EVENT) )
Kojto 100:cbbeb26dbd92 1888 /**
Kojto 100:cbbeb26dbd92 1889 * @}
Kojto 100:cbbeb26dbd92 1890 */
Kojto 100:cbbeb26dbd92 1891
Kojto 100:cbbeb26dbd92 1892 /** @defgroup ADCEx_interrupts_definition ADC Extended Interrupts Definition
Kojto 100:cbbeb26dbd92 1893 * @{
Kojto 100:cbbeb26dbd92 1894 */
Kojto 100:cbbeb26dbd92 1895 #define ADC_IT_RDY ADC_IER_RDY /*!< ADC Ready (ADRDY) interrupt source */
Kojto 100:cbbeb26dbd92 1896 #define ADC_IT_EOSMP ADC_IER_EOSMP /*!< ADC End of Sampling interrupt source */
Kojto 100:cbbeb26dbd92 1897 #define ADC_IT_EOC ADC_IER_EOC /*!< ADC End of Regular Conversion interrupt source */
Kojto 100:cbbeb26dbd92 1898 #define ADC_IT_EOS ADC_IER_EOS /*!< ADC End of Regular sequence of Conversions interrupt source */
Kojto 100:cbbeb26dbd92 1899 #define ADC_IT_OVR ADC_IER_OVR /*!< ADC overrun interrupt source */
Kojto 100:cbbeb26dbd92 1900 #define ADC_IT_JEOC ADC_IER_JEOC /*!< ADC End of Injected Conversion interrupt source */
Kojto 100:cbbeb26dbd92 1901 #define ADC_IT_JEOS ADC_IER_JEOS /*!< ADC End of Injected sequence of Conversions interrupt source */
Kojto 100:cbbeb26dbd92 1902 #define ADC_IT_AWD1 ADC_IER_AWD1 /*!< ADC Analog watchdog 1 interrupt source (main analog watchdog, present on all STM32 devices) */
Kojto 100:cbbeb26dbd92 1903 #define ADC_IT_AWD2 ADC_IER_AWD2 /*!< ADC Analog watchdog 2 interrupt source (additional analog watchdog, present only on STM32F3 devices) */
Kojto 100:cbbeb26dbd92 1904 #define ADC_IT_AWD3 ADC_IER_AWD3 /*!< ADC Analog watchdog 3 interrupt source (additional analog watchdog, present only on STM32F3 devices) */
Kojto 100:cbbeb26dbd92 1905 #define ADC_IT_JQOVF ADC_IER_JQOVF /*!< ADC Injected Context Queue Overflow interrupt source */
Kojto 100:cbbeb26dbd92 1906
Kojto 100:cbbeb26dbd92 1907 #define ADC_IT_AWD ADC_IT_AWD1 /*!< ADC Analog watchdog 1 interrupt source: Naming for compatibility with other STM32 devices having only 1 analog watchdog */
Kojto 100:cbbeb26dbd92 1908
Kojto 100:cbbeb26dbd92 1909 /* Check of single flag */
Kojto 100:cbbeb26dbd92 1910 #define IS_ADC_IT(IT) (((IT) == ADC_IT_RDY) || ((IT) == ADC_IT_EOSMP) || \
Kojto 100:cbbeb26dbd92 1911 ((IT) == ADC_IT_EOC) || ((IT) == ADC_IT_EOS) || \
Kojto 100:cbbeb26dbd92 1912 ((IT) == ADC_IT_OVR) || ((IT) == ADC_IT_EOS) || \
Kojto 100:cbbeb26dbd92 1913 ((IT) == ADC_IT_JEOS) || ((IT) == ADC_IT_AWD1) || \
Kojto 100:cbbeb26dbd92 1914 ((IT) == ADC_IT_AWD2) || ((IT) == ADC_IT_AWD3) || \
Kojto 100:cbbeb26dbd92 1915 ((IT) == ADC_IT_JQOVF) )
Kojto 100:cbbeb26dbd92 1916 /**
Kojto 100:cbbeb26dbd92 1917 * @}
Kojto 100:cbbeb26dbd92 1918 */
Kojto 100:cbbeb26dbd92 1919
Kojto 100:cbbeb26dbd92 1920 /** @defgroup ADCEx_flags_definition ADC Extended Flags Definition
Kojto 100:cbbeb26dbd92 1921 * @{
Kojto 100:cbbeb26dbd92 1922 */
Kojto 100:cbbeb26dbd92 1923 #define ADC_FLAG_RDY ADC_ISR_ADRD /*!< ADC Ready (ADRDY) flag */
Kojto 100:cbbeb26dbd92 1924 #define ADC_FLAG_EOSMP ADC_ISR_EOSMP /*!< ADC End of Sampling flag */
Kojto 100:cbbeb26dbd92 1925 #define ADC_FLAG_EOC ADC_ISR_EOC /*!< ADC End of Regular Conversion flag */
Kojto 100:cbbeb26dbd92 1926 #define ADC_FLAG_EOS ADC_ISR_EOS /*!< ADC End of Regular sequence of Conversions flag */
Kojto 100:cbbeb26dbd92 1927 #define ADC_FLAG_OVR ADC_ISR_OVR /*!< ADC overrun flag */
Kojto 100:cbbeb26dbd92 1928 #define ADC_FLAG_JEOC ADC_ISR_JEOC /*!< ADC End of Injected Conversion flag */
Kojto 100:cbbeb26dbd92 1929 #define ADC_FLAG_JEOS ADC_ISR_JEOS /*!< ADC End of Injected sequence of Conversions flag */
Kojto 100:cbbeb26dbd92 1930 #define ADC_FLAG_AWD1 ADC_ISR_AWD1 /*!< ADC Analog watchdog 1 flag (main analog watchdog, present on all STM32 devices) */
Kojto 100:cbbeb26dbd92 1931 #define ADC_FLAG_AWD2 ADC_ISR_AWD2 /*!< ADC Analog watchdog 2 flag (additional analog watchdog, present only on STM32F3 devices) */
Kojto 100:cbbeb26dbd92 1932 #define ADC_FLAG_AWD3 ADC_ISR_AWD3 /*!< ADC Analog watchdog 3 flag (additional analog watchdog, present only on STM32F3 devices) */
Kojto 100:cbbeb26dbd92 1933 #define ADC_FLAG_JQOVF ADC_ISR_JQOVF /*!< ADC Injected Context Queue Overflow flag */
Kojto 100:cbbeb26dbd92 1934
Kojto 100:cbbeb26dbd92 1935 #define ADC_FLAG_AWD ADC_FLAG_AWD1 /*!< ADC Analog watchdog 1 flag: Naming for compatibility with other STM32 devices having only 1 analog watchdog */
Kojto 100:cbbeb26dbd92 1936
Kojto 100:cbbeb26dbd92 1937 #define ADC_FLAG_ALL (ADC_FLAG_RDY | ADC_FLAG_EOSMP | ADC_FLAG_EOC | ADC_FLAG_EOS | \
Kojto 100:cbbeb26dbd92 1938 ADC_FLAG_JEOC | ADC_FLAG_JEOS | ADC_FLAG_OVR | ADC_FLAG_AWD1 | \
Kojto 100:cbbeb26dbd92 1939 ADC_FLAG_AWD2 | ADC_FLAG_AWD3 | ADC_FLAG_JQOVF)
Kojto 100:cbbeb26dbd92 1940
Kojto 100:cbbeb26dbd92 1941 /* Combination of all post-conversion flags bits: EOC/EOS, JEOC/JEOS, OVR, AWDx */
Kojto 100:cbbeb26dbd92 1942 #define ADC_FLAG_POSTCONV_ALL (ADC_FLAG_EOC | ADC_FLAG_EOS | ADC_FLAG_JEOC | ADC_FLAG_JEOS | \
Kojto 100:cbbeb26dbd92 1943 ADC_FLAG_OVR | ADC_FLAG_AWD1 | ADC_FLAG_AWD2 | ADC_FLAG_AWD3 | \
Kojto 100:cbbeb26dbd92 1944 ADC_FLAG_JQOVF)
Kojto 100:cbbeb26dbd92 1945
Kojto 100:cbbeb26dbd92 1946 /* Check of single flag */
Kojto 100:cbbeb26dbd92 1947 #define IS_ADC_FLAG(FLAG) (((FLAG) == ADC_FLAG_RDY) || ((FLAG) == ADC_FLAG_EOSMP) || \
Kojto 100:cbbeb26dbd92 1948 ((FLAG) == ADC_FLAG_EOC) || ((FLAG) == ADC_FLAG_EOS) || \
Kojto 100:cbbeb26dbd92 1949 ((FLAG) == ADC_FLAG_OVR) || ((FLAG) == ADC_FLAG_JEOC) || \
Kojto 100:cbbeb26dbd92 1950 ((FLAG) == ADC_FLAG_JEOS) || ((FLAG) == ADC_FLAG_AWD1) || \
Kojto 100:cbbeb26dbd92 1951 ((FLAG) == ADC_FLAG_AWD2) || ((FLAG) == ADC_FLAG_AWD3) || \
Kojto 100:cbbeb26dbd92 1952 ((FLAG) == ADC_FLAG_JQOVF) )
Kojto 100:cbbeb26dbd92 1953 /**
Kojto 100:cbbeb26dbd92 1954 * @}
Kojto 100:cbbeb26dbd92 1955 */
Kojto 100:cbbeb26dbd92 1956
Kojto 100:cbbeb26dbd92 1957 /** @defgroup ADC_multimode_bits ADC Multimode Bits
Kojto 100:cbbeb26dbd92 1958 * @{
Kojto 100:cbbeb26dbd92 1959 */
Kojto 100:cbbeb26dbd92 1960 #if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx) || \
Kojto 100:cbbeb26dbd92 1961 defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx) || \
Kojto 100:cbbeb26dbd92 1962 defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx)
Kojto 100:cbbeb26dbd92 1963 #define ADC_CCR_MULTI ADC12_CCR_MULTI /*!< Multi ADC mode selection */
Kojto 100:cbbeb26dbd92 1964 #define ADC_CCR_MULTI_0 ADC12_CCR_MULTI_0 /*!< MULTI bit 0 */
Kojto 100:cbbeb26dbd92 1965 #define ADC_CCR_MULTI_1 ADC12_CCR_MULTI_1 /*!< MULTI bit 1 */
Kojto 100:cbbeb26dbd92 1966 #define ADC_CCR_MULTI_2 ADC12_CCR_MULTI_2 /*!< MULTI bit 2 */
Kojto 100:cbbeb26dbd92 1967 #define ADC_CCR_MULTI_3 ADC12_CCR_MULTI_3 /*!< MULTI bit 3 */
Kojto 100:cbbeb26dbd92 1968 #define ADC_CCR_MULTI_4 ADC12_CCR_MULTI_4 /*!< MULTI bit 4 */
Kojto 100:cbbeb26dbd92 1969 #define ADC_CCR_DELAY ADC12_CCR_DELAY /*!< Delay between 2 sampling phases */
Kojto 100:cbbeb26dbd92 1970 #define ADC_CCR_DELAY_0 ADC12_CCR_DELAY_0 /*!< DELAY bit 0 */
Kojto 100:cbbeb26dbd92 1971 #define ADC_CCR_DELAY_1 ADC12_CCR_DELAY_1 /*!< DELAY bit 1 */
Kojto 100:cbbeb26dbd92 1972 #define ADC_CCR_DELAY_2 ADC12_CCR_DELAY_2 /*!< DELAY bit 2 */
Kojto 100:cbbeb26dbd92 1973 #define ADC_CCR_DELAY_3 ADC12_CCR_DELAY_3 /*!< DELAY bit 3 */
Kojto 100:cbbeb26dbd92 1974 #define ADC_CCR_DMACFG ADC12_CCR_DMACFG /*!< DMA configuration for multi-ADC mode */
Kojto 100:cbbeb26dbd92 1975 #define ADC_CCR_MDMA ADC12_CCR_MDMA /*!< DMA mode for multi-ADC mode */
Kojto 100:cbbeb26dbd92 1976 #define ADC_CCR_MDMA_0 ADC12_CCR_MDMA_0 /*!< MDMA bit 0 */
Kojto 100:cbbeb26dbd92 1977 #define ADC_CCR_MDMA_1 ADC12_CCR_MDMA_1 /*!< MDMA bit 1 */
Kojto 100:cbbeb26dbd92 1978 #define ADC_CCR_CKMODE ADC12_CCR_CKMODE /*!< ADC clock mode */
Kojto 100:cbbeb26dbd92 1979 #define ADC_CCR_CKMODE_0 ADC12_CCR_CKMODE_0 /*!< CKMODE bit 0 */
Kojto 100:cbbeb26dbd92 1980 #define ADC_CCR_CKMODE_1 ADC12_CCR_CKMODE_1 /*!< CKMODE bit 1 */
Kojto 100:cbbeb26dbd92 1981 #define ADC_CCR_VREFEN ADC12_CCR_VREFEN /*!< VREFINT enable */
Kojto 100:cbbeb26dbd92 1982 #define ADC_CCR_TSEN ADC12_CCR_TSEN /*!< Temperature sensor enable */
Kojto 100:cbbeb26dbd92 1983 #define ADC_CCR_VBATEN ADC12_CCR_VBATEN /*!< VBAT enable */
Kojto 100:cbbeb26dbd92 1984 #endif /* STM32F302xE || STM32F303xE || STM32F398xx || */
Kojto 100:cbbeb26dbd92 1985 /* STM32F302xC || STM32F303xC || STM32F358xx || */
Kojto 100:cbbeb26dbd92 1986 /* STM32F303x8 || STM32F334x8 || STM32F328xx */
Kojto 100:cbbeb26dbd92 1987
Kojto 100:cbbeb26dbd92 1988 #if defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx)
Kojto 100:cbbeb26dbd92 1989 #define ADC_CCR_MULTI ADC1_CCR_MULTI /*!< Multi ADC mode selection */
Kojto 100:cbbeb26dbd92 1990 #define ADC_CCR_MULTI_0 ADC1_CCR_MULTI_0 /*!< MULTI bit 0 */
Kojto 100:cbbeb26dbd92 1991 #define ADC_CCR_MULTI_1 ADC1_CCR_MULTI_1 /*!< MULTI bit 1 */
Kojto 100:cbbeb26dbd92 1992 #define ADC_CCR_MULTI_2 ADC1_CCR_MULTI_2 /*!< MULTI bit 2 */
Kojto 100:cbbeb26dbd92 1993 #define ADC_CCR_MULTI_3 ADC1_CCR_MULTI_3 /*!< MULTI bit 3 */
Kojto 100:cbbeb26dbd92 1994 #define ADC_CCR_MULTI_4 ADC1_CCR_MULTI_4 /*!< MULTI bit 4 */
Kojto 100:cbbeb26dbd92 1995 #define ADC_CCR_DELAY ADC1_CCR_DELAY /*!< Delay between 2 sampling phases */
Kojto 100:cbbeb26dbd92 1996 #define ADC_CCR_DELAY_0 ADC1_CCR_DELAY_0 /*!< DELAY bit 0 */
Kojto 100:cbbeb26dbd92 1997 #define ADC_CCR_DELAY_1 ADC1_CCR_DELAY_1 /*!< DELAY bit 1 */
Kojto 100:cbbeb26dbd92 1998 #define ADC_CCR_DELAY_2 ADC1_CCR_DELAY_2 /*!< DELAY bit 2 */
Kojto 100:cbbeb26dbd92 1999 #define ADC_CCR_DELAY_3 ADC1_CCR_DELAY_3 /*!< DELAY bit 3 */
Kojto 100:cbbeb26dbd92 2000 #define ADC_CCR_DMACFG ADC1_CCR_DMACFG /*!< DMA configuration for multi-ADC mode */
Kojto 100:cbbeb26dbd92 2001 #define ADC_CCR_MDMA ADC1_CCR_MDMA /*!< DMA mode for multi-ADC mode */
Kojto 100:cbbeb26dbd92 2002 #define ADC_CCR_MDMA_0 ADC1_CCR_MDMA_0 /*!< MDMA bit 0 */
Kojto 100:cbbeb26dbd92 2003 #define ADC_CCR_MDMA_1 ADC1_CCR_MDMA_1 /*!< MDMA bit 1 */
Kojto 100:cbbeb26dbd92 2004 #define ADC_CCR_CKMODE ADC1_CCR_CKMODE /*!< ADC clock mode */
Kojto 100:cbbeb26dbd92 2005 #define ADC_CCR_CKMODE_0 ADC1_CCR_CKMODE_0 /*!< CKMODE bit 0 */
Kojto 100:cbbeb26dbd92 2006 #define ADC_CCR_CKMODE_1 ADC1_CCR_CKMODE_1 /*!< CKMODE bit 1 */
Kojto 100:cbbeb26dbd92 2007 #define ADC_CCR_VREFEN ADC1_CCR_VREFEN /*!< VREFINT enable */
Kojto 100:cbbeb26dbd92 2008 #define ADC_CCR_TSEN ADC1_CCR_TSEN /*!< Temperature sensor enable */
Kojto 100:cbbeb26dbd92 2009 #define ADC_CCR_VBATEN ADC1_CCR_VBATEN /*!< VBAT enable */
Kojto 100:cbbeb26dbd92 2010 #endif /* STM32F301x8 || STM32F302x8 || STM32F318xx */
Kojto 100:cbbeb26dbd92 2011
Kojto 100:cbbeb26dbd92 2012
Kojto 100:cbbeb26dbd92 2013 /**
Kojto 100:cbbeb26dbd92 2014 * @}
Kojto 100:cbbeb26dbd92 2015 */
Kojto 100:cbbeb26dbd92 2016
Kojto 100:cbbeb26dbd92 2017 /** @defgroup ADCEx_range_verification ADC Extended Range Verification
Kojto 100:cbbeb26dbd92 2018 * in function of ADC resolution selected (12, 10, 8 or 6 bits)
Kojto 100:cbbeb26dbd92 2019 * @{
Kojto 100:cbbeb26dbd92 2020 */
Kojto 100:cbbeb26dbd92 2021 #define IS_ADC_RANGE(RESOLUTION, ADC_VALUE) \
Kojto 100:cbbeb26dbd92 2022 ((((RESOLUTION) == ADC_RESOLUTION12b) && ((ADC_VALUE) <= ((uint32_t)0x0FFF))) || \
Kojto 100:cbbeb26dbd92 2023 (((RESOLUTION) == ADC_RESOLUTION10b) && ((ADC_VALUE) <= ((uint32_t)0x03FF))) || \
Kojto 100:cbbeb26dbd92 2024 (((RESOLUTION) == ADC_RESOLUTION8b) && ((ADC_VALUE) <= ((uint32_t)0x00FF))) || \
Kojto 100:cbbeb26dbd92 2025 (((RESOLUTION) == ADC_RESOLUTION6b) && ((ADC_VALUE) <= ((uint32_t)0x003F))) )
Kojto 100:cbbeb26dbd92 2026 /**
Kojto 100:cbbeb26dbd92 2027 * @}
Kojto 100:cbbeb26dbd92 2028 */
Kojto 100:cbbeb26dbd92 2029
Kojto 100:cbbeb26dbd92 2030 /** @defgroup ADC_injected_nb_conv_verification ADC Injected Conversion Number Verification
Kojto 100:cbbeb26dbd92 2031 * @{
Kojto 100:cbbeb26dbd92 2032 */
Kojto 100:cbbeb26dbd92 2033 #define IS_ADC_INJECTED_NB_CONV(LENGTH) (((LENGTH) >= ((uint32_t)1)) && ((LENGTH) <= ((uint32_t)4)))
Kojto 100:cbbeb26dbd92 2034 /**
Kojto 100:cbbeb26dbd92 2035 * @}
Kojto 100:cbbeb26dbd92 2036 */
Kojto 100:cbbeb26dbd92 2037
Kojto 100:cbbeb26dbd92 2038 /** @defgroup ADC_regular_nb_conv_verification ADC Regular Conversion Number Verification
Kojto 100:cbbeb26dbd92 2039 * @{
Kojto 100:cbbeb26dbd92 2040 */
Kojto 100:cbbeb26dbd92 2041 #define IS_ADC_REGULAR_NB_CONV(LENGTH) (((LENGTH) >= ((uint32_t)1)) && ((LENGTH) <= ((uint32_t)16)))
Kojto 100:cbbeb26dbd92 2042 /**
Kojto 100:cbbeb26dbd92 2043 * @}
Kojto 100:cbbeb26dbd92 2044 */
Kojto 100:cbbeb26dbd92 2045
Kojto 100:cbbeb26dbd92 2046 /** @defgroup ADC_regular_discontinuous_mode_number_verification ADC Regular Discontinuous Mode NumberVerification
Kojto 100:cbbeb26dbd92 2047 * @{
Kojto 100:cbbeb26dbd92 2048 */
Kojto 100:cbbeb26dbd92 2049 #define IS_ADC_REGULAR_DISCONT_NUMBER(NUMBER) (((NUMBER) >= ((uint32_t)1)) && ((NUMBER) <= ((uint32_t)8)))
Kojto 100:cbbeb26dbd92 2050 /**
Kojto 100:cbbeb26dbd92 2051 * @}
Kojto 100:cbbeb26dbd92 2052 */
Kojto 100:cbbeb26dbd92 2053
Kojto 100:cbbeb26dbd92 2054 /** @defgroup ADC_calibration_factor_length_verification ADC Calibration Factor Length Verification
Kojto 100:cbbeb26dbd92 2055 * @{
Kojto 100:cbbeb26dbd92 2056 */
Kojto 100:cbbeb26dbd92 2057 /**
Kojto 100:cbbeb26dbd92 2058 * @brief Calibration factor length verification (7 bits maximum)
Kojto 100:cbbeb26dbd92 2059 * @param _Calibration_Factor_: Calibration factor value
Kojto 100:cbbeb26dbd92 2060 * @retval None
Kojto 100:cbbeb26dbd92 2061 */
Kojto 100:cbbeb26dbd92 2062 #define IS_ADC_CALFACT(_Calibration_Factor_) ((_Calibration_Factor_) <= ((uint32_t)0x7F))
Kojto 100:cbbeb26dbd92 2063 /**
Kojto 100:cbbeb26dbd92 2064 * @}
Kojto 100:cbbeb26dbd92 2065 */
Kojto 100:cbbeb26dbd92 2066 #endif /* STM32F302xE || STM32F303xE || STM32F398xx || */
Kojto 100:cbbeb26dbd92 2067 /* STM32F302xC || STM32F303xC || STM32F358xx || */
Kojto 100:cbbeb26dbd92 2068 /* STM32F303x8 || STM32F334x8 || STM32F328xx || */
Kojto 100:cbbeb26dbd92 2069 /* STM32F301x8 || STM32F302x8 || STM32F318xx */
Kojto 100:cbbeb26dbd92 2070
Kojto 100:cbbeb26dbd92 2071
Kojto 100:cbbeb26dbd92 2072 #if defined(STM32F373xC) || defined(STM32F378xx)
Kojto 100:cbbeb26dbd92 2073 /** @defgroup ADCEx_Data_align ADC Extended Data Alignment
Kojto 100:cbbeb26dbd92 2074 * @{
Kojto 100:cbbeb26dbd92 2075 */
Kojto 100:cbbeb26dbd92 2076 #define ADC_DATAALIGN_RIGHT ((uint32_t)0x00000000)
Kojto 100:cbbeb26dbd92 2077 #define ADC_DATAALIGN_LEFT ((uint32_t)ADC_CR2_ALIGN)
Kojto 100:cbbeb26dbd92 2078
Kojto 100:cbbeb26dbd92 2079 #define IS_ADC_DATA_ALIGN(ALIGN) (((ALIGN) == ADC_DATAALIGN_RIGHT) || \
Kojto 100:cbbeb26dbd92 2080 ((ALIGN) == ADC_DATAALIGN_LEFT) )
Kojto 100:cbbeb26dbd92 2081 /**
Kojto 100:cbbeb26dbd92 2082 * @}
Kojto 100:cbbeb26dbd92 2083 */
Kojto 100:cbbeb26dbd92 2084
Kojto 100:cbbeb26dbd92 2085 /** @defgroup ADCEx_Scan_mode ADC Extended Scan Mode
Kojto 100:cbbeb26dbd92 2086 * @{
Kojto 100:cbbeb26dbd92 2087 */
Kojto 100:cbbeb26dbd92 2088 #define ADC_SCAN_DISABLE ((uint32_t)0x00000000)
Kojto 100:cbbeb26dbd92 2089 #define ADC_SCAN_ENABLE ((uint32_t)0x00000001)
Kojto 100:cbbeb26dbd92 2090
Kojto 100:cbbeb26dbd92 2091 #define IS_ADC_SCAN_MODE(SCAN_MODE) (((SCAN_MODE) == ADC_SCAN_DISABLE) || \
Kojto 100:cbbeb26dbd92 2092 ((SCAN_MODE) == ADC_SCAN_ENABLE) )
Kojto 100:cbbeb26dbd92 2093 /**
Kojto 100:cbbeb26dbd92 2094 * @}
Kojto 100:cbbeb26dbd92 2095 */
Kojto 100:cbbeb26dbd92 2096
Kojto 100:cbbeb26dbd92 2097 /** @defgroup ADCEx_External_trigger_edge_Regular ADC Extended External trigger enable for regular channels
Kojto 100:cbbeb26dbd92 2098 * @{
Kojto 100:cbbeb26dbd92 2099 */
Kojto 100:cbbeb26dbd92 2100 #define ADC_EXTERNALTRIGCONVEDGE_NONE ((uint32_t)0x00000000)
Kojto 100:cbbeb26dbd92 2101 #define ADC_EXTERNALTRIGCONVEDGE_RISING ((uint32_t)ADC_CR2_EXTTRIG)
Kojto 100:cbbeb26dbd92 2102
Kojto 100:cbbeb26dbd92 2103 #define IS_ADC_EXTTRIG_EDGE(EDGE) (((EDGE) == ADC_EXTERNALTRIGCONVEDGE_NONE) || \
Kojto 100:cbbeb26dbd92 2104 ((EDGE) == ADC_EXTERNALTRIGCONVEDGE_RISING) )
Kojto 100:cbbeb26dbd92 2105 /**
Kojto 100:cbbeb26dbd92 2106 * @}
Kojto 100:cbbeb26dbd92 2107 */
Kojto 100:cbbeb26dbd92 2108
Kojto 100:cbbeb26dbd92 2109 /** @defgroup ADCEx_External_trigger_source_Regular ADC Extended External trigger selection for regular group
Kojto 100:cbbeb26dbd92 2110 * @{
Kojto 100:cbbeb26dbd92 2111 */
Kojto 100:cbbeb26dbd92 2112 /* List of external triggers with generic trigger name, sorted by trigger */
Kojto 100:cbbeb26dbd92 2113 /* name: */
Kojto 100:cbbeb26dbd92 2114
Kojto 100:cbbeb26dbd92 2115 /* External triggers of regular group for ADC1 */
Kojto 100:cbbeb26dbd92 2116 #define ADC_EXTERNALTRIGCONV_T2_CC2 ADC_EXTERNALTRIG_T2_CC2
Kojto 100:cbbeb26dbd92 2117 #define ADC_EXTERNALTRIGCONV_T3_TRGO ADC_EXTERNALTRIG_T3_TRGO
Kojto 100:cbbeb26dbd92 2118 #define ADC_EXTERNALTRIGCONV_T4_CC2 ADC_EXTERNALTRIG_T4_CC2
Kojto 100:cbbeb26dbd92 2119 #define ADC_EXTERNALTRIGCONV_T19_TRGO ADC_EXTERNALTRIG_T19_TRGO
Kojto 100:cbbeb26dbd92 2120 #define ADC_EXTERNALTRIGCONV_T19_CC3 ADC_EXTERNALTRIG_T19_CC3
Kojto 100:cbbeb26dbd92 2121 #define ADC_EXTERNALTRIGCONV_T19_CC4 ADC_EXTERNALTRIG_T19_CC4
Kojto 100:cbbeb26dbd92 2122 #define ADC_EXTERNALTRIGCONV_EXT_IT11 ADC_EXTERNALTRIG_EXT_IT11
Kojto 100:cbbeb26dbd92 2123 #define ADC_SOFTWARE_START ADC_SWSTART
Kojto 100:cbbeb26dbd92 2124
Kojto 100:cbbeb26dbd92 2125 #define IS_ADC_EXTTRIG(REGTRIG) (((REGTRIG) == ADC_EXTERNALTRIGCONV_T2_CC2) || \
Kojto 100:cbbeb26dbd92 2126 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T3_TRGO) || \
Kojto 100:cbbeb26dbd92 2127 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T4_CC2) || \
Kojto 100:cbbeb26dbd92 2128 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T19_TRGO) || \
Kojto 100:cbbeb26dbd92 2129 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T19_CC3) || \
Kojto 100:cbbeb26dbd92 2130 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T19_CC4) || \
Kojto 100:cbbeb26dbd92 2131 ((REGTRIG) == ADC_EXTERNALTRIGCONV_EXT_IT11) || \
Kojto 100:cbbeb26dbd92 2132 ((REGTRIG) == ADC_SOFTWARE_START) )
Kojto 100:cbbeb26dbd92 2133 /**
Kojto 100:cbbeb26dbd92 2134 * @}
Kojto 100:cbbeb26dbd92 2135 */
Kojto 100:cbbeb26dbd92 2136
Kojto 100:cbbeb26dbd92 2137
Kojto 100:cbbeb26dbd92 2138 /** @defgroup ADCEx_Internal_HAL_driver_Ext_trig_src_Regular ADC Extended External trigger selection for regular group (Used Internally)
Kojto 100:cbbeb26dbd92 2139 * @{
Kojto 100:cbbeb26dbd92 2140 */
Kojto 100:cbbeb26dbd92 2141
Kojto 100:cbbeb26dbd92 2142 /* List of external triggers of regular group for ADC1: */
Kojto 100:cbbeb26dbd92 2143 /* (used internally by HAL driver. To not use into HAL structure parameters) */
Kojto 100:cbbeb26dbd92 2144
Kojto 100:cbbeb26dbd92 2145 /* External triggers of regular group for ADC1 */
Kojto 100:cbbeb26dbd92 2146 #define ADC_EXTERNALTRIG_T19_TRGO ((uint32_t)0x00000000)
Kojto 100:cbbeb26dbd92 2147 #define ADC_EXTERNALTRIG_T19_CC3 ((uint32_t)ADC_CR2_EXTSEL_0)
Kojto 100:cbbeb26dbd92 2148 #define ADC_EXTERNALTRIG_T19_CC4 ((uint32_t)ADC_CR2_EXTSEL_1)
Kojto 100:cbbeb26dbd92 2149 #define ADC_EXTERNALTRIG_T2_CC2 ((uint32_t)(ADC_CR2_EXTSEL_1 | ADC_CR2_EXTSEL_0))
Kojto 100:cbbeb26dbd92 2150 #define ADC_EXTERNALTRIG_T3_TRGO ((uint32_t)ADC_CR2_EXTSEL_2)
Kojto 100:cbbeb26dbd92 2151 #define ADC_EXTERNALTRIG_T4_CC2 ((uint32_t)(ADC_CR2_EXTSEL_2 | ADC_CR2_EXTSEL_0))
Kojto 100:cbbeb26dbd92 2152 #define ADC_EXTERNALTRIG_EXT_IT11 ((uint32_t)(ADC_CR2_EXTSEL_2 | ADC_CR2_EXTSEL_1))
Kojto 100:cbbeb26dbd92 2153 #define ADC_SWSTART ((uint32_t)(ADC_CR2_EXTSEL_2 | ADC_CR2_EXTSEL_1 | ADC_CR2_EXTSEL_0))
Kojto 100:cbbeb26dbd92 2154
Kojto 100:cbbeb26dbd92 2155 /**
Kojto 100:cbbeb26dbd92 2156 * @}
Kojto 100:cbbeb26dbd92 2157 */
Kojto 100:cbbeb26dbd92 2158
Kojto 100:cbbeb26dbd92 2159
Kojto 100:cbbeb26dbd92 2160 /** @defgroup ADCEx_channels ADC Extended Channels
Kojto 100:cbbeb26dbd92 2161 * @{
Kojto 100:cbbeb26dbd92 2162 */
Kojto 100:cbbeb26dbd92 2163 /* Note: Depending on devices, some channels may not be available on package */
Kojto 100:cbbeb26dbd92 2164 /* pins. Refer to device datasheet for channels availability. */
Kojto 100:cbbeb26dbd92 2165 #define ADC_CHANNEL_0 ((uint32_t)0x00000000)
Kojto 100:cbbeb26dbd92 2166 #define ADC_CHANNEL_1 ((uint32_t)(ADC_SQR3_SQ1_0))
Kojto 100:cbbeb26dbd92 2167 #define ADC_CHANNEL_2 ((uint32_t)(ADC_SQR3_SQ1_1))
Kojto 100:cbbeb26dbd92 2168 #define ADC_CHANNEL_3 ((uint32_t)(ADC_SQR3_SQ1_1 | ADC_SQR3_SQ1_0))
Kojto 100:cbbeb26dbd92 2169 #define ADC_CHANNEL_4 ((uint32_t)(ADC_SQR3_SQ1_2))
Kojto 100:cbbeb26dbd92 2170 #define ADC_CHANNEL_5 ((uint32_t)(ADC_SQR3_SQ1_2 | ADC_SQR3_SQ1_0))
Kojto 100:cbbeb26dbd92 2171 #define ADC_CHANNEL_6 ((uint32_t)(ADC_SQR3_SQ1_2 | ADC_SQR3_SQ1_1))
Kojto 100:cbbeb26dbd92 2172 #define ADC_CHANNEL_7 ((uint32_t)(ADC_SQR3_SQ1_2 | ADC_SQR3_SQ1_1 | ADC_SQR3_SQ1_0))
Kojto 100:cbbeb26dbd92 2173 #define ADC_CHANNEL_8 ((uint32_t)(ADC_SQR3_SQ1_3))
Kojto 100:cbbeb26dbd92 2174 #define ADC_CHANNEL_9 ((uint32_t)(ADC_SQR3_SQ1_3 | ADC_SQR3_SQ1_0))
Kojto 100:cbbeb26dbd92 2175 #define ADC_CHANNEL_10 ((uint32_t)(ADC_SQR3_SQ1_3 | ADC_SQR3_SQ1_1))
Kojto 100:cbbeb26dbd92 2176 #define ADC_CHANNEL_11 ((uint32_t)(ADC_SQR3_SQ1_3 | ADC_SQR3_SQ1_1 | ADC_SQR3_SQ1_0))
Kojto 100:cbbeb26dbd92 2177 #define ADC_CHANNEL_12 ((uint32_t)(ADC_SQR3_SQ1_3 | ADC_SQR3_SQ1_2))
Kojto 100:cbbeb26dbd92 2178 #define ADC_CHANNEL_13 ((uint32_t)(ADC_SQR3_SQ1_3 | ADC_SQR3_SQ1_2 | ADC_SQR3_SQ1_0))
Kojto 100:cbbeb26dbd92 2179 #define ADC_CHANNEL_14 ((uint32_t)(ADC_SQR3_SQ1_3 | ADC_SQR3_SQ1_2 | ADC_SQR3_SQ1_1))
Kojto 100:cbbeb26dbd92 2180 #define ADC_CHANNEL_15 ((uint32_t)(ADC_SQR3_SQ1_3 | ADC_SQR3_SQ1_2 | ADC_SQR3_SQ1_1 | ADC_SQR3_SQ1_0))
Kojto 100:cbbeb26dbd92 2181 #define ADC_CHANNEL_16 ((uint32_t)(ADC_SQR3_SQ1_4))
Kojto 100:cbbeb26dbd92 2182 #define ADC_CHANNEL_17 ((uint32_t)(ADC_SQR3_SQ1_4 | ADC_SQR3_SQ1_0))
Kojto 100:cbbeb26dbd92 2183 #define ADC_CHANNEL_18 ((uint32_t)(ADC_SQR3_SQ1_4 | ADC_SQR3_SQ1_1))
Kojto 100:cbbeb26dbd92 2184
Kojto 100:cbbeb26dbd92 2185 #define ADC_CHANNEL_TEMPSENSOR ADC_CHANNEL_16
Kojto 100:cbbeb26dbd92 2186 #define ADC_CHANNEL_VREFINT ADC_CHANNEL_17
Kojto 100:cbbeb26dbd92 2187 #define ADC_CHANNEL_VBAT ADC_CHANNEL_18
Kojto 100:cbbeb26dbd92 2188
Kojto 100:cbbeb26dbd92 2189 #define IS_ADC_CHANNEL(CHANNEL) (((CHANNEL) == ADC_CHANNEL_0) || \
Kojto 100:cbbeb26dbd92 2190 ((CHANNEL) == ADC_CHANNEL_1) || \
Kojto 100:cbbeb26dbd92 2191 ((CHANNEL) == ADC_CHANNEL_2) || \
Kojto 100:cbbeb26dbd92 2192 ((CHANNEL) == ADC_CHANNEL_3) || \
Kojto 100:cbbeb26dbd92 2193 ((CHANNEL) == ADC_CHANNEL_4) || \
Kojto 100:cbbeb26dbd92 2194 ((CHANNEL) == ADC_CHANNEL_5) || \
Kojto 100:cbbeb26dbd92 2195 ((CHANNEL) == ADC_CHANNEL_6) || \
Kojto 100:cbbeb26dbd92 2196 ((CHANNEL) == ADC_CHANNEL_7) || \
Kojto 100:cbbeb26dbd92 2197 ((CHANNEL) == ADC_CHANNEL_8) || \
Kojto 100:cbbeb26dbd92 2198 ((CHANNEL) == ADC_CHANNEL_9) || \
Kojto 100:cbbeb26dbd92 2199 ((CHANNEL) == ADC_CHANNEL_10) || \
Kojto 100:cbbeb26dbd92 2200 ((CHANNEL) == ADC_CHANNEL_11) || \
Kojto 100:cbbeb26dbd92 2201 ((CHANNEL) == ADC_CHANNEL_12) || \
Kojto 100:cbbeb26dbd92 2202 ((CHANNEL) == ADC_CHANNEL_13) || \
Kojto 100:cbbeb26dbd92 2203 ((CHANNEL) == ADC_CHANNEL_14) || \
Kojto 100:cbbeb26dbd92 2204 ((CHANNEL) == ADC_CHANNEL_15) || \
Kojto 100:cbbeb26dbd92 2205 ((CHANNEL) == ADC_CHANNEL_TEMPSENSOR) || \
Kojto 100:cbbeb26dbd92 2206 ((CHANNEL) == ADC_CHANNEL_VREFINT) || \
Kojto 100:cbbeb26dbd92 2207 ((CHANNEL) == ADC_CHANNEL_VBAT) )
Kojto 100:cbbeb26dbd92 2208 /**
Kojto 100:cbbeb26dbd92 2209 * @}
Kojto 100:cbbeb26dbd92 2210 */
Kojto 100:cbbeb26dbd92 2211
Kojto 100:cbbeb26dbd92 2212 /** @defgroup ADCEx_sampling_times ADC Extended Sampling Times
Kojto 100:cbbeb26dbd92 2213 * @{
Kojto 100:cbbeb26dbd92 2214 */
Kojto 100:cbbeb26dbd92 2215 #define ADC_SAMPLETIME_1CYCLE_5 ((uint32_t)0x00000000) /*!< Sampling time 1.5 ADC clock cycle */
Kojto 100:cbbeb26dbd92 2216 #define ADC_SAMPLETIME_7CYCLES_5 ((uint32_t) ADC_SMPR2_SMP0_0) /*!< Sampling time 7.5 ADC clock cycles */
Kojto 100:cbbeb26dbd92 2217 #define ADC_SAMPLETIME_13CYCLES_5 ((uint32_t) ADC_SMPR2_SMP0_1) /*!< Sampling time 13.5 ADC clock cycles */
Kojto 100:cbbeb26dbd92 2218 #define ADC_SAMPLETIME_28CYCLES_5 ((uint32_t)(ADC_SMPR2_SMP0_1 | ADC_SMPR2_SMP0_0)) /*!< Sampling time 28.5 ADC clock cycles */
Kojto 100:cbbeb26dbd92 2219 #define ADC_SAMPLETIME_41CYCLES_5 ((uint32_t) ADC_SMPR2_SMP0_2) /*!< Sampling time 41.5 ADC clock cycles */
Kojto 100:cbbeb26dbd92 2220 #define ADC_SAMPLETIME_55CYCLES_5 ((uint32_t)(ADC_SMPR2_SMP0_2 | ADC_SMPR2_SMP0_0)) /*!< Sampling time 55.5 ADC clock cycles */
Kojto 100:cbbeb26dbd92 2221 #define ADC_SAMPLETIME_71CYCLES_5 ((uint32_t)(ADC_SMPR2_SMP0_2 | ADC_SMPR2_SMP0_1)) /*!< Sampling time 71.5 ADC clock cycles */
Kojto 100:cbbeb26dbd92 2222 #define ADC_SAMPLETIME_239CYCLES_5 ((uint32_t) ADC_SMPR2_SMP0) /*!< Sampling time 239.5 ADC clock cycles */
Kojto 100:cbbeb26dbd92 2223
Kojto 100:cbbeb26dbd92 2224 #define IS_ADC_SAMPLE_TIME(TIME) (((TIME) == ADC_SAMPLETIME_1CYCLE_5) || \
Kojto 100:cbbeb26dbd92 2225 ((TIME) == ADC_SAMPLETIME_7CYCLES_5) || \
Kojto 100:cbbeb26dbd92 2226 ((TIME) == ADC_SAMPLETIME_13CYCLES_5) || \
Kojto 100:cbbeb26dbd92 2227 ((TIME) == ADC_SAMPLETIME_28CYCLES_5) || \
Kojto 100:cbbeb26dbd92 2228 ((TIME) == ADC_SAMPLETIME_41CYCLES_5) || \
Kojto 100:cbbeb26dbd92 2229 ((TIME) == ADC_SAMPLETIME_55CYCLES_5) || \
Kojto 100:cbbeb26dbd92 2230 ((TIME) == ADC_SAMPLETIME_71CYCLES_5) || \
Kojto 100:cbbeb26dbd92 2231 ((TIME) == ADC_SAMPLETIME_239CYCLES_5) )
Kojto 100:cbbeb26dbd92 2232 /**
Kojto 100:cbbeb26dbd92 2233 * @}
Kojto 100:cbbeb26dbd92 2234 */
Kojto 100:cbbeb26dbd92 2235
Kojto 100:cbbeb26dbd92 2236 /** @defgroup ADCEx_sampling_times_all_channels ADC Extended Sampling Times All Channels
Kojto 100:cbbeb26dbd92 2237 * @{
Kojto 100:cbbeb26dbd92 2238 */
Kojto 100:cbbeb26dbd92 2239 #define ADC_SAMPLETIME_ALLCHANNELS_SMPR2BIT2 \
Kojto 100:cbbeb26dbd92 2240 (ADC_SMPR2_SMP9_2 | ADC_SMPR2_SMP8_2 | ADC_SMPR2_SMP7_2 | ADC_SMPR2_SMP6_2 | \
Kojto 100:cbbeb26dbd92 2241 ADC_SMPR2_SMP5_2 | ADC_SMPR2_SMP4_2 | ADC_SMPR2_SMP3_2 | ADC_SMPR2_SMP2_2 | \
Kojto 100:cbbeb26dbd92 2242 ADC_SMPR2_SMP1_2 | ADC_SMPR2_SMP0_2)
Kojto 100:cbbeb26dbd92 2243 #define ADC_SAMPLETIME_ALLCHANNELS_SMPR1BIT2 \
Kojto 100:cbbeb26dbd92 2244 (ADC_SMPR1_SMP17_2 | ADC_SMPR1_SMP16_2 | ADC_SMPR1_SMP15_2 | ADC_SMPR1_SMP14_2 | \
Kojto 100:cbbeb26dbd92 2245 ADC_SMPR1_SMP13_2 | ADC_SMPR1_SMP12_2 | ADC_SMPR1_SMP11_2 | ADC_SMPR1_SMP10_2 )
Kojto 100:cbbeb26dbd92 2246
Kojto 100:cbbeb26dbd92 2247 #define ADC_SAMPLETIME_ALLCHANNELS_SMPR2BIT1 \
Kojto 100:cbbeb26dbd92 2248 (ADC_SMPR2_SMP9_1 | ADC_SMPR2_SMP8_1 | ADC_SMPR2_SMP7_1 | ADC_SMPR2_SMP6_1 | \
Kojto 100:cbbeb26dbd92 2249 ADC_SMPR2_SMP5_1 | ADC_SMPR2_SMP4_1 | ADC_SMPR2_SMP3_1 | ADC_SMPR2_SMP2_1 | \
Kojto 100:cbbeb26dbd92 2250 ADC_SMPR2_SMP1_1 | ADC_SMPR2_SMP0_1)
Kojto 100:cbbeb26dbd92 2251 #define ADC_SAMPLETIME_ALLCHANNELS_SMPR1BIT1 \
Kojto 100:cbbeb26dbd92 2252 (ADC_SMPR1_SMP17_1 | ADC_SMPR1_SMP16_1 | ADC_SMPR1_SMP15_1 | ADC_SMPR1_SMP14_1 | \
Kojto 100:cbbeb26dbd92 2253 ADC_SMPR1_SMP13_1 | ADC_SMPR1_SMP12_1 | ADC_SMPR1_SMP11_1 | ADC_SMPR1_SMP10_1 )
Kojto 100:cbbeb26dbd92 2254
Kojto 100:cbbeb26dbd92 2255 #define ADC_SAMPLETIME_ALLCHANNELS_SMPR2BIT0 \
Kojto 100:cbbeb26dbd92 2256 (ADC_SMPR2_SMP9_0 | ADC_SMPR2_SMP8_0 | ADC_SMPR2_SMP7_0 | ADC_SMPR2_SMP6_0 | \
Kojto 100:cbbeb26dbd92 2257 ADC_SMPR2_SMP5_0 | ADC_SMPR2_SMP4_0 | ADC_SMPR2_SMP3_0 | ADC_SMPR2_SMP2_0 | \
Kojto 100:cbbeb26dbd92 2258 ADC_SMPR2_SMP1_0 | ADC_SMPR2_SMP0_0)
Kojto 100:cbbeb26dbd92 2259 #define ADC_SAMPLETIME_ALLCHANNELS_SMPR1BIT0 \
Kojto 100:cbbeb26dbd92 2260 (ADC_SMPR1_SMP17_0 | ADC_SMPR1_SMP16_0 | ADC_SMPR1_SMP15_0 | ADC_SMPR1_SMP14_0 | \
Kojto 100:cbbeb26dbd92 2261 ADC_SMPR1_SMP13_0 | ADC_SMPR1_SMP12_0 | ADC_SMPR1_SMP11_0 | ADC_SMPR1_SMP10_0 )
Kojto 100:cbbeb26dbd92 2262
Kojto 100:cbbeb26dbd92 2263 #define ADC_SAMPLETIME_1CYCLE5_SMPR2ALLCHANNELS ((uint32_t)0x00000000)
Kojto 100:cbbeb26dbd92 2264 #define ADC_SAMPLETIME_7CYCLES5_SMPR2ALLCHANNELS (ADC_SAMPLETIME_ALLCHANNELS_SMPR2BIT0)
Kojto 100:cbbeb26dbd92 2265 #define ADC_SAMPLETIME_13CYCLES5_SMPR2ALLCHANNELS (ADC_SAMPLETIME_ALLCHANNELS_SMPR2BIT1)
Kojto 100:cbbeb26dbd92 2266 #define ADC_SAMPLETIME_28CYCLES5_SMPR2ALLCHANNELS (ADC_SAMPLETIME_ALLCHANNELS_SMPR2BIT1 | ADC_SAMPLETIME_ALLCHANNELS_SMPR2BIT0)
Kojto 100:cbbeb26dbd92 2267 #define ADC_SAMPLETIME_41CYCLES5_SMPR2ALLCHANNELS (ADC_SAMPLETIME_ALLCHANNELS_SMPR2BIT2)
Kojto 100:cbbeb26dbd92 2268 #define ADC_SAMPLETIME_55CYCLES5_SMPR2ALLCHANNELS (ADC_SAMPLETIME_ALLCHANNELS_SMPR2BIT2 | ADC_SAMPLETIME_ALLCHANNELS_SMPR2BIT0)
Kojto 100:cbbeb26dbd92 2269 #define ADC_SAMPLETIME_71CYCLES5_SMPR2ALLCHANNELS (ADC_SAMPLETIME_ALLCHANNELS_SMPR2BIT2 | ADC_SAMPLETIME_ALLCHANNELS_SMPR2BIT1)
Kojto 100:cbbeb26dbd92 2270 #define ADC_SAMPLETIME_239CYCLES5_SMPR2ALLCHANNELS (ADC_SAMPLETIME_ALLCHANNELS_SMPR2BIT2 | ADC_SAMPLETIME_ALLCHANNELS_SMPR2BIT1 | ADC_SAMPLETIME_ALLCHANNELS_SMPR2BIT0)
Kojto 100:cbbeb26dbd92 2271
Kojto 100:cbbeb26dbd92 2272 #define ADC_SAMPLETIME_1CYCLE5_SMPR1ALLCHANNELS ((uint32_t)0x00000000)
Kojto 100:cbbeb26dbd92 2273 #define ADC_SAMPLETIME_7CYCLES5_SMPR1ALLCHANNELS (ADC_SAMPLETIME_ALLCHANNELS_SMPR1BIT0)
Kojto 100:cbbeb26dbd92 2274 #define ADC_SAMPLETIME_13CYCLES5_SMPR1ALLCHANNELS (ADC_SAMPLETIME_ALLCHANNELS_SMPR1BIT1)
Kojto 100:cbbeb26dbd92 2275 #define ADC_SAMPLETIME_28CYCLES5_SMPR1ALLCHANNELS (ADC_SAMPLETIME_ALLCHANNELS_SMPR1BIT1 | ADC_SAMPLETIME_ALLCHANNELS_SMPR1BIT0)
Kojto 100:cbbeb26dbd92 2276 #define ADC_SAMPLETIME_41CYCLES5_SMPR1ALLCHANNELS (ADC_SAMPLETIME_ALLCHANNELS_SMPR1BIT2)
Kojto 100:cbbeb26dbd92 2277 #define ADC_SAMPLETIME_55CYCLES5_SMPR1ALLCHANNELS (ADC_SAMPLETIME_ALLCHANNELS_SMPR1BIT2 | ADC_SAMPLETIME_ALLCHANNELS_SMPR1BIT0)
Kojto 100:cbbeb26dbd92 2278 #define ADC_SAMPLETIME_71CYCLES5_SMPR1ALLCHANNELS (ADC_SAMPLETIME_ALLCHANNELS_SMPR1BIT2 | ADC_SAMPLETIME_ALLCHANNELS_SMPR1BIT1)
Kojto 100:cbbeb26dbd92 2279 #define ADC_SAMPLETIME_239CYCLES5_SMPR1ALLCHANNELS (ADC_SAMPLETIME_ALLCHANNELS_SMPR1BIT2 | ADC_SAMPLETIME_ALLCHANNELS_SMPR1BIT1 | ADC_SAMPLETIME_ALLCHANNELS_SMPR1BIT0)
Kojto 100:cbbeb26dbd92 2280
Kojto 100:cbbeb26dbd92 2281 /**
Kojto 100:cbbeb26dbd92 2282 * @}
Kojto 100:cbbeb26dbd92 2283 */
Kojto 100:cbbeb26dbd92 2284
Kojto 100:cbbeb26dbd92 2285 /** @defgroup ADCEx_regular_rank ADC Extended Regular Channel Rank
Kojto 100:cbbeb26dbd92 2286 * @{
Kojto 100:cbbeb26dbd92 2287 */
Kojto 100:cbbeb26dbd92 2288 #define ADC_REGULAR_RANK_1 ((uint32_t)0x00000001)
Kojto 100:cbbeb26dbd92 2289 #define ADC_REGULAR_RANK_2 ((uint32_t)0x00000002)
Kojto 100:cbbeb26dbd92 2290 #define ADC_REGULAR_RANK_3 ((uint32_t)0x00000003)
Kojto 100:cbbeb26dbd92 2291 #define ADC_REGULAR_RANK_4 ((uint32_t)0x00000004)
Kojto 100:cbbeb26dbd92 2292 #define ADC_REGULAR_RANK_5 ((uint32_t)0x00000005)
Kojto 100:cbbeb26dbd92 2293 #define ADC_REGULAR_RANK_6 ((uint32_t)0x00000006)
Kojto 100:cbbeb26dbd92 2294 #define ADC_REGULAR_RANK_7 ((uint32_t)0x00000007)
Kojto 100:cbbeb26dbd92 2295 #define ADC_REGULAR_RANK_8 ((uint32_t)0x00000008)
Kojto 100:cbbeb26dbd92 2296 #define ADC_REGULAR_RANK_9 ((uint32_t)0x00000009)
Kojto 100:cbbeb26dbd92 2297 #define ADC_REGULAR_RANK_10 ((uint32_t)0x0000000A)
Kojto 100:cbbeb26dbd92 2298 #define ADC_REGULAR_RANK_11 ((uint32_t)0x0000000B)
Kojto 100:cbbeb26dbd92 2299 #define ADC_REGULAR_RANK_12 ((uint32_t)0x0000000C)
Kojto 100:cbbeb26dbd92 2300 #define ADC_REGULAR_RANK_13 ((uint32_t)0x0000000D)
Kojto 100:cbbeb26dbd92 2301 #define ADC_REGULAR_RANK_14 ((uint32_t)0x0000000E)
Kojto 100:cbbeb26dbd92 2302 #define ADC_REGULAR_RANK_15 ((uint32_t)0x0000000F)
Kojto 100:cbbeb26dbd92 2303 #define ADC_REGULAR_RANK_16 ((uint32_t)0x00000010)
Kojto 100:cbbeb26dbd92 2304
Kojto 100:cbbeb26dbd92 2305 #define IS_ADC_REGULAR_RANK(CHANNEL) (((CHANNEL) == ADC_REGULAR_RANK_1 ) || \
Kojto 100:cbbeb26dbd92 2306 ((CHANNEL) == ADC_REGULAR_RANK_2 ) || \
Kojto 100:cbbeb26dbd92 2307 ((CHANNEL) == ADC_REGULAR_RANK_3 ) || \
Kojto 100:cbbeb26dbd92 2308 ((CHANNEL) == ADC_REGULAR_RANK_4 ) || \
Kojto 100:cbbeb26dbd92 2309 ((CHANNEL) == ADC_REGULAR_RANK_5 ) || \
Kojto 100:cbbeb26dbd92 2310 ((CHANNEL) == ADC_REGULAR_RANK_6 ) || \
Kojto 100:cbbeb26dbd92 2311 ((CHANNEL) == ADC_REGULAR_RANK_7 ) || \
Kojto 100:cbbeb26dbd92 2312 ((CHANNEL) == ADC_REGULAR_RANK_8 ) || \
Kojto 100:cbbeb26dbd92 2313 ((CHANNEL) == ADC_REGULAR_RANK_9 ) || \
Kojto 100:cbbeb26dbd92 2314 ((CHANNEL) == ADC_REGULAR_RANK_10) || \
Kojto 100:cbbeb26dbd92 2315 ((CHANNEL) == ADC_REGULAR_RANK_11) || \
Kojto 100:cbbeb26dbd92 2316 ((CHANNEL) == ADC_REGULAR_RANK_12) || \
Kojto 100:cbbeb26dbd92 2317 ((CHANNEL) == ADC_REGULAR_RANK_13) || \
Kojto 100:cbbeb26dbd92 2318 ((CHANNEL) == ADC_REGULAR_RANK_14) || \
Kojto 100:cbbeb26dbd92 2319 ((CHANNEL) == ADC_REGULAR_RANK_15) || \
Kojto 100:cbbeb26dbd92 2320 ((CHANNEL) == ADC_REGULAR_RANK_16) )
Kojto 100:cbbeb26dbd92 2321 /**
Kojto 100:cbbeb26dbd92 2322 * @}
Kojto 100:cbbeb26dbd92 2323 */
Kojto 100:cbbeb26dbd92 2324
Kojto 100:cbbeb26dbd92 2325 /** @defgroup ADCEx_injected_rank ADC Extended Injected Channel Rank
Kojto 100:cbbeb26dbd92 2326 * @{
Kojto 100:cbbeb26dbd92 2327 */
Kojto 100:cbbeb26dbd92 2328 #define ADC_INJECTED_RANK_1 ((uint32_t)0x00000001)
Kojto 100:cbbeb26dbd92 2329 #define ADC_INJECTED_RANK_2 ((uint32_t)0x00000002)
Kojto 100:cbbeb26dbd92 2330 #define ADC_INJECTED_RANK_3 ((uint32_t)0x00000003)
Kojto 100:cbbeb26dbd92 2331 #define ADC_INJECTED_RANK_4 ((uint32_t)0x00000004)
Kojto 100:cbbeb26dbd92 2332
Kojto 100:cbbeb26dbd92 2333 #define IS_ADC_INJECTED_RANK(CHANNEL) (((CHANNEL) == ADC_INJECTED_RANK_1) || \
Kojto 100:cbbeb26dbd92 2334 ((CHANNEL) == ADC_INJECTED_RANK_2) || \
Kojto 100:cbbeb26dbd92 2335 ((CHANNEL) == ADC_INJECTED_RANK_3) || \
Kojto 100:cbbeb26dbd92 2336 ((CHANNEL) == ADC_INJECTED_RANK_4) )
Kojto 100:cbbeb26dbd92 2337 /**
Kojto 100:cbbeb26dbd92 2338 * @}
Kojto 100:cbbeb26dbd92 2339 */
Kojto 100:cbbeb26dbd92 2340
Kojto 100:cbbeb26dbd92 2341 /** @defgroup ADCEx_External_trigger_edge_Injected External Trigger Edge of Injected Group
Kojto 100:cbbeb26dbd92 2342 * @{
Kojto 100:cbbeb26dbd92 2343 */
Kojto 100:cbbeb26dbd92 2344 #define ADC_EXTERNALTRIGINJECCONV_EDGE_NONE ((uint32_t)0x00000000)
Kojto 100:cbbeb26dbd92 2345 #define ADC_EXTERNALTRIGINJECCONV_EDGE_RISING ((uint32_t)ADC_CR2_JEXTTRIG)
Kojto 100:cbbeb26dbd92 2346
Kojto 100:cbbeb26dbd92 2347 #define IS_ADC_EXTTRIGINJEC_EDGE(EDGE) (((EDGE) == ADC_EXTERNALTRIGINJECCONV_EDGE_NONE) || \
Kojto 100:cbbeb26dbd92 2348 ((EDGE) == ADC_EXTERNALTRIGINJECCONV_EDGE_RISING) )
Kojto 100:cbbeb26dbd92 2349 /**
Kojto 100:cbbeb26dbd92 2350 * @}
Kojto 100:cbbeb26dbd92 2351 */
Kojto 100:cbbeb26dbd92 2352
Kojto 100:cbbeb26dbd92 2353 /** @defgroup ADCEx_External_trigger_source_Injected External Trigger Source of Injected Group
Kojto 100:cbbeb26dbd92 2354 * @{
Kojto 100:cbbeb26dbd92 2355 */
Kojto 100:cbbeb26dbd92 2356 /* External triggers for injected groups of ADC1 */
Kojto 100:cbbeb26dbd92 2357 #define ADC_EXTERNALTRIGINJECCONV_T2_CC1 ADC_EXTERNALTRIGINJEC_T2_CC1
Kojto 100:cbbeb26dbd92 2358 #define ADC_EXTERNALTRIGINJECCONV_T2_TRGO ADC_EXTERNALTRIGINJEC_T2_TRGO
Kojto 100:cbbeb26dbd92 2359 #define ADC_EXTERNALTRIGINJECCONV_T3_CC4 ADC_EXTERNALTRIGINJEC_T3_CC4
Kojto 100:cbbeb26dbd92 2360 #define ADC_EXTERNALTRIGINJECCONV_T4_TRGO ADC_EXTERNALTRIGINJEC_T4_TRGO
Kojto 100:cbbeb26dbd92 2361 #define ADC_EXTERNALTRIGINJECCONV_T19_CC1 ADC_EXTERNALTRIGINJEC_T19_CC1
Kojto 100:cbbeb26dbd92 2362 #define ADC_EXTERNALTRIGINJECCONV_T19_CC2 ADC_EXTERNALTRIGINJEC_T19_CC2
Kojto 100:cbbeb26dbd92 2363 #define ADC_EXTERNALTRIGINJECCONV_EXT_IT15 ADC_EXTERNALTRIGINJEC_EXT_IT15
Kojto 100:cbbeb26dbd92 2364 #define ADC_INJECTED_SOFTWARE_START ADC_JSWSTART
Kojto 100:cbbeb26dbd92 2365
Kojto 100:cbbeb26dbd92 2366 #define IS_ADC_EXTTRIGINJEC(INJTRIG) (((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T2_CC1) || \
Kojto 100:cbbeb26dbd92 2367 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T2_TRGO) || \
Kojto 100:cbbeb26dbd92 2368 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T3_CC4) || \
Kojto 100:cbbeb26dbd92 2369 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T4_TRGO) || \
Kojto 100:cbbeb26dbd92 2370 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T19_CC1) || \
Kojto 100:cbbeb26dbd92 2371 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T19_CC2) || \
Kojto 100:cbbeb26dbd92 2372 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_EXT_IT15) || \
Kojto 100:cbbeb26dbd92 2373 ((INJTRIG) == ADC_INJECTED_SOFTWARE_START) )
Kojto 100:cbbeb26dbd92 2374 /**
Kojto 100:cbbeb26dbd92 2375 * @}
Kojto 100:cbbeb26dbd92 2376 */
Kojto 100:cbbeb26dbd92 2377
Kojto 100:cbbeb26dbd92 2378
Kojto 100:cbbeb26dbd92 2379 /** @defgroup ADCEx_Internal_HAL_driver_Ext_trig_src_Injected ADC Extended External Trigger Source of Injected Group (Internal)
Kojto 100:cbbeb26dbd92 2380 * @{
Kojto 100:cbbeb26dbd92 2381 */
Kojto 100:cbbeb26dbd92 2382
Kojto 100:cbbeb26dbd92 2383 /* List of external triggers of injected group for ADC1: */
Kojto 100:cbbeb26dbd92 2384 /* (used internally by HAL driver. To not use into HAL structure parameters) */
Kojto 100:cbbeb26dbd92 2385 #define ADC_EXTERNALTRIGINJEC_T19_CC1 ((uint32_t) 0x00000000)
Kojto 100:cbbeb26dbd92 2386 #define ADC_EXTERNALTRIGINJEC_T19_CC2 ((uint32_t) ADC_CR2_JEXTSEL_0)
Kojto 100:cbbeb26dbd92 2387 #define ADC_EXTERNALTRIGINJEC_T2_TRGO ((uint32_t) ADC_CR2_JEXTSEL_1)
Kojto 100:cbbeb26dbd92 2388 #define ADC_EXTERNALTRIGINJEC_T2_CC1 ((uint32_t)(ADC_CR2_JEXTSEL_1 | ADC_CR2_JEXTSEL_0))
Kojto 100:cbbeb26dbd92 2389 #define ADC_EXTERNALTRIGINJEC_T3_CC4 ((uint32_t) ADC_CR2_JEXTSEL_2)
Kojto 100:cbbeb26dbd92 2390 #define ADC_EXTERNALTRIGINJEC_T4_TRGO ((uint32_t)(ADC_CR2_JEXTSEL_2 | ADC_CR2_JEXTSEL_0))
Kojto 100:cbbeb26dbd92 2391 #define ADC_EXTERNALTRIGINJEC_EXT_IT15 ((uint32_t)(ADC_CR2_JEXTSEL_2 | ADC_CR2_JEXTSEL_1))
Kojto 100:cbbeb26dbd92 2392 #define ADC_JSWSTART ((uint32_t)(ADC_CR2_JEXTSEL_2 | ADC_CR2_JEXTSEL_1 | ADC_CR2_JEXTSEL_0))
Kojto 100:cbbeb26dbd92 2393
Kojto 100:cbbeb26dbd92 2394 /**
Kojto 100:cbbeb26dbd92 2395 * @}
Kojto 100:cbbeb26dbd92 2396 */
Kojto 100:cbbeb26dbd92 2397
Kojto 100:cbbeb26dbd92 2398
Kojto 100:cbbeb26dbd92 2399 /** @defgroup ADCEx_analog_watchdog_mode ADC Extended analog watchdog mode
Kojto 100:cbbeb26dbd92 2400 * @{
Kojto 100:cbbeb26dbd92 2401 */
Kojto 100:cbbeb26dbd92 2402 #define ADC_ANALOGWATCHDOG_NONE ((uint32_t)0x00000000)
Kojto 100:cbbeb26dbd92 2403 #define ADC_ANALOGWATCHDOG_SINGLE_REG ((uint32_t)(ADC_CR1_AWDSGL | ADC_CR1_AWDEN))
Kojto 100:cbbeb26dbd92 2404 #define ADC_ANALOGWATCHDOG_SINGLE_INJEC ((uint32_t)(ADC_CR1_AWDSGL | ADC_CR1_JAWDEN))
Kojto 100:cbbeb26dbd92 2405 #define ADC_ANALOGWATCHDOG_SINGLE_REGINJEC ((uint32_t)(ADC_CR1_AWDSGL | ADC_CR1_AWDEN | ADC_CR1_JAWDEN))
Kojto 100:cbbeb26dbd92 2406 #define ADC_ANALOGWATCHDOG_ALL_REG ((uint32_t) ADC_CR1_AWDEN)
Kojto 100:cbbeb26dbd92 2407 #define ADC_ANALOGWATCHDOG_ALL_INJEC ((uint32_t) ADC_CR1_JAWDEN)
Kojto 100:cbbeb26dbd92 2408 #define ADC_ANALOGWATCHDOG_ALL_REGINJEC ((uint32_t)(ADC_CR1_AWDEN | ADC_CR1_JAWDEN))
Kojto 100:cbbeb26dbd92 2409
Kojto 100:cbbeb26dbd92 2410 #define IS_ADC_ANALOG_WATCHDOG_MODE(WATCHDOG) (((WATCHDOG) == ADC_ANALOGWATCHDOG_NONE) || \
Kojto 100:cbbeb26dbd92 2411 ((WATCHDOG) == ADC_ANALOGWATCHDOG_SINGLE_REG) || \
Kojto 100:cbbeb26dbd92 2412 ((WATCHDOG) == ADC_ANALOGWATCHDOG_SINGLE_INJEC) || \
Kojto 100:cbbeb26dbd92 2413 ((WATCHDOG) == ADC_ANALOGWATCHDOG_SINGLE_REGINJEC) || \
Kojto 100:cbbeb26dbd92 2414 ((WATCHDOG) == ADC_ANALOGWATCHDOG_ALL_REG) || \
Kojto 100:cbbeb26dbd92 2415 ((WATCHDOG) == ADC_ANALOGWATCHDOG_ALL_INJEC) || \
Kojto 100:cbbeb26dbd92 2416 ((WATCHDOG) == ADC_ANALOGWATCHDOG_ALL_REGINJEC) )
Kojto 100:cbbeb26dbd92 2417 /**
Kojto 100:cbbeb26dbd92 2418 * @}
Kojto 100:cbbeb26dbd92 2419 */
Kojto 100:cbbeb26dbd92 2420
Kojto 100:cbbeb26dbd92 2421 /** @defgroup ADC_conversion_group ADC Conversion Group
Kojto 100:cbbeb26dbd92 2422 * @{
Kojto 100:cbbeb26dbd92 2423 */
Kojto 100:cbbeb26dbd92 2424 #define REGULAR_GROUP ((uint32_t)(ADC_FLAG_EOC))
Kojto 100:cbbeb26dbd92 2425 #define INJECTED_GROUP ((uint32_t)(ADC_FLAG_JEOC))
Kojto 100:cbbeb26dbd92 2426 #define REGULAR_INJECTED_GROUP ((uint32_t)(ADC_FLAG_EOC | ADC_FLAG_JEOC))
Kojto 100:cbbeb26dbd92 2427
Kojto 100:cbbeb26dbd92 2428 #define IS_ADC_CONVERSION_GROUP(CONVERSION) (((CONVERSION) == REGULAR_GROUP) || \
Kojto 100:cbbeb26dbd92 2429 ((CONVERSION) == INJECTED_GROUP) || \
Kojto 100:cbbeb26dbd92 2430 ((CONVERSION) == REGULAR_INJECTED_GROUP) )
Kojto 100:cbbeb26dbd92 2431 /**
Kojto 100:cbbeb26dbd92 2432 * @}
Kojto 100:cbbeb26dbd92 2433 */
Kojto 100:cbbeb26dbd92 2434
Kojto 100:cbbeb26dbd92 2435 /** @defgroup ADCEx_Event_type ADC Extended Event Type
Kojto 100:cbbeb26dbd92 2436 * @{
Kojto 100:cbbeb26dbd92 2437 */
Kojto 100:cbbeb26dbd92 2438 #define AWD_EVENT ((uint32_t)ADC_FLAG_AWD) /*!< ADC Analog watchdog event */
Kojto 100:cbbeb26dbd92 2439
Kojto 100:cbbeb26dbd92 2440 #define IS_ADC_EVENT_TYPE(EVENT) ((EVENT) == AWD_EVENT)
Kojto 100:cbbeb26dbd92 2441 /**
Kojto 100:cbbeb26dbd92 2442 * @}
Kojto 100:cbbeb26dbd92 2443 */
Kojto 100:cbbeb26dbd92 2444
Kojto 100:cbbeb26dbd92 2445 /** @defgroup ADCEx_interrupts_definition ADC Extended Interrupts Definition
Kojto 100:cbbeb26dbd92 2446 * @{
Kojto 100:cbbeb26dbd92 2447 */
Kojto 100:cbbeb26dbd92 2448 #define ADC_IT_EOC ADC_CR1_EOCIE /*!< ADC End of Regular Conversion interrupt source */
Kojto 100:cbbeb26dbd92 2449 #define ADC_IT_JEOC ADC_CR1_JEOCIE /*!< ADC End of Injected Conversion interrupt source */
Kojto 100:cbbeb26dbd92 2450 #define ADC_IT_AWD ADC_CR1_AWDIE /*!< ADC Analog watchdog interrupt source */
Kojto 100:cbbeb26dbd92 2451
Kojto 100:cbbeb26dbd92 2452 /* Check of single flag */
Kojto 100:cbbeb26dbd92 2453 #define IS_ADC_IT(IT) (((IT) == ADC_IT_EOC ) || \
Kojto 100:cbbeb26dbd92 2454 ((IT) == ADC_IT_JEOC) || \
Kojto 100:cbbeb26dbd92 2455 ((IT) == ADC_IT_AWD ) )
Kojto 100:cbbeb26dbd92 2456 /**
Kojto 100:cbbeb26dbd92 2457 * @}
Kojto 100:cbbeb26dbd92 2458 */
Kojto 100:cbbeb26dbd92 2459
Kojto 100:cbbeb26dbd92 2460 /** @defgroup ADCEx_flags_definition ADC Extended Flags Definition
Kojto 100:cbbeb26dbd92 2461 * @{
Kojto 100:cbbeb26dbd92 2462 */
Kojto 100:cbbeb26dbd92 2463 #define ADC_FLAG_AWD ADC_SR_AWD /*!< ADC Analog watchdog flag */
Kojto 100:cbbeb26dbd92 2464 #define ADC_FLAG_EOC ADC_SR_EOC /*!< ADC End of Regular conversion flag */
Kojto 100:cbbeb26dbd92 2465 #define ADC_FLAG_JEOC ADC_SR_JEOC /*!< ADC End of Injected conversion flag */
Kojto 100:cbbeb26dbd92 2466 #define ADC_FLAG_JSTRT ADC_SR_JSTRT /*!< ADC Injected group start flag */
Kojto 100:cbbeb26dbd92 2467 #define ADC_FLAG_STRT ADC_SR_STRT /*!< ADC Regular group start flag */
Kojto 100:cbbeb26dbd92 2468
Kojto 100:cbbeb26dbd92 2469 /* Combination of all post-conversion flags bits: EOC/EOS, JEOC/JEOS, OVR, AWDx */
Kojto 100:cbbeb26dbd92 2470 #define ADC_FLAG_POSTCONV_ALL (ADC_FLAG_EOC | ADC_FLAG_JEOC | ADC_FLAG_AWD )
Kojto 100:cbbeb26dbd92 2471
Kojto 100:cbbeb26dbd92 2472 /* Check of single flag */
Kojto 100:cbbeb26dbd92 2473 #define IS_ADC_FLAG(FLAG) (((FLAG) == ADC_FLAG_AWD) || \
Kojto 100:cbbeb26dbd92 2474 ((FLAG) == ADC_FLAG_EOC) || \
Kojto 100:cbbeb26dbd92 2475 ((FLAG) == ADC_FLAG_JEOC) || \
Kojto 100:cbbeb26dbd92 2476 ((FLAG) == ADC_FLAG_JSTRT) || \
Kojto 100:cbbeb26dbd92 2477 ((FLAG) == ADC_FLAG_STRT) )
Kojto 100:cbbeb26dbd92 2478 /**
Kojto 100:cbbeb26dbd92 2479 * @}
Kojto 100:cbbeb26dbd92 2480 */
Kojto 100:cbbeb26dbd92 2481
Kojto 100:cbbeb26dbd92 2482 /** @defgroup ADCEx_range_verification ADC Extended Range Verification
Kojto 100:cbbeb26dbd92 2483 * For a unique ADC resolution: 12 bits
Kojto 100:cbbeb26dbd92 2484 * @{
Kojto 100:cbbeb26dbd92 2485 */
Kojto 100:cbbeb26dbd92 2486 #define IS_ADC_RANGE(ADC_VALUE) ((ADC_VALUE) <= ((uint32_t)0x0FFF))
Kojto 100:cbbeb26dbd92 2487 /**
Kojto 100:cbbeb26dbd92 2488 * @}
Kojto 100:cbbeb26dbd92 2489 */
Kojto 100:cbbeb26dbd92 2490
Kojto 100:cbbeb26dbd92 2491 /** @defgroup ADC_injected_nb_conv_verification ADC Injected Conversion Number Verification
Kojto 100:cbbeb26dbd92 2492 * @{
Kojto 100:cbbeb26dbd92 2493 */
Kojto 100:cbbeb26dbd92 2494 #define IS_ADC_INJECTED_NB_CONV(LENGTH) (((LENGTH) >= ((uint32_t)1)) && ((LENGTH) <= ((uint32_t)4)))
Kojto 100:cbbeb26dbd92 2495 /**
Kojto 100:cbbeb26dbd92 2496 * @}
Kojto 100:cbbeb26dbd92 2497 */
Kojto 100:cbbeb26dbd92 2498
Kojto 100:cbbeb26dbd92 2499 /** @defgroup ADC_regular_nb_conv_verification ADC Regular Conversion Number Verification
Kojto 100:cbbeb26dbd92 2500 * @{
Kojto 100:cbbeb26dbd92 2501 */
Kojto 100:cbbeb26dbd92 2502 #define IS_ADC_REGULAR_NB_CONV(LENGTH) (((LENGTH) >= ((uint32_t)1)) && ((LENGTH) <= ((uint32_t)16)))
Kojto 100:cbbeb26dbd92 2503 /**
Kojto 100:cbbeb26dbd92 2504 * @}
Kojto 100:cbbeb26dbd92 2505 */
Kojto 100:cbbeb26dbd92 2506
Kojto 100:cbbeb26dbd92 2507 /** @defgroup ADC_regular_discontinuous_mode_number_verification ADC Regular Discontinuous Mode NumberVerification
Kojto 100:cbbeb26dbd92 2508 * @{
Kojto 100:cbbeb26dbd92 2509 */
Kojto 100:cbbeb26dbd92 2510 #define IS_ADC_REGULAR_DISCONT_NUMBER(NUMBER) (((NUMBER) >= ((uint32_t)1)) && ((NUMBER) <= ((uint32_t)8)))
Kojto 100:cbbeb26dbd92 2511 /**
Kojto 100:cbbeb26dbd92 2512 * @}
Kojto 100:cbbeb26dbd92 2513 */
Kojto 100:cbbeb26dbd92 2514 #endif /* STM32F373xC || STM32F378xx */
Kojto 100:cbbeb26dbd92 2515
Kojto 100:cbbeb26dbd92 2516 /**
Kojto 100:cbbeb26dbd92 2517 * @}
Kojto 100:cbbeb26dbd92 2518 */
Kojto 100:cbbeb26dbd92 2519
Kojto 100:cbbeb26dbd92 2520 /* Exported macros -----------------------------------------------------------*/
Kojto 100:cbbeb26dbd92 2521
Kojto 100:cbbeb26dbd92 2522 /** @addtogroup ADC_Exported_Macro ADC Exported Macros
Kojto 100:cbbeb26dbd92 2523 * @{
Kojto 100:cbbeb26dbd92 2524 */
Kojto 100:cbbeb26dbd92 2525 /* Macro for internal HAL driver usage, and possibly can be used into code of */
Kojto 100:cbbeb26dbd92 2526 /* final user. */
Kojto 100:cbbeb26dbd92 2527
Kojto 100:cbbeb26dbd92 2528 #if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx) || \
Kojto 100:cbbeb26dbd92 2529 defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx) || \
Kojto 100:cbbeb26dbd92 2530 defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx) || \
Kojto 100:cbbeb26dbd92 2531 defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx)
Kojto 100:cbbeb26dbd92 2532 /**
Kojto 100:cbbeb26dbd92 2533 * @brief Verification of ADC state: enabled or disabled
Kojto 100:cbbeb26dbd92 2534 * @param __HANDLE__: ADC handle
Kojto 100:cbbeb26dbd92 2535 * @retval SET (ADC enabled) or RESET (ADC disabled)
Kojto 100:cbbeb26dbd92 2536 */
Kojto 100:cbbeb26dbd92 2537 #define __HAL_ADC_IS_ENABLED(__HANDLE__) \
Kojto 100:cbbeb26dbd92 2538 (( ((((__HANDLE__)->Instance->CR) & (ADC_CR_ADEN | ADC_CR_ADDIS)) == ADC_CR_ADEN) && \
Kojto 100:cbbeb26dbd92 2539 ((((__HANDLE__)->Instance->ISR) & ADC_FLAG_RDY) == ADC_FLAG_RDY) \
Kojto 100:cbbeb26dbd92 2540 ) ? SET : RESET)
Kojto 100:cbbeb26dbd92 2541
Kojto 100:cbbeb26dbd92 2542 /**
Kojto 100:cbbeb26dbd92 2543 * @brief Test if conversion trigger of regular group is software start
Kojto 100:cbbeb26dbd92 2544 * or external trigger.
Kojto 100:cbbeb26dbd92 2545 * @param __HANDLE__: ADC handle
Kojto 100:cbbeb26dbd92 2546 * @retval SET (software start) or RESET (external trigger)
Kojto 100:cbbeb26dbd92 2547 */
Kojto 100:cbbeb26dbd92 2548 #define __HAL_ADC_IS_SOFTWARE_START_REGULAR(__HANDLE__) \
Kojto 100:cbbeb26dbd92 2549 (((__HANDLE__)->Instance->CFGR & ADC_CFGR_EXTEN) == RESET)
Kojto 100:cbbeb26dbd92 2550
Kojto 100:cbbeb26dbd92 2551 /**
Kojto 100:cbbeb26dbd92 2552 * @brief Test if conversion trigger of injected group is software start
Kojto 100:cbbeb26dbd92 2553 * or external trigger.
Kojto 100:cbbeb26dbd92 2554 * @param __HANDLE__: ADC handle
Kojto 100:cbbeb26dbd92 2555 * @retval SET (software start) or RESET (external trigger)
Kojto 100:cbbeb26dbd92 2556 */
Kojto 100:cbbeb26dbd92 2557 #define __HAL_ADC_IS_SOFTWARE_START_INJECTED(__HANDLE__) \
Kojto 100:cbbeb26dbd92 2558 (((__HANDLE__)->Instance->JSQR & ADC_JSQR_JEXTEN) == RESET)
Kojto 100:cbbeb26dbd92 2559
Kojto 100:cbbeb26dbd92 2560 /**
Kojto 100:cbbeb26dbd92 2561 * @brief Check if no conversion on going on regular and/or injected groups
Kojto 100:cbbeb26dbd92 2562 * @param __HANDLE__: ADC handle
Kojto 100:cbbeb26dbd92 2563 * @retval SET (conversion is on going) or RESET (no conversion is on going)
Kojto 100:cbbeb26dbd92 2564 */
Kojto 100:cbbeb26dbd92 2565 #define __HAL_ADC_IS_CONVERSION_ONGOING_REGULAR_INJECTED(__HANDLE__) \
Kojto 100:cbbeb26dbd92 2566 (( (((__HANDLE__)->Instance->CR) & (ADC_CR_ADSTART | ADC_CR_JADSTART)) == RESET \
Kojto 100:cbbeb26dbd92 2567 ) ? RESET : SET)
Kojto 100:cbbeb26dbd92 2568
Kojto 100:cbbeb26dbd92 2569 /**
Kojto 100:cbbeb26dbd92 2570 * @brief Check if no conversion on going on regular group
Kojto 100:cbbeb26dbd92 2571 * @param __HANDLE__: ADC handle
Kojto 100:cbbeb26dbd92 2572 * @retval SET (conversion is on going) or RESET (no conversion is on going)
Kojto 100:cbbeb26dbd92 2573 */
Kojto 100:cbbeb26dbd92 2574 #define __HAL_ADC_IS_CONVERSION_ONGOING_REGULAR(__HANDLE__) \
Kojto 100:cbbeb26dbd92 2575 (( (((__HANDLE__)->Instance->CR) & ADC_CR_ADSTART) == RESET \
Kojto 100:cbbeb26dbd92 2576 ) ? RESET : SET)
Kojto 100:cbbeb26dbd92 2577
Kojto 100:cbbeb26dbd92 2578 /**
Kojto 100:cbbeb26dbd92 2579 * @brief Check if no conversion on going on injected group
Kojto 100:cbbeb26dbd92 2580 * @param __HANDLE__: ADC handle
Kojto 100:cbbeb26dbd92 2581 * @retval SET (conversion is on going) or RESET (no conversion is on going)
Kojto 100:cbbeb26dbd92 2582 */
Kojto 100:cbbeb26dbd92 2583 #define __HAL_ADC_IS_CONVERSION_ONGOING_INJECTED(__HANDLE__) \
Kojto 100:cbbeb26dbd92 2584 (( (((__HANDLE__)->Instance->CR) & ADC_CR_JADSTART) == RESET \
Kojto 100:cbbeb26dbd92 2585 ) ? RESET : SET)
Kojto 100:cbbeb26dbd92 2586
Kojto 100:cbbeb26dbd92 2587 /**
Kojto 100:cbbeb26dbd92 2588 * @brief Returns resolution bits in CFGR1 register: RES[1:0].
Kojto 100:cbbeb26dbd92 2589 * Returned value is among parameters to @ref ADCEx_Resolution.
Kojto 100:cbbeb26dbd92 2590 * @param __HANDLE__: ADC handle
Kojto 100:cbbeb26dbd92 2591 * @retval None
Kojto 100:cbbeb26dbd92 2592 */
Kojto 100:cbbeb26dbd92 2593 #define __HAL_ADC_GET_RESOLUTION(__HANDLE__) (((__HANDLE__)->Instance->CFGR) & ADC_CFGR_RES)
Kojto 100:cbbeb26dbd92 2594
Kojto 100:cbbeb26dbd92 2595 /** @brief Checks if the specified ADC interrupt source is enabled or disabled.
Kojto 100:cbbeb26dbd92 2596 * @param __HANDLE__: ADC handle
Kojto 100:cbbeb26dbd92 2597 * @param __INTERRUPT__: ADC interrupt source to check
Kojto 100:cbbeb26dbd92 2598 * @retval State of interruption (SET or RESET)
Kojto 100:cbbeb26dbd92 2599 */
Kojto 100:cbbeb26dbd92 2600 #define __HAL_ADC_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) \
Kojto 100:cbbeb26dbd92 2601 (( ((__HANDLE__)->Instance->IER & (__INTERRUPT__)) == (__INTERRUPT__) \
Kojto 100:cbbeb26dbd92 2602 )? SET : RESET \
Kojto 100:cbbeb26dbd92 2603 )
Kojto 100:cbbeb26dbd92 2604
Kojto 100:cbbeb26dbd92 2605 /**
Kojto 100:cbbeb26dbd92 2606 * @brief Enable the ADC end of conversion interrupt.
Kojto 100:cbbeb26dbd92 2607 * @param __HANDLE__: ADC handle
Kojto 100:cbbeb26dbd92 2608 * @param __INTERRUPT__: ADC Interrupt
Kojto 100:cbbeb26dbd92 2609 * @retval None
Kojto 100:cbbeb26dbd92 2610 */
Kojto 100:cbbeb26dbd92 2611 #define __HAL_ADC_ENABLE_IT(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->IER) |= (__INTERRUPT__))
Kojto 100:cbbeb26dbd92 2612
Kojto 100:cbbeb26dbd92 2613 /**
Kojto 100:cbbeb26dbd92 2614 * @brief Disable the ADC end of conversion interrupt.
Kojto 100:cbbeb26dbd92 2615 * @param __HANDLE__: ADC handle
Kojto 100:cbbeb26dbd92 2616 * @param __INTERRUPT__: ADC Interrupt
Kojto 100:cbbeb26dbd92 2617 * @retval None
Kojto 100:cbbeb26dbd92 2618 */
Kojto 100:cbbeb26dbd92 2619 #define __HAL_ADC_DISABLE_IT(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->IER) &= ~(__INTERRUPT__))
Kojto 100:cbbeb26dbd92 2620
Kojto 100:cbbeb26dbd92 2621 /**
Kojto 100:cbbeb26dbd92 2622 * @brief Get the selected ADC's flag status.
Kojto 100:cbbeb26dbd92 2623 * @param __HANDLE__: ADC handle
Kojto 100:cbbeb26dbd92 2624 * @param __FLAG__: ADC flag
Kojto 100:cbbeb26dbd92 2625 * @retval None
Kojto 100:cbbeb26dbd92 2626 */
Kojto 100:cbbeb26dbd92 2627 #define __HAL_ADC_GET_FLAG(__HANDLE__, __FLAG__) ((((__HANDLE__)->Instance->ISR) & (__FLAG__)) == (__FLAG__))
Kojto 100:cbbeb26dbd92 2628
Kojto 100:cbbeb26dbd92 2629 /**
Kojto 100:cbbeb26dbd92 2630 * @brief Clear the ADC's pending flags
Kojto 100:cbbeb26dbd92 2631 * @param __HANDLE__: ADC handle
Kojto 100:cbbeb26dbd92 2632 * @param __FLAG__: ADC flag
Kojto 100:cbbeb26dbd92 2633 * @retval None
Kojto 100:cbbeb26dbd92 2634 */
Kojto 100:cbbeb26dbd92 2635 /* Note: bit cleared bit by writing 1 (writing 0 has no effect on any bit of register ISR) */
Kojto 100:cbbeb26dbd92 2636 #define __HAL_ADC_CLEAR_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->ISR) = (__FLAG__))
Kojto 100:cbbeb26dbd92 2637
Kojto 100:cbbeb26dbd92 2638 /**
Kojto 100:cbbeb26dbd92 2639 * @brief Clear ADC error code (set it to error code: "no error")
Kojto 100:cbbeb26dbd92 2640 * @param __HANDLE__: ADC handle
Kojto 100:cbbeb26dbd92 2641 * @retval None
Kojto 100:cbbeb26dbd92 2642 */
Kojto 100:cbbeb26dbd92 2643 #define __HAL_ADC_CLEAR_ERRORCODE(__HANDLE__) ((__HANDLE__)->ErrorCode = HAL_ADC_ERROR_NONE)
Kojto 100:cbbeb26dbd92 2644 #endif /* STM32F302xE || STM32F303xE || STM32F398xx || */
Kojto 100:cbbeb26dbd92 2645 /* STM32F302xC || STM32F303xC || STM32F358xx || */
Kojto 100:cbbeb26dbd92 2646 /* STM32F303x8 || STM32F334x8 || STM32F328xx || */
Kojto 100:cbbeb26dbd92 2647 /* STM32F301x8 || STM32F302x8 || STM32F318xx */
Kojto 100:cbbeb26dbd92 2648
Kojto 100:cbbeb26dbd92 2649 #if defined(STM32F373xC) || defined(STM32F378xx)
Kojto 100:cbbeb26dbd92 2650 /**
Kojto 100:cbbeb26dbd92 2651 * @brief Verification of ADC state: enabled or disabled
Kojto 100:cbbeb26dbd92 2652 * @param __HANDLE__: ADC handle
Kojto 100:cbbeb26dbd92 2653 * @retval SET (ADC enabled) or RESET (ADC disabled)
Kojto 100:cbbeb26dbd92 2654 */
Kojto 100:cbbeb26dbd92 2655 #define __HAL_ADC_IS_ENABLED(__HANDLE__) \
Kojto 100:cbbeb26dbd92 2656 ((( ((__HANDLE__)->Instance->CR2 & ADC_CR2_ADON) == ADC_CR2_ADON ) \
Kojto 100:cbbeb26dbd92 2657 ) ? SET : RESET)
Kojto 100:cbbeb26dbd92 2658
Kojto 100:cbbeb26dbd92 2659 /**
Kojto 100:cbbeb26dbd92 2660 * @brief Test if conversion trigger of regular group is software start
Kojto 100:cbbeb26dbd92 2661 * or external trigger.
Kojto 100:cbbeb26dbd92 2662 * @param __HANDLE__: ADC handle
Kojto 100:cbbeb26dbd92 2663 * @retval SET (software start) or RESET (external trigger)
Kojto 100:cbbeb26dbd92 2664 */
Kojto 100:cbbeb26dbd92 2665 #define __HAL_ADC_IS_SOFTWARE_START_REGULAR(__HANDLE__) \
Kojto 100:cbbeb26dbd92 2666 (((__HANDLE__)->Instance->CR2 & ADC_CR2_EXTSEL) == ADC_SOFTWARE_START)
Kojto 100:cbbeb26dbd92 2667
Kojto 100:cbbeb26dbd92 2668 /**
Kojto 100:cbbeb26dbd92 2669 * @brief Test if conversion trigger of injected group is software start
Kojto 100:cbbeb26dbd92 2670 * or external trigger.
Kojto 100:cbbeb26dbd92 2671 * @param __HANDLE__: ADC handle
Kojto 100:cbbeb26dbd92 2672 * @retval SET (software start) or RESET (external trigger)
Kojto 100:cbbeb26dbd92 2673 */
Kojto 100:cbbeb26dbd92 2674 #define __HAL_ADC_IS_SOFTWARE_START_INJECTED(__HANDLE__) \
Kojto 100:cbbeb26dbd92 2675 (((__HANDLE__)->Instance->CR2 & ADC_CR2_JEXTSEL) == ADC_INJECTED_SOFTWARE_START)
Kojto 100:cbbeb26dbd92 2676
Kojto 100:cbbeb26dbd92 2677 /** @brief Checks if the specified ADC interrupt source is enabled or disabled.
Kojto 100:cbbeb26dbd92 2678 * @param __HANDLE__: ADC handle
Kojto 100:cbbeb26dbd92 2679 * @param __INTERRUPT__: ADC interrupt source to check
Kojto 100:cbbeb26dbd92 2680 * @retval State of interruption (SET or RESET)
Kojto 100:cbbeb26dbd92 2681 */
Kojto 100:cbbeb26dbd92 2682 #define __HAL_ADC_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) \
Kojto 100:cbbeb26dbd92 2683 (( ((__HANDLE__)->Instance->CR1 & (__INTERRUPT__)) == (__INTERRUPT__) \
Kojto 100:cbbeb26dbd92 2684 )? SET : RESET \
Kojto 100:cbbeb26dbd92 2685 )
Kojto 100:cbbeb26dbd92 2686
Kojto 100:cbbeb26dbd92 2687
Kojto 100:cbbeb26dbd92 2688 /**
Kojto 100:cbbeb26dbd92 2689 * @brief Enable the ADC end of conversion interrupt.
Kojto 100:cbbeb26dbd92 2690 * @param __HANDLE__: ADC handle
Kojto 100:cbbeb26dbd92 2691 * @param __INTERRUPT__: ADC Interrupt
Kojto 100:cbbeb26dbd92 2692 * @retval None
Kojto 100:cbbeb26dbd92 2693 */
Kojto 100:cbbeb26dbd92 2694 #define __HAL_ADC_ENABLE_IT(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->CR1) |= (__INTERRUPT__))
Kojto 100:cbbeb26dbd92 2695
Kojto 100:cbbeb26dbd92 2696 /**
Kojto 100:cbbeb26dbd92 2697 * @brief Disable the ADC end of conversion interrupt.
Kojto 100:cbbeb26dbd92 2698 * @param __HANDLE__: ADC handle
Kojto 100:cbbeb26dbd92 2699 * @param __INTERRUPT__: ADC Interrupt
Kojto 100:cbbeb26dbd92 2700 * @retval None
Kojto 100:cbbeb26dbd92 2701 */
Kojto 100:cbbeb26dbd92 2702 #define __HAL_ADC_DISABLE_IT(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->CR1) &= ~(__INTERRUPT__))
Kojto 100:cbbeb26dbd92 2703
Kojto 100:cbbeb26dbd92 2704 /**
Kojto 100:cbbeb26dbd92 2705 * @brief Get the selected ADC's flag status.
Kojto 100:cbbeb26dbd92 2706 * @param __HANDLE__: ADC handle
Kojto 100:cbbeb26dbd92 2707 * @param __FLAG__: ADC flag
Kojto 100:cbbeb26dbd92 2708 * @retval None
Kojto 100:cbbeb26dbd92 2709 */
Kojto 100:cbbeb26dbd92 2710 #define __HAL_ADC_GET_FLAG(__HANDLE__, __FLAG__) ((((__HANDLE__)->Instance->SR) & (__FLAG__)) == (__FLAG__))
Kojto 100:cbbeb26dbd92 2711
Kojto 100:cbbeb26dbd92 2712 /**
Kojto 100:cbbeb26dbd92 2713 * @brief Clear the ADC's pending flags
Kojto 100:cbbeb26dbd92 2714 * @param __HANDLE__: ADC handle
Kojto 100:cbbeb26dbd92 2715 * @param __FLAG__: ADC flag
Kojto 100:cbbeb26dbd92 2716 * @retval None
Kojto 100:cbbeb26dbd92 2717 */
Kojto 100:cbbeb26dbd92 2718 #define __HAL_ADC_CLEAR_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->SR) = ~(__FLAG__))
Kojto 100:cbbeb26dbd92 2719
Kojto 100:cbbeb26dbd92 2720 /**
Kojto 100:cbbeb26dbd92 2721 * @brief Clear ADC error code (set it to error code: "no error")
Kojto 100:cbbeb26dbd92 2722 * @param __HANDLE__: ADC handle
Kojto 100:cbbeb26dbd92 2723 * @retval None
Kojto 100:cbbeb26dbd92 2724 */
Kojto 100:cbbeb26dbd92 2725 #define __HAL_ADC_CLEAR_ERRORCODE(__HANDLE__) ((__HANDLE__)->ErrorCode = HAL_ADC_ERROR_NONE)
Kojto 100:cbbeb26dbd92 2726
Kojto 100:cbbeb26dbd92 2727 #endif /* STM32F373xC || STM32F378xx */
Kojto 100:cbbeb26dbd92 2728 /**
Kojto 100:cbbeb26dbd92 2729 * @}
Kojto 100:cbbeb26dbd92 2730 */
Kojto 100:cbbeb26dbd92 2731
Kojto 100:cbbeb26dbd92 2732
Kojto 100:cbbeb26dbd92 2733 /* Macro reserved for internal HAL driver usage, not intended to be used in */
Kojto 100:cbbeb26dbd92 2734 /* code of final user. */
Kojto 100:cbbeb26dbd92 2735
Kojto 100:cbbeb26dbd92 2736 /** @defgroup ADCEx_Exported_Macro_internal_HAL_driver ADC Extended Exported Macros (Internal)
Kojto 100:cbbeb26dbd92 2737 * @{
Kojto 100:cbbeb26dbd92 2738 */
Kojto 100:cbbeb26dbd92 2739 #if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx) || \
Kojto 100:cbbeb26dbd92 2740 defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx) || \
Kojto 100:cbbeb26dbd92 2741 defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx) || \
Kojto 100:cbbeb26dbd92 2742 defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx)
Kojto 100:cbbeb26dbd92 2743
Kojto 100:cbbeb26dbd92 2744 /**
Kojto 100:cbbeb26dbd92 2745 * @brief Set the ADC's sample time for Channels numbers between 0 and 9.
Kojto 100:cbbeb26dbd92 2746 * @param _SAMPLETIME_: Sample time parameter.
Kojto 100:cbbeb26dbd92 2747 * @param _CHANNELNB_: Channel number.
Kojto 100:cbbeb26dbd92 2748 * @retval None
Kojto 100:cbbeb26dbd92 2749 */
Kojto 100:cbbeb26dbd92 2750 #define __HAL_ADC_SMPR1(_SAMPLETIME_, _CHANNELNB_) ((_SAMPLETIME_) << (3 * (_CHANNELNB_)))
Kojto 100:cbbeb26dbd92 2751
Kojto 100:cbbeb26dbd92 2752 /**
Kojto 100:cbbeb26dbd92 2753 * @brief Set the ADC's sample time for Channels numbers between 10 and 18.
Kojto 100:cbbeb26dbd92 2754 * @param _SAMPLETIME_: Sample time parameter.
Kojto 100:cbbeb26dbd92 2755 * @param _CHANNELNB_: Channel number.
Kojto 100:cbbeb26dbd92 2756 * @retval None
Kojto 100:cbbeb26dbd92 2757 */
Kojto 100:cbbeb26dbd92 2758 #define __HAL_ADC_SMPR2(_SAMPLETIME_, _CHANNELNB_) ((_SAMPLETIME_) << (3 * ((_CHANNELNB_) - 10)))
Kojto 100:cbbeb26dbd92 2759
Kojto 100:cbbeb26dbd92 2760 /**
Kojto 100:cbbeb26dbd92 2761 * @brief Set the selected regular Channel rank for rank between 1 and 4.
Kojto 100:cbbeb26dbd92 2762 * @param _CHANNELNB_: Channel number.
Kojto 100:cbbeb26dbd92 2763 * @param _RANKNB_: Rank number.
Kojto 100:cbbeb26dbd92 2764 * @retval None
Kojto 100:cbbeb26dbd92 2765 */
Kojto 100:cbbeb26dbd92 2766 #define __HAL_ADC_SQR1_RK(_CHANNELNB_, _RANKNB_) ((_CHANNELNB_) << (6 * (_RANKNB_)))
Kojto 100:cbbeb26dbd92 2767
Kojto 100:cbbeb26dbd92 2768 /**
Kojto 100:cbbeb26dbd92 2769 * @brief Set the selected regular Channel rank for rank between 5 and 9.
Kojto 100:cbbeb26dbd92 2770 * @param _CHANNELNB_: Channel number.
Kojto 100:cbbeb26dbd92 2771 * @param _RANKNB_: Rank number.
Kojto 100:cbbeb26dbd92 2772 * @retval None
Kojto 100:cbbeb26dbd92 2773 */
Kojto 100:cbbeb26dbd92 2774 #define __HAL_ADC_SQR2_RK(_CHANNELNB_, _RANKNB_) ((_CHANNELNB_) << (6 * ((_RANKNB_) - 5)))
Kojto 100:cbbeb26dbd92 2775
Kojto 100:cbbeb26dbd92 2776 /**
Kojto 100:cbbeb26dbd92 2777 * @brief Set the selected regular Channel rank for rank between 10 and 14.
Kojto 100:cbbeb26dbd92 2778 * @param _CHANNELNB_: Channel number.
Kojto 100:cbbeb26dbd92 2779 * @param _RANKNB_: Rank number.
Kojto 100:cbbeb26dbd92 2780 * @retval None
Kojto 100:cbbeb26dbd92 2781 */
Kojto 100:cbbeb26dbd92 2782 #define __HAL_ADC_SQR3_RK(_CHANNELNB_, _RANKNB_) ((_CHANNELNB_) << (6 * ((_RANKNB_) - 10)))
Kojto 100:cbbeb26dbd92 2783
Kojto 100:cbbeb26dbd92 2784 /**
Kojto 100:cbbeb26dbd92 2785 * @brief Set the selected regular Channel rank for rank between 15 and 16.
Kojto 100:cbbeb26dbd92 2786 * @param _CHANNELNB_: Channel number.
Kojto 100:cbbeb26dbd92 2787 * @param _RANKNB_: Rank number.
Kojto 100:cbbeb26dbd92 2788 * @retval None
Kojto 100:cbbeb26dbd92 2789 */
Kojto 100:cbbeb26dbd92 2790 #define __HAL_ADC_SQR4_RK(_CHANNELNB_, _RANKNB_) ((_CHANNELNB_) << (6 * ((_RANKNB_) - 15)))
Kojto 100:cbbeb26dbd92 2791
Kojto 100:cbbeb26dbd92 2792 /**
Kojto 100:cbbeb26dbd92 2793 * @brief Set the selected injected Channel rank.
Kojto 100:cbbeb26dbd92 2794 * @param _CHANNELNB_: Channel number.
Kojto 100:cbbeb26dbd92 2795 * @param _RANKNB_: Rank number.
Kojto 100:cbbeb26dbd92 2796 * @retval None
Kojto 100:cbbeb26dbd92 2797 */
Kojto 100:cbbeb26dbd92 2798 #define __HAL_ADC_JSQR_RK(_CHANNELNB_, _RANKNB_) ((_CHANNELNB_) << (6 * (_RANKNB_) +2))
Kojto 100:cbbeb26dbd92 2799
Kojto 100:cbbeb26dbd92 2800
Kojto 100:cbbeb26dbd92 2801 /**
Kojto 100:cbbeb26dbd92 2802 * @brief Set the Analog Watchdog 1 channel.
Kojto 100:cbbeb26dbd92 2803 * @param _CHANNEL_: channel to be monitored by Analog Watchdog 1.
Kojto 100:cbbeb26dbd92 2804 * @retval None
Kojto 100:cbbeb26dbd92 2805 */
Kojto 100:cbbeb26dbd92 2806 #define __HAL_ADC_CFGR_AWD1CH(_CHANNEL_) ((_CHANNEL_) << 26)
Kojto 100:cbbeb26dbd92 2807
Kojto 100:cbbeb26dbd92 2808 /**
Kojto 100:cbbeb26dbd92 2809 * @brief Configure the channel number into Analog Watchdog 2 or 3.
Kojto 100:cbbeb26dbd92 2810 * @param _CHANNEL_: ADC Channel
Kojto 100:cbbeb26dbd92 2811 * @retval None
Kojto 100:cbbeb26dbd92 2812 */
Kojto 100:cbbeb26dbd92 2813 #define __HAL_ADC_CFGR_AWD23CR(_CHANNEL_) (1U << (_CHANNEL_))
Kojto 100:cbbeb26dbd92 2814
Kojto 100:cbbeb26dbd92 2815 /**
Kojto 100:cbbeb26dbd92 2816 * @brief Enable automatic conversion of injected group
Kojto 100:cbbeb26dbd92 2817 * @param _INJECT_AUTO_CONVERSION_: Injected automatic conversion.
Kojto 100:cbbeb26dbd92 2818 * @retval None
Kojto 100:cbbeb26dbd92 2819 */
Kojto 100:cbbeb26dbd92 2820 #define __HAL_ADC_CFGR_INJECT_AUTO_CONVERSION(_INJECT_AUTO_CONVERSION_) ((_INJECT_AUTO_CONVERSION_) << 25)
Kojto 100:cbbeb26dbd92 2821
Kojto 100:cbbeb26dbd92 2822 /**
Kojto 100:cbbeb26dbd92 2823 * @brief Enable ADC injected context queue
Kojto 100:cbbeb26dbd92 2824 * @param _INJECT_CONTEXT_QUEUE_MODE_: Injected context queue mode.
Kojto 100:cbbeb26dbd92 2825 * @retval None
Kojto 100:cbbeb26dbd92 2826 */
Kojto 100:cbbeb26dbd92 2827 #define __HAL_ADC_CFGR_INJECT_CONTEXT_QUEUE(_INJECT_CONTEXT_QUEUE_MODE_) ((_INJECT_CONTEXT_QUEUE_MODE_) << 21)
Kojto 100:cbbeb26dbd92 2828
Kojto 100:cbbeb26dbd92 2829 /**
Kojto 100:cbbeb26dbd92 2830 * @brief Enable ADC discontinuous conversion mode for injected group
Kojto 100:cbbeb26dbd92 2831 * @param _INJECT_DISCONTINUOUS_MODE_: Injected discontinuous mode.
Kojto 100:cbbeb26dbd92 2832 * @retval None
Kojto 100:cbbeb26dbd92 2833 */
Kojto 100:cbbeb26dbd92 2834 #define __HAL_ADC_CFGR_INJECT_DISCCONTINUOUS(_INJECT_DISCONTINUOUS_MODE_) ((_INJECT_DISCONTINUOUS_MODE_) << 20)
Kojto 100:cbbeb26dbd92 2835
Kojto 100:cbbeb26dbd92 2836 /**
Kojto 100:cbbeb26dbd92 2837 * @brief Enable ADC discontinuous conversion mode for regular group
Kojto 100:cbbeb26dbd92 2838 * @param _REG_DISCONTINUOUS_MODE_: Regular discontinuous mode.
Kojto 100:cbbeb26dbd92 2839 * @retval None
Kojto 100:cbbeb26dbd92 2840 */
Kojto 100:cbbeb26dbd92 2841 #define __HAL_ADC_CFGR_REG_DISCCONTINUOUS(_REG_DISCONTINUOUS_MODE_) ((_REG_DISCONTINUOUS_MODE_) << 16)
Kojto 100:cbbeb26dbd92 2842
Kojto 100:cbbeb26dbd92 2843 /**
Kojto 100:cbbeb26dbd92 2844 * @brief Configures the number of discontinuous conversions for regular group.
Kojto 100:cbbeb26dbd92 2845 * @param _NBR_DISCONTINUOUS_CONV_: Number of discontinuous conversions.
Kojto 100:cbbeb26dbd92 2846 * @retval None
Kojto 100:cbbeb26dbd92 2847 */
Kojto 100:cbbeb26dbd92 2848 #define __HAL_ADC_CFGR_DISCONTINUOUS_NUM(_NBR_DISCONTINUOUS_CONV_) (((_NBR_DISCONTINUOUS_CONV_) - 1) << 17)
Kojto 100:cbbeb26dbd92 2849
Kojto 100:cbbeb26dbd92 2850 /**
Kojto 100:cbbeb26dbd92 2851 * @brief Enable the ADC auto delay mode.
Kojto 100:cbbeb26dbd92 2852 * @param _AUTOWAIT_: Auto delay bit enable or disable.
Kojto 100:cbbeb26dbd92 2853 * @retval None
Kojto 100:cbbeb26dbd92 2854 */
Kojto 100:cbbeb26dbd92 2855 #define __HAL_ADC_CFGR_AUTOWAIT(_AUTOWAIT_) ((_AUTOWAIT_) << 14)
Kojto 100:cbbeb26dbd92 2856
Kojto 100:cbbeb26dbd92 2857 /**
Kojto 100:cbbeb26dbd92 2858 * @brief Enable ADC continuous conversion mode.
Kojto 100:cbbeb26dbd92 2859 * @param _CONTINUOUS_MODE_: Continuous mode.
Kojto 100:cbbeb26dbd92 2860 * @retval None
Kojto 100:cbbeb26dbd92 2861 */
Kojto 100:cbbeb26dbd92 2862 #define __HAL_ADC_CFGR_CONTINUOUS(_CONTINUOUS_MODE_) ((_CONTINUOUS_MODE_) << 13)
Kojto 100:cbbeb26dbd92 2863
Kojto 100:cbbeb26dbd92 2864 /**
Kojto 100:cbbeb26dbd92 2865 * @brief Enable ADC overrun mode.
Kojto 100:cbbeb26dbd92 2866 * @param _OVERRUN_MODE_: Overrun mode.
Kojto 100:cbbeb26dbd92 2867 * @retval Overrun bit setting to be programmed into CFGR register
Kojto 100:cbbeb26dbd92 2868 */
Kojto 100:cbbeb26dbd92 2869 /* Note: Bit ADC_CFGR_OVRMOD not used directly in constant */
Kojto 100:cbbeb26dbd92 2870 /* "OVR_DATA_OVERWRITTEN" to have this case defined to 0x00, to set it as the */
Kojto 100:cbbeb26dbd92 2871 /* default case to be compliant with other STM32 devices. */
Kojto 100:cbbeb26dbd92 2872 #define __HAL_ADC_CFGR_OVERRUN(_OVERRUN_MODE_) \
Kojto 100:cbbeb26dbd92 2873 ( ( (_OVERRUN_MODE_) != (OVR_DATA_PRESERVED) \
Kojto 100:cbbeb26dbd92 2874 )? (ADC_CFGR_OVRMOD) : (0x00000000) \
Kojto 100:cbbeb26dbd92 2875 )
Kojto 100:cbbeb26dbd92 2876
Kojto 100:cbbeb26dbd92 2877 /**
Kojto 100:cbbeb26dbd92 2878 * @brief Enable the ADC DMA continuous request.
Kojto 100:cbbeb26dbd92 2879 * @param _DMACONTREQ_MODE_: DMA continuous request mode.
Kojto 100:cbbeb26dbd92 2880 * @retval None
Kojto 100:cbbeb26dbd92 2881 */
Kojto 100:cbbeb26dbd92 2882 #define __HAL_ADC_CFGR_DMACONTREQ(_DMACONTREQ_MODE_) ((_DMACONTREQ_MODE_) << 1)
Kojto 100:cbbeb26dbd92 2883
Kojto 100:cbbeb26dbd92 2884 /**
Kojto 100:cbbeb26dbd92 2885 * @brief For devices with 3 ADCs or more: Defines the external trigger source
Kojto 100:cbbeb26dbd92 2886 * for regular group according to ADC into common group ADC1&ADC2 or
Kojto 100:cbbeb26dbd92 2887 * ADC3&ADC4 (some triggers with same source have different value to
Kojto 100:cbbeb26dbd92 2888 * be programmed into ADC EXTSEL bits of CFGR register).
Kojto 100:cbbeb26dbd92 2889 * Note: No risk of trigger bits value of common group ADC1&ADC2
Kojto 100:cbbeb26dbd92 2890 * misleading to another trigger at same bits value, because the 3
Kojto 100:cbbeb26dbd92 2891 * exceptions below are circular and do not point to any other trigger
Kojto 100:cbbeb26dbd92 2892 * with direct treatment.
Kojto 100:cbbeb26dbd92 2893 * For devices with 2 ADCs or less: this macro makes no change.
Kojto 100:cbbeb26dbd92 2894 * @param __HANDLE__: ADC handle
Kojto 100:cbbeb26dbd92 2895 * @param __EXT_TRIG_CONV__: External trigger selected for regular group.
Kojto 100:cbbeb26dbd92 2896 * @retval External trigger to be programmed into EXTSEL bits of CFGR register
Kojto 100:cbbeb26dbd92 2897 */
Kojto 100:cbbeb26dbd92 2898 #if defined(STM32F303xE) || defined(STM32F398xx) || \
Kojto 100:cbbeb26dbd92 2899 defined(STM32F303xC) || defined(STM32F358xx)
Kojto 100:cbbeb26dbd92 2900
Kojto 100:cbbeb26dbd92 2901 #if defined(STM32F303xC) || defined(STM32F358xx)
Kojto 100:cbbeb26dbd92 2902 #define __HAL_ADC_CFGR_EXTSEL(__HANDLE__, __EXT_TRIG_CONV__) \
Kojto 100:cbbeb26dbd92 2903 (( ((((__HANDLE__)->Instance) == ADC3) || (((__HANDLE__)->Instance) == ADC4)) \
Kojto 100:cbbeb26dbd92 2904 )? \
Kojto 100:cbbeb26dbd92 2905 ( ( (__EXT_TRIG_CONV__) == ADC_EXTERNALTRIGCONV_T2_TRGO \
Kojto 100:cbbeb26dbd92 2906 )? \
Kojto 100:cbbeb26dbd92 2907 (ADC3_4_EXTERNALTRIG_T2_TRGO) \
Kojto 100:cbbeb26dbd92 2908 : \
Kojto 100:cbbeb26dbd92 2909 ( ( (__EXT_TRIG_CONV__) == ADC_EXTERNALTRIGCONV_T3_TRGO \
Kojto 100:cbbeb26dbd92 2910 )? \
Kojto 100:cbbeb26dbd92 2911 (ADC3_4_EXTERNALTRIG_T3_TRGO) \
Kojto 100:cbbeb26dbd92 2912 : \
Kojto 100:cbbeb26dbd92 2913 ( ( (__EXT_TRIG_CONV__) == ADC_EXTERNALTRIGCONV_T8_TRGO \
Kojto 100:cbbeb26dbd92 2914 )? \
Kojto 100:cbbeb26dbd92 2915 (ADC3_4_EXTERNALTRIG_T8_TRGO) \
Kojto 100:cbbeb26dbd92 2916 : \
Kojto 100:cbbeb26dbd92 2917 (__EXT_TRIG_CONV__) \
Kojto 100:cbbeb26dbd92 2918 ) \
Kojto 100:cbbeb26dbd92 2919 ) \
Kojto 100:cbbeb26dbd92 2920 ) \
Kojto 100:cbbeb26dbd92 2921 : \
Kojto 100:cbbeb26dbd92 2922 (__EXT_TRIG_CONV__) \
Kojto 100:cbbeb26dbd92 2923 )
Kojto 100:cbbeb26dbd92 2924 #endif /* STM32F303xC || STM32F358xx */
Kojto 100:cbbeb26dbd92 2925
Kojto 100:cbbeb26dbd92 2926 #if defined(STM32F303xE) || defined(STM32F398xx)
Kojto 100:cbbeb26dbd92 2927 /* Note: Macro including external triggers specific to device STM303xE: using */
Kojto 100:cbbeb26dbd92 2928 /* Timer20 with ADC trigger input remap. */
Kojto 100:cbbeb26dbd92 2929 #define __HAL_ADC_CFGR_EXTSEL(__HANDLE__, __EXT_TRIG_CONV__) \
Kojto 100:cbbeb26dbd92 2930 (( ((((__HANDLE__)->Instance) == ADC3) || (((__HANDLE__)->Instance) == ADC4)) \
Kojto 100:cbbeb26dbd92 2931 )? \
Kojto 100:cbbeb26dbd92 2932 ( ( (__EXT_TRIG_CONV__) == ADC_EXTERNALTRIGCONV_T2_TRGO \
Kojto 100:cbbeb26dbd92 2933 )? \
Kojto 100:cbbeb26dbd92 2934 (ADC3_4_EXTERNALTRIG_T2_TRGO) \
Kojto 100:cbbeb26dbd92 2935 : \
Kojto 100:cbbeb26dbd92 2936 ( ( (__EXT_TRIG_CONV__) == ADC_EXTERNALTRIGCONV_T3_TRGO \
Kojto 100:cbbeb26dbd92 2937 )? \
Kojto 100:cbbeb26dbd92 2938 (ADC3_4_EXTERNALTRIG_T3_TRGO) \
Kojto 100:cbbeb26dbd92 2939 : \
Kojto 100:cbbeb26dbd92 2940 ( ( (__EXT_TRIG_CONV__) == ADC_EXTERNALTRIGCONV_T8_TRGO \
Kojto 100:cbbeb26dbd92 2941 )? \
Kojto 100:cbbeb26dbd92 2942 (ADC3_4_EXTERNALTRIG_T8_TRGO) \
Kojto 100:cbbeb26dbd92 2943 : \
Kojto 100:cbbeb26dbd92 2944 ( ( (__EXT_TRIG_CONV__) == ADC_EXTERNALTRIGCONV_T20_CC1 \
Kojto 100:cbbeb26dbd92 2945 )? \
Kojto 100:cbbeb26dbd92 2946 (ADC3_4_EXTERNALTRIG_T2_CC1) \
Kojto 100:cbbeb26dbd92 2947 : \
Kojto 100:cbbeb26dbd92 2948 ( ( (__EXT_TRIG_CONV__) == ADC_EXTERNALTRIGCONV_T20_TRGO \
Kojto 100:cbbeb26dbd92 2949 )? \
Kojto 100:cbbeb26dbd92 2950 (ADC3_4_EXTERNALTRIG_EXT_IT2) \
Kojto 100:cbbeb26dbd92 2951 : \
Kojto 100:cbbeb26dbd92 2952 ( ( (__EXT_TRIG_CONV__) == ADC_EXTERNALTRIGCONV_T20_TRGO2 \
Kojto 100:cbbeb26dbd92 2953 )? \
Kojto 100:cbbeb26dbd92 2954 (ADC3_4_EXTERNALTRIG_T4_CC1) \
Kojto 100:cbbeb26dbd92 2955 : \
Kojto 100:cbbeb26dbd92 2956 (__EXT_TRIG_CONV__) \
Kojto 100:cbbeb26dbd92 2957 ) \
Kojto 100:cbbeb26dbd92 2958 ) \
Kojto 100:cbbeb26dbd92 2959 ) \
Kojto 100:cbbeb26dbd92 2960 ) \
Kojto 100:cbbeb26dbd92 2961 ) \
Kojto 100:cbbeb26dbd92 2962 ) \
Kojto 100:cbbeb26dbd92 2963 : \
Kojto 100:cbbeb26dbd92 2964 (__EXT_TRIG_CONV__ & (~ADC_EXTERNALTRIGCONV_T20_MASK)) \
Kojto 100:cbbeb26dbd92 2965 )
Kojto 100:cbbeb26dbd92 2966 #endif /* STM32F303xE || STM32F398xx */
Kojto 100:cbbeb26dbd92 2967 #else
Kojto 100:cbbeb26dbd92 2968 #define __HAL_ADC_CFGR_EXTSEL(__HANDLE__, __EXT_TRIG_CONV__) \
Kojto 100:cbbeb26dbd92 2969 (__EXT_TRIG_CONV__)
Kojto 100:cbbeb26dbd92 2970 #endif /* STM32F303xE || STM32F398xx || */
Kojto 100:cbbeb26dbd92 2971 /* STM32F303xC || STM32F358xx */
Kojto 100:cbbeb26dbd92 2972
Kojto 100:cbbeb26dbd92 2973 /**
Kojto 100:cbbeb26dbd92 2974 * @brief For devices with 3 ADCs or more: Defines the external trigger source
Kojto 100:cbbeb26dbd92 2975 * for injected group according to ADC into common group ADC1&ADC2 or
Kojto 100:cbbeb26dbd92 2976 * ADC3&ADC4 (some triggers with same source have different value to
Kojto 100:cbbeb26dbd92 2977 * be programmed into ADC JEXTSEL bits of JSQR register).
Kojto 100:cbbeb26dbd92 2978 * Note: No risk of trigger bits value of common group ADC1&ADC2
Kojto 100:cbbeb26dbd92 2979 * misleading to another trigger at same bits value, because the 3
Kojto 100:cbbeb26dbd92 2980 * exceptions below are circular and do not point to any other trigger
Kojto 100:cbbeb26dbd92 2981 * with direct treatment, except trigger
Kojto 100:cbbeb26dbd92 2982 * ADC_EXTERNALTRIGINJECCONV_T4_CC3 differentiated with SW offset.
Kojto 100:cbbeb26dbd92 2983 * For devices with 2 ADCs or less: this macro makes no change.
Kojto 100:cbbeb26dbd92 2984 * @param __HANDLE__: ADC handle
Kojto 100:cbbeb26dbd92 2985 * @param __EXT_TRIG_INJECTCONV__: External trigger selected for injected group
Kojto 100:cbbeb26dbd92 2986 * @retval External trigger to be programmed into JEXTSEL bits of JSQR register
Kojto 100:cbbeb26dbd92 2987 */
Kojto 100:cbbeb26dbd92 2988 #if defined(STM32F303xC) || defined(STM32F303xE) || defined(STM32F398xx) || defined(STM32F358xx)
Kojto 100:cbbeb26dbd92 2989 #if defined(STM32F303xC) || defined(STM32F358xx)
Kojto 100:cbbeb26dbd92 2990 #define __HAL_ADC_JSQR_JEXTSEL(__HANDLE__, __EXT_TRIG_INJECTCONV__) \
Kojto 100:cbbeb26dbd92 2991 (( ((((__HANDLE__)->Instance) == ADC3) || (((__HANDLE__)->Instance) == ADC4)) \
Kojto 100:cbbeb26dbd92 2992 )? \
Kojto 100:cbbeb26dbd92 2993 ( ( (__EXT_TRIG_INJECTCONV__) == ADC_EXTERNALTRIGINJECCONV_T2_TRGO \
Kojto 100:cbbeb26dbd92 2994 )? \
Kojto 100:cbbeb26dbd92 2995 (ADC3_4_EXTERNALTRIGINJEC_T2_TRGO) \
Kojto 100:cbbeb26dbd92 2996 : \
Kojto 100:cbbeb26dbd92 2997 ( ( (__EXT_TRIG_INJECTCONV__) == ADC_EXTERNALTRIGINJECCONV_T4_TRGO \
Kojto 100:cbbeb26dbd92 2998 )? \
Kojto 100:cbbeb26dbd92 2999 (ADC3_4_EXTERNALTRIGINJEC_T4_TRGO) \
Kojto 100:cbbeb26dbd92 3000 : \
Kojto 100:cbbeb26dbd92 3001 ( ( (__EXT_TRIG_INJECTCONV__) == ADC_EXTERNALTRIGINJECCONV_T8_CC4 \
Kojto 100:cbbeb26dbd92 3002 )? \
Kojto 100:cbbeb26dbd92 3003 (ADC3_4_EXTERNALTRIGINJEC_T8_CC4) \
Kojto 100:cbbeb26dbd92 3004 : \
Kojto 100:cbbeb26dbd92 3005 ( ( (__EXT_TRIG_INJECTCONV__) == ADC_EXTERNALTRIGINJECCONV_T4_CC3 \
Kojto 100:cbbeb26dbd92 3006 )? \
Kojto 100:cbbeb26dbd92 3007 (ADC3_4_EXTERNALTRIGINJEC_T4_CC3) \
Kojto 100:cbbeb26dbd92 3008 : \
Kojto 100:cbbeb26dbd92 3009 (__EXT_TRIG_INJECTCONV__) \
Kojto 100:cbbeb26dbd92 3010 ) \
Kojto 100:cbbeb26dbd92 3011 ) \
Kojto 100:cbbeb26dbd92 3012 ) \
Kojto 100:cbbeb26dbd92 3013 ) \
Kojto 100:cbbeb26dbd92 3014 : \
Kojto 100:cbbeb26dbd92 3015 (__EXT_TRIG_INJECTCONV__) \
Kojto 100:cbbeb26dbd92 3016 )
Kojto 100:cbbeb26dbd92 3017 #endif /* STM32F303xC || STM32F358xx */
Kojto 100:cbbeb26dbd92 3018
Kojto 100:cbbeb26dbd92 3019 #if defined(STM32F303xE) || defined(STM32F398xx)
Kojto 100:cbbeb26dbd92 3020 /* Note: Macro including external triggers specific to device STM303xE: using */
Kojto 100:cbbeb26dbd92 3021 /* Timer20 with ADC trigger input remap. */
Kojto 100:cbbeb26dbd92 3022 #define __HAL_ADC_JSQR_JEXTSEL(__HANDLE__, __EXT_TRIG_INJECTCONV__) \
Kojto 100:cbbeb26dbd92 3023 (( ((((__HANDLE__)->Instance) == ADC3) || (((__HANDLE__)->Instance) == ADC4)) \
Kojto 100:cbbeb26dbd92 3024 )? \
Kojto 100:cbbeb26dbd92 3025 ( ( (__EXT_TRIG_INJECTCONV__) == ADC_EXTERNALTRIGINJECCONV_T2_TRGO \
Kojto 100:cbbeb26dbd92 3026 )? \
Kojto 100:cbbeb26dbd92 3027 (ADC3_4_EXTERNALTRIGINJEC_T2_TRGO) \
Kojto 100:cbbeb26dbd92 3028 : \
Kojto 100:cbbeb26dbd92 3029 ( ( (__EXT_TRIG_INJECTCONV__) == ADC_EXTERNALTRIGINJECCONV_T4_TRGO \
Kojto 100:cbbeb26dbd92 3030 )? \
Kojto 100:cbbeb26dbd92 3031 (ADC3_4_EXTERNALTRIGINJEC_T4_TRGO) \
Kojto 100:cbbeb26dbd92 3032 : \
Kojto 100:cbbeb26dbd92 3033 ( ( (__EXT_TRIG_INJECTCONV__) == ADC_EXTERNALTRIGINJECCONV_T8_CC4 \
Kojto 100:cbbeb26dbd92 3034 )? \
Kojto 100:cbbeb26dbd92 3035 (ADC3_4_EXTERNALTRIGINJEC_T8_CC4) \
Kojto 100:cbbeb26dbd92 3036 : \
Kojto 100:cbbeb26dbd92 3037 ( ( (__EXT_TRIG_INJECTCONV__) == ADC_EXTERNALTRIGINJECCONV_T4_CC3 \
Kojto 100:cbbeb26dbd92 3038 )? \
Kojto 100:cbbeb26dbd92 3039 (ADC3_4_EXTERNALTRIGINJEC_T4_CC3) \
Kojto 100:cbbeb26dbd92 3040 : \
Kojto 100:cbbeb26dbd92 3041 ( ( (__EXT_TRIG_INJECTCONV__) \
Kojto 100:cbbeb26dbd92 3042 == ADC_EXTERNALTRIGINJECCONV_T20_TRGO \
Kojto 100:cbbeb26dbd92 3043 )? \
Kojto 100:cbbeb26dbd92 3044 (ADC3_4_EXTERNALTRIGINJEC_T20_TRGO) \
Kojto 100:cbbeb26dbd92 3045 : \
Kojto 100:cbbeb26dbd92 3046 ( ( (__EXT_TRIG_INJECTCONV__) \
Kojto 100:cbbeb26dbd92 3047 == ADC_EXTERNALTRIGINJECCONV_T20_TRGO2 \
Kojto 100:cbbeb26dbd92 3048 )? \
Kojto 100:cbbeb26dbd92 3049 (ADC3_4_EXTERNALTRIGINJEC_T1_CC3) \
Kojto 100:cbbeb26dbd92 3050 : \
Kojto 100:cbbeb26dbd92 3051 (__EXT_TRIG_INJECTCONV__) \
Kojto 100:cbbeb26dbd92 3052 ) \
Kojto 100:cbbeb26dbd92 3053 ) \
Kojto 100:cbbeb26dbd92 3054 ) \
Kojto 100:cbbeb26dbd92 3055 ) \
Kojto 100:cbbeb26dbd92 3056 ) \
Kojto 100:cbbeb26dbd92 3057 ) \
Kojto 100:cbbeb26dbd92 3058 : \
Kojto 100:cbbeb26dbd92 3059 (__EXT_TRIG_INJECTCONV__ & (~ADC_EXTERNALTRIGCONV_T20_MASK)) \
Kojto 100:cbbeb26dbd92 3060 )
Kojto 100:cbbeb26dbd92 3061 #endif /* STM32F303xE || STM32F398xx */
Kojto 100:cbbeb26dbd92 3062 #else
Kojto 100:cbbeb26dbd92 3063 #define __HAL_ADC_JSQR_JEXTSEL(__HANDLE__, __EXT_TRIG_INJECTCONV__) \
Kojto 100:cbbeb26dbd92 3064 (__EXT_TRIG_INJECTCONV__)
Kojto 100:cbbeb26dbd92 3065 #endif /* STM32F303xE || STM32F398xx || */
Kojto 100:cbbeb26dbd92 3066 /* STM32F303xC || STM32F358xx */
Kojto 100:cbbeb26dbd92 3067
Kojto 100:cbbeb26dbd92 3068 /**
Kojto 100:cbbeb26dbd92 3069 * @brief Configure the channel number into offset OFRx register
Kojto 100:cbbeb26dbd92 3070 * @param _CHANNEL_: ADC Channel
Kojto 100:cbbeb26dbd92 3071 * @retval None
Kojto 100:cbbeb26dbd92 3072 */
Kojto 100:cbbeb26dbd92 3073 #define __HAL_ADC_OFR_CHANNEL(_CHANNEL_) ((_CHANNEL_) << 26)
Kojto 100:cbbeb26dbd92 3074
Kojto 100:cbbeb26dbd92 3075 /**
Kojto 100:cbbeb26dbd92 3076 * @brief Configure the channel number into differential mode selection register
Kojto 100:cbbeb26dbd92 3077 * @param _CHANNEL_: ADC Channel
Kojto 100:cbbeb26dbd92 3078 * @retval None
Kojto 100:cbbeb26dbd92 3079 */
Kojto 100:cbbeb26dbd92 3080 #define __HAL_ADC_DIFSEL_CHANNEL(_CHANNEL_) (1U << (_CHANNEL_))
Kojto 100:cbbeb26dbd92 3081
Kojto 100:cbbeb26dbd92 3082 /**
Kojto 100:cbbeb26dbd92 3083 * @brief Calibration factor in differential mode to be set into calibration register
Kojto 100:cbbeb26dbd92 3084 * @param _Calibration_Factor_: Calibration factor value
Kojto 100:cbbeb26dbd92 3085 * @retval None
Kojto 100:cbbeb26dbd92 3086 */
Kojto 100:cbbeb26dbd92 3087 #define __HAL_ADC_CALFACT_DIFF_SET(_Calibration_Factor_) ((_Calibration_Factor_) << 16)
Kojto 100:cbbeb26dbd92 3088
Kojto 100:cbbeb26dbd92 3089 /**
Kojto 100:cbbeb26dbd92 3090 * @brief Calibration factor in differential mode to be retrieved from calibration register
Kojto 100:cbbeb26dbd92 3091 * @param _Calibration_Factor_: Calibration factor value
Kojto 100:cbbeb26dbd92 3092 * @retval None
Kojto 100:cbbeb26dbd92 3093 */
Kojto 100:cbbeb26dbd92 3094 #define __HAL_ADC_CALFACT_DIFF_GET(_Calibration_Factor_) ((_Calibration_Factor_) >> 16)
Kojto 100:cbbeb26dbd92 3095
Kojto 100:cbbeb26dbd92 3096 /**
Kojto 100:cbbeb26dbd92 3097 * @brief Configure the analog watchdog high threshold into registers TR1, TR2 or TR3.
Kojto 100:cbbeb26dbd92 3098 * @param _Threshold_: Threshold value
Kojto 100:cbbeb26dbd92 3099 * @retval None
Kojto 100:cbbeb26dbd92 3100 */
Kojto 100:cbbeb26dbd92 3101 #define __HAL_ADC_TRX_HIGHTHRESHOLD(_Threshold_) ((_Threshold_) << 16)
Kojto 100:cbbeb26dbd92 3102
Kojto 100:cbbeb26dbd92 3103 /**
Kojto 100:cbbeb26dbd92 3104 * @brief Enable the ADC DMA continuous request for ADC multimode.
Kojto 100:cbbeb26dbd92 3105 * @param _DMAContReq_MODE_: DMA continuous request mode.
Kojto 100:cbbeb26dbd92 3106 * @retval None
Kojto 100:cbbeb26dbd92 3107 */
Kojto 100:cbbeb26dbd92 3108 #define __HAL_ADC_CCR_MULTI_DMACONTREQ(_DMAContReq_MODE_) ((_DMAContReq_MODE_) << 13)
Kojto 100:cbbeb26dbd92 3109
Kojto 100:cbbeb26dbd92 3110
Kojto 100:cbbeb26dbd92 3111 /**
Kojto 100:cbbeb26dbd92 3112 * @brief Enable the ADC peripheral
Kojto 100:cbbeb26dbd92 3113 * @param __HANDLE__: ADC handle
Kojto 100:cbbeb26dbd92 3114 * @retval None
Kojto 100:cbbeb26dbd92 3115 */
Kojto 100:cbbeb26dbd92 3116 #define __HAL_ADC_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= ADC_CR_ADEN)
Kojto 100:cbbeb26dbd92 3117
Kojto 100:cbbeb26dbd92 3118 /**
Kojto 100:cbbeb26dbd92 3119 * @brief Verification of hardware constraints before ADC can be enabled
Kojto 100:cbbeb26dbd92 3120 * @param __HANDLE__: ADC handle
Kojto 100:cbbeb26dbd92 3121 * @retval SET (ADC can be enabled) or RESET (ADC cannot be enabled)
Kojto 100:cbbeb26dbd92 3122 */
Kojto 100:cbbeb26dbd92 3123 #define __HAL_ADC_ENABLING_CONDITIONS(__HANDLE__) \
Kojto 100:cbbeb26dbd92 3124 (( ( ((__HANDLE__)->Instance->CR) & \
Kojto 100:cbbeb26dbd92 3125 (ADC_CR_ADCAL | ADC_CR_JADSTP | ADC_CR_ADSTP | ADC_CR_JADSTART | \
Kojto 100:cbbeb26dbd92 3126 ADC_CR_ADSTART | ADC_CR_ADDIS | ADC_CR_ADEN ) \
Kojto 100:cbbeb26dbd92 3127 ) == RESET \
Kojto 100:cbbeb26dbd92 3128 ) ? SET : RESET)
Kojto 100:cbbeb26dbd92 3129
Kojto 100:cbbeb26dbd92 3130 /**
Kojto 100:cbbeb26dbd92 3131 * @brief Disable the ADC peripheral
Kojto 100:cbbeb26dbd92 3132 * @param __HANDLE__: ADC handle
Kojto 100:cbbeb26dbd92 3133 * @retval None
Kojto 100:cbbeb26dbd92 3134 */
Kojto 100:cbbeb26dbd92 3135 #define __HAL_ADC_DISABLE(__HANDLE__) \
Kojto 100:cbbeb26dbd92 3136 do{ \
Kojto 100:cbbeb26dbd92 3137 (__HANDLE__)->Instance->CR |= ADC_CR_ADDIS; \
Kojto 100:cbbeb26dbd92 3138 __HAL_ADC_CLEAR_FLAG((__HANDLE__), (ADC_FLAG_EOSMP | ADC_FLAG_RDY)); \
Kojto 100:cbbeb26dbd92 3139 } while(0)
Kojto 100:cbbeb26dbd92 3140
Kojto 100:cbbeb26dbd92 3141 /**
Kojto 100:cbbeb26dbd92 3142 * @brief Verification of hardware constraints before ADC can be disabled
Kojto 100:cbbeb26dbd92 3143 * @param __HANDLE__: ADC handle
Kojto 100:cbbeb26dbd92 3144 * @retval SET (ADC can be disabled) or RESET (ADC cannot be disabled)
Kojto 100:cbbeb26dbd92 3145 */
Kojto 100:cbbeb26dbd92 3146 #define __HAL_ADC_DISABLING_CONDITIONS(__HANDLE__) \
Kojto 100:cbbeb26dbd92 3147 (( ( ((__HANDLE__)->Instance->CR) & \
Kojto 100:cbbeb26dbd92 3148 (ADC_CR_JADSTART | ADC_CR_ADSTART | ADC_CR_ADEN)) == ADC_CR_ADEN \
Kojto 100:cbbeb26dbd92 3149 ) ? SET : RESET)
Kojto 100:cbbeb26dbd92 3150
Kojto 100:cbbeb26dbd92 3151
Kojto 100:cbbeb26dbd92 3152 /**
Kojto 100:cbbeb26dbd92 3153 * @brief Shift the offset in function of the selected ADC resolution.
Kojto 100:cbbeb26dbd92 3154 * Offset has to be left-aligned on bit 11, the LSB (right bits) are set to 0
Kojto 100:cbbeb26dbd92 3155 * If resolution 12 bits, no shift.
Kojto 100:cbbeb26dbd92 3156 * If resolution 10 bits, shift of 2 ranks on the left.
Kojto 100:cbbeb26dbd92 3157 * If resolution 8 bits, shift of 4 ranks on the left.
Kojto 100:cbbeb26dbd92 3158 * If resolution 6 bits, shift of 6 ranks on the left.
Kojto 100:cbbeb26dbd92 3159 * therefore, shift = (12 - resolution) = 12 - (12- (((RES[1:0]) >> 3)*2))
Kojto 100:cbbeb26dbd92 3160 * @param __HANDLE__: ADC handle
Kojto 100:cbbeb26dbd92 3161 * @param _Offset_: Value to be shifted
Kojto 100:cbbeb26dbd92 3162 * @retval None
Kojto 100:cbbeb26dbd92 3163 */
Kojto 100:cbbeb26dbd92 3164 #define __HAL_ADC_OFFSET_SHIFT_RESOLUTION(__HANDLE__, _Offset_) \
Kojto 100:cbbeb26dbd92 3165 ((_Offset_) << ((((__HANDLE__)->Instance->CFGR & ADC_CFGR_RES) >> 3)*2))
Kojto 100:cbbeb26dbd92 3166
Kojto 100:cbbeb26dbd92 3167 /**
Kojto 100:cbbeb26dbd92 3168 * @brief Shift the AWD1 threshold in function of the selected ADC resolution.
Kojto 100:cbbeb26dbd92 3169 * Thresholds have to be left-aligned on bit 11, the LSB (right bits) are set to 0.
Kojto 100:cbbeb26dbd92 3170 * If resolution 12 bits, no shift.
Kojto 100:cbbeb26dbd92 3171 * If resolution 10 bits, shift of 2 ranks on the left.
Kojto 100:cbbeb26dbd92 3172 * If resolution 8 bits, shift of 4 ranks on the left.
Kojto 100:cbbeb26dbd92 3173 * If resolution 6 bits, shift of 6 ranks on the left.
Kojto 100:cbbeb26dbd92 3174 * therefore, shift = (12 - resolution) = 12 - (12- (((RES[1:0]) >> 3)*2))
Kojto 100:cbbeb26dbd92 3175 * @param __HANDLE__: ADC handle
Kojto 100:cbbeb26dbd92 3176 * @param _Threshold_: Value to be shifted
Kojto 100:cbbeb26dbd92 3177 * @retval None
Kojto 100:cbbeb26dbd92 3178 */
Kojto 100:cbbeb26dbd92 3179 #define __HAL_ADC_AWD1THRESHOLD_SHIFT_RESOLUTION(__HANDLE__, _Threshold_) \
Kojto 100:cbbeb26dbd92 3180 ((_Threshold_) << ((((__HANDLE__)->Instance->CFGR & ADC_CFGR_RES) >> 3)*2))
Kojto 100:cbbeb26dbd92 3181
Kojto 100:cbbeb26dbd92 3182 /**
Kojto 100:cbbeb26dbd92 3183 * @brief Shift the AWD2 and AWD3 threshold in function of the selected ADC resolution.
Kojto 100:cbbeb26dbd92 3184 * Thresholds have to be left-aligned on bit 7.
Kojto 100:cbbeb26dbd92 3185 * If resolution 12 bits, shift of 4 ranks on the right (the 4 LSB are discarded)
Kojto 100:cbbeb26dbd92 3186 * If resolution 10 bits, shift of 2 ranks on the right (the 2 LSB are discarded)
Kojto 100:cbbeb26dbd92 3187 * If resolution 8 bits, no shift.
Kojto 100:cbbeb26dbd92 3188 * If resolution 6 bits, shift of 2 ranks on the left (the 2 LSB are set to 0)
Kojto 100:cbbeb26dbd92 3189 * @param __HANDLE__: ADC handle
Kojto 100:cbbeb26dbd92 3190 * @param _Threshold_: Value to be shifted
Kojto 100:cbbeb26dbd92 3191 * @retval None
Kojto 100:cbbeb26dbd92 3192 */
Kojto 100:cbbeb26dbd92 3193 #define __HAL_ADC_AWD23THRESHOLD_SHIFT_RESOLUTION(__HANDLE__, _Threshold_) \
Kojto 100:cbbeb26dbd92 3194 ( ((__HANDLE__)->Instance->CFGR & ADC_CFGR_RES) != (ADC_CFGR_RES_1 | ADC_CFGR_RES_0) ? \
Kojto 100:cbbeb26dbd92 3195 ((_Threshold_) >> (4- ((((__HANDLE__)->Instance->CFGR & ADC_CFGR_RES) >> 3)*2))) : \
Kojto 100:cbbeb26dbd92 3196 (_Threshold_) << 2 )
Kojto 100:cbbeb26dbd92 3197
Kojto 100:cbbeb26dbd92 3198 /**
Kojto 100:cbbeb26dbd92 3199 * @brief Defines if the selected ADC is within ADC common register ADC1_2 or ADC3_4
Kojto 100:cbbeb26dbd92 3200 * if available (ADC2, ADC3, ADC4 availability depends on STM32 product)
Kojto 100:cbbeb26dbd92 3201 * @param __HANDLE__: ADC handle
Kojto 100:cbbeb26dbd92 3202 * @retval Common control register ADC1_2 or ADC3_4
Kojto 100:cbbeb26dbd92 3203 */
Kojto 100:cbbeb26dbd92 3204 #if defined(STM32F303xE) || defined(STM32F398xx) || \
Kojto 100:cbbeb26dbd92 3205 defined(STM32F303xC) || defined(STM32F358xx)
Kojto 100:cbbeb26dbd92 3206 #define __HAL_ADC_COMMON_REGISTER(__HANDLE__) \
Kojto 100:cbbeb26dbd92 3207 ( ( ((((__HANDLE__)->Instance) == ADC1) || (((__HANDLE__)->Instance) == ADC2)) \
Kojto 100:cbbeb26dbd92 3208 )? (ADC1_2_COMMON) : (ADC3_4_COMMON) \
Kojto 100:cbbeb26dbd92 3209 )
Kojto 100:cbbeb26dbd92 3210 #endif /* STM32F303xE || STM32F398xx || */
Kojto 100:cbbeb26dbd92 3211 /* STM32F303xC || STM32F358xx */
Kojto 100:cbbeb26dbd92 3212
Kojto 100:cbbeb26dbd92 3213 #if defined(STM32F302xE) || \
Kojto 100:cbbeb26dbd92 3214 defined(STM32F302xC) || \
Kojto 100:cbbeb26dbd92 3215 defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx)
Kojto 100:cbbeb26dbd92 3216 #define __HAL_ADC_COMMON_REGISTER(__HANDLE__) \
Kojto 100:cbbeb26dbd92 3217 (ADC1_2_COMMON)
Kojto 100:cbbeb26dbd92 3218 #endif /* STM32F302xE || */
Kojto 100:cbbeb26dbd92 3219 /* STM32F302xC || */
Kojto 100:cbbeb26dbd92 3220 /* STM32F303x8 || STM32F328xx || STM32F334x8 */
Kojto 100:cbbeb26dbd92 3221
Kojto 100:cbbeb26dbd92 3222 #if defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx)
Kojto 100:cbbeb26dbd92 3223 #define __HAL_ADC_COMMON_REGISTER(__HANDLE__) \
Kojto 100:cbbeb26dbd92 3224 (ADC1_COMMON)
Kojto 100:cbbeb26dbd92 3225 #endif /* STM32F301x8 || STM32F302x8 || STM32F318xx */
Kojto 100:cbbeb26dbd92 3226
Kojto 100:cbbeb26dbd92 3227 /**
Kojto 100:cbbeb26dbd92 3228 * @brief Selection of ADC common register CCR bits MULTI[4:0]corresponding to the selected ADC (applicable for devices with several ADCs)
Kojto 100:cbbeb26dbd92 3229 * @param __HANDLE__: ADC handle
Kojto 100:cbbeb26dbd92 3230 * @retval None
Kojto 100:cbbeb26dbd92 3231 */
Kojto 100:cbbeb26dbd92 3232 #if defined(STM32F303xE) || defined(STM32F398xx) || \
Kojto 100:cbbeb26dbd92 3233 defined(STM32F303xC) || defined(STM32F358xx)
Kojto 100:cbbeb26dbd92 3234 #define __HAL_ADC_COMMON_CCR_MULTI(__HANDLE__) \
Kojto 100:cbbeb26dbd92 3235 ( ( ((((__HANDLE__)->Instance) == ADC1) || (((__HANDLE__)->Instance) == ADC2)) \
Kojto 100:cbbeb26dbd92 3236 )? \
Kojto 100:cbbeb26dbd92 3237 (ADC1_2_COMMON->CCR & ADC12_CCR_MULTI) \
Kojto 100:cbbeb26dbd92 3238 : \
Kojto 100:cbbeb26dbd92 3239 (ADC3_4_COMMON->CCR & ADC34_CCR_MULTI) \
Kojto 100:cbbeb26dbd92 3240 )
Kojto 100:cbbeb26dbd92 3241 #endif /* STM32F303xE || STM32F398xx || */
Kojto 100:cbbeb26dbd92 3242 /* STM32F303xC || STM32F358xx */
Kojto 100:cbbeb26dbd92 3243
Kojto 100:cbbeb26dbd92 3244 #if defined(STM32F302xE) || \
Kojto 100:cbbeb26dbd92 3245 defined(STM32F302xC) || \
Kojto 100:cbbeb26dbd92 3246 defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx)
Kojto 100:cbbeb26dbd92 3247 #define __HAL_ADC_COMMON_CCR_MULTI(__HANDLE__) \
Kojto 100:cbbeb26dbd92 3248 (ADC1_2_COMMON->CCR & ADC12_CCR_MULTI)
Kojto 100:cbbeb26dbd92 3249 #endif /* STM32F302xE || */
Kojto 100:cbbeb26dbd92 3250 /* STM32F302xC || */
Kojto 100:cbbeb26dbd92 3251 /* STM32F303x8 || STM32F328xx || STM32F334x8 */
Kojto 100:cbbeb26dbd92 3252
Kojto 100:cbbeb26dbd92 3253 #if defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx)
Kojto 100:cbbeb26dbd92 3254 #define __HAL_ADC_COMMON_CCR_MULTI(__HANDLE__) \
Kojto 100:cbbeb26dbd92 3255 (RESET)
Kojto 100:cbbeb26dbd92 3256 #endif /* STM32F301x8 || STM32F302x8 || STM32F318xx */
Kojto 100:cbbeb26dbd92 3257
Kojto 100:cbbeb26dbd92 3258 /**
Kojto 100:cbbeb26dbd92 3259 * @brief Verification of condition for ADC start conversion: ADC must be in non-multimode, or multimode with handle of ADC master (applicable for devices with several ADCs)
Kojto 100:cbbeb26dbd92 3260 * @param __HANDLE__: ADC handle
Kojto 100:cbbeb26dbd92 3261 * @retval None
Kojto 100:cbbeb26dbd92 3262 */
Kojto 100:cbbeb26dbd92 3263 #if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx) || \
Kojto 100:cbbeb26dbd92 3264 defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx) || \
Kojto 100:cbbeb26dbd92 3265 defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx)
Kojto 100:cbbeb26dbd92 3266 #define __HAL_ADC_NONMULTIMODE_OR_MULTIMODEMASTER(__HANDLE__) \
Kojto 100:cbbeb26dbd92 3267 ((__HAL_ADC_COMMON_CCR_MULTI(__HANDLE__) == RESET) || (IS_ADC_MULTIMODE_MASTER_INSTANCE((__HANDLE__)->Instance)))
Kojto 100:cbbeb26dbd92 3268 #endif /* STM32F302xE || STM32F303xE || STM32F398xx || */
Kojto 100:cbbeb26dbd92 3269 /* STM32F302xC || STM32F303xC || STM32F358xx || */
Kojto 100:cbbeb26dbd92 3270 /* STM32F303x8 || STM32F334x8 || STM32F328xx */
Kojto 100:cbbeb26dbd92 3271
Kojto 100:cbbeb26dbd92 3272 #if defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx)
Kojto 100:cbbeb26dbd92 3273 #define __HAL_ADC_NONMULTIMODE_OR_MULTIMODEMASTER(__HANDLE__) \
Kojto 100:cbbeb26dbd92 3274 (!RESET)
Kojto 100:cbbeb26dbd92 3275 #endif /* STM32F301x8 || STM32F302x8 || STM32F318xx */
Kojto 100:cbbeb26dbd92 3276
Kojto 100:cbbeb26dbd92 3277 /**
Kojto 100:cbbeb26dbd92 3278 * @brief Set handle of the other ADC sharing the same common register ADC1_2 or ADC3_4
Kojto 100:cbbeb26dbd92 3279 * if available (ADC2, ADC3, ADC4 availability depends on STM32 product)
Kojto 100:cbbeb26dbd92 3280 * @param __HANDLE__: ADC handle
Kojto 100:cbbeb26dbd92 3281 * @param __HANDLE_OTHER_ADC__: other ADC handle
Kojto 100:cbbeb26dbd92 3282 * @retval None
Kojto 100:cbbeb26dbd92 3283 */
Kojto 100:cbbeb26dbd92 3284 #if defined(STM32F303xE) || defined(STM32F398xx) || \
Kojto 100:cbbeb26dbd92 3285 defined(STM32F303xC) || defined(STM32F358xx)
Kojto 100:cbbeb26dbd92 3286 #define __HAL_ADC_COMMON_ADC_OTHER(__HANDLE__, __HANDLE_OTHER_ADC__) \
Kojto 100:cbbeb26dbd92 3287 ( ( ((__HANDLE__)->Instance == ADC1) \
Kojto 100:cbbeb26dbd92 3288 )? \
Kojto 100:cbbeb26dbd92 3289 ((__HANDLE_OTHER_ADC__)->Instance = ADC2) \
Kojto 100:cbbeb26dbd92 3290 : \
Kojto 100:cbbeb26dbd92 3291 ( ( ((__HANDLE__)->Instance == ADC2) \
Kojto 100:cbbeb26dbd92 3292 )? \
Kojto 100:cbbeb26dbd92 3293 ((__HANDLE_OTHER_ADC__)->Instance = ADC1) \
Kojto 100:cbbeb26dbd92 3294 : \
Kojto 100:cbbeb26dbd92 3295 ( ( ((__HANDLE__)->Instance == ADC3) \
Kojto 100:cbbeb26dbd92 3296 )? \
Kojto 100:cbbeb26dbd92 3297 ((__HANDLE_OTHER_ADC__)->Instance = ADC4) \
Kojto 100:cbbeb26dbd92 3298 : \
Kojto 100:cbbeb26dbd92 3299 ( ( ((__HANDLE__)->Instance == ADC4) \
Kojto 100:cbbeb26dbd92 3300 )? \
Kojto 100:cbbeb26dbd92 3301 ((__HANDLE_OTHER_ADC__)->Instance = ADC3) \
Kojto 100:cbbeb26dbd92 3302 : \
Kojto 100:cbbeb26dbd92 3303 ((__HANDLE_OTHER_ADC__)->Instance = HAL_NULL) \
Kojto 100:cbbeb26dbd92 3304 ) \
Kojto 100:cbbeb26dbd92 3305 ) \
Kojto 100:cbbeb26dbd92 3306 ) \
Kojto 100:cbbeb26dbd92 3307 )
Kojto 100:cbbeb26dbd92 3308 #endif /* STM32F303xE || STM32F398xx || */
Kojto 100:cbbeb26dbd92 3309 /* STM32F303xC || STM32F358xx */
Kojto 100:cbbeb26dbd92 3310
Kojto 100:cbbeb26dbd92 3311 #if defined(STM32F302xE) || \
Kojto 100:cbbeb26dbd92 3312 defined(STM32F302xC) || \
Kojto 100:cbbeb26dbd92 3313 defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx)
Kojto 100:cbbeb26dbd92 3314 #define __HAL_ADC_COMMON_ADC_OTHER(__HANDLE__, __HANDLE_OTHER_ADC__) \
Kojto 100:cbbeb26dbd92 3315 ( ( ((__HANDLE__)->Instance == ADC1) \
Kojto 100:cbbeb26dbd92 3316 )? \
Kojto 100:cbbeb26dbd92 3317 ((__HANDLE_OTHER_ADC__)->Instance = ADC2) \
Kojto 100:cbbeb26dbd92 3318 : \
Kojto 100:cbbeb26dbd92 3319 ((__HANDLE_OTHER_ADC__)->Instance = ADC1) \
Kojto 100:cbbeb26dbd92 3320 )
Kojto 100:cbbeb26dbd92 3321 #endif /* STM32F302xE || */
Kojto 100:cbbeb26dbd92 3322 /* STM32F302xC || */
Kojto 100:cbbeb26dbd92 3323 /* STM32F303x8 || STM32F328xx || STM32F334x8 */
Kojto 100:cbbeb26dbd92 3324
Kojto 100:cbbeb26dbd92 3325 #if defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx)
Kojto 100:cbbeb26dbd92 3326 #define __HAL_ADC_COMMON_ADC_OTHER(__HANDLE__, __HANDLE_OTHER_ADC__) \
Kojto 100:cbbeb26dbd92 3327 ((__HANDLE_OTHER_ADC__)->Instance = HAL_NULL)
Kojto 100:cbbeb26dbd92 3328 #endif /* STM32F301x8 || STM32F302x8 || STM32F318xx */
Kojto 100:cbbeb26dbd92 3329
Kojto 100:cbbeb26dbd92 3330 /**
Kojto 100:cbbeb26dbd92 3331 * @brief Set handle of the ADC slave associated to the ADC master
Kojto 100:cbbeb26dbd92 3332 * if available (ADC2, ADC3, ADC4 availability depends on STM32 product)
Kojto 100:cbbeb26dbd92 3333 * @param __HANDLE_MASTER__: ADC master handle
Kojto 100:cbbeb26dbd92 3334 * @param __HANDLE_SLAVE__: ADC slave handle
Kojto 100:cbbeb26dbd92 3335 * @retval None
Kojto 100:cbbeb26dbd92 3336 */
Kojto 100:cbbeb26dbd92 3337 #if defined(STM32F303xE) || defined(STM32F398xx) || \
Kojto 100:cbbeb26dbd92 3338 defined(STM32F303xC) || defined(STM32F358xx)
Kojto 100:cbbeb26dbd92 3339 #define __HAL_ADC_MULTI_SLAVE(__HANDLE_MASTER__, __HANDLE_SLAVE__) \
Kojto 100:cbbeb26dbd92 3340 ( ( ((__HANDLE_MASTER__)->Instance == ADC1) \
Kojto 100:cbbeb26dbd92 3341 )? \
Kojto 100:cbbeb26dbd92 3342 ((__HANDLE_SLAVE__)->Instance = ADC2) \
Kojto 100:cbbeb26dbd92 3343 : \
Kojto 100:cbbeb26dbd92 3344 ( ( ((__HANDLE_MASTER__)->Instance == ADC3) \
Kojto 100:cbbeb26dbd92 3345 )? \
Kojto 100:cbbeb26dbd92 3346 ((__HANDLE_SLAVE__)->Instance = ADC4) \
Kojto 100:cbbeb26dbd92 3347 : \
Kojto 100:cbbeb26dbd92 3348 ((__HANDLE_SLAVE__)->Instance = HAL_NULL) \
Kojto 100:cbbeb26dbd92 3349 ) \
Kojto 100:cbbeb26dbd92 3350 )
Kojto 100:cbbeb26dbd92 3351 #endif /* STM32F303xE || STM32F398xx || */
Kojto 100:cbbeb26dbd92 3352 /* STM32F303xC || STM32F358xx */
Kojto 100:cbbeb26dbd92 3353
Kojto 100:cbbeb26dbd92 3354 #if defined(STM32F302xE) || \
Kojto 100:cbbeb26dbd92 3355 defined(STM32F302xC) || \
Kojto 100:cbbeb26dbd92 3356 defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx)
Kojto 100:cbbeb26dbd92 3357 #define __HAL_ADC_MULTI_SLAVE(__HANDLE_MASTER__, __HANDLE_SLAVE__) \
Kojto 100:cbbeb26dbd92 3358 ( ( ((__HANDLE_MASTER__)->Instance == ADC1) \
Kojto 100:cbbeb26dbd92 3359 )? \
Kojto 100:cbbeb26dbd92 3360 ((__HANDLE_SLAVE__)->Instance = ADC2) \
Kojto 100:cbbeb26dbd92 3361 : \
Kojto 100:cbbeb26dbd92 3362 ( HAL_NULL ) \
Kojto 100:cbbeb26dbd92 3363 )
Kojto 100:cbbeb26dbd92 3364 #endif /* STM32F302xE || */
Kojto 100:cbbeb26dbd92 3365 /* STM32F302xC || */
Kojto 100:cbbeb26dbd92 3366 /* STM32F303x8 || STM32F328xx || STM32F334x8 */
Kojto 100:cbbeb26dbd92 3367
Kojto 100:cbbeb26dbd92 3368 #endif /* STM32F302xE || STM32F303xE || STM32F398xx || */
Kojto 100:cbbeb26dbd92 3369 /* STM32F302xC || STM32F303xC || STM32F358xx || */
Kojto 100:cbbeb26dbd92 3370 /* STM32F303x8 || STM32F334x8 || STM32F328xx || */
Kojto 100:cbbeb26dbd92 3371 /* STM32F301x8 || STM32F302x8 || STM32F318xx */
Kojto 100:cbbeb26dbd92 3372
Kojto 100:cbbeb26dbd92 3373
Kojto 100:cbbeb26dbd92 3374 #if defined(STM32F373xC) || defined(STM32F378xx)
Kojto 100:cbbeb26dbd92 3375 /**
Kojto 100:cbbeb26dbd92 3376 * @brief Set ADC number of conversions into regular channel sequence length.
Kojto 100:cbbeb26dbd92 3377 * @param _NbrOfConversion_: Regular channel sequence length
Kojto 100:cbbeb26dbd92 3378 * @retval None
Kojto 100:cbbeb26dbd92 3379 */
Kojto 100:cbbeb26dbd92 3380 #define __HAL_ADC_SQR1_L(_NbrOfConversion_) (((_NbrOfConversion_) - (uint8_t)1) << 20)
Kojto 100:cbbeb26dbd92 3381
Kojto 100:cbbeb26dbd92 3382 /**
Kojto 100:cbbeb26dbd92 3383 * @brief Set the ADC's sample time for channel numbers between 10 and 18.
Kojto 100:cbbeb26dbd92 3384 * @param _SAMPLETIME_: Sample time parameter.
Kojto 100:cbbeb26dbd92 3385 * @param _CHANNELNB_: Channel number.
Kojto 100:cbbeb26dbd92 3386 * @retval None
Kojto 100:cbbeb26dbd92 3387 */
Kojto 100:cbbeb26dbd92 3388 #define __HAL_ADC_SMPR1(_SAMPLETIME_, _CHANNELNB_) ((_SAMPLETIME_) << (3 * ((_CHANNELNB_) - 10)))
Kojto 100:cbbeb26dbd92 3389
Kojto 100:cbbeb26dbd92 3390 /**
Kojto 100:cbbeb26dbd92 3391 * @brief Set the ADC's sample time for channel numbers between 0 and 9.
Kojto 100:cbbeb26dbd92 3392 * @param _SAMPLETIME_: Sample time parameter.
Kojto 100:cbbeb26dbd92 3393 * @param _CHANNELNB_: Channel number.
Kojto 100:cbbeb26dbd92 3394 * @retval None
Kojto 100:cbbeb26dbd92 3395 */
Kojto 100:cbbeb26dbd92 3396 #define __HAL_ADC_SMPR2(_SAMPLETIME_, _CHANNELNB_) ((_SAMPLETIME_) << (3 * (_CHANNELNB_)))
Kojto 100:cbbeb26dbd92 3397
Kojto 100:cbbeb26dbd92 3398 /**
Kojto 100:cbbeb26dbd92 3399 * @brief Set the selected regular channel rank for rank between 1 and 6.
Kojto 100:cbbeb26dbd92 3400 * @param _CHANNELNB_: Channel number.
Kojto 100:cbbeb26dbd92 3401 * @param _RANKNB_: Rank number.
Kojto 100:cbbeb26dbd92 3402 * @retval None
Kojto 100:cbbeb26dbd92 3403 */
Kojto 100:cbbeb26dbd92 3404 #define __HAL_ADC_SQR3_RK(_CHANNELNB_, _RANKNB_) ((_CHANNELNB_) << (5 * ((_RANKNB_) - 1)))
Kojto 100:cbbeb26dbd92 3405
Kojto 100:cbbeb26dbd92 3406 /**
Kojto 100:cbbeb26dbd92 3407 * @brief Set the selected regular channel rank for rank between 7 and 12.
Kojto 100:cbbeb26dbd92 3408 * @param _CHANNELNB_: Channel number.
Kojto 100:cbbeb26dbd92 3409 * @param _RANKNB_: Rank number.
Kojto 100:cbbeb26dbd92 3410 * @retval None
Kojto 100:cbbeb26dbd92 3411 */
Kojto 100:cbbeb26dbd92 3412 #define __HAL_ADC_SQR2_RK(_CHANNELNB_, _RANKNB_) ((_CHANNELNB_) << (5 * ((_RANKNB_) - 7)))
Kojto 100:cbbeb26dbd92 3413
Kojto 100:cbbeb26dbd92 3414 /**
Kojto 100:cbbeb26dbd92 3415 * @brief Set the selected regular channel rank for rank between 13 and 16.
Kojto 100:cbbeb26dbd92 3416 * @param _CHANNELNB_: Channel number.
Kojto 100:cbbeb26dbd92 3417 * @param _RANKNB_: Rank number.
Kojto 100:cbbeb26dbd92 3418 * @retval None
Kojto 100:cbbeb26dbd92 3419 */
Kojto 100:cbbeb26dbd92 3420 #define __HAL_ADC_SQR1_RK(_CHANNELNB_, _RANKNB_) ((_CHANNELNB_) << (5 * ((_RANKNB_) - 13)))
Kojto 100:cbbeb26dbd92 3421
Kojto 100:cbbeb26dbd92 3422 /**
Kojto 100:cbbeb26dbd92 3423 * @brief Set the injected sequence length.
Kojto 100:cbbeb26dbd92 3424 * @param _JSQR_JL_: Sequence length.
Kojto 100:cbbeb26dbd92 3425 * @retval None
Kojto 100:cbbeb26dbd92 3426 */
Kojto 100:cbbeb26dbd92 3427 #define __HAL_ADC_JSQR_JL(_JSQR_JL_) (((_JSQR_JL_) -1) << 20)
Kojto 100:cbbeb26dbd92 3428
Kojto 100:cbbeb26dbd92 3429 /**
Kojto 100:cbbeb26dbd92 3430 * @brief Set the selected injected Channel rank (channels sequence starting from 4-JL)
Kojto 100:cbbeb26dbd92 3431 * @param _CHANNELNB_: Channel number.
Kojto 100:cbbeb26dbd92 3432 * @param _RANKNB_: Rank number.
Kojto 100:cbbeb26dbd92 3433 * @param _JSQR_JL_: Sequence length.
Kojto 100:cbbeb26dbd92 3434 * @retval None
Kojto 100:cbbeb26dbd92 3435 */
Kojto 100:cbbeb26dbd92 3436 #define __HAL_ADC_JSQR_RK(_CHANNELNB_, _RANKNB_, _JSQR_JL_) \
Kojto 100:cbbeb26dbd92 3437 ((_CHANNELNB_) << (5 * ((4 - ((_JSQR_JL_) - (_RANKNB_))) - 1)))
Kojto 100:cbbeb26dbd92 3438
Kojto 100:cbbeb26dbd92 3439 /**
Kojto 100:cbbeb26dbd92 3440 * @brief Enable ADC continuous conversion mode.
Kojto 100:cbbeb26dbd92 3441 * @param _CONTINUOUS_MODE_: Continuous mode.
Kojto 100:cbbeb26dbd92 3442 * @retval None
Kojto 100:cbbeb26dbd92 3443 */
Kojto 100:cbbeb26dbd92 3444 #define __HAL_ADC_CR2_CONTINUOUS(_CONTINUOUS_MODE_) ((_CONTINUOUS_MODE_) << 1)
Kojto 100:cbbeb26dbd92 3445
Kojto 100:cbbeb26dbd92 3446 /**
Kojto 100:cbbeb26dbd92 3447 * @brief Configures the number of discontinuous conversions for the regular group channels.
Kojto 100:cbbeb26dbd92 3448 * @param _NBR_DISCONTINUOUS_CONV_: Number of discontinuous conversions.
Kojto 100:cbbeb26dbd92 3449 * @retval None
Kojto 100:cbbeb26dbd92 3450 */
Kojto 100:cbbeb26dbd92 3451 #define __HAL_ADC_CR1_DISCONTINUOUS_NUM(_NBR_DISCONTINUOUS_CONV_) (((_NBR_DISCONTINUOUS_CONV_) - 1) << 13)
Kojto 100:cbbeb26dbd92 3452
Kojto 100:cbbeb26dbd92 3453 /**
Kojto 100:cbbeb26dbd92 3454 * @brief Enable ADC scan mode to convert multiple ranks with sequencer.
Kojto 100:cbbeb26dbd92 3455 * @param _SCAN_MODE_: Scan conversion mode.
Kojto 100:cbbeb26dbd92 3456 * @retval None
Kojto 100:cbbeb26dbd92 3457 */
Kojto 100:cbbeb26dbd92 3458 #define __HAL_ADC_CR1_SCAN(_SCAN_MODE_) \
Kojto 100:cbbeb26dbd92 3459 ( ( (_SCAN_MODE_) == (ADC_SCAN_ENABLE) \
Kojto 100:cbbeb26dbd92 3460 )? (ADC_CR1_SCAN) : (0x00000000) \
Kojto 100:cbbeb26dbd92 3461 )
Kojto 100:cbbeb26dbd92 3462
Kojto 100:cbbeb26dbd92 3463 /**
Kojto 100:cbbeb26dbd92 3464 * @brief Calibration factor in differential mode to be set into calibration register
Kojto 100:cbbeb26dbd92 3465 * @param _Calibration_Factor_: Calibration factor value
Kojto 100:cbbeb26dbd92 3466 * @retval None
Kojto 100:cbbeb26dbd92 3467 */
Kojto 100:cbbeb26dbd92 3468 #define __HAL_ADC_CALFACT_DIFF_SET(_Calibration_Factor_) ((_Calibration_Factor_) << 16)
Kojto 100:cbbeb26dbd92 3469
Kojto 100:cbbeb26dbd92 3470 /**
Kojto 100:cbbeb26dbd92 3471 * @brief Calibration factor in differential mode to be retrieved from calibration register
Kojto 100:cbbeb26dbd92 3472 * @param _Calibration_Factor_: Calibration factor value
Kojto 100:cbbeb26dbd92 3473 * @retval None
Kojto 100:cbbeb26dbd92 3474 */
Kojto 100:cbbeb26dbd92 3475 #define __HAL_ADC_CALFACT_DIFF_GET(_Calibration_Factor_) ((_Calibration_Factor_) >> 16)
Kojto 100:cbbeb26dbd92 3476
Kojto 100:cbbeb26dbd92 3477
Kojto 100:cbbeb26dbd92 3478 /**
Kojto 100:cbbeb26dbd92 3479 * @brief Get the maximum ADC conversion cycles on all channels.
Kojto 100:cbbeb26dbd92 3480 * Returns the selected sampling time + conversion time (12.5 ADC clock cycles)
Kojto 100:cbbeb26dbd92 3481 * Approximation of sampling time within 4 ranges, returns the higher value:
Kojto 100:cbbeb26dbd92 3482 * below 7.5 cycles {1.5 cycle; 7.5 cycles},
Kojto 100:cbbeb26dbd92 3483 * between 13.5 cycles and 28.5 cycles {13.5 cycles; 28.5 cycles}
Kojto 100:cbbeb26dbd92 3484 * between 41.5 cycles and 71.5 cycles {41.5 cycles; 55.5 cycles; 71.5cycles}
Kojto 100:cbbeb26dbd92 3485 * equal to 239.5 cycles
Kojto 100:cbbeb26dbd92 3486 * Unit: ADC clock cycles
Kojto 100:cbbeb26dbd92 3487 * @param __HANDLE__: ADC handle
Kojto 100:cbbeb26dbd92 3488 * @retval ADC conversion cycles on all channels
Kojto 100:cbbeb26dbd92 3489 */
Kojto 100:cbbeb26dbd92 3490 #define __HAL_ADC_CONVCYCLES_MAX_RANGE(__HANDLE__) \
Kojto 100:cbbeb26dbd92 3491 (( (((__HANDLE__)->Instance->SMPR2 & ADC_SAMPLETIME_ALLCHANNELS_SMPR2BIT2) == RESET) && \
Kojto 100:cbbeb26dbd92 3492 (((__HANDLE__)->Instance->SMPR1 & ADC_SAMPLETIME_ALLCHANNELS_SMPR1BIT2) == RESET) ) ? \
Kojto 100:cbbeb26dbd92 3493 \
Kojto 100:cbbeb26dbd92 3494 (( (((__HANDLE__)->Instance->SMPR2 & ADC_SAMPLETIME_ALLCHANNELS_SMPR2BIT1) == RESET) && \
Kojto 100:cbbeb26dbd92 3495 (((__HANDLE__)->Instance->SMPR1 & ADC_SAMPLETIME_ALLCHANNELS_SMPR1BIT1) == RESET) ) ? \
Kojto 100:cbbeb26dbd92 3496 ADC_CONVERSIONCLOCKCYCLES_SAMPLETIME_7CYCLES5 : ADC_CONVERSIONCLOCKCYCLES_SAMPLETIME_28CYCLES5) \
Kojto 100:cbbeb26dbd92 3497 : \
Kojto 100:cbbeb26dbd92 3498 ((((((__HANDLE__)->Instance->SMPR2 & ADC_SAMPLETIME_ALLCHANNELS_SMPR2BIT1) == RESET) && \
Kojto 100:cbbeb26dbd92 3499 (((__HANDLE__)->Instance->SMPR1 & ADC_SAMPLETIME_ALLCHANNELS_SMPR1BIT1) == RESET)) || \
Kojto 100:cbbeb26dbd92 3500 ((((__HANDLE__)->Instance->SMPR2 & ADC_SAMPLETIME_ALLCHANNELS_SMPR1BIT0) == RESET) && \
Kojto 100:cbbeb26dbd92 3501 (((__HANDLE__)->Instance->SMPR1 & ADC_SAMPLETIME_ALLCHANNELS_SMPR1BIT0) == RESET))) ? \
Kojto 100:cbbeb26dbd92 3502 ADC_CONVERSIONCLOCKCYCLES_SAMPLETIME_71CYCLES5 : ADC_CONVERSIONCLOCKCYCLES_SAMPLETIME_239CYCLES5) \
Kojto 100:cbbeb26dbd92 3503 )
Kojto 100:cbbeb26dbd92 3504
Kojto 100:cbbeb26dbd92 3505 /**
Kojto 100:cbbeb26dbd92 3506 * @brief Get the total ADC clock prescaler (APB2 prescaler x ADC prescaler)
Kojto 100:cbbeb26dbd92 3507 * from system clock configuration register.
Kojto 100:cbbeb26dbd92 3508 * Approximation within 3 ranges, returns the higher value:
Kojto 100:cbbeb26dbd92 3509 * total prescaler minimum: 2 (ADC presc 2, APB2 presc 0)
Kojto 100:cbbeb26dbd92 3510 * total prescaler 32 (ADC presc 0 and APB2 presc all, or
Kojto 100:cbbeb26dbd92 3511 * ADC presc {4, 6, 8} and APB2 presc {0, 2, 4})
Kojto 100:cbbeb26dbd92 3512 * total prescaler maximum: 128 (ADC presc {4, 6, 8} and APB2 presc {8, 16})
Kojto 100:cbbeb26dbd92 3513 * Unit: none (prescaler factor)
Kojto 100:cbbeb26dbd92 3514 * @param __HANDLE__: ADC handle
Kojto 100:cbbeb26dbd92 3515 * @retval ADC and APB2 prescaler factor
Kojto 100:cbbeb26dbd92 3516 */
Kojto 100:cbbeb26dbd92 3517 #define __HAL_ADC_CLOCK_PRECSALER_RANGE(__HANDLE__) \
Kojto 100:cbbeb26dbd92 3518 (( (RCC->CFGR & (RCC_CFGR_ADCPRE_1 | RCC_CFGR_ADCPRE_0)) == RESET) ? \
Kojto 100:cbbeb26dbd92 3519 (( (RCC->CFGR & RCC_CFGR_PPRE2_2) == RESET) ? 2 : 32 ) \
Kojto 100:cbbeb26dbd92 3520 : \
Kojto 100:cbbeb26dbd92 3521 (( (RCC->CFGR & RCC_CFGR_PPRE2_1) == RESET) ? 32 : 128 ) \
Kojto 100:cbbeb26dbd92 3522 )
Kojto 100:cbbeb26dbd92 3523
Kojto 100:cbbeb26dbd92 3524 /**
Kojto 100:cbbeb26dbd92 3525 * @brief Get the ADC clock prescaler from system clock configuration register.
Kojto 100:cbbeb26dbd92 3526 * @retval None
Kojto 100:cbbeb26dbd92 3527 */
Kojto 100:cbbeb26dbd92 3528 #define __HAL_ADC_GET_CLOCK_PRESCALER() (((RCC->CFGR & RCC_CFGR_ADCPRE) >> 14) +1)
Kojto 100:cbbeb26dbd92 3529
Kojto 100:cbbeb26dbd92 3530 /**
Kojto 100:cbbeb26dbd92 3531 * @brief Enable the ADC peripheral (if not already enable to not trig a conversion)
Kojto 100:cbbeb26dbd92 3532 * @param __HANDLE__: ADC handle
Kojto 100:cbbeb26dbd92 3533 * @retval None
Kojto 100:cbbeb26dbd92 3534 */
Kojto 100:cbbeb26dbd92 3535 #define __HAL_ADC_ENABLE(__HANDLE__) \
Kojto 100:cbbeb26dbd92 3536 (__HANDLE__)->Instance->CR2 |= ADC_CR2_ADON
Kojto 100:cbbeb26dbd92 3537
Kojto 100:cbbeb26dbd92 3538 /**
Kojto 100:cbbeb26dbd92 3539 * @brief Disable the ADC peripheral
Kojto 100:cbbeb26dbd92 3540 * @param __HANDLE__: ADC handle
Kojto 100:cbbeb26dbd92 3541 * @retval None
Kojto 100:cbbeb26dbd92 3542 */
Kojto 100:cbbeb26dbd92 3543 #define __HAL_ADC_DISABLE(__HANDLE__) \
Kojto 100:cbbeb26dbd92 3544 (__HANDLE__)->Instance->CR2 &= ~ADC_CR2_ADON
Kojto 100:cbbeb26dbd92 3545
Kojto 100:cbbeb26dbd92 3546 #endif /* STM32F373xC || STM32F378xx */
Kojto 100:cbbeb26dbd92 3547 /**
Kojto 100:cbbeb26dbd92 3548 * @}
Kojto 100:cbbeb26dbd92 3549 */
Kojto 100:cbbeb26dbd92 3550
Kojto 100:cbbeb26dbd92 3551
Kojto 100:cbbeb26dbd92 3552 /* Exported functions --------------------------------------------------------*/
Kojto 100:cbbeb26dbd92 3553 /** @addtogroup ADCEx_Exported_Functions ADC Extended Exported Functions
Kojto 100:cbbeb26dbd92 3554 * @{
Kojto 100:cbbeb26dbd92 3555 */
Kojto 100:cbbeb26dbd92 3556
Kojto 100:cbbeb26dbd92 3557 /* Initialization/de-initialization functions *********************************/
Kojto 100:cbbeb26dbd92 3558
Kojto 100:cbbeb26dbd92 3559 /** @addtogroup ADCEx_Exported_Functions_Group2 Extended Input and Output operation functions
Kojto 100:cbbeb26dbd92 3560 * @brief Extended IO operation functions
Kojto 100:cbbeb26dbd92 3561 * @{
Kojto 100:cbbeb26dbd92 3562 */
Kojto 100:cbbeb26dbd92 3563 /* I/O operation functions ****************************************************/
Kojto 100:cbbeb26dbd92 3564
Kojto 100:cbbeb26dbd92 3565 /* ADC calibration */
Kojto 100:cbbeb26dbd92 3566 #if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx) || \
Kojto 100:cbbeb26dbd92 3567 defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx) || \
Kojto 100:cbbeb26dbd92 3568 defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx) || \
Kojto 100:cbbeb26dbd92 3569 defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx)
Kojto 100:cbbeb26dbd92 3570 HAL_StatusTypeDef HAL_ADCEx_Calibration_Start(struct __ADC_HandleTypeDef* hadc, uint32_t SingleDiff);
Kojto 100:cbbeb26dbd92 3571 uint32_t HAL_ADCEx_Calibration_GetValue(struct __ADC_HandleTypeDef *hadc, uint32_t SingleDiff);
Kojto 100:cbbeb26dbd92 3572 HAL_StatusTypeDef HAL_ADCEx_Calibration_SetValue(struct __ADC_HandleTypeDef *hadc, uint32_t SingleDiff, uint32_t CalibrationFactor);
Kojto 100:cbbeb26dbd92 3573 #endif /* STM32F302xE || STM32F303xE || STM32F398xx || */
Kojto 100:cbbeb26dbd92 3574 /* STM32F302xC || STM32F303xC || STM32F358xx || */
Kojto 100:cbbeb26dbd92 3575 /* STM32F303x8 || STM32F334x8 || STM32F328xx || */
Kojto 100:cbbeb26dbd92 3576 /* STM32F301x8 || STM32F302x8 || STM32F318xx */
Kojto 100:cbbeb26dbd92 3577
Kojto 100:cbbeb26dbd92 3578 #if defined(STM32F373xC) || defined(STM32F378xx)
Kojto 100:cbbeb26dbd92 3579 HAL_StatusTypeDef HAL_ADCEx_Calibration_Start(struct __ADC_HandleTypeDef* hadc);
Kojto 100:cbbeb26dbd92 3580 #endif /* STM32F373xC || STM32F378xx */
Kojto 100:cbbeb26dbd92 3581
Kojto 100:cbbeb26dbd92 3582 /* Blocking mode: Polling */
Kojto 100:cbbeb26dbd92 3583 HAL_StatusTypeDef HAL_ADCEx_InjectedStart(struct __ADC_HandleTypeDef* hadc);
Kojto 100:cbbeb26dbd92 3584 HAL_StatusTypeDef HAL_ADCEx_InjectedStop(struct __ADC_HandleTypeDef* hadc);
Kojto 100:cbbeb26dbd92 3585 HAL_StatusTypeDef HAL_ADCEx_InjectedPollForConversion(struct __ADC_HandleTypeDef* hadc, uint32_t Timeout);
Kojto 100:cbbeb26dbd92 3586
Kojto 100:cbbeb26dbd92 3587 /* Non-blocking mode: Interruption */
Kojto 100:cbbeb26dbd92 3588 HAL_StatusTypeDef HAL_ADCEx_InjectedStart_IT(struct __ADC_HandleTypeDef* hadc);
Kojto 100:cbbeb26dbd92 3589 HAL_StatusTypeDef HAL_ADCEx_InjectedStop_IT(struct __ADC_HandleTypeDef* hadc);
Kojto 100:cbbeb26dbd92 3590
Kojto 100:cbbeb26dbd92 3591 #if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx) || \
Kojto 100:cbbeb26dbd92 3592 defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx) || \
Kojto 100:cbbeb26dbd92 3593 defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx) || \
Kojto 100:cbbeb26dbd92 3594 defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx)
Kojto 100:cbbeb26dbd92 3595 /* ADC multimode */
Kojto 100:cbbeb26dbd92 3596 HAL_StatusTypeDef HAL_ADCEx_MultiModeStart_DMA(struct __ADC_HandleTypeDef *hadc, uint32_t *pData, uint32_t Length);
Kojto 100:cbbeb26dbd92 3597 HAL_StatusTypeDef HAL_ADCEx_MultiModeStop_DMA(struct __ADC_HandleTypeDef *hadc);
Kojto 100:cbbeb26dbd92 3598 uint32_t HAL_ADCEx_MultiModeGetValue(struct __ADC_HandleTypeDef *hadc);
Kojto 100:cbbeb26dbd92 3599 #endif /* STM32F302xE || STM32F303xE || STM32F398xx || */
Kojto 100:cbbeb26dbd92 3600 /* STM32F302xC || STM32F303xC || STM32F358xx || */
Kojto 100:cbbeb26dbd92 3601 /* STM32F303x8 || STM32F334x8 || STM32F328xx || */
Kojto 100:cbbeb26dbd92 3602 /* STM32F301x8 || STM32F302x8 || STM32F318xx */
Kojto 100:cbbeb26dbd92 3603
Kojto 100:cbbeb26dbd92 3604 /* ADC retrieve conversion value intended to be used with polling or interruption */
Kojto 100:cbbeb26dbd92 3605 uint32_t HAL_ADCEx_InjectedGetValue(struct __ADC_HandleTypeDef* hadc, uint32_t InjectedRank);
Kojto 100:cbbeb26dbd92 3606
Kojto 100:cbbeb26dbd92 3607 /* ADC IRQHandler and Callbacks used in non-blocking modes (Interruption) */
Kojto 100:cbbeb26dbd92 3608 void HAL_ADCEx_InjectedConvCpltCallback(struct __ADC_HandleTypeDef* hadc);
Kojto 100:cbbeb26dbd92 3609
Kojto 100:cbbeb26dbd92 3610 #if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx) || \
Kojto 100:cbbeb26dbd92 3611 defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx) || \
Kojto 100:cbbeb26dbd92 3612 defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx) || \
Kojto 100:cbbeb26dbd92 3613 defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx)
Kojto 100:cbbeb26dbd92 3614 void HAL_ADCEx_InjectedQueueOverflowCallback(struct __ADC_HandleTypeDef* hadc);
Kojto 100:cbbeb26dbd92 3615 #endif /* STM32F302xE || STM32F303xE || STM32F398xx || */
Kojto 100:cbbeb26dbd92 3616 /* STM32F302xC || STM32F303xC || STM32F358xx || */
Kojto 100:cbbeb26dbd92 3617 /* STM32F303x8 || STM32F334x8 || STM32F328xx || */
Kojto 100:cbbeb26dbd92 3618 /* STM32F301x8 || STM32F302x8 || STM32F318xx */
Kojto 100:cbbeb26dbd92 3619 /**
Kojto 100:cbbeb26dbd92 3620 * @}
Kojto 100:cbbeb26dbd92 3621 */
Kojto 100:cbbeb26dbd92 3622
Kojto 100:cbbeb26dbd92 3623 /** @addtogroup ADCEx_Exported_Functions_Group3 Extended Peripheral Control functions
Kojto 100:cbbeb26dbd92 3624 * @brief Extended Peripheral Control functions
Kojto 100:cbbeb26dbd92 3625 * @{
Kojto 100:cbbeb26dbd92 3626 */
Kojto 100:cbbeb26dbd92 3627 /* Peripheral Control functions ***********************************************/
Kojto 100:cbbeb26dbd92 3628 HAL_StatusTypeDef HAL_ADCEx_InjectedConfigChannel(struct __ADC_HandleTypeDef* hadc,ADC_InjectionConfTypeDef* sConfigInjected);
Kojto 100:cbbeb26dbd92 3629
Kojto 100:cbbeb26dbd92 3630 #if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx) || \
Kojto 100:cbbeb26dbd92 3631 defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx) || \
Kojto 100:cbbeb26dbd92 3632 defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx) || \
Kojto 100:cbbeb26dbd92 3633 defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx)
Kojto 100:cbbeb26dbd92 3634 HAL_StatusTypeDef HAL_ADCEx_MultiModeConfigChannel(struct __ADC_HandleTypeDef *hadc, ADC_MultiModeTypeDef *multimode);
Kojto 100:cbbeb26dbd92 3635 #endif /* STM32F302xE || STM32F303xE || STM32F398xx || */
Kojto 100:cbbeb26dbd92 3636 /* STM32F302xC || STM32F303xC || STM32F358xx || */
Kojto 100:cbbeb26dbd92 3637 /* STM32F303x8 || STM32F334x8 || STM32F328xx || */
Kojto 100:cbbeb26dbd92 3638 /* STM32F301x8 || STM32F302x8 || STM32F318xx */
Kojto 100:cbbeb26dbd92 3639 /**
Kojto 100:cbbeb26dbd92 3640 * @}
Kojto 100:cbbeb26dbd92 3641 */
Kojto 100:cbbeb26dbd92 3642
Kojto 100:cbbeb26dbd92 3643 /**
Kojto 100:cbbeb26dbd92 3644 * @}
Kojto 100:cbbeb26dbd92 3645 */
Kojto 100:cbbeb26dbd92 3646
Kojto 100:cbbeb26dbd92 3647 /**
Kojto 100:cbbeb26dbd92 3648 * @}
Kojto 100:cbbeb26dbd92 3649 */
Kojto 100:cbbeb26dbd92 3650
Kojto 100:cbbeb26dbd92 3651 /**
Kojto 100:cbbeb26dbd92 3652 * @}
Kojto 100:cbbeb26dbd92 3653 */
Kojto 100:cbbeb26dbd92 3654
Kojto 100:cbbeb26dbd92 3655 #ifdef __cplusplus
Kojto 100:cbbeb26dbd92 3656 }
Kojto 100:cbbeb26dbd92 3657 #endif
Kojto 100:cbbeb26dbd92 3658
Kojto 100:cbbeb26dbd92 3659 #endif /*__STM32F3xx_ADC_H */
Kojto 100:cbbeb26dbd92 3660
Kojto 100:cbbeb26dbd92 3661
Kojto 100:cbbeb26dbd92 3662 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/