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:
Wed Feb 20 20:53:29 2019 +0000
Revision:
172:65be27845400
Parent:
171:3a7713b1edbc
mbed library release version 165

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