A simple 128x32 graphical LCD program to quickstart with LCD on ARM mbed IoT Starter Kit. This requires mbed Applciation Shield with FRDM-K64F platform.

Dependencies:   C12832

Committer:
tushki7
Date:
Sun Apr 12 15:45:52 2015 +0000
Revision:
1:eb68c94a8ee5
Parent:
0:60d829a0353a
A simple 128x32 LCD program with ARM mbed IoT Starter Kit;

Who changed what in which revision?

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