The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Committer:
AnnaBridge
Date:
Thu Jul 06 15:30:22 2017 +0100
Revision:
146:22da6e220af6
Child:
163:e59c8e839560
Release 146 of the mbed library.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 146:22da6e220af6 1 /**
AnnaBridge 146:22da6e220af6 2 ******************************************************************************
AnnaBridge 146:22da6e220af6 3 * @file stm32f4xx_hal_adc_ex.h
AnnaBridge 146:22da6e220af6 4 * @author MCD Application Team
AnnaBridge 146:22da6e220af6 5 * @version V1.7.1
AnnaBridge 146:22da6e220af6 6 * @date 14-April-2017
AnnaBridge 146:22da6e220af6 7 * @brief Header file of ADC HAL module.
AnnaBridge 146:22da6e220af6 8 ******************************************************************************
AnnaBridge 146:22da6e220af6 9 * @attention
AnnaBridge 146:22da6e220af6 10 *
AnnaBridge 146:22da6e220af6 11 * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
AnnaBridge 146:22da6e220af6 12 *
AnnaBridge 146:22da6e220af6 13 * Redistribution and use in source and binary forms, with or without modification,
AnnaBridge 146:22da6e220af6 14 * are permitted provided that the following conditions are met:
AnnaBridge 146:22da6e220af6 15 * 1. Redistributions of source code must retain the above copyright notice,
AnnaBridge 146:22da6e220af6 16 * this list of conditions and the following disclaimer.
AnnaBridge 146:22da6e220af6 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
AnnaBridge 146:22da6e220af6 18 * this list of conditions and the following disclaimer in the documentation
AnnaBridge 146:22da6e220af6 19 * and/or other materials provided with the distribution.
AnnaBridge 146:22da6e220af6 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
AnnaBridge 146:22da6e220af6 21 * may be used to endorse or promote products derived from this software
AnnaBridge 146:22da6e220af6 22 * without specific prior written permission.
AnnaBridge 146:22da6e220af6 23 *
AnnaBridge 146:22da6e220af6 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AnnaBridge 146:22da6e220af6 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
AnnaBridge 146:22da6e220af6 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
AnnaBridge 146:22da6e220af6 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
AnnaBridge 146:22da6e220af6 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
AnnaBridge 146:22da6e220af6 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
AnnaBridge 146:22da6e220af6 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
AnnaBridge 146:22da6e220af6 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
AnnaBridge 146:22da6e220af6 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
AnnaBridge 146:22da6e220af6 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
AnnaBridge 146:22da6e220af6 34 *
AnnaBridge 146:22da6e220af6 35 ******************************************************************************
AnnaBridge 146:22da6e220af6 36 */
AnnaBridge 146:22da6e220af6 37
AnnaBridge 146:22da6e220af6 38 /* Define to prevent recursive inclusion -------------------------------------*/
AnnaBridge 146:22da6e220af6 39 #ifndef __STM32F4xx_ADC_EX_H
AnnaBridge 146:22da6e220af6 40 #define __STM32F4xx_ADC_EX_H
AnnaBridge 146:22da6e220af6 41
AnnaBridge 146:22da6e220af6 42 #ifdef __cplusplus
AnnaBridge 146:22da6e220af6 43 extern "C" {
AnnaBridge 146:22da6e220af6 44 #endif
AnnaBridge 146:22da6e220af6 45
AnnaBridge 146:22da6e220af6 46 /* Includes ------------------------------------------------------------------*/
AnnaBridge 146:22da6e220af6 47 #include "stm32f4xx_hal_def.h"
AnnaBridge 146:22da6e220af6 48
AnnaBridge 146:22da6e220af6 49 /** @addtogroup STM32F4xx_HAL_Driver
AnnaBridge 146:22da6e220af6 50 * @{
AnnaBridge 146:22da6e220af6 51 */
AnnaBridge 146:22da6e220af6 52
AnnaBridge 146:22da6e220af6 53 /** @addtogroup ADCEx
AnnaBridge 146:22da6e220af6 54 * @{
AnnaBridge 146:22da6e220af6 55 */
AnnaBridge 146:22da6e220af6 56
AnnaBridge 146:22da6e220af6 57 /* Exported types ------------------------------------------------------------*/
AnnaBridge 146:22da6e220af6 58 /** @defgroup ADCEx_Exported_Types ADC Exported Types
AnnaBridge 146:22da6e220af6 59 * @{
AnnaBridge 146:22da6e220af6 60 */
AnnaBridge 146:22da6e220af6 61
AnnaBridge 146:22da6e220af6 62 /**
AnnaBridge 146:22da6e220af6 63 * @brief ADC Configuration injected Channel structure definition
AnnaBridge 146:22da6e220af6 64 * @note Parameters of this structure are shared within 2 scopes:
AnnaBridge 146:22da6e220af6 65 * - Scope channel: InjectedChannel, InjectedRank, InjectedSamplingTime, InjectedOffset
AnnaBridge 146:22da6e220af6 66 * - Scope injected group (affects all channels of injected group): InjectedNbrOfConversion, InjectedDiscontinuousConvMode,
AnnaBridge 146:22da6e220af6 67 * AutoInjectedConv, ExternalTrigInjecConvEdge, ExternalTrigInjecConv.
AnnaBridge 146:22da6e220af6 68 * @note The setting of these parameters with function HAL_ADCEx_InjectedConfigChannel() is conditioned to ADC state.
AnnaBridge 146:22da6e220af6 69 * ADC state can be either:
AnnaBridge 146:22da6e220af6 70 * - For all parameters: ADC disabled
AnnaBridge 146:22da6e220af6 71 * - For all except parameters 'InjectedDiscontinuousConvMode' and 'AutoInjectedConv': ADC enabled without conversion on going on injected group.
AnnaBridge 146:22da6e220af6 72 * - For parameters 'ExternalTrigInjecConv' and 'ExternalTrigInjecConvEdge': ADC enabled, even with conversion on going on injected group.
AnnaBridge 146:22da6e220af6 73 */
AnnaBridge 146:22da6e220af6 74 typedef struct
AnnaBridge 146:22da6e220af6 75 {
AnnaBridge 146:22da6e220af6 76 uint32_t InjectedChannel; /*!< Selection of ADC channel to configure
AnnaBridge 146:22da6e220af6 77 This parameter can be a value of @ref ADC_channels
AnnaBridge 146:22da6e220af6 78 Note: Depending on devices, some channels may not be available on package pins. Refer to device datasheet for channels availability. */
AnnaBridge 146:22da6e220af6 79 uint32_t InjectedRank; /*!< Rank in the injected group sequencer
AnnaBridge 146:22da6e220af6 80 This parameter must be a value of @ref ADCEx_injected_rank
AnnaBridge 146:22da6e220af6 81 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) */
AnnaBridge 146:22da6e220af6 82 uint32_t InjectedSamplingTime; /*!< Sampling time value to be set for the selected channel.
AnnaBridge 146:22da6e220af6 83 Unit: ADC clock cycles
AnnaBridge 146:22da6e220af6 84 Conversion time is the addition of sampling time and processing time (12 ADC clock cycles at ADC resolution 12 bits, 11 cycles at 10 bits, 9 cycles at 8 bits, 7 cycles at 6 bits).
AnnaBridge 146:22da6e220af6 85 This parameter can be a value of @ref ADC_sampling_times
AnnaBridge 146:22da6e220af6 86 Caution: This parameter updates the parameter property of the channel, that can be used into regular and/or injected groups.
AnnaBridge 146:22da6e220af6 87 If this same channel has been previously configured in the other group (regular/injected), it will be updated to last setting.
AnnaBridge 146:22da6e220af6 88 Note: In case of usage of internal measurement channels (VrefInt/Vbat/TempSensor),
AnnaBridge 146:22da6e220af6 89 sampling time constraints must be respected (sampling time can be adjusted in function of ADC clock frequency and sampling time setting)
AnnaBridge 146:22da6e220af6 90 Refer to device datasheet for timings values, parameters TS_vrefint, TS_temp (values rough order: 4us min). */
AnnaBridge 146:22da6e220af6 91 uint32_t InjectedOffset; /*!< Defines the offset to be subtracted from the raw converted data (for channels set on injected group only).
AnnaBridge 146:22da6e220af6 92 Offset value must be a positive number.
AnnaBridge 146:22da6e220af6 93 Depending of ADC resolution selected (12, 10, 8 or 6 bits),
AnnaBridge 146:22da6e220af6 94 this parameter must be a number between Min_Data = 0x000 and Max_Data = 0xFFF, 0x3FF, 0xFF or 0x3F respectively. */
AnnaBridge 146:22da6e220af6 95 uint32_t InjectedNbrOfConversion; /*!< Specifies the number of ranks that will be converted within the injected group sequencer.
AnnaBridge 146:22da6e220af6 96 To use the injected group sequencer and convert several ranks, parameter 'ScanConvMode' must be enabled.
AnnaBridge 146:22da6e220af6 97 This parameter must be a number between Min_Data = 1 and Max_Data = 4.
AnnaBridge 146:22da6e220af6 98 Caution: this setting impacts the entire injected group. Therefore, call of HAL_ADCEx_InjectedConfigChannel() to
AnnaBridge 146:22da6e220af6 99 configure a channel on injected group can impact the configuration of other channels previously set. */
AnnaBridge 146:22da6e220af6 100 uint32_t InjectedDiscontinuousConvMode; /*!< Specifies whether the conversions sequence of injected group is performed in Complete-sequence/Discontinuous-sequence (main sequence subdivided in successive parts).
AnnaBridge 146:22da6e220af6 101 Discontinuous mode is used only if sequencer is enabled (parameter 'ScanConvMode'). If sequencer is disabled, this parameter is discarded.
AnnaBridge 146:22da6e220af6 102 Discontinuous mode can be enabled only if continuous mode is disabled. If continuous mode is enabled, this parameter setting is discarded.
AnnaBridge 146:22da6e220af6 103 This parameter can be set to ENABLE or DISABLE.
AnnaBridge 146:22da6e220af6 104 Note: For injected group, number of discontinuous ranks increment is fixed to one-by-one.
AnnaBridge 146:22da6e220af6 105 Caution: this setting impacts the entire injected group. Therefore, call of HAL_ADCEx_InjectedConfigChannel() to
AnnaBridge 146:22da6e220af6 106 configure a channel on injected group can impact the configuration of other channels previously set. */
AnnaBridge 146:22da6e220af6 107 uint32_t AutoInjectedConv; /*!< Enables or disables the selected ADC automatic injected group conversion after regular one
AnnaBridge 146:22da6e220af6 108 This parameter can be set to ENABLE or DISABLE.
AnnaBridge 146:22da6e220af6 109 Note: To use Automatic injected conversion, discontinuous mode must be disabled ('DiscontinuousConvMode' and 'InjectedDiscontinuousConvMode' set to DISABLE)
AnnaBridge 146:22da6e220af6 110 Note: To use Automatic injected conversion, injected group external triggers must be disabled ('ExternalTrigInjecConv' set to ADC_SOFTWARE_START)
AnnaBridge 146:22da6e220af6 111 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.
AnnaBridge 146:22da6e220af6 112 To maintain JAUTO always enabled, DMA must be configured in circular mode.
AnnaBridge 146:22da6e220af6 113 Caution: this setting impacts the entire injected group. Therefore, call of HAL_ADCEx_InjectedConfigChannel() to
AnnaBridge 146:22da6e220af6 114 configure a channel on injected group can impact the configuration of other channels previously set. */
AnnaBridge 146:22da6e220af6 115 uint32_t ExternalTrigInjecConv; /*!< Selects the external event used to trigger the conversion start of injected group.
AnnaBridge 146:22da6e220af6 116 If set to ADC_INJECTED_SOFTWARE_START, external triggers are disabled.
AnnaBridge 146:22da6e220af6 117 If set to external trigger source, triggering is on event rising edge.
AnnaBridge 146:22da6e220af6 118 This parameter can be a value of @ref ADCEx_External_trigger_Source_Injected
AnnaBridge 146:22da6e220af6 119 Note: This parameter must be modified when ADC is disabled (before ADC start conversion or after ADC stop conversion).
AnnaBridge 146:22da6e220af6 120 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)
AnnaBridge 146:22da6e220af6 121 Caution: this setting impacts the entire injected group. Therefore, call of HAL_ADCEx_InjectedConfigChannel() to
AnnaBridge 146:22da6e220af6 122 configure a channel on injected group can impact the configuration of other channels previously set. */
AnnaBridge 146:22da6e220af6 123 uint32_t ExternalTrigInjecConvEdge; /*!< Selects the external trigger edge of injected group.
AnnaBridge 146:22da6e220af6 124 This parameter can be a value of @ref ADCEx_External_trigger_edge_Injected.
AnnaBridge 146:22da6e220af6 125 If trigger is set to ADC_INJECTED_SOFTWARE_START, this parameter is discarded.
AnnaBridge 146:22da6e220af6 126 Caution: this setting impacts the entire injected group. Therefore, call of HAL_ADCEx_InjectedConfigChannel() to
AnnaBridge 146:22da6e220af6 127 configure a channel on injected group can impact the configuration of other channels previously set. */
AnnaBridge 146:22da6e220af6 128 }ADC_InjectionConfTypeDef;
AnnaBridge 146:22da6e220af6 129
AnnaBridge 146:22da6e220af6 130 /**
AnnaBridge 146:22da6e220af6 131 * @brief ADC Configuration multi-mode structure definition
AnnaBridge 146:22da6e220af6 132 */
AnnaBridge 146:22da6e220af6 133 typedef struct
AnnaBridge 146:22da6e220af6 134 {
AnnaBridge 146:22da6e220af6 135 uint32_t Mode; /*!< Configures the ADC to operate in independent or multi mode.
AnnaBridge 146:22da6e220af6 136 This parameter can be a value of @ref ADCEx_Common_mode */
AnnaBridge 146:22da6e220af6 137 uint32_t DMAAccessMode; /*!< Configures the Direct memory access mode for multi ADC mode.
AnnaBridge 146:22da6e220af6 138 This parameter can be a value of @ref ADCEx_Direct_memory_access_mode_for_multi_mode */
AnnaBridge 146:22da6e220af6 139 uint32_t TwoSamplingDelay; /*!< Configures the Delay between 2 sampling phases.
AnnaBridge 146:22da6e220af6 140 This parameter can be a value of @ref ADC_delay_between_2_sampling_phases */
AnnaBridge 146:22da6e220af6 141 }ADC_MultiModeTypeDef;
AnnaBridge 146:22da6e220af6 142
AnnaBridge 146:22da6e220af6 143 /**
AnnaBridge 146:22da6e220af6 144 * @}
AnnaBridge 146:22da6e220af6 145 */
AnnaBridge 146:22da6e220af6 146
AnnaBridge 146:22da6e220af6 147 /* Exported constants --------------------------------------------------------*/
AnnaBridge 146:22da6e220af6 148 /** @defgroup ADCEx_Exported_Constants ADC Exported Constants
AnnaBridge 146:22da6e220af6 149 * @{
AnnaBridge 146:22da6e220af6 150 */
AnnaBridge 146:22da6e220af6 151
AnnaBridge 146:22da6e220af6 152 /** @defgroup ADCEx_Common_mode ADC Common Mode
AnnaBridge 146:22da6e220af6 153 * @{
AnnaBridge 146:22da6e220af6 154 */
AnnaBridge 146:22da6e220af6 155 #define ADC_MODE_INDEPENDENT 0x00000000U
AnnaBridge 146:22da6e220af6 156 #define ADC_DUALMODE_REGSIMULT_INJECSIMULT ((uint32_t)ADC_CCR_MULTI_0)
AnnaBridge 146:22da6e220af6 157 #define ADC_DUALMODE_REGSIMULT_ALTERTRIG ((uint32_t)ADC_CCR_MULTI_1)
AnnaBridge 146:22da6e220af6 158 #define ADC_DUALMODE_INJECSIMULT ((uint32_t)(ADC_CCR_MULTI_2 | ADC_CCR_MULTI_0))
AnnaBridge 146:22da6e220af6 159 #define ADC_DUALMODE_REGSIMULT ((uint32_t)(ADC_CCR_MULTI_2 | ADC_CCR_MULTI_1))
AnnaBridge 146:22da6e220af6 160 #define ADC_DUALMODE_INTERL ((uint32_t)(ADC_CCR_MULTI_2 | ADC_CCR_MULTI_1 | ADC_CCR_MULTI_0))
AnnaBridge 146:22da6e220af6 161 #define ADC_DUALMODE_ALTERTRIG ((uint32_t)(ADC_CCR_MULTI_3 | ADC_CCR_MULTI_0))
AnnaBridge 146:22da6e220af6 162 #define ADC_TRIPLEMODE_REGSIMULT_INJECSIMULT ((uint32_t)(ADC_CCR_MULTI_4 | ADC_CCR_MULTI_0))
AnnaBridge 146:22da6e220af6 163 #define ADC_TRIPLEMODE_REGSIMULT_AlterTrig ((uint32_t)(ADC_CCR_MULTI_4 | ADC_CCR_MULTI_1))
AnnaBridge 146:22da6e220af6 164 #define ADC_TRIPLEMODE_INJECSIMULT ((uint32_t)(ADC_CCR_MULTI_4 | ADC_CCR_MULTI_2 | ADC_CCR_MULTI_0))
AnnaBridge 146:22da6e220af6 165 #define ADC_TRIPLEMODE_REGSIMULT ((uint32_t)(ADC_CCR_MULTI_4 | ADC_CCR_MULTI_2 | ADC_CCR_MULTI_1))
AnnaBridge 146:22da6e220af6 166 #define ADC_TRIPLEMODE_INTERL ((uint32_t)(ADC_CCR_MULTI_4 | ADC_CCR_MULTI_2 | ADC_CCR_MULTI_1 | ADC_CCR_MULTI_0))
AnnaBridge 146:22da6e220af6 167 #define ADC_TRIPLEMODE_ALTERTRIG ((uint32_t)(ADC_CCR_MULTI_4 | ADC_CCR_MULTI_3 | ADC_CCR_MULTI_0))
AnnaBridge 146:22da6e220af6 168 /**
AnnaBridge 146:22da6e220af6 169 * @}
AnnaBridge 146:22da6e220af6 170 */
AnnaBridge 146:22da6e220af6 171
AnnaBridge 146:22da6e220af6 172 /** @defgroup ADCEx_Direct_memory_access_mode_for_multi_mode ADC Direct Memory Access Mode For Multi Mode
AnnaBridge 146:22da6e220af6 173 * @{
AnnaBridge 146:22da6e220af6 174 */
AnnaBridge 146:22da6e220af6 175 #define ADC_DMAACCESSMODE_DISABLED 0x00000000U /*!< DMA mode disabled */
AnnaBridge 146:22da6e220af6 176 #define ADC_DMAACCESSMODE_1 ((uint32_t)ADC_CCR_DMA_0) /*!< DMA mode 1 enabled (2 / 3 half-words one by one - 1 then 2 then 3)*/
AnnaBridge 146:22da6e220af6 177 #define ADC_DMAACCESSMODE_2 ((uint32_t)ADC_CCR_DMA_1) /*!< DMA mode 2 enabled (2 / 3 half-words by pairs - 2&1 then 1&3 then 3&2)*/
AnnaBridge 146:22da6e220af6 178 #define ADC_DMAACCESSMODE_3 ((uint32_t)ADC_CCR_DMA) /*!< DMA mode 3 enabled (2 / 3 bytes by pairs - 2&1 then 1&3 then 3&2) */
AnnaBridge 146:22da6e220af6 179 /**
AnnaBridge 146:22da6e220af6 180 * @}
AnnaBridge 146:22da6e220af6 181 */
AnnaBridge 146:22da6e220af6 182
AnnaBridge 146:22da6e220af6 183 /** @defgroup ADCEx_External_trigger_edge_Injected ADC External Trigger Edge Injected
AnnaBridge 146:22da6e220af6 184 * @{
AnnaBridge 146:22da6e220af6 185 */
AnnaBridge 146:22da6e220af6 186 #define ADC_EXTERNALTRIGINJECCONVEDGE_NONE 0x00000000U
AnnaBridge 146:22da6e220af6 187 #define ADC_EXTERNALTRIGINJECCONVEDGE_RISING ((uint32_t)ADC_CR2_JEXTEN_0)
AnnaBridge 146:22da6e220af6 188 #define ADC_EXTERNALTRIGINJECCONVEDGE_FALLING ((uint32_t)ADC_CR2_JEXTEN_1)
AnnaBridge 146:22da6e220af6 189 #define ADC_EXTERNALTRIGINJECCONVEDGE_RISINGFALLING ((uint32_t)ADC_CR2_JEXTEN)
AnnaBridge 146:22da6e220af6 190 /**
AnnaBridge 146:22da6e220af6 191 * @}
AnnaBridge 146:22da6e220af6 192 */
AnnaBridge 146:22da6e220af6 193
AnnaBridge 146:22da6e220af6 194 /** @defgroup ADCEx_External_trigger_Source_Injected ADC External Trigger Source Injected
AnnaBridge 146:22da6e220af6 195 * @{
AnnaBridge 146:22da6e220af6 196 */
AnnaBridge 146:22da6e220af6 197 #define ADC_EXTERNALTRIGINJECCONV_T1_CC4 0x00000000U
AnnaBridge 146:22da6e220af6 198 #define ADC_EXTERNALTRIGINJECCONV_T1_TRGO ((uint32_t)ADC_CR2_JEXTSEL_0)
AnnaBridge 146:22da6e220af6 199 #define ADC_EXTERNALTRIGINJECCONV_T2_CC1 ((uint32_t)ADC_CR2_JEXTSEL_1)
AnnaBridge 146:22da6e220af6 200 #define ADC_EXTERNALTRIGINJECCONV_T2_TRGO ((uint32_t)(ADC_CR2_JEXTSEL_1 | ADC_CR2_JEXTSEL_0))
AnnaBridge 146:22da6e220af6 201 #define ADC_EXTERNALTRIGINJECCONV_T3_CC2 ((uint32_t)ADC_CR2_JEXTSEL_2)
AnnaBridge 146:22da6e220af6 202 #define ADC_EXTERNALTRIGINJECCONV_T3_CC4 ((uint32_t)(ADC_CR2_JEXTSEL_2 | ADC_CR2_JEXTSEL_0))
AnnaBridge 146:22da6e220af6 203 #define ADC_EXTERNALTRIGINJECCONV_T4_CC1 ((uint32_t)(ADC_CR2_JEXTSEL_2 | ADC_CR2_JEXTSEL_1))
AnnaBridge 146:22da6e220af6 204 #define ADC_EXTERNALTRIGINJECCONV_T4_CC2 ((uint32_t)(ADC_CR2_JEXTSEL_2 | ADC_CR2_JEXTSEL_1 | ADC_CR2_JEXTSEL_0))
AnnaBridge 146:22da6e220af6 205 #define ADC_EXTERNALTRIGINJECCONV_T4_CC3 ((uint32_t)ADC_CR2_JEXTSEL_3)
AnnaBridge 146:22da6e220af6 206 #define ADC_EXTERNALTRIGINJECCONV_T4_TRGO ((uint32_t)(ADC_CR2_JEXTSEL_3 | ADC_CR2_JEXTSEL_0))
AnnaBridge 146:22da6e220af6 207 #define ADC_EXTERNALTRIGINJECCONV_T5_CC4 ((uint32_t)(ADC_CR2_JEXTSEL_3 | ADC_CR2_JEXTSEL_1))
AnnaBridge 146:22da6e220af6 208 #define ADC_EXTERNALTRIGINJECCONV_T5_TRGO ((uint32_t)(ADC_CR2_JEXTSEL_3 | ADC_CR2_JEXTSEL_1 | ADC_CR2_JEXTSEL_0))
AnnaBridge 146:22da6e220af6 209 #define ADC_EXTERNALTRIGINJECCONV_T8_CC2 ((uint32_t)(ADC_CR2_JEXTSEL_3 | ADC_CR2_JEXTSEL_2))
AnnaBridge 146:22da6e220af6 210 #define ADC_EXTERNALTRIGINJECCONV_T8_CC3 ((uint32_t)(ADC_CR2_JEXTSEL_3 | ADC_CR2_JEXTSEL_2 | ADC_CR2_JEXTSEL_0))
AnnaBridge 146:22da6e220af6 211 #define ADC_EXTERNALTRIGINJECCONV_T8_CC4 ((uint32_t)(ADC_CR2_JEXTSEL_3 | ADC_CR2_JEXTSEL_2 | ADC_CR2_JEXTSEL_1))
AnnaBridge 146:22da6e220af6 212 #define ADC_EXTERNALTRIGINJECCONV_EXT_IT15 ((uint32_t)ADC_CR2_JEXTSEL)
AnnaBridge 146:22da6e220af6 213 #define ADC_INJECTED_SOFTWARE_START ((uint32_t)ADC_CR2_JEXTSEL + 1U)
AnnaBridge 146:22da6e220af6 214 /**
AnnaBridge 146:22da6e220af6 215 * @}
AnnaBridge 146:22da6e220af6 216 */
AnnaBridge 146:22da6e220af6 217
AnnaBridge 146:22da6e220af6 218 /** @defgroup ADCEx_injected_rank ADC Injected Rank
AnnaBridge 146:22da6e220af6 219 * @{
AnnaBridge 146:22da6e220af6 220 */
AnnaBridge 146:22da6e220af6 221 #define ADC_INJECTED_RANK_1 0x00000001U
AnnaBridge 146:22da6e220af6 222 #define ADC_INJECTED_RANK_2 0x00000002U
AnnaBridge 146:22da6e220af6 223 #define ADC_INJECTED_RANK_3 0x00000003U
AnnaBridge 146:22da6e220af6 224 #define ADC_INJECTED_RANK_4 0x00000004U
AnnaBridge 146:22da6e220af6 225 /**
AnnaBridge 146:22da6e220af6 226 * @}
AnnaBridge 146:22da6e220af6 227 */
AnnaBridge 146:22da6e220af6 228
AnnaBridge 146:22da6e220af6 229 /** @defgroup ADCEx_channels ADC Specific Channels
AnnaBridge 146:22da6e220af6 230 * @{
AnnaBridge 146:22da6e220af6 231 */
AnnaBridge 146:22da6e220af6 232 #if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx) || \
AnnaBridge 146:22da6e220af6 233 defined(STM32F401xC) || defined(STM32F401xE) || defined(STM32F410Tx) || defined(STM32F410Cx) || \
AnnaBridge 146:22da6e220af6 234 defined(STM32F410Rx) || defined(STM32F412Zx) || defined(STM32F412Vx) || defined(STM32F412Rx) || \
AnnaBridge 146:22da6e220af6 235 defined(STM32F412Cx) || defined(STM32F413xx) || defined(STM32F423xx)
AnnaBridge 146:22da6e220af6 236 #define ADC_CHANNEL_TEMPSENSOR ((uint32_t)ADC_CHANNEL_16)
AnnaBridge 146:22da6e220af6 237 #endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx || STM32F401xC || STM32F401xE || STM32F410xx || STM32F412Zx ||
AnnaBridge 146:22da6e220af6 238 STM32F412Vx || STM32F412Rx || STM32F412Cx || STM32F413xx || STM32F423xx */
AnnaBridge 146:22da6e220af6 239
AnnaBridge 146:22da6e220af6 240 #if defined(STM32F411xE) || defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) || \
AnnaBridge 146:22da6e220af6 241 defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx)
AnnaBridge 146:22da6e220af6 242 #define ADC_CHANNEL_DIFFERENCIATION_TEMPSENSOR_VBAT 0x10000000U /* Dummy bit for driver internal usage, not used in ADC channel setting registers CR1 or SQRx */
AnnaBridge 146:22da6e220af6 243 #define ADC_CHANNEL_TEMPSENSOR ((uint32_t)ADC_CHANNEL_18 | ADC_CHANNEL_DIFFERENCIATION_TEMPSENSOR_VBAT)
AnnaBridge 146:22da6e220af6 244 #endif /* STM32F411xE || STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F446xx || STM32F469xx || STM32F479xx */
AnnaBridge 146:22da6e220af6 245 /**
AnnaBridge 146:22da6e220af6 246 * @}
AnnaBridge 146:22da6e220af6 247 */
AnnaBridge 146:22da6e220af6 248
AnnaBridge 146:22da6e220af6 249
AnnaBridge 146:22da6e220af6 250 /**
AnnaBridge 146:22da6e220af6 251 * @}
AnnaBridge 146:22da6e220af6 252 */
AnnaBridge 146:22da6e220af6 253
AnnaBridge 146:22da6e220af6 254 /* Exported macro ------------------------------------------------------------*/
AnnaBridge 146:22da6e220af6 255 /** @defgroup ADC_Exported_Macros ADC Exported Macros
AnnaBridge 146:22da6e220af6 256 * @{
AnnaBridge 146:22da6e220af6 257 */
AnnaBridge 146:22da6e220af6 258 #if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx)|| defined(STM32F439xx)
AnnaBridge 146:22da6e220af6 259 /**
AnnaBridge 146:22da6e220af6 260 * @brief Disable internal path of ADC channel Vbat
AnnaBridge 146:22da6e220af6 261 * @note Use case of this macro:
AnnaBridge 146:22da6e220af6 262 * On devices STM32F42x and STM32F43x, ADC internal channels
AnnaBridge 146:22da6e220af6 263 * Vbat and VrefInt share the same internal path, only
AnnaBridge 146:22da6e220af6 264 * one of them can be enabled.This macro is to be used when ADC
AnnaBridge 146:22da6e220af6 265 * channels Vbat and VrefInt are selected, and must be called
AnnaBridge 146:22da6e220af6 266 * before starting conversion of ADC channel VrefInt in order
AnnaBridge 146:22da6e220af6 267 * to disable ADC channel Vbat.
AnnaBridge 146:22da6e220af6 268 * @retval None
AnnaBridge 146:22da6e220af6 269 */
AnnaBridge 146:22da6e220af6 270 #define __HAL_ADC_PATH_INTERNAL_VBAT_DISABLE() (ADC->CCR &= ~(ADC_CCR_VBATE))
AnnaBridge 146:22da6e220af6 271 #endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx */
AnnaBridge 146:22da6e220af6 272 /**
AnnaBridge 146:22da6e220af6 273 * @}
AnnaBridge 146:22da6e220af6 274 */
AnnaBridge 146:22da6e220af6 275
AnnaBridge 146:22da6e220af6 276 /* Exported functions --------------------------------------------------------*/
AnnaBridge 146:22da6e220af6 277 /** @addtogroup ADCEx_Exported_Functions
AnnaBridge 146:22da6e220af6 278 * @{
AnnaBridge 146:22da6e220af6 279 */
AnnaBridge 146:22da6e220af6 280
AnnaBridge 146:22da6e220af6 281 /** @addtogroup ADCEx_Exported_Functions_Group1
AnnaBridge 146:22da6e220af6 282 * @{
AnnaBridge 146:22da6e220af6 283 */
AnnaBridge 146:22da6e220af6 284
AnnaBridge 146:22da6e220af6 285 /* I/O operation functions ******************************************************/
AnnaBridge 146:22da6e220af6 286 HAL_StatusTypeDef HAL_ADCEx_InjectedStart(ADC_HandleTypeDef* hadc);
AnnaBridge 146:22da6e220af6 287 HAL_StatusTypeDef HAL_ADCEx_InjectedStop(ADC_HandleTypeDef* hadc);
AnnaBridge 146:22da6e220af6 288 HAL_StatusTypeDef HAL_ADCEx_InjectedPollForConversion(ADC_HandleTypeDef* hadc, uint32_t Timeout);
AnnaBridge 146:22da6e220af6 289 HAL_StatusTypeDef HAL_ADCEx_InjectedStart_IT(ADC_HandleTypeDef* hadc);
AnnaBridge 146:22da6e220af6 290 HAL_StatusTypeDef HAL_ADCEx_InjectedStop_IT(ADC_HandleTypeDef* hadc);
AnnaBridge 146:22da6e220af6 291 uint32_t HAL_ADCEx_InjectedGetValue(ADC_HandleTypeDef* hadc, uint32_t InjectedRank);
AnnaBridge 146:22da6e220af6 292 HAL_StatusTypeDef HAL_ADCEx_MultiModeStart_DMA(ADC_HandleTypeDef* hadc, uint32_t* pData, uint32_t Length);
AnnaBridge 146:22da6e220af6 293 HAL_StatusTypeDef HAL_ADCEx_MultiModeStop_DMA(ADC_HandleTypeDef* hadc);
AnnaBridge 146:22da6e220af6 294 uint32_t HAL_ADCEx_MultiModeGetValue(ADC_HandleTypeDef* hadc);
AnnaBridge 146:22da6e220af6 295 void HAL_ADCEx_InjectedConvCpltCallback(ADC_HandleTypeDef* hadc);
AnnaBridge 146:22da6e220af6 296
AnnaBridge 146:22da6e220af6 297 /* Peripheral Control functions *************************************************/
AnnaBridge 146:22da6e220af6 298 HAL_StatusTypeDef HAL_ADCEx_InjectedConfigChannel(ADC_HandleTypeDef* hadc,ADC_InjectionConfTypeDef* sConfigInjected);
AnnaBridge 146:22da6e220af6 299 HAL_StatusTypeDef HAL_ADCEx_MultiModeConfigChannel(ADC_HandleTypeDef* hadc, ADC_MultiModeTypeDef* multimode);
AnnaBridge 146:22da6e220af6 300
AnnaBridge 146:22da6e220af6 301 /**
AnnaBridge 146:22da6e220af6 302 * @}
AnnaBridge 146:22da6e220af6 303 */
AnnaBridge 146:22da6e220af6 304
AnnaBridge 146:22da6e220af6 305 /**
AnnaBridge 146:22da6e220af6 306 * @}
AnnaBridge 146:22da6e220af6 307 */
AnnaBridge 146:22da6e220af6 308 /* Private types -------------------------------------------------------------*/
AnnaBridge 146:22da6e220af6 309 /* Private variables ---------------------------------------------------------*/
AnnaBridge 146:22da6e220af6 310 /* Private constants ---------------------------------------------------------*/
AnnaBridge 146:22da6e220af6 311 /** @defgroup ADCEx_Private_Constants ADC Private Constants
AnnaBridge 146:22da6e220af6 312 * @{
AnnaBridge 146:22da6e220af6 313 */
AnnaBridge 146:22da6e220af6 314
AnnaBridge 146:22da6e220af6 315 /**
AnnaBridge 146:22da6e220af6 316 * @}
AnnaBridge 146:22da6e220af6 317 */
AnnaBridge 146:22da6e220af6 318
AnnaBridge 146:22da6e220af6 319 /* Private macros ------------------------------------------------------------*/
AnnaBridge 146:22da6e220af6 320 /** @defgroup ADCEx_Private_Macros ADC Private Macros
AnnaBridge 146:22da6e220af6 321 * @{
AnnaBridge 146:22da6e220af6 322 */
AnnaBridge 146:22da6e220af6 323 #if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx) || \
AnnaBridge 146:22da6e220af6 324 defined(STM32F401xC) || defined(STM32F401xE) || defined(STM32F410Tx) || defined(STM32F410Cx) || \
AnnaBridge 146:22da6e220af6 325 defined(STM32F410Rx) || defined(STM32F411xE) || defined(STM32F412Zx) || defined(STM32F412Vx) || \
AnnaBridge 146:22da6e220af6 326 defined(STM32F412Rx) || defined(STM32F412Cx) || defined(STM32F413xx) || defined(STM32F423xx)
AnnaBridge 146:22da6e220af6 327 #define IS_ADC_CHANNEL(CHANNEL) ((CHANNEL) <= ADC_CHANNEL_18)
AnnaBridge 146:22da6e220af6 328 #endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx || STM32F401xC || STM32F401xE || STM32F410xx || STM32F411xE ||
AnnaBridge 146:22da6e220af6 329 STM32F412Zx || STM32F412Vx || STM32F412Rx || STM32F412Cx || STM32F413xx || STM32F423xx */
AnnaBridge 146:22da6e220af6 330
AnnaBridge 146:22da6e220af6 331 #if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) || \
AnnaBridge 146:22da6e220af6 332 defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx)
AnnaBridge 146:22da6e220af6 333 #define IS_ADC_CHANNEL(CHANNEL) (((CHANNEL) <= ADC_CHANNEL_18) || \
AnnaBridge 146:22da6e220af6 334 ((CHANNEL) == ADC_CHANNEL_TEMPSENSOR))
AnnaBridge 146:22da6e220af6 335 #endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F446xx || STM32F469xx || STM32F479xx */
AnnaBridge 146:22da6e220af6 336
AnnaBridge 146:22da6e220af6 337 #define IS_ADC_MODE(MODE) (((MODE) == ADC_MODE_INDEPENDENT) || \
AnnaBridge 146:22da6e220af6 338 ((MODE) == ADC_DUALMODE_REGSIMULT_INJECSIMULT) || \
AnnaBridge 146:22da6e220af6 339 ((MODE) == ADC_DUALMODE_REGSIMULT_ALTERTRIG) || \
AnnaBridge 146:22da6e220af6 340 ((MODE) == ADC_DUALMODE_INJECSIMULT) || \
AnnaBridge 146:22da6e220af6 341 ((MODE) == ADC_DUALMODE_REGSIMULT) || \
AnnaBridge 146:22da6e220af6 342 ((MODE) == ADC_DUALMODE_INTERL) || \
AnnaBridge 146:22da6e220af6 343 ((MODE) == ADC_DUALMODE_ALTERTRIG) || \
AnnaBridge 146:22da6e220af6 344 ((MODE) == ADC_TRIPLEMODE_REGSIMULT_INJECSIMULT) || \
AnnaBridge 146:22da6e220af6 345 ((MODE) == ADC_TRIPLEMODE_REGSIMULT_AlterTrig) || \
AnnaBridge 146:22da6e220af6 346 ((MODE) == ADC_TRIPLEMODE_INJECSIMULT) || \
AnnaBridge 146:22da6e220af6 347 ((MODE) == ADC_TRIPLEMODE_REGSIMULT) || \
AnnaBridge 146:22da6e220af6 348 ((MODE) == ADC_TRIPLEMODE_INTERL) || \
AnnaBridge 146:22da6e220af6 349 ((MODE) == ADC_TRIPLEMODE_ALTERTRIG))
AnnaBridge 146:22da6e220af6 350 #define IS_ADC_DMA_ACCESS_MODE(MODE) (((MODE) == ADC_DMAACCESSMODE_DISABLED) || \
AnnaBridge 146:22da6e220af6 351 ((MODE) == ADC_DMAACCESSMODE_1) || \
AnnaBridge 146:22da6e220af6 352 ((MODE) == ADC_DMAACCESSMODE_2) || \
AnnaBridge 146:22da6e220af6 353 ((MODE) == ADC_DMAACCESSMODE_3))
AnnaBridge 146:22da6e220af6 354 #define IS_ADC_EXT_INJEC_TRIG_EDGE(EDGE) (((EDGE) == ADC_EXTERNALTRIGINJECCONVEDGE_NONE) || \
AnnaBridge 146:22da6e220af6 355 ((EDGE) == ADC_EXTERNALTRIGINJECCONVEDGE_RISING) || \
AnnaBridge 146:22da6e220af6 356 ((EDGE) == ADC_EXTERNALTRIGINJECCONVEDGE_FALLING) || \
AnnaBridge 146:22da6e220af6 357 ((EDGE) == ADC_EXTERNALTRIGINJECCONVEDGE_RISINGFALLING))
AnnaBridge 146:22da6e220af6 358 #define IS_ADC_EXT_INJEC_TRIG(INJTRIG) (((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T1_CC4) || \
AnnaBridge 146:22da6e220af6 359 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T1_TRGO) || \
AnnaBridge 146:22da6e220af6 360 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T2_CC1) || \
AnnaBridge 146:22da6e220af6 361 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T2_TRGO) || \
AnnaBridge 146:22da6e220af6 362 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T3_CC2) || \
AnnaBridge 146:22da6e220af6 363 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T3_CC4) || \
AnnaBridge 146:22da6e220af6 364 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T4_CC1) || \
AnnaBridge 146:22da6e220af6 365 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T4_CC2) || \
AnnaBridge 146:22da6e220af6 366 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T4_CC3) || \
AnnaBridge 146:22da6e220af6 367 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T4_TRGO) || \
AnnaBridge 146:22da6e220af6 368 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T5_CC4) || \
AnnaBridge 146:22da6e220af6 369 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T5_TRGO) || \
AnnaBridge 146:22da6e220af6 370 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T8_CC2) || \
AnnaBridge 146:22da6e220af6 371 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T8_CC3) || \
AnnaBridge 146:22da6e220af6 372 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_T8_CC4) || \
AnnaBridge 146:22da6e220af6 373 ((INJTRIG) == ADC_EXTERNALTRIGINJECCONV_EXT_IT15)|| \
AnnaBridge 146:22da6e220af6 374 ((INJTRIG) == ADC_INJECTED_SOFTWARE_START))
AnnaBridge 146:22da6e220af6 375 #define IS_ADC_INJECTED_LENGTH(LENGTH) (((LENGTH) >= 1U) && ((LENGTH) <= 4U))
AnnaBridge 146:22da6e220af6 376 #define IS_ADC_INJECTED_RANK(RANK) (((RANK) >= 1U) && ((RANK) <= 4U))
AnnaBridge 146:22da6e220af6 377
AnnaBridge 146:22da6e220af6 378 /**
AnnaBridge 146:22da6e220af6 379 * @brief Set the selected injected Channel rank.
AnnaBridge 146:22da6e220af6 380 * @param _CHANNELNB_: Channel number.
AnnaBridge 146:22da6e220af6 381 * @param _RANKNB_: Rank number.
AnnaBridge 146:22da6e220af6 382 * @param _JSQR_JL_: Sequence length.
AnnaBridge 146:22da6e220af6 383 * @retval None
AnnaBridge 146:22da6e220af6 384 */
AnnaBridge 146:22da6e220af6 385 #define ADC_JSQR(_CHANNELNB_, _RANKNB_, _JSQR_JL_) (((uint32_t)((uint16_t)(_CHANNELNB_))) << (5U * (uint8_t)(((_RANKNB_) + 3U) - (_JSQR_JL_))))
AnnaBridge 146:22da6e220af6 386
AnnaBridge 146:22da6e220af6 387 /**
AnnaBridge 146:22da6e220af6 388 * @brief Defines if the selected ADC is within ADC common register ADC123 or ADC1
AnnaBridge 146:22da6e220af6 389 * if available (ADC2, ADC3 availability depends on STM32 product)
AnnaBridge 146:22da6e220af6 390 * @param __HANDLE__: ADC handle
AnnaBridge 146:22da6e220af6 391 * @retval Common control register ADC123 or ADC1
AnnaBridge 146:22da6e220af6 392 */
AnnaBridge 146:22da6e220af6 393 #if defined(STM32F405xx) || defined(STM32F407xx) || defined(STM32F415xx) || defined(STM32F417xx) || defined(STM32F427xx) || defined(STM32F429xx) || defined(STM32F437xx) || defined(STM32F439xx) || defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx)
AnnaBridge 146:22da6e220af6 394 #define ADC_COMMON_REGISTER(__HANDLE__) ADC123_COMMON
AnnaBridge 146:22da6e220af6 395 #else
AnnaBridge 146:22da6e220af6 396 #define ADC_COMMON_REGISTER(__HANDLE__) ADC1_COMMON
AnnaBridge 146:22da6e220af6 397 #endif /* STM32F405xx || STM32F407xx || STM32F415xx || STM32F417xx || STM32F427xx || STM32F429xx || STM32F437xx || STM32F439xx || STM32F446xx || STM32F469xx || STM32F479xx */
AnnaBridge 146:22da6e220af6 398 /**
AnnaBridge 146:22da6e220af6 399 * @}
AnnaBridge 146:22da6e220af6 400 */
AnnaBridge 146:22da6e220af6 401
AnnaBridge 146:22da6e220af6 402 /* Private functions ---------------------------------------------------------*/
AnnaBridge 146:22da6e220af6 403 /** @defgroup ADCEx_Private_Functions ADC Private Functions
AnnaBridge 146:22da6e220af6 404 * @{
AnnaBridge 146:22da6e220af6 405 */
AnnaBridge 146:22da6e220af6 406
AnnaBridge 146:22da6e220af6 407 /**
AnnaBridge 146:22da6e220af6 408 * @}
AnnaBridge 146:22da6e220af6 409 */
AnnaBridge 146:22da6e220af6 410
AnnaBridge 146:22da6e220af6 411 /**
AnnaBridge 146:22da6e220af6 412 * @}
AnnaBridge 146:22da6e220af6 413 */
AnnaBridge 146:22da6e220af6 414
AnnaBridge 146:22da6e220af6 415 /**
AnnaBridge 146:22da6e220af6 416 * @}
AnnaBridge 146:22da6e220af6 417 */
AnnaBridge 146:22da6e220af6 418
AnnaBridge 146:22da6e220af6 419 #ifdef __cplusplus
AnnaBridge 146:22da6e220af6 420 }
AnnaBridge 146:22da6e220af6 421 #endif
AnnaBridge 146:22da6e220af6 422
AnnaBridge 146:22da6e220af6 423 #endif /*__STM32F4xx_ADC_EX_H */
AnnaBridge 146:22da6e220af6 424
AnnaBridge 146:22da6e220af6 425
AnnaBridge 146:22da6e220af6 426 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/