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

Dependents:   1-RenBuggyTimed RenBED_RGB RenBED_RGB_PWM RenBED_RGB

Fork of mbed by mbed official

Committer:
elijahorr
Date:
Thu Apr 14 07:28:54 2016 +0000
Revision:
121:672067c3ada4
Parent:
96:487b796308b0
.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Kojto 96:487b796308b0 1 /**
Kojto 96:487b796308b0 2 ******************************************************************************
Kojto 96:487b796308b0 3 * @file stm32f1xx_hal_adc_ex.h
Kojto 96:487b796308b0 4 * @author MCD Application Team
Kojto 96:487b796308b0 5 * @version V1.0.0
Kojto 96:487b796308b0 6 * @date 15-December-2014
Kojto 96:487b796308b0 7 * @brief Header file of ADC HAL extension module.
Kojto 96:487b796308b0 8 ******************************************************************************
Kojto 96:487b796308b0 9 * @attention
Kojto 96:487b796308b0 10 *
Kojto 96:487b796308b0 11 * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
Kojto 96:487b796308b0 12 *
Kojto 96:487b796308b0 13 * Redistribution and use in source and binary forms, with or without modification,
Kojto 96:487b796308b0 14 * are permitted provided that the following conditions are met:
Kojto 96:487b796308b0 15 * 1. Redistributions of source code must retain the above copyright notice,
Kojto 96:487b796308b0 16 * this list of conditions and the following disclaimer.
Kojto 96:487b796308b0 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
Kojto 96:487b796308b0 18 * this list of conditions and the following disclaimer in the documentation
Kojto 96:487b796308b0 19 * and/or other materials provided with the distribution.
Kojto 96:487b796308b0 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
Kojto 96:487b796308b0 21 * may be used to endorse or promote products derived from this software
Kojto 96:487b796308b0 22 * without specific prior written permission.
Kojto 96:487b796308b0 23 *
Kojto 96:487b796308b0 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
Kojto 96:487b796308b0 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
Kojto 96:487b796308b0 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
Kojto 96:487b796308b0 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
Kojto 96:487b796308b0 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
Kojto 96:487b796308b0 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
Kojto 96:487b796308b0 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
Kojto 96:487b796308b0 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
Kojto 96:487b796308b0 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
Kojto 96:487b796308b0 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Kojto 96:487b796308b0 34 *
Kojto 96:487b796308b0 35 ******************************************************************************
Kojto 96:487b796308b0 36 */
Kojto 96:487b796308b0 37
Kojto 96:487b796308b0 38 /* Define to prevent recursive inclusion -------------------------------------*/
Kojto 96:487b796308b0 39 #ifndef __STM32F1xx_HAL_ADC_EX_H
Kojto 96:487b796308b0 40 #define __STM32F1xx_HAL_ADC_EX_H
Kojto 96:487b796308b0 41
Kojto 96:487b796308b0 42 #ifdef __cplusplus
Kojto 96:487b796308b0 43 extern "C" {
Kojto 96:487b796308b0 44 #endif
Kojto 96:487b796308b0 45
Kojto 96:487b796308b0 46 /* Includes ------------------------------------------------------------------*/
Kojto 96:487b796308b0 47 #include "stm32f1xx_hal_def.h"
Kojto 96:487b796308b0 48
Kojto 96:487b796308b0 49 /** @addtogroup STM32F1xx_HAL_Driver
Kojto 96:487b796308b0 50 * @{
Kojto 96:487b796308b0 51 */
Kojto 96:487b796308b0 52
Kojto 96:487b796308b0 53 /** @addtogroup ADCEx
Kojto 96:487b796308b0 54 * @{
Kojto 96:487b796308b0 55 */
Kojto 96:487b796308b0 56
Kojto 96:487b796308b0 57 /* Exported types ------------------------------------------------------------*/
Kojto 96:487b796308b0 58 /** @defgroup ADCEx_Exported_Types ADCEx Exported Types
Kojto 96:487b796308b0 59 * @{
Kojto 96:487b796308b0 60 */
Kojto 96:487b796308b0 61
Kojto 96:487b796308b0 62 /**
Kojto 96:487b796308b0 63 * @brief ADC Configuration injected Channel structure definition
Kojto 96:487b796308b0 64 * @note Parameters of this structure are shared within 2 scopes:
Kojto 96:487b796308b0 65 * - Scope channel: InjectedChannel, InjectedRank, InjectedSamplingTime, InjectedOffset
Kojto 96:487b796308b0 66 * - Scope injected group (affects all channels of injected group): InjectedNbrOfConversion, InjectedDiscontinuousConvMode,
Kojto 96:487b796308b0 67 * AutoInjectedConv, ExternalTrigInjecConvEdge, ExternalTrigInjecConv.
Kojto 96:487b796308b0 68 * @note The setting of these parameters with function HAL_ADCEx_InjectedConfigChannel() is conditioned to ADC state.
Kojto 96:487b796308b0 69 * ADC state can be either:
Kojto 96:487b796308b0 70 * - For all parameters: ADC disabled (this is the only possible ADC state to modify parameter 'ExternalTrigInjecConv')
Kojto 96:487b796308b0 71 * - For all except parameters 'ExternalTrigInjecConv': ADC enabled without conversion on going on injected group.
Kojto 96:487b796308b0 72 */
Kojto 96:487b796308b0 73 typedef struct
Kojto 96:487b796308b0 74 {
Kojto 96:487b796308b0 75 uint32_t InjectedChannel; /*!< Selection of ADC channel to configure
Kojto 96:487b796308b0 76 This parameter can be a value of @ref ADC_channels
Kojto 96:487b796308b0 77 Note: Depending on devices, some channels may not be available on package pins. Refer to device datasheet for channels availability.
Kojto 96:487b796308b0 78 Note: On STM32F1 devices with several ADC: Only ADC1 can access internal measurement channels (VrefInt/TempSensor)
Kojto 96:487b796308b0 79 Note: On STM32F10xx8 and STM32F10xxB devices: A low-amplitude voltage glitch may be generated (on ADC input 0) on the PA0 pin, when the ADC is converting with injection trigger.
Kojto 96:487b796308b0 80 It is advised to distribute the analog channels so that Channel 0 is configured as an injected channel.
Kojto 96:487b796308b0 81 Refer to errata sheet of these devices for more details. */
Kojto 96:487b796308b0 82 uint32_t InjectedRank; /*!< Rank in the injected group sequencer
Kojto 96:487b796308b0 83 This parameter must be a value of @ref ADCEx_injected_rank
Kojto 96:487b796308b0 84 Note: In case of need to disable a channel or change order of conversion sequencer, rank containing a previous channel setting can be overwritten by the new channel setting (or parameter number of conversions can be adjusted) */
Kojto 96:487b796308b0 85 uint32_t InjectedSamplingTime; /*!< Sampling time value to be set for the selected channel.
Kojto 96:487b796308b0 86 Unit: ADC clock cycles
Kojto 96:487b796308b0 87 Conversion time is the addition of sampling time and processing time (12.5 ADC clock cycles at ADC resolution 12 bits).
Kojto 96:487b796308b0 88 This parameter can be a value of @ref ADC_sampling_times
Kojto 96:487b796308b0 89 Caution: This parameter updates the parameter property of the channel, that can be used into regular and/or injected groups.
Kojto 96:487b796308b0 90 If this same channel has been previously configured in the other group (regular/injected), it will be updated to last setting.
Kojto 96:487b796308b0 91 Note: In case of usage of internal measurement channels (VrefInt/TempSensor),
Kojto 96:487b796308b0 92 sampling time constraints must be respected (sampling time can be adjusted in function of ADC clock frequency and sampling time setting)
Kojto 96:487b796308b0 93 Refer to device datasheet for timings values, parameters TS_vrefint, TS_temp (values rough order: 5us to 17.1us min). */
Kojto 96:487b796308b0 94 uint32_t InjectedOffset; /*!< Defines the offset to be subtracted from the raw converted data (for channels set on injected group only).
Kojto 96:487b796308b0 95 Offset value must be a positive number.
Kojto 96:487b796308b0 96 Depending of ADC resolution selected (12, 10, 8 or 6 bits),
Kojto 96:487b796308b0 97 this parameter must be a number between Min_Data = 0x000 and Max_Data = 0xFFF, 0x3FF, 0xFF or 0x3F respectively. */
Kojto 96:487b796308b0 98 uint32_t InjectedNbrOfConversion; /*!< Specifies the number of ranks that will be converted within the injected group sequencer.
Kojto 96:487b796308b0 99 To use the injected group sequencer and convert several ranks, parameter 'ScanConvMode' must be enabled.
Kojto 96:487b796308b0 100 This parameter must be a number between Min_Data = 1 and Max_Data = 4.
Kojto 96:487b796308b0 101 Caution: this setting impacts the entire injected group. Therefore, call of HAL_ADCEx_InjectedConfigChannel() to
Kojto 96:487b796308b0 102 configure a channel on injected group can impact the configuration of other channels previously set. */
Kojto 96:487b796308b0 103 uint32_t InjectedDiscontinuousConvMode; /*!< Specifies whether the conversions sequence of injected group is performed in Complete-sequence/Discontinuous-sequence (main sequence subdivided in successive parts).
Kojto 96:487b796308b0 104 Discontinuous mode is used only if sequencer is enabled (parameter 'ScanConvMode'). If sequencer is disabled, this parameter is discarded.
Kojto 96:487b796308b0 105 Discontinuous mode can be enabled only if continuous mode is disabled. If continuous mode is enabled, this parameter setting is discarded.
Kojto 96:487b796308b0 106 This parameter can be set to ENABLE or DISABLE.
Kojto 96:487b796308b0 107 Note: For injected group, number of discontinuous ranks increment is fixed to one-by-one.
Kojto 96:487b796308b0 108 Caution: this setting impacts the entire injected group. Therefore, call of HAL_ADCEx_InjectedConfigChannel() to
Kojto 96:487b796308b0 109 configure a channel on injected group can impact the configuration of other channels previously set. */
Kojto 96:487b796308b0 110 uint32_t AutoInjectedConv; /*!< Enables or disables the selected ADC automatic injected group conversion after regular one
Kojto 96:487b796308b0 111 This parameter can be set to ENABLE or DISABLE.
Kojto 96:487b796308b0 112 Note: To use Automatic injected conversion, discontinuous mode must be disabled ('DiscontinuousConvMode' and 'InjectedDiscontinuousConvMode' set to DISABLE)
Kojto 96:487b796308b0 113 Note: To use Automatic injected conversion, injected group external triggers must be disabled ('ExternalTrigInjecConv' set to ADC_SOFTWARE_START)
Kojto 96:487b796308b0 114 Note: In case of DMA used with regular group: if DMA configured in normal mode (single shot) JAUTO will be stopped upon DMA transfer complete.
Kojto 96:487b796308b0 115 To maintain JAUTO always enabled, DMA must be configured in circular mode.
Kojto 96:487b796308b0 116 Caution: this setting impacts the entire injected group. Therefore, call of HAL_ADCEx_InjectedConfigChannel() to
Kojto 96:487b796308b0 117 configure a channel on injected group can impact the configuration of other channels previously set. */
Kojto 96:487b796308b0 118 uint32_t ExternalTrigInjecConv; /*!< Selects the external event used to trigger the conversion start of injected group.
Kojto 96:487b796308b0 119 If set to ADC_INJECTED_SOFTWARE_START, external triggers are disabled.
Kojto 96:487b796308b0 120 If set to external trigger source, triggering is on event rising edge.
Kojto 96:487b796308b0 121 This parameter can be a value of @ref ADCEx_External_trigger_source_Injected
Kojto 96:487b796308b0 122 Note: This parameter must be modified when ADC is disabled (before ADC start conversion or after ADC stop conversion).
Kojto 96:487b796308b0 123 If ADC is enabled, this parameter setting is bypassed without error reporting (as it can be the expected behaviour in case of another parameter update on the fly)
Kojto 96:487b796308b0 124 Caution: this setting impacts the entire injected group. Therefore, call of HAL_ADCEx_InjectedConfigChannel() to
Kojto 96:487b796308b0 125 configure a channel on injected group can impact the configuration of other channels previously set. */
Kojto 96:487b796308b0 126 }ADC_InjectionConfTypeDef;
Kojto 96:487b796308b0 127
Kojto 96:487b796308b0 128 #if defined (STM32F101xG) || defined (STM32F103x6) || defined (STM32F103xB) || defined (STM32F105xC) || defined (STM32F107xC) || defined (STM32F103xE) || defined (STM32F103xG)
Kojto 96:487b796308b0 129 /**
Kojto 96:487b796308b0 130 * @brief Structure definition of ADC multimode
Kojto 96:487b796308b0 131 * @note The setting of these parameters with function HAL_ADCEx_MultiModeConfigChannel() is conditioned to ADCs state (both ADCs of the common group).
Kojto 96:487b796308b0 132 * State of ADCs of the common group must be: disabled.
Kojto 96:487b796308b0 133 */
Kojto 96:487b796308b0 134 typedef struct
Kojto 96:487b796308b0 135 {
Kojto 96:487b796308b0 136 uint32_t Mode; /*!< Configures the ADC to operate in independent or multi mode.
Kojto 96:487b796308b0 137 This parameter can be a value of @ref ADCEx_Common_mode
Kojto 96:487b796308b0 138 Note: In dual mode, a change of channel configuration generates a restart that can produce a loss of synchronization. It is recommended to disable dual mode before any configuration change.
Kojto 96:487b796308b0 139 Note: In case of simultaneous mode used: Exactly the same sampling time should be configured for the 2 channels that will be sampled simultaneously by ACD1 and ADC2.
Kojto 96:487b796308b0 140 Note: In case of interleaved mode used: To avoid overlap between conversions, maximum sampling time allowed is 7 ADC clock cycles for fast interleaved mode and 14 ADC clock cycles for slow interleaved mode.
Kojto 96:487b796308b0 141 Note: Some multimode parameters are fixed on STM32F1 and can be configured on other STM32 devices with several ADC (multimode configuration structure can have additional parameters).
Kojto 96:487b796308b0 142 The equivalences are:
Kojto 96:487b796308b0 143 - Parameter 'DMAAccessMode': On STM32F1, this parameter is fixed to 1 DMA channel (one DMA channel for both ADC, DMA of ADC master). On other STM32 devices with several ADC, this is equivalent to parameter 'ADC_DMAACCESSMODE_12_10_BITS'.
Kojto 96:487b796308b0 144 - Parameter 'TwoSamplingDelay': On STM32F1, this parameter is fixed to 7 or 14 ADC clock cycles depending on fast or slow interleaved mode selected. On other STM32 devices with several ADC, this is equivalent to parameter 'ADC_TWOSAMPLINGDELAY_7CYCLES' (for fast interleaved mode). */
Kojto 96:487b796308b0 145
Kojto 96:487b796308b0 146
Kojto 96:487b796308b0 147 }ADC_MultiModeTypeDef;
Kojto 96:487b796308b0 148 #endif /* STM32F101xG || defined STM32F103x6 || defined STM32F103xB || defined STM32F105xC || defined STM32F107xC || defined STM32F103xE || defined STM32F103xG */
Kojto 96:487b796308b0 149
Kojto 96:487b796308b0 150 /**
Kojto 96:487b796308b0 151 * @}
Kojto 96:487b796308b0 152 */
Kojto 96:487b796308b0 153
Kojto 96:487b796308b0 154
Kojto 96:487b796308b0 155 /* Exported constants --------------------------------------------------------*/
Kojto 96:487b796308b0 156
Kojto 96:487b796308b0 157 /** @defgroup ADCEx_Exported_Constants ADCEx Exported Constants
Kojto 96:487b796308b0 158 * @{
Kojto 96:487b796308b0 159 */
Kojto 96:487b796308b0 160
Kojto 96:487b796308b0 161 /** @defgroup ADCEx_injected_rank ADCEx rank into injected group
Kojto 96:487b796308b0 162 * @{
Kojto 96:487b796308b0 163 */
Kojto 96:487b796308b0 164 #define ADC_INJECTED_RANK_1 ((uint32_t)0x00000001)
Kojto 96:487b796308b0 165 #define ADC_INJECTED_RANK_2 ((uint32_t)0x00000002)
Kojto 96:487b796308b0 166 #define ADC_INJECTED_RANK_3 ((uint32_t)0x00000003)
Kojto 96:487b796308b0 167 #define ADC_INJECTED_RANK_4 ((uint32_t)0x00000004)
Kojto 96:487b796308b0 168 /**
Kojto 96:487b796308b0 169 * @}
Kojto 96:487b796308b0 170 */
Kojto 96:487b796308b0 171
Kojto 96:487b796308b0 172 /** @defgroup ADCEx_External_trigger_edge_Injected ADCEx external trigger enable for injected group
Kojto 96:487b796308b0 173 * @{
Kojto 96:487b796308b0 174 */
Kojto 96:487b796308b0 175 #define ADC_EXTERNALTRIGINJECCONV_EDGE_NONE ((uint32_t)0x00000000)
Kojto 96:487b796308b0 176 #define ADC_EXTERNALTRIGINJECCONV_EDGE_RISING ((uint32_t)ADC_CR2_JEXTTRIG)
Kojto 96:487b796308b0 177 /**
Kojto 96:487b796308b0 178 * @}
Kojto 96:487b796308b0 179 */
Kojto 96:487b796308b0 180
Kojto 96:487b796308b0 181 /** @defgroup ADC_External_trigger_source_Regular ADC External trigger selection for regular group
Kojto 96:487b796308b0 182 * @{
Kojto 96:487b796308b0 183 */
Kojto 96:487b796308b0 184 /*!< List of external triggers with generic trigger name, independently of */
Kojto 96:487b796308b0 185 /* ADC target, sorted by trigger name: */
Kojto 96:487b796308b0 186
Kojto 96:487b796308b0 187 /*!< External triggers of regular group for ADC1&ADC2 only */
Kojto 96:487b796308b0 188 #define ADC_EXTERNALTRIGCONV_T1_CC1 ADC1_2_EXTERNALTRIG_T1_CC1
Kojto 96:487b796308b0 189 #define ADC_EXTERNALTRIGCONV_T1_CC2 ADC1_2_EXTERNALTRIG_T1_CC2
Kojto 96:487b796308b0 190 #define ADC_EXTERNALTRIGCONV_T2_CC2 ADC1_2_EXTERNALTRIG_T2_CC2
Kojto 96:487b796308b0 191 #define ADC_EXTERNALTRIGCONV_T3_TRGO ADC1_2_EXTERNALTRIG_T3_TRGO
Kojto 96:487b796308b0 192 #define ADC_EXTERNALTRIGCONV_T4_CC4 ADC1_2_EXTERNALTRIG_T4_CC4
Kojto 96:487b796308b0 193 #define ADC_EXTERNALTRIGCONV_EXT_IT11 ADC1_2_EXTERNALTRIG_EXT_IT11
Kojto 96:487b796308b0 194
Kojto 96:487b796308b0 195 #if defined (STM32F103xE) || defined (STM32F103xG)
Kojto 96:487b796308b0 196 /*!< External triggers of regular group for ADC3 only */
Kojto 96:487b796308b0 197 #define ADC_EXTERNALTRIGCONV_T2_CC3 ADC3_EXTERNALTRIG_T2_CC3
Kojto 96:487b796308b0 198 #define ADC_EXTERNALTRIGCONV_T3_CC1 ADC3_EXTERNALTRIG_T3_CC1
Kojto 96:487b796308b0 199 #define ADC_EXTERNALTRIGCONV_T5_CC1 ADC3_EXTERNALTRIG_T5_CC1
Kojto 96:487b796308b0 200 #define ADC_EXTERNALTRIGCONV_T5_CC3 ADC3_EXTERNALTRIG_T5_CC3
Kojto 96:487b796308b0 201 #define ADC_EXTERNALTRIGCONV_T8_CC1 ADC3_EXTERNALTRIG_T8_CC1
Kojto 96:487b796308b0 202 #endif /* STM32F103xE || defined STM32F103xG */
Kojto 96:487b796308b0 203
Kojto 96:487b796308b0 204 /*!< External triggers of regular group for all ADC instances */
Kojto 96:487b796308b0 205 #define ADC_EXTERNALTRIGCONV_T1_CC3 ADC1_2_3_EXTERNALTRIG_T1_CC3
Kojto 96:487b796308b0 206
Kojto 96:487b796308b0 207 #if defined (STM32F101xE) || defined (STM32F101xG) || defined (STM32F103xE) || defined (STM32F103xG) || defined (STM32F105xC) || defined (STM32F107xC)
Kojto 96:487b796308b0 208 /*!< Note: TIM8_TRGO is available on ADC1 and ADC2 only in high-density and */
Kojto 96:487b796308b0 209 /* XL-density devices. */
Kojto 96:487b796308b0 210 /* To use it on ADC or ADC2, a rempap of trigger must be done from */
Kojto 96:487b796308b0 211 /* EXTI line 11 to TIM8_TRGO with macro: */
Kojto 96:487b796308b0 212 /* __HAL_AFIO_REMAP_ADC1_ETRGREG_ENABLE() */
Kojto 96:487b796308b0 213 /* __HAL_AFIO_REMAP_ADC2_ETRGREG_ENABLE() */
Kojto 96:487b796308b0 214
Kojto 96:487b796308b0 215 /* Note for internal constant value management: If TIM8_TRGO is available, */
Kojto 96:487b796308b0 216 /* its definition is set to value for ADC1&ADC2 by default and changed to */
Kojto 96:487b796308b0 217 /* value for ADC3 by HAL ADC driver if ADC3 is selected. */
Kojto 96:487b796308b0 218 #define ADC_EXTERNALTRIGCONV_T8_TRGO ADC1_2_EXTERNALTRIG_T8_TRGO
Kojto 96:487b796308b0 219 #endif /* STM32F101xE || STM32F101xG || STM32F103xE || STM32F103xG || STM32F105xC || STM32F107xC */
Kojto 96:487b796308b0 220
Kojto 96:487b796308b0 221 #define ADC_SOFTWARE_START ADC1_2_3_SWSTART
Kojto 96:487b796308b0 222 /**
Kojto 96:487b796308b0 223 * @}
Kojto 96:487b796308b0 224 */
Kojto 96:487b796308b0 225
Kojto 96:487b796308b0 226 /** @defgroup ADCEx_External_trigger_source_Injected ADCEx External trigger selection for injected group
Kojto 96:487b796308b0 227 * @{
Kojto 96:487b796308b0 228 */
Kojto 96:487b796308b0 229 /*!< List of external triggers with generic trigger name, independently of */
Kojto 96:487b796308b0 230 /* ADC target, sorted by trigger name: */
Kojto 96:487b796308b0 231
Kojto 96:487b796308b0 232 /*!< External triggers of injected group for ADC1&ADC2 only */
Kojto 96:487b796308b0 233 #define ADC_EXTERNALTRIGINJECCONV_T2_TRGO ADC1_2_EXTERNALTRIGINJEC_T2_TRGO
Kojto 96:487b796308b0 234 #define ADC_EXTERNALTRIGINJECCONV_T2_CC1 ADC1_2_EXTERNALTRIGINJEC_T2_CC1
Kojto 96:487b796308b0 235 #define ADC_EXTERNALTRIGINJECCONV_T3_CC4 ADC1_2_EXTERNALTRIGINJEC_T3_CC4
Kojto 96:487b796308b0 236 #define ADC_EXTERNALTRIGINJECCONV_T4_TRGO ADC1_2_EXTERNALTRIGINJEC_T4_TRGO
Kojto 96:487b796308b0 237 #define ADC_EXTERNALTRIGINJECCONV_EXT_IT15 ADC1_2_EXTERNALTRIGINJEC_EXT_IT15
Kojto 96:487b796308b0 238
Kojto 96:487b796308b0 239 #if defined (STM32F103xE) || defined (STM32F103xG)
Kojto 96:487b796308b0 240 /*!< External triggers of injected group for ADC3 only */
Kojto 96:487b796308b0 241 #define ADC_EXTERNALTRIGINJECCONV_T4_CC3 ADC3_EXTERNALTRIGINJEC_T4_CC3
Kojto 96:487b796308b0 242 #define ADC_EXTERNALTRIGINJECCONV_T8_CC2 ADC3_EXTERNALTRIGINJEC_T8_CC2
Kojto 96:487b796308b0 243 #define ADC_EXTERNALTRIGINJECCONV_T5_TRGO ADC3_EXTERNALTRIGINJEC_T5_TRGO
Kojto 96:487b796308b0 244 #define ADC_EXTERNALTRIGINJECCONV_T5_CC4 ADC3_EXTERNALTRIGINJEC_T5_CC4
Kojto 96:487b796308b0 245 #endif /* STM32F103xE || defined STM32F103xG */
Kojto 96:487b796308b0 246
Kojto 96:487b796308b0 247 /*!< External triggers of injected group for all ADC instances */
Kojto 96:487b796308b0 248 #define ADC_EXTERNALTRIGINJECCONV_T1_CC4 ADC1_2_3_EXTERNALTRIGINJEC_T1_CC4
Kojto 96:487b796308b0 249 #define ADC_EXTERNALTRIGINJECCONV_T1_TRGO ADC1_2_3_EXTERNALTRIGINJEC_T1_TRGO
Kojto 96:487b796308b0 250
Kojto 96:487b796308b0 251 #if defined (STM32F101xE) || defined (STM32F101xG) || defined (STM32F103xE) || defined (STM32F103xG) || defined (STM32F105xC) || defined (STM32F107xC)
Kojto 96:487b796308b0 252 /*!< Note: TIM8_CC4 is available on ADC1 and ADC2 only in high-density and */
Kojto 96:487b796308b0 253 /* XL-density devices. */
Kojto 96:487b796308b0 254 /* To use it on ADC or ADC2, a rempap of trigger must be done from */
Kojto 96:487b796308b0 255 /* EXTI line 11 to TIM8_TRGO with macro: */
Kojto 96:487b796308b0 256 /* __HAL_AFIO_REMAP_ADC1_ETRGINJ_ENABLE() */
Kojto 96:487b796308b0 257 /* __HAL_AFIO_REMAP_ADC2_ETRGINJ_ENABLE() */
Kojto 96:487b796308b0 258
Kojto 96:487b796308b0 259 /* Note for internal constant value management: If TIM8_CC4 is available, */
Kojto 96:487b796308b0 260 /* its definition is set to value for ADC1&ADC2 by default and changed to */
Kojto 96:487b796308b0 261 /* value for ADC3 by HAL ADC driver if ADC3 is selected. */
Kojto 96:487b796308b0 262 #define ADC_EXTERNALTRIGINJECCONV_T8_CC4 ADC1_2_EXTERNALTRIGINJEC_T8_CC4
Kojto 96:487b796308b0 263 #endif /* STM32F101xE || STM32F101xG || STM32F103xE || STM32F103xG || STM32F105xC || STM32F107xC */
Kojto 96:487b796308b0 264
Kojto 96:487b796308b0 265 #define ADC_INJECTED_SOFTWARE_START ADC1_2_3_JSWSTART
Kojto 96:487b796308b0 266 /**
Kojto 96:487b796308b0 267 * @}
Kojto 96:487b796308b0 268 */
Kojto 96:487b796308b0 269
Kojto 96:487b796308b0 270 #if defined (STM32F101xG) || defined (STM32F103x6) || defined (STM32F103xB) || defined (STM32F105xC) || defined (STM32F107xC) || defined (STM32F103xE) || defined (STM32F103xG)
Kojto 96:487b796308b0 271 /** @defgroup ADCEx_Common_mode ADC Extended Dual ADC Mode
Kojto 96:487b796308b0 272 * @{
Kojto 96:487b796308b0 273 */
Kojto 96:487b796308b0 274 #define ADC_MODE_INDEPENDENT ((uint32_t)(0x00000000)) /*!< ADC dual mode disabled (ADC independent mode) */
Kojto 96:487b796308b0 275 #define ADC_DUALMODE_REGSIMULT_INJECSIMULT ((uint32_t)( ADC_CR1_DUALMOD_0)) /*!< ADC dual mode enabled: Combined regular simultaneous + injected simultaneous mode */
Kojto 96:487b796308b0 276 #define ADC_DUALMODE_REGSIMULT_ALTERTRIG ((uint32_t)( ADC_CR1_DUALMOD_1 )) /*!< ADC dual mode enabled: Combined regular simultaneous + alternate trigger mode */
Kojto 96:487b796308b0 277 #define ADC_DUALMODE_INJECSIMULT_INTERLFAST ((uint32_t)( ADC_CR1_DUALMOD_1 | ADC_CR1_DUALMOD_0)) /*!< ADC dual mode enabled: Combined injected simultaneous + fast interleaved mode (delay between ADC sampling phases: 7 ADC clock cycles (equivalent to parameter "TwoSamplingDelay" set to "ADC_TWOSAMPLINGDELAY_7CYCLES" on other STM32 devices)) */
Kojto 96:487b796308b0 278 #define ADC_DUALMODE_INJECSIMULT_INTERLSLOW ((uint32_t)( ADC_CR1_DUALMOD_2 )) /*!< ADC dual mode enabled: Combined injected simultaneous + slow Interleaved mode (delay between ADC sampling phases: 14 ADC clock cycles (equivalent to parameter "TwoSamplingDelay" set to "ADC_TWOSAMPLINGDELAY_7CYCLES" on other STM32 devices)) */
Kojto 96:487b796308b0 279 #define ADC_DUALMODE_INJECSIMULT ((uint32_t)( ADC_CR1_DUALMOD_2 | ADC_CR1_DUALMOD_0)) /*!< ADC dual mode enabled: Injected simultaneous mode only */
Kojto 96:487b796308b0 280 #define ADC_DUALMODE_REGSIMULT ((uint32_t)( ADC_CR1_DUALMOD_2 | ADC_CR1_DUALMOD_1 )) /*!< ADC dual mode enabled: Regular simultaneous mode only */
Kojto 96:487b796308b0 281 #define ADC_DUALMODE_INTERLFAST ((uint32_t)( ADC_CR1_DUALMOD_2 | ADC_CR1_DUALMOD_1 | ADC_CR1_DUALMOD_0)) /*!< ADC dual mode enabled: Fast interleaved mode only (delay between ADC sampling phases: 7 ADC clock cycles (equivalent to parameter "TwoSamplingDelay" set to "ADC_TWOSAMPLINGDELAY_7CYCLES" on other STM32 devices)) */
Kojto 96:487b796308b0 282 #define ADC_DUALMODE_INTERLSLOW ((uint32_t)(ADC_CR1_DUALMOD_3 )) /*!< ADC dual mode enabled: Slow interleaved mode only (delay between ADC sampling phases: 14 ADC clock cycles (equivalent to parameter "TwoSamplingDelay" set to "ADC_TWOSAMPLINGDELAY_7CYCLES" on other STM32 devices)) */
Kojto 96:487b796308b0 283 #define ADC_DUALMODE_ALTERTRIG ((uint32_t)(ADC_CR1_DUALMOD_3 | ADC_CR1_DUALMOD_0)) /*!< ADC dual mode enabled: Alternate trigger mode only */
Kojto 96:487b796308b0 284 /**
Kojto 96:487b796308b0 285 * @}
Kojto 96:487b796308b0 286 */
Kojto 96:487b796308b0 287 #endif /* STM32F101xG || defined STM32F103x6 || defined STM32F103xB || defined STM32F105xC || defined STM32F107xC || defined STM32F103xE || defined STM32F103xG */
Kojto 96:487b796308b0 288
Kojto 96:487b796308b0 289 /**
Kojto 96:487b796308b0 290 * @}
Kojto 96:487b796308b0 291 */
Kojto 96:487b796308b0 292
Kojto 96:487b796308b0 293
Kojto 96:487b796308b0 294 /* Private constants ---------------------------------------------------------*/
Kojto 96:487b796308b0 295
Kojto 96:487b796308b0 296 /** @addtogroup ADCEx_Private_Constants ADCEx Private Constants
Kojto 96:487b796308b0 297 * @{
Kojto 96:487b796308b0 298 */
Kojto 96:487b796308b0 299
Kojto 96:487b796308b0 300 /** @defgroup ADCEx_Internal_HAL_driver_Ext_trig_src_Regular ADC Extended Internal HAL driver trigger selection for regular group
Kojto 96:487b796308b0 301 * @{
Kojto 96:487b796308b0 302 */
Kojto 96:487b796308b0 303 /* List of external triggers of regular group for ADC1, ADC2, ADC3 (if ADC */
Kojto 96:487b796308b0 304 /* instance is availble on the selected device). */
Kojto 96:487b796308b0 305 /* (used internally by HAL driver. To not use into HAL structure parameters) */
Kojto 96:487b796308b0 306
Kojto 96:487b796308b0 307 /* External triggers of regular group for ADC1&ADC2 (if ADCx available) */
Kojto 96:487b796308b0 308 #define ADC1_2_EXTERNALTRIG_T1_CC1 ((uint32_t) 0x00000000)
Kojto 96:487b796308b0 309 #define ADC1_2_EXTERNALTRIG_T1_CC2 ((uint32_t)( ADC_CR2_EXTSEL_0))
Kojto 96:487b796308b0 310 #define ADC1_2_EXTERNALTRIG_T2_CC2 ((uint32_t)( ADC_CR2_EXTSEL_1 | ADC_CR2_EXTSEL_0))
Kojto 96:487b796308b0 311 #define ADC1_2_EXTERNALTRIG_T3_TRGO ((uint32_t)(ADC_CR2_EXTSEL_2 ))
Kojto 96:487b796308b0 312 #define ADC1_2_EXTERNALTRIG_T4_CC4 ((uint32_t)(ADC_CR2_EXTSEL_2 | ADC_CR2_EXTSEL_0))
Kojto 96:487b796308b0 313 #define ADC1_2_EXTERNALTRIG_EXT_IT11 ((uint32_t)(ADC_CR2_EXTSEL_2 | ADC_CR2_EXTSEL_1 ))
Kojto 96:487b796308b0 314 #if defined (STM32F101xE) || defined (STM32F101xG) || defined (STM32F103xE) || defined (STM32F103xG)
Kojto 96:487b796308b0 315 /* Note: TIM8_TRGO is available on ADC1 and ADC2 only in high-density and */
Kojto 96:487b796308b0 316 /* XL-density devices. */
Kojto 96:487b796308b0 317 #define ADC1_2_EXTERNALTRIG_T8_TRGO ADC1_2_EXTERNALTRIG_EXT_IT11
Kojto 96:487b796308b0 318 #endif
Kojto 96:487b796308b0 319
Kojto 96:487b796308b0 320 #if defined (STM32F103xE) || defined (STM32F103xG)
Kojto 96:487b796308b0 321 /* External triggers of regular group for ADC3 */
Kojto 96:487b796308b0 322 #define ADC3_EXTERNALTRIG_T3_CC1 ADC1_2_EXTERNALTRIG_T1_CC1
Kojto 96:487b796308b0 323 #define ADC3_EXTERNALTRIG_T2_CC3 ADC1_2_EXTERNALTRIG_T1_CC2
Kojto 96:487b796308b0 324 #define ADC3_EXTERNALTRIG_T8_CC1 ADC1_2_EXTERNALTRIG_T2_CC2
Kojto 96:487b796308b0 325 #define ADC3_EXTERNALTRIG_T8_TRGO ADC1_2_EXTERNALTRIG_T3_TRGO
Kojto 96:487b796308b0 326 #define ADC3_EXTERNALTRIG_T5_CC1 ADC1_2_EXTERNALTRIG_T4_CC4
Kojto 96:487b796308b0 327 #define ADC3_EXTERNALTRIG_T5_CC3 ADC1_2_EXTERNALTRIG_EXT_IT11
Kojto 96:487b796308b0 328 #endif
Kojto 96:487b796308b0 329
Kojto 96:487b796308b0 330 /* External triggers of regular group for ADC1&ADC2&ADC3 (if ADCx available) */
Kojto 96:487b796308b0 331 #define ADC1_2_3_EXTERNALTRIG_T1_CC3 ((uint32_t)( ADC_CR2_EXTSEL_1 ))
Kojto 96:487b796308b0 332 #define ADC1_2_3_SWSTART ((uint32_t)(ADC_CR2_EXTSEL_2 | ADC_CR2_EXTSEL_1 | ADC_CR2_EXTSEL_0))
Kojto 96:487b796308b0 333 /**
Kojto 96:487b796308b0 334 * @}
Kojto 96:487b796308b0 335 */
Kojto 96:487b796308b0 336
Kojto 96:487b796308b0 337 /** @defgroup ADCEx_Internal_HAL_driver_Ext_trig_src_Injected ADC Extended Internal HAL driver trigger selection for injected group
Kojto 96:487b796308b0 338 * @{
Kojto 96:487b796308b0 339 */
Kojto 96:487b796308b0 340 /* List of external triggers of injected group for ADC1, ADC2, ADC3 (if ADC */
Kojto 96:487b796308b0 341 /* instance is availble on the selected device). */
Kojto 96:487b796308b0 342 /* (used internally by HAL driver. To not use into HAL structure parameters) */
Kojto 96:487b796308b0 343
Kojto 96:487b796308b0 344 /* External triggers of injected group for ADC1&ADC2 (if ADCx available) */
Kojto 96:487b796308b0 345 #define ADC1_2_EXTERNALTRIGINJEC_T2_TRGO ((uint32_t)( ADC_CR2_JEXTSEL_1 ))
Kojto 96:487b796308b0 346 #define ADC1_2_EXTERNALTRIGINJEC_T2_CC1 ((uint32_t)( ADC_CR2_JEXTSEL_1 | ADC_CR2_JEXTSEL_0))
Kojto 96:487b796308b0 347 #define ADC1_2_EXTERNALTRIGINJEC_T3_CC4 ((uint32_t)(ADC_CR2_JEXTSEL_2 ))
Kojto 96:487b796308b0 348 #define ADC1_2_EXTERNALTRIGINJEC_T4_TRGO ((uint32_t)(ADC_CR2_JEXTSEL_2 | ADC_CR2_JEXTSEL_0))
Kojto 96:487b796308b0 349 #define ADC1_2_EXTERNALTRIGINJEC_EXT_IT15 ((uint32_t)(ADC_CR2_JEXTSEL_2 | ADC_CR2_JEXTSEL_1 ))
Kojto 96:487b796308b0 350 #if defined (STM32F101xE) || defined (STM32F101xG) || defined (STM32F103xE) || defined (STM32F103xG)
Kojto 96:487b796308b0 351 /* Note: TIM8_CC4 is available on ADC1 and ADC2 only in high-density and */
Kojto 96:487b796308b0 352 /* XL-density devices. */
Kojto 96:487b796308b0 353 #define ADC1_2_EXTERNALTRIGINJEC_T8_CC4 ADC1_2_EXTERNALTRIGINJEC_EXT_IT15
Kojto 96:487b796308b0 354 #endif
Kojto 96:487b796308b0 355
Kojto 96:487b796308b0 356 #if defined (STM32F103xE) || defined (STM32F103xG)
Kojto 96:487b796308b0 357 /* External triggers of injected group for ADC3 */
Kojto 96:487b796308b0 358 #define ADC3_EXTERNALTRIGINJEC_T4_CC3 ADC1_2_EXTERNALTRIGINJEC_T2_TRGO
Kojto 96:487b796308b0 359 #define ADC3_EXTERNALTRIGINJEC_T8_CC2 ADC1_2_EXTERNALTRIGINJEC_T2_CC1
Kojto 96:487b796308b0 360 #define ADC3_EXTERNALTRIGINJEC_T8_CC4 ADC1_2_EXTERNALTRIGINJEC_T3_CC4
Kojto 96:487b796308b0 361 #define ADC3_EXTERNALTRIGINJEC_T5_TRGO ADC1_2_EXTERNALTRIGINJEC_T4_TRGO
Kojto 96:487b796308b0 362 #define ADC3_EXTERNALTRIGINJEC_T5_CC4 ADC1_2_EXTERNALTRIGINJEC_EXT_IT15
Kojto 96:487b796308b0 363 #endif /* STM32F103xE || defined STM32F103xG */
Kojto 96:487b796308b0 364
Kojto 96:487b796308b0 365 /* External triggers of injected group for ADC1&ADC2&ADC3 (if ADCx available) */
Kojto 96:487b796308b0 366 #define ADC1_2_3_EXTERNALTRIGINJEC_T1_TRGO ((uint32_t) 0x00000000)
Kojto 96:487b796308b0 367 #define ADC1_2_3_EXTERNALTRIGINJEC_T1_CC4 ((uint32_t)( ADC_CR2_JEXTSEL_0))
Kojto 96:487b796308b0 368 #define ADC1_2_3_JSWSTART ((uint32_t)(ADC_CR2_JEXTSEL_2 | ADC_CR2_JEXTSEL_1 | ADC_CR2_JEXTSEL_0))
Kojto 96:487b796308b0 369 /**
Kojto 96:487b796308b0 370 * @}
Kojto 96:487b796308b0 371 */
Kojto 96:487b796308b0 372
Kojto 96:487b796308b0 373 /**
Kojto 96:487b796308b0 374 * @}
Kojto 96:487b796308b0 375 */
Kojto 96:487b796308b0 376
Kojto 96:487b796308b0 377
Kojto 96:487b796308b0 378 /* Exported macro ------------------------------------------------------------*/
Kojto 96:487b796308b0 379
Kojto 96:487b796308b0 380 /* Private macro -------------------------------------------------------------*/
Kojto 96:487b796308b0 381
Kojto 96:487b796308b0 382 /** @defgroup ADCEx_Private_Macro ADCEx Private Macro
Kojto 96:487b796308b0 383 * @{
Kojto 96:487b796308b0 384 */
Kojto 96:487b796308b0 385 /* Macro reserved for internal HAL driver usage, not intended to be used in */
Kojto 96:487b796308b0 386 /* code of final user. */
Kojto 96:487b796308b0 387
Kojto 96:487b796308b0 388
Kojto 96:487b796308b0 389 /**
Kojto 96:487b796308b0 390 * @brief For devices with 3 ADCs: Defines the external trigger source
Kojto 96:487b796308b0 391 * for regular group according to ADC into common group ADC1&ADC2 or
Kojto 96:487b796308b0 392 * ADC3 (some triggers with same source have different value to
Kojto 96:487b796308b0 393 * be programmed into ADC EXTSEL bits of CR2 register).
Kojto 96:487b796308b0 394 * For devices with 2 ADCs or less: this macro makes no change.
Kojto 96:487b796308b0 395 * @param __HANDLE__: ADC handle
Kojto 96:487b796308b0 396 * @param __EXT_TRIG_CONV__: External trigger selected for regular group.
Kojto 96:487b796308b0 397 * @retval External trigger to be programmed into EXTSEL bits of CR2 register
Kojto 96:487b796308b0 398 */
Kojto 96:487b796308b0 399 #if defined (STM32F103xE) || defined (STM32F103xG)
Kojto 96:487b796308b0 400 #define ADC_CFGR_EXTSEL(__HANDLE__, __EXT_TRIG_CONV__) \
Kojto 96:487b796308b0 401 (( (((__HANDLE__)->Instance) == ADC3) \
Kojto 96:487b796308b0 402 )? \
Kojto 96:487b796308b0 403 ( ( (__EXT_TRIG_CONV__) == ADC_EXTERNALTRIGCONV_T8_TRGO \
Kojto 96:487b796308b0 404 )? \
Kojto 96:487b796308b0 405 (ADC3_EXTERNALTRIG_T8_TRGO) \
Kojto 96:487b796308b0 406 : \
Kojto 96:487b796308b0 407 (__EXT_TRIG_CONV__) \
Kojto 96:487b796308b0 408 ) \
Kojto 96:487b796308b0 409 : \
Kojto 96:487b796308b0 410 (__EXT_TRIG_CONV__) \
Kojto 96:487b796308b0 411 )
Kojto 96:487b796308b0 412 #else
Kojto 96:487b796308b0 413 #define ADC_CFGR_EXTSEL(__HANDLE__, __EXT_TRIG_CONV__) \
Kojto 96:487b796308b0 414 (__EXT_TRIG_CONV__)
Kojto 96:487b796308b0 415 #endif /* STM32F103xE || STM32F103xG */
Kojto 96:487b796308b0 416
Kojto 96:487b796308b0 417 /**
Kojto 96:487b796308b0 418 * @brief For devices with 3 ADCs: Defines the external trigger source
Kojto 96:487b796308b0 419 * for injected group according to ADC into common group ADC1&ADC2 or
Kojto 96:487b796308b0 420 * ADC3 (some triggers with same source have different value to
Kojto 96:487b796308b0 421 * be programmed into ADC JEXTSEL bits of CR2 register).
Kojto 96:487b796308b0 422 * For devices with 2 ADCs or less: this macro makes no change.
Kojto 96:487b796308b0 423 * @param __HANDLE__: ADC handle
Kojto 96:487b796308b0 424 * @param __EXT_TRIG_INJECTCONV__: External trigger selected for injected group.
Kojto 96:487b796308b0 425 * @retval External trigger to be programmed into JEXTSEL bits of CR2 register
Kojto 96:487b796308b0 426 */
Kojto 96:487b796308b0 427 #if defined (STM32F103xE) || defined (STM32F103xG)
Kojto 96:487b796308b0 428 #define ADC_CFGR_JEXTSEL(__HANDLE__, __EXT_TRIG_INJECTCONV__) \
Kojto 96:487b796308b0 429 (( (((__HANDLE__)->Instance) == ADC3) \
Kojto 96:487b796308b0 430 )? \
Kojto 96:487b796308b0 431 ( ( (__EXT_TRIG_INJECTCONV__) == ADC_EXTERNALTRIGINJECCONV_T8_CC4 \
Kojto 96:487b796308b0 432 )? \
Kojto 96:487b796308b0 433 (ADC3_EXTERNALTRIGINJEC_T8_CC4) \
Kojto 96:487b796308b0 434 : \
Kojto 96:487b796308b0 435 (__EXT_TRIG_INJECTCONV__) \
Kojto 96:487b796308b0 436 ) \
Kojto 96:487b796308b0 437 : \
Kojto 96:487b796308b0 438 (__EXT_TRIG_INJECTCONV__) \
Kojto 96:487b796308b0 439 )
Kojto 96:487b796308b0 440 #else
Kojto 96:487b796308b0 441 #define ADC_CFGR_JEXTSEL(__HANDLE__, __EXT_TRIG_INJECTCONV__) \
Kojto 96:487b796308b0 442 (__EXT_TRIG_INJECTCONV__)
Kojto 96:487b796308b0 443 #endif /* STM32F103xE || STM32F103xG */
Kojto 96:487b796308b0 444
Kojto 96:487b796308b0 445
Kojto 96:487b796308b0 446 /**
Kojto 96:487b796308b0 447 * @brief Verification if multimode is enabled for the selected ADC (multimode ADC master or ADC slave) (applicable for devices with several ADCs)
Kojto 96:487b796308b0 448 * @param __HANDLE__: ADC handle
Kojto 96:487b796308b0 449 * @retval Multimode state: RESET if multimode is disabled, other value if multimode is enabled
Kojto 96:487b796308b0 450 */
Kojto 96:487b796308b0 451 #if defined (STM32F101xG) || defined (STM32F103x6) || defined (STM32F103xB) || defined (STM32F105xC) || defined (STM32F107xC) || defined (STM32F103xE) || defined (STM32F103xG)
Kojto 96:487b796308b0 452 #define ADC_MULTIMODE_IS_ENABLE(__HANDLE__) \
Kojto 96:487b796308b0 453 (( (((__HANDLE__)->Instance) == ADC1) || (((__HANDLE__)->Instance) == ADC2) \
Kojto 96:487b796308b0 454 )? \
Kojto 96:487b796308b0 455 (ADC1->CR1 & ADC_CR1_DUALMOD) \
Kojto 96:487b796308b0 456 : \
Kojto 96:487b796308b0 457 (RESET) \
Kojto 96:487b796308b0 458 )
Kojto 96:487b796308b0 459 #else
Kojto 96:487b796308b0 460 #define ADC_MULTIMODE_IS_ENABLE(__HANDLE__) \
Kojto 96:487b796308b0 461 (RESET)
Kojto 96:487b796308b0 462 #endif /* STM32F101xG || defined STM32F103x6 || defined STM32F103xB || defined STM32F105xC || defined STM32F107xC || defined STM32F103xE || defined STM32F103xG */
Kojto 96:487b796308b0 463
Kojto 96:487b796308b0 464 /**
Kojto 96:487b796308b0 465 * @brief Verification of condition for ADC start conversion: ADC must be in non-multimode, or multimode with handle of ADC master (applicable for devices with several ADCs)
Kojto 96:487b796308b0 466 * @param __HANDLE__: ADC handle
Kojto 96:487b796308b0 467 * @retval None
Kojto 96:487b796308b0 468 */
Kojto 96:487b796308b0 469 #if defined (STM32F101xG) || defined (STM32F103x6) || defined (STM32F103xB) || defined (STM32F105xC) || defined (STM32F107xC) || defined (STM32F103xE) || defined (STM32F103xG)
Kojto 96:487b796308b0 470 #define ADC_NONMULTIMODE_OR_MULTIMODEMASTER(__HANDLE__) \
Kojto 96:487b796308b0 471 (( (((__HANDLE__)->Instance) == ADC2) \
Kojto 96:487b796308b0 472 )? \
Kojto 96:487b796308b0 473 ((ADC1->CR1 & ADC_CR1_DUALMOD) == RESET) \
Kojto 96:487b796308b0 474 : \
Kojto 96:487b796308b0 475 (!RESET) \
Kojto 96:487b796308b0 476 )
Kojto 96:487b796308b0 477 #else
Kojto 96:487b796308b0 478 #define ADC_NONMULTIMODE_OR_MULTIMODEMASTER(__HANDLE__) \
Kojto 96:487b796308b0 479 (!RESET)
Kojto 96:487b796308b0 480 #endif /* STM32F101xG || defined STM32F103x6 || defined STM32F103xB || defined STM32F105xC || defined STM32F107xC || defined STM32F103xE || defined STM32F103xG */
Kojto 96:487b796308b0 481
Kojto 96:487b796308b0 482 #if defined (STM32F101xG) || defined (STM32F103x6) || defined (STM32F103xB) || defined (STM32F105xC) || defined (STM32F107xC) || defined (STM32F103xE) || defined (STM32F103xG)
Kojto 96:487b796308b0 483 /**
Kojto 96:487b796308b0 484 * @brief Set handle of the other ADC sharing the common multimode settings
Kojto 96:487b796308b0 485 * @param __HANDLE__: ADC handle
Kojto 96:487b796308b0 486 * @param __HANDLE_OTHER_ADC__: other ADC handle
Kojto 96:487b796308b0 487 * @retval None
Kojto 96:487b796308b0 488 */
Kojto 96:487b796308b0 489 #define ADC_COMMON_ADC_OTHER(__HANDLE__, __HANDLE_OTHER_ADC__) \
Kojto 96:487b796308b0 490 ((__HANDLE_OTHER_ADC__)->Instance = ADC2)
Kojto 96:487b796308b0 491
Kojto 96:487b796308b0 492 /**
Kojto 96:487b796308b0 493 * @brief Set handle of the ADC slave associated to the ADC master
Kojto 96:487b796308b0 494 * On STM32F1 devices, ADC slave is always ADC2 (this can be different
Kojto 96:487b796308b0 495 * on other STM32 devices)
Kojto 96:487b796308b0 496 * @param __HANDLE_MASTER__: ADC master handle
Kojto 96:487b796308b0 497 * @param __HANDLE_SLAVE__: ADC slave handle
Kojto 96:487b796308b0 498 * @retval None
Kojto 96:487b796308b0 499 */
Kojto 96:487b796308b0 500 #define ADC_MULTI_SLAVE(__HANDLE_MASTER__, __HANDLE_SLAVE__) \
Kojto 96:487b796308b0 501 ((__HANDLE_SLAVE__)->Instance = ADC2)
Kojto 96:487b796308b0 502
Kojto 96:487b796308b0 503 #endif /* STM32F101xG || defined STM32F103x6 || defined STM32F103xB || defined STM32F105xC || defined STM32F107xC || defined STM32F103xE || defined STM32F103xG */
Kojto 96:487b796308b0 504
Kojto 96:487b796308b0 505 #define IS_ADC_INJECTED_RANK(CHANNEL) (((CHANNEL) == ADC_INJECTED_RANK_1) || \
Kojto 96:487b796308b0 506 ((CHANNEL) == ADC_INJECTED_RANK_2) || \
Kojto 96:487b796308b0 507 ((CHANNEL) == ADC_INJECTED_RANK_3) || \
Kojto 96:487b796308b0 508 ((CHANNEL) == ADC_INJECTED_RANK_4) )
Kojto 96:487b796308b0 509
Kojto 96:487b796308b0 510 #define IS_ADC_EXTTRIGINJEC_EDGE(EDGE) (((EDGE) == ADC_EXTERNALTRIGINJECCONV_EDGE_NONE) || \
Kojto 96:487b796308b0 511 ((EDGE) == ADC_EXTERNALTRIGINJECCONV_EDGE_RISING) )
Kojto 96:487b796308b0 512
Kojto 96:487b796308b0 513 /** @defgroup ADCEx_injected_nb_conv_verification ADCEx injected nb conv verification
Kojto 96:487b796308b0 514 * @{
Kojto 96:487b796308b0 515 */
Kojto 96:487b796308b0 516 #define IS_ADC_INJECTED_NB_CONV(LENGTH) \
Kojto 96:487b796308b0 517 (((LENGTH) >= ((uint32_t)1)) && ((LENGTH) <= ((uint32_t)4)))
Kojto 96:487b796308b0 518 /**
Kojto 96:487b796308b0 519 * @}
Kojto 96:487b796308b0 520 */
Kojto 96:487b796308b0 521
Kojto 96:487b796308b0 522 #if defined (STM32F100xB) || defined (STM32F100xE) || defined (STM32F101x6) || defined (STM32F101xB) || defined (STM32F102x6) || defined (STM32F102xB) || defined (STM32F103x6) || defined (STM32F103xB) || defined (STM32F105xC) || defined (STM32F107xC)
Kojto 96:487b796308b0 523 #define IS_ADC_EXTTRIG(REGTRIG) (((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_CC1) || \
Kojto 96:487b796308b0 524 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_CC2) || \
Kojto 96:487b796308b0 525 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T2_CC2) || \
Kojto 96:487b796308b0 526 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T3_TRGO) || \
Kojto 96:487b796308b0 527 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T4_CC4) || \
Kojto 96:487b796308b0 528 ((REGTRIG) == ADC_EXTERNALTRIGCONV_EXT_IT11) || \
Kojto 96:487b796308b0 529 \
Kojto 96:487b796308b0 530 ((REGTRIG) == ADC_SOFTWARE_START) )
Kojto 96:487b796308b0 531 #endif
Kojto 96:487b796308b0 532 #if defined (STM32F101xE) || defined (STM32F101xG)
Kojto 96:487b796308b0 533 #define IS_ADC_EXTTRIG(REGTRIG) (((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_CC1) || \
Kojto 96:487b796308b0 534 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_CC2) || \
Kojto 96:487b796308b0 535 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T2_CC2) || \
Kojto 96:487b796308b0 536 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T3_TRGO) || \
Kojto 96:487b796308b0 537 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T4_CC4) || \
Kojto 96:487b796308b0 538 ((REGTRIG) == ADC_EXTERNALTRIGCONV_EXT_IT11) || \
Kojto 96:487b796308b0 539 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T8_TRGO) || \
Kojto 96:487b796308b0 540 \
Kojto 96:487b796308b0 541 ((REGTRIG) == ADC_SOFTWARE_START) )
Kojto 96:487b796308b0 542 #endif
Kojto 96:487b796308b0 543 #if defined (STM32F103xE) || defined (STM32F103xG)
Kojto 96:487b796308b0 544 #define IS_ADC_EXTTRIG(REGTRIG) (((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_CC1) || \
Kojto 96:487b796308b0 545 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_CC2) || \
Kojto 96:487b796308b0 546 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T2_CC2) || \
Kojto 96:487b796308b0 547 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T3_TRGO) || \
Kojto 96:487b796308b0 548 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T4_CC4) || \
Kojto 96:487b796308b0 549 ((REGTRIG) == ADC_EXTERNALTRIGCONV_EXT_IT11) || \
Kojto 96:487b796308b0 550 \
Kojto 96:487b796308b0 551 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T3_CC1) || \
Kojto 96:487b796308b0 552 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T2_CC3) || \
Kojto 96:487b796308b0 553 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T8_CC1) || \
Kojto 96:487b796308b0 554 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T5_CC1) || \
Kojto 96:487b796308b0 555 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T5_CC3) || \
Kojto 96:487b796308b0 556 \
Kojto 96:487b796308b0 557 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T1_CC3) || \
Kojto 96:487b796308b0 558 ((REGTRIG) == ADC_EXTERNALTRIGCONV_T8_TRGO) || \
Kojto 96:487b796308b0 559 ((REGTRIG) == ADC_SOFTWARE_START) )
Kojto 96:487b796308b0 560 #endif
Kojto 96:487b796308b0 561
Kojto 96:487b796308b0 562 #if defined (STM32F100xB) || defined (STM32F100xE) || defined (STM32F101x6) || defined (STM32F101xB) || defined (STM32F102x6) || defined (STM32F102xB) || defined (STM32F103x6) || defined (STM32F103xB) || defined (STM32F105xC) || defined (STM32F107xC)
Kojto 96:487b796308b0 563 #define IS_ADC_EXTTRIGINJEC(REGTRIG) (((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T2_TRGO) || \
Kojto 96:487b796308b0 564 ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T2_CC1) || \
Kojto 96:487b796308b0 565 ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T3_CC4) || \
Kojto 96:487b796308b0 566 ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T4_TRGO) || \
Kojto 96:487b796308b0 567 ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_EXT_IT15) || \
Kojto 96:487b796308b0 568 \
Kojto 96:487b796308b0 569 ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T1_CC4) || \
Kojto 96:487b796308b0 570 ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T1_TRGO) || \
Kojto 96:487b796308b0 571 \
Kojto 96:487b796308b0 572 ((REGTRIG) == ADC_INJECTED_SOFTWARE_START) )
Kojto 96:487b796308b0 573 #endif
Kojto 96:487b796308b0 574 #if defined (STM32F101xE) || defined (STM32F101xG)
Kojto 96:487b796308b0 575 #define IS_ADC_EXTTRIGINJEC(REGTRIG) (((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T2_TRGO) || \
Kojto 96:487b796308b0 576 ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T2_CC1) || \
Kojto 96:487b796308b0 577 ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T3_CC4) || \
Kojto 96:487b796308b0 578 ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T4_TRGO) || \
Kojto 96:487b796308b0 579 ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_EXT_IT15) || \
Kojto 96:487b796308b0 580 \
Kojto 96:487b796308b0 581 ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T1_CC4) || \
Kojto 96:487b796308b0 582 ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T1_TRGO) || \
Kojto 96:487b796308b0 583 ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T8_CC4) || \
Kojto 96:487b796308b0 584 \
Kojto 96:487b796308b0 585 ((REGTRIG) == ADC_INJECTED_SOFTWARE_START) )
Kojto 96:487b796308b0 586 #endif
Kojto 96:487b796308b0 587 #if defined (STM32F103xE) || defined (STM32F103xG)
Kojto 96:487b796308b0 588 #define IS_ADC_EXTTRIGINJEC(REGTRIG) (((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T2_TRGO) || \
Kojto 96:487b796308b0 589 ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T2_CC1) || \
Kojto 96:487b796308b0 590 ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T3_CC4) || \
Kojto 96:487b796308b0 591 ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T4_TRGO) || \
Kojto 96:487b796308b0 592 ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T5_CC4) || \
Kojto 96:487b796308b0 593 ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_EXT_IT15) || \
Kojto 96:487b796308b0 594 \
Kojto 96:487b796308b0 595 ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T4_CC3) || \
Kojto 96:487b796308b0 596 ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T8_CC2) || \
Kojto 96:487b796308b0 597 ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T5_TRGO) || \
Kojto 96:487b796308b0 598 ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T5_CC4) || \
Kojto 96:487b796308b0 599 \
Kojto 96:487b796308b0 600 ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T1_CC4) || \
Kojto 96:487b796308b0 601 ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T1_TRGO) || \
Kojto 96:487b796308b0 602 ((REGTRIG) == ADC_EXTERNALTRIGINJECCONV_T8_CC4) || \
Kojto 96:487b796308b0 603 \
Kojto 96:487b796308b0 604 ((REGTRIG) == ADC_INJECTED_SOFTWARE_START) )
Kojto 96:487b796308b0 605 #endif
Kojto 96:487b796308b0 606
Kojto 96:487b796308b0 607 #if defined (STM32F101xG) || defined (STM32F103x6) || defined (STM32F103xB) || defined (STM32F105xC) || defined (STM32F107xC) || defined (STM32F103xE) || defined (STM32F103xG)
Kojto 96:487b796308b0 608 #define IS_ADC_MODE(MODE) (((MODE) == ADC_MODE_INDEPENDENT) || \
Kojto 96:487b796308b0 609 ((MODE) == ADC_DUALMODE_REGSIMULT_INJECSIMULT) || \
Kojto 96:487b796308b0 610 ((MODE) == ADC_DUALMODE_REGSIMULT_ALTERTRIG) || \
Kojto 96:487b796308b0 611 ((MODE) == ADC_DUALMODE_INJECSIMULT_INTERLFAST) || \
Kojto 96:487b796308b0 612 ((MODE) == ADC_DUALMODE_INJECSIMULT_INTERLSLOW) || \
Kojto 96:487b796308b0 613 ((MODE) == ADC_DUALMODE_INJECSIMULT) || \
Kojto 96:487b796308b0 614 ((MODE) == ADC_DUALMODE_REGSIMULT) || \
Kojto 96:487b796308b0 615 ((MODE) == ADC_DUALMODE_INTERLFAST) || \
Kojto 96:487b796308b0 616 ((MODE) == ADC_DUALMODE_INTERLSLOW) || \
Kojto 96:487b796308b0 617 ((MODE) == ADC_DUALMODE_ALTERTRIG) )
Kojto 96:487b796308b0 618 #endif /* STM32F101xG || defined STM32F103x6 || defined STM32F103xB || defined STM32F105xC || defined STM32F107xC || defined STM32F103xE || defined STM32F103xG */
Kojto 96:487b796308b0 619
Kojto 96:487b796308b0 620 /**
Kojto 96:487b796308b0 621 * @}
Kojto 96:487b796308b0 622 */
Kojto 96:487b796308b0 623
Kojto 96:487b796308b0 624
Kojto 96:487b796308b0 625
Kojto 96:487b796308b0 626
Kojto 96:487b796308b0 627
Kojto 96:487b796308b0 628
Kojto 96:487b796308b0 629 /* Exported functions --------------------------------------------------------*/
Kojto 96:487b796308b0 630 /** @addtogroup ADCEx_Exported_Functions
Kojto 96:487b796308b0 631 * @{
Kojto 96:487b796308b0 632 */
Kojto 96:487b796308b0 633
Kojto 96:487b796308b0 634 /* IO operation functions *****************************************************/
Kojto 96:487b796308b0 635 /** @addtogroup ADCEx_Exported_Functions_Group1
Kojto 96:487b796308b0 636 * @{
Kojto 96:487b796308b0 637 */
Kojto 96:487b796308b0 638
Kojto 96:487b796308b0 639 /* ADC calibration */
Kojto 96:487b796308b0 640 HAL_StatusTypeDef HAL_ADCEx_Calibration_Start(ADC_HandleTypeDef* hadc);
Kojto 96:487b796308b0 641
Kojto 96:487b796308b0 642 /* Blocking mode: Polling */
Kojto 96:487b796308b0 643 HAL_StatusTypeDef HAL_ADCEx_InjectedStart(ADC_HandleTypeDef* hadc);
Kojto 96:487b796308b0 644 HAL_StatusTypeDef HAL_ADCEx_InjectedStop(ADC_HandleTypeDef* hadc);
Kojto 96:487b796308b0 645 HAL_StatusTypeDef HAL_ADCEx_InjectedPollForConversion(ADC_HandleTypeDef* hadc, uint32_t Timeout);
Kojto 96:487b796308b0 646
Kojto 96:487b796308b0 647 /* Non-blocking mode: Interruption */
Kojto 96:487b796308b0 648 HAL_StatusTypeDef HAL_ADCEx_InjectedStart_IT(ADC_HandleTypeDef* hadc);
Kojto 96:487b796308b0 649 HAL_StatusTypeDef HAL_ADCEx_InjectedStop_IT(ADC_HandleTypeDef* hadc);
Kojto 96:487b796308b0 650
Kojto 96:487b796308b0 651 #if defined (STM32F101xG) || defined (STM32F103x6) || defined (STM32F103xB) || defined (STM32F105xC) || defined (STM32F107xC) || defined (STM32F103xE) || defined (STM32F103xG)
Kojto 96:487b796308b0 652 /* ADC multimode */
Kojto 96:487b796308b0 653 HAL_StatusTypeDef HAL_ADCEx_MultiModeStart_DMA(ADC_HandleTypeDef *hadc, uint32_t *pData, uint32_t Length);
Kojto 96:487b796308b0 654 HAL_StatusTypeDef HAL_ADCEx_MultiModeStop_DMA(ADC_HandleTypeDef *hadc);
Kojto 96:487b796308b0 655 #endif /* STM32F101xG || defined STM32F103x6 || defined STM32F103xB || defined STM32F105xC || defined STM32F107xC || defined STM32F103xE || defined STM32F103xG */
Kojto 96:487b796308b0 656
Kojto 96:487b796308b0 657 /* ADC retrieve conversion value intended to be used with polling or interruption */
Kojto 96:487b796308b0 658 uint32_t HAL_ADCEx_InjectedGetValue(ADC_HandleTypeDef* hadc, uint32_t InjectedRank);
Kojto 96:487b796308b0 659 #if defined (STM32F101xG) || defined (STM32F103x6) || defined (STM32F103xB) || defined (STM32F105xC) || defined (STM32F107xC) || defined (STM32F103xE) || defined (STM32F103xG)
Kojto 96:487b796308b0 660 uint32_t HAL_ADCEx_MultiModeGetValue(ADC_HandleTypeDef *hadc);
Kojto 96:487b796308b0 661 #endif /* STM32F101xG || defined STM32F103x6 || defined STM32F103xB || defined STM32F105xC || defined STM32F107xC || defined STM32F103xE || defined STM32F103xG */
Kojto 96:487b796308b0 662
Kojto 96:487b796308b0 663 /* ADC IRQHandler and Callbacks used in non-blocking modes (Interruption) */
Kojto 96:487b796308b0 664 void HAL_ADCEx_InjectedConvCpltCallback(ADC_HandleTypeDef* hadc);
Kojto 96:487b796308b0 665 /**
Kojto 96:487b796308b0 666 * @}
Kojto 96:487b796308b0 667 */
Kojto 96:487b796308b0 668
Kojto 96:487b796308b0 669
Kojto 96:487b796308b0 670 /* Peripheral Control functions ***********************************************/
Kojto 96:487b796308b0 671 /** @addtogroup ADCEx_Exported_Functions_Group2
Kojto 96:487b796308b0 672 * @{
Kojto 96:487b796308b0 673 */
Kojto 96:487b796308b0 674 HAL_StatusTypeDef HAL_ADCEx_InjectedConfigChannel(ADC_HandleTypeDef* hadc,ADC_InjectionConfTypeDef* sConfigInjected);
Kojto 96:487b796308b0 675 #if defined (STM32F101xG) || defined (STM32F103x6) || defined (STM32F103xB) || defined (STM32F105xC) || defined (STM32F107xC) || defined (STM32F103xE) || defined (STM32F103xG)
Kojto 96:487b796308b0 676 HAL_StatusTypeDef HAL_ADCEx_MultiModeConfigChannel(ADC_HandleTypeDef *hadc, ADC_MultiModeTypeDef *multimode);
Kojto 96:487b796308b0 677 #endif /* STM32F101xG || defined STM32F103x6 || defined STM32F103xB || defined STM32F105xC || defined STM32F107xC || defined STM32F103xE || defined STM32F103xG */
Kojto 96:487b796308b0 678 /**
Kojto 96:487b796308b0 679 * @}
Kojto 96:487b796308b0 680 */
Kojto 96:487b796308b0 681
Kojto 96:487b796308b0 682
Kojto 96:487b796308b0 683 /**
Kojto 96:487b796308b0 684 * @}
Kojto 96:487b796308b0 685 */
Kojto 96:487b796308b0 686
Kojto 96:487b796308b0 687
Kojto 96:487b796308b0 688 /**
Kojto 96:487b796308b0 689 * @}
Kojto 96:487b796308b0 690 */
Kojto 96:487b796308b0 691
Kojto 96:487b796308b0 692 /**
Kojto 96:487b796308b0 693 * @}
Kojto 96:487b796308b0 694 */
Kojto 96:487b796308b0 695
Kojto 96:487b796308b0 696 #ifdef __cplusplus
Kojto 96:487b796308b0 697 }
Kojto 96:487b796308b0 698 #endif
Kojto 96:487b796308b0 699
Kojto 96:487b796308b0 700 #endif /* __STM32F1xx_HAL_ADC_EX_H */
Kojto 96:487b796308b0 701
Kojto 96:487b796308b0 702
Kojto 96:487b796308b0 703 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/