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:
Anna Bridge
Date:
Fri Jun 22 15:38:59 2018 +0100
Revision:
169:a7c7b631e539
Parent:
163:e59c8e839560
mbed library. Release version 162

Who changed what in which revision?

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