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:
Fri May 26 12:30:20 2017 +0100
Revision:
143:86740a56073b
Parent:
135:176b8275d35d
Child:
168:b9e159c1930a
Release 143 of the mbed library.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
<> 135:176b8275d35d 1 /**
<> 135:176b8275d35d 2 ******************************************************************************
<> 135:176b8275d35d 3 * @file stm32f3xx_ll_adc.h
<> 135:176b8275d35d 4 * @author MCD Application Team
<> 135:176b8275d35d 5 * @version V1.4.0
<> 135:176b8275d35d 6 * @date 16-December-2016
<> 135:176b8275d35d 7 * @brief Header file of ADC LL module.
<> 135:176b8275d35d 8 ******************************************************************************
<> 135:176b8275d35d 9 * @attention
<> 135:176b8275d35d 10 *
<> 135:176b8275d35d 11 * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
<> 135:176b8275d35d 12 *
<> 135:176b8275d35d 13 * Redistribution and use in source and binary forms, with or without modification,
<> 135:176b8275d35d 14 * are permitted provided that the following conditions are met:
<> 135:176b8275d35d 15 * 1. Redistributions of source code must retain the above copyright notice,
<> 135:176b8275d35d 16 * this list of conditions and the following disclaimer.
<> 135:176b8275d35d 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
<> 135:176b8275d35d 18 * this list of conditions and the following disclaimer in the documentation
<> 135:176b8275d35d 19 * and/or other materials provided with the distribution.
<> 135:176b8275d35d 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
<> 135:176b8275d35d 21 * may be used to endorse or promote products derived from this software
<> 135:176b8275d35d 22 * without specific prior written permission.
<> 135:176b8275d35d 23 *
<> 135:176b8275d35d 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
<> 135:176b8275d35d 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
<> 135:176b8275d35d 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
<> 135:176b8275d35d 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
<> 135:176b8275d35d 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
<> 135:176b8275d35d 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
<> 135:176b8275d35d 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
<> 135:176b8275d35d 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
<> 135:176b8275d35d 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
<> 135:176b8275d35d 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<> 135:176b8275d35d 34 *
<> 135:176b8275d35d 35 ******************************************************************************
<> 135:176b8275d35d 36 */
<> 135:176b8275d35d 37
<> 135:176b8275d35d 38 /* Define to prevent recursive inclusion -------------------------------------*/
<> 135:176b8275d35d 39 #ifndef __STM32F3xx_LL_ADC_H
<> 135:176b8275d35d 40 #define __STM32F3xx_LL_ADC_H
<> 135:176b8275d35d 41
<> 135:176b8275d35d 42 #ifdef __cplusplus
<> 135:176b8275d35d 43 extern "C" {
<> 135:176b8275d35d 44 #endif
<> 135:176b8275d35d 45
<> 135:176b8275d35d 46 /* Includes ------------------------------------------------------------------*/
<> 135:176b8275d35d 47 #include "stm32f3xx.h"
<> 135:176b8275d35d 48
<> 135:176b8275d35d 49 /** @addtogroup STM32F3xx_LL_Driver
<> 135:176b8275d35d 50 * @{
<> 135:176b8275d35d 51 */
<> 135:176b8275d35d 52
<> 135:176b8275d35d 53 /* Note: Devices of STM32F3 serie embed 1 out of 2 different ADC IP. */
<> 135:176b8275d35d 54 /* - STM32F30x, STM32F31x, STM32F32x, STM32F33x, STM32F35x, STM32F39x: */
<> 135:176b8275d35d 55 /* ADC IP 5Msamples/sec, from 1 to 4 ADC instances and other specific */
<> 135:176b8275d35d 56 /* features (refer to reference manual). */
<> 135:176b8275d35d 57 /* - STM32F37x: */
<> 135:176b8275d35d 58 /* ADC IP 1Msamples/sec, 1 ADC instance */
<> 135:176b8275d35d 59 /* This file contains the drivers of these ADC IP, located in 2 area */
<> 135:176b8275d35d 60 /* delimited by compilation switches. */
<> 135:176b8275d35d 61
<> 135:176b8275d35d 62 #if defined(ADC5_V1_1)
<> 135:176b8275d35d 63
<> 135:176b8275d35d 64 #if defined (ADC1) || defined (ADC2) || defined (ADC3) || defined (ADC4)
<> 135:176b8275d35d 65
<> 135:176b8275d35d 66 /** @defgroup ADC_LL ADC
<> 135:176b8275d35d 67 * @{
<> 135:176b8275d35d 68 */
<> 135:176b8275d35d 69
<> 135:176b8275d35d 70 /* Private types -------------------------------------------------------------*/
<> 135:176b8275d35d 71 /* Private variables ---------------------------------------------------------*/
<> 135:176b8275d35d 72
<> 135:176b8275d35d 73 /* Private constants ---------------------------------------------------------*/
<> 135:176b8275d35d 74 /** @defgroup ADC_LL_Private_Constants ADC Private Constants
<> 135:176b8275d35d 75 * @{
<> 135:176b8275d35d 76 */
<> 135:176b8275d35d 77
<> 135:176b8275d35d 78 /* Internal mask for ADC group regular sequencer: */
<> 135:176b8275d35d 79 /* To select into literal LL_ADC_REG_RANK_x the relevant bits for: */
<> 135:176b8275d35d 80 /* - sequencer register offset */
<> 135:176b8275d35d 81 /* - sequencer rank bits position into the selected register */
<> 135:176b8275d35d 82
<> 135:176b8275d35d 83 /* Internal register offset for ADC group regular sequencer configuration */
<> 135:176b8275d35d 84 /* (offset placed into a spare area of literal definition) */
<> 135:176b8275d35d 85 #define ADC_SQR1_REGOFFSET ((uint32_t)0x00000000U)
<> 135:176b8275d35d 86 #define ADC_SQR2_REGOFFSET ((uint32_t)0x00000100U)
<> 135:176b8275d35d 87 #define ADC_SQR3_REGOFFSET ((uint32_t)0x00000200U)
<> 135:176b8275d35d 88 #define ADC_SQR4_REGOFFSET ((uint32_t)0x00000300U)
<> 135:176b8275d35d 89
<> 135:176b8275d35d 90 #define ADC_REG_SQRX_REGOFFSET_MASK (ADC_SQR1_REGOFFSET | ADC_SQR2_REGOFFSET | ADC_SQR3_REGOFFSET | ADC_SQR4_REGOFFSET)
<> 135:176b8275d35d 91 #define ADC_REG_RANK_ID_SQRX_MASK (ADC_CHANNEL_ID_NUMBER_MASK_POSBIT0)
<> 135:176b8275d35d 92
<> 135:176b8275d35d 93 /* Definition of ADC group regular sequencer bits information to be inserted */
<> 135:176b8275d35d 94 /* into ADC group regular sequencer ranks literals definition. */
<> 135:176b8275d35d 95 #define ADC_REG_RANK_1_SQRX_BITOFFSET_POS ((uint32_t) 6U) /* Value equivalent to POSITION_VAL(ADC_SQR1_SQ1) */
<> 135:176b8275d35d 96 #define ADC_REG_RANK_2_SQRX_BITOFFSET_POS ((uint32_t)12U) /* Value equivalent to POSITION_VAL(ADC_SQR1_SQ2) */
<> 135:176b8275d35d 97 #define ADC_REG_RANK_3_SQRX_BITOFFSET_POS ((uint32_t)18U) /* Value equivalent to POSITION_VAL(ADC_SQR1_SQ3) */
<> 135:176b8275d35d 98 #define ADC_REG_RANK_4_SQRX_BITOFFSET_POS ((uint32_t)24U) /* Value equivalent to POSITION_VAL(ADC_SQR1_SQ4) */
<> 135:176b8275d35d 99 #define ADC_REG_RANK_5_SQRX_BITOFFSET_POS ((uint32_t) 0U) /* Value equivalent to POSITION_VAL(ADC_SQR2_SQ5) */
<> 135:176b8275d35d 100 #define ADC_REG_RANK_6_SQRX_BITOFFSET_POS ((uint32_t) 6U) /* Value equivalent to POSITION_VAL(ADC_SQR2_SQ6) */
<> 135:176b8275d35d 101 #define ADC_REG_RANK_7_SQRX_BITOFFSET_POS ((uint32_t)12U) /* Value equivalent to POSITION_VAL(ADC_SQR2_SQ7) */
<> 135:176b8275d35d 102 #define ADC_REG_RANK_8_SQRX_BITOFFSET_POS ((uint32_t)18U) /* Value equivalent to POSITION_VAL(ADC_SQR2_SQ8) */
<> 135:176b8275d35d 103 #define ADC_REG_RANK_9_SQRX_BITOFFSET_POS ((uint32_t)24U) /* Value equivalent to POSITION_VAL(ADC_SQR2_SQ9) */
<> 135:176b8275d35d 104 #define ADC_REG_RANK_10_SQRX_BITOFFSET_POS ((uint32_t) 0U) /* Value equivalent to POSITION_VAL(ADC_SQR3_SQ10) */
<> 135:176b8275d35d 105 #define ADC_REG_RANK_11_SQRX_BITOFFSET_POS ((uint32_t) 6U) /* Value equivalent to POSITION_VAL(ADC_SQR3_SQ11) */
<> 135:176b8275d35d 106 #define ADC_REG_RANK_12_SQRX_BITOFFSET_POS ((uint32_t)12U) /* Value equivalent to POSITION_VAL(ADC_SQR3_SQ12) */
<> 135:176b8275d35d 107 #define ADC_REG_RANK_13_SQRX_BITOFFSET_POS ((uint32_t)18U) /* Value equivalent to POSITION_VAL(ADC_SQR3_SQ13) */
<> 135:176b8275d35d 108 #define ADC_REG_RANK_14_SQRX_BITOFFSET_POS ((uint32_t)24U) /* Value equivalent to POSITION_VAL(ADC_SQR3_SQ14) */
<> 135:176b8275d35d 109 #define ADC_REG_RANK_15_SQRX_BITOFFSET_POS ((uint32_t) 0U) /* Value equivalent to POSITION_VAL(ADC_SQR4_SQ15) */
<> 135:176b8275d35d 110 #define ADC_REG_RANK_16_SQRX_BITOFFSET_POS ((uint32_t) 6U) /* Value equivalent to POSITION_VAL(ADC_SQR4_SQ16) */
<> 135:176b8275d35d 111
<> 135:176b8275d35d 112
<> 135:176b8275d35d 113
<> 135:176b8275d35d 114 /* Internal mask for ADC group injected sequencer: */
<> 135:176b8275d35d 115 /* To select into literal LL_ADC_INJ_RANK_x the relevant bits for: */
<> 135:176b8275d35d 116 /* - data register offset */
<> 135:176b8275d35d 117 /* - sequencer rank bits position into the selected register */
<> 135:176b8275d35d 118
<> 135:176b8275d35d 119 /* Internal register offset for ADC group injected data register */
<> 135:176b8275d35d 120 /* (offset placed into a spare area of literal definition) */
<> 135:176b8275d35d 121 #define ADC_JDR1_REGOFFSET ((uint32_t)0x00000000U)
<> 135:176b8275d35d 122 #define ADC_JDR2_REGOFFSET ((uint32_t)0x00000100U)
<> 135:176b8275d35d 123 #define ADC_JDR3_REGOFFSET ((uint32_t)0x00000200U)
<> 135:176b8275d35d 124 #define ADC_JDR4_REGOFFSET ((uint32_t)0x00000300U)
<> 135:176b8275d35d 125
<> 135:176b8275d35d 126 #define ADC_INJ_JDRX_REGOFFSET_MASK (ADC_JDR1_REGOFFSET | ADC_JDR2_REGOFFSET | ADC_JDR3_REGOFFSET | ADC_JDR4_REGOFFSET)
<> 135:176b8275d35d 127 #define ADC_INJ_RANK_ID_JSQR_MASK (ADC_CHANNEL_ID_NUMBER_MASK_POSBIT0)
<> 135:176b8275d35d 128
<> 135:176b8275d35d 129 /* Definition of ADC group injected sequencer bits information to be inserted */
<> 135:176b8275d35d 130 /* into ADC group injected sequencer ranks literals definition. */
<> 135:176b8275d35d 131 #define ADC_INJ_RANK_1_JSQR_BITOFFSET_POS ((uint32_t) 8U) /* Value equivalent to POSITION_VAL(ADC_JSQR_JSQ1) */
<> 135:176b8275d35d 132 #define ADC_INJ_RANK_2_JSQR_BITOFFSET_POS ((uint32_t)14U) /* Value equivalent to POSITION_VAL(ADC_JSQR_JSQ2) */
<> 135:176b8275d35d 133 #define ADC_INJ_RANK_3_JSQR_BITOFFSET_POS ((uint32_t)20U) /* Value equivalent to POSITION_VAL(ADC_JSQR_JSQ3) */
<> 135:176b8275d35d 134 #define ADC_INJ_RANK_4_JSQR_BITOFFSET_POS ((uint32_t)26U) /* Value equivalent to POSITION_VAL(ADC_JSQR_JSQ4) */
<> 135:176b8275d35d 135
<> 135:176b8275d35d 136
<> 135:176b8275d35d 137
<> 135:176b8275d35d 138 /* Internal mask for ADC group regular trigger: */
<> 135:176b8275d35d 139 /* To select into literal LL_ADC_REG_TRIG_x the relevant bits for: */
<> 135:176b8275d35d 140 /* - regular trigger source */
<> 135:176b8275d35d 141 /* - regular trigger edge */
<> 135:176b8275d35d 142 #define ADC_REG_TRIG_EXT_EDGE_DEFAULT (ADC_CFGR_EXTEN_0) /* Trigger edge set to rising edge (default setting for compatibility with some ADC on other STM32 families having this setting set by HW default value) */
<> 135:176b8275d35d 143
<> 135:176b8275d35d 144 /* Mask containing trigger source masks for each of possible */
<> 135:176b8275d35d 145 /* trigger edge selection duplicated with shifts [0; 4; 8; 12] */
<> 135:176b8275d35d 146 /* corresponding to {SW start; ext trigger; ext trigger; ext trigger}. */
<> 135:176b8275d35d 147 #define ADC_REG_TRIG_SOURCE_MASK (((LL_ADC_REG_TRIG_SOFTWARE & ADC_CFGR_EXTSEL) << (4U * 0U)) | \
<> 135:176b8275d35d 148 ((ADC_CFGR_EXTSEL) << (4U * 1U)) | \
<> 135:176b8275d35d 149 ((ADC_CFGR_EXTSEL) << (4U * 2U)) | \
<> 135:176b8275d35d 150 ((ADC_CFGR_EXTSEL) << (4U * 3U)) )
<> 135:176b8275d35d 151
<> 135:176b8275d35d 152 /* Mask containing trigger edge masks for each of possible */
<> 135:176b8275d35d 153 /* trigger edge selection duplicated with shifts [0; 4; 8; 12] */
<> 135:176b8275d35d 154 /* corresponding to {SW start; ext trigger; ext trigger; ext trigger}. */
<> 135:176b8275d35d 155 #define ADC_REG_TRIG_EDGE_MASK (((LL_ADC_REG_TRIG_SOFTWARE & ADC_CFGR_EXTEN) << (4U * 0U)) | \
<> 135:176b8275d35d 156 ((ADC_REG_TRIG_EXT_EDGE_DEFAULT) << (4U * 1U)) | \
<> 135:176b8275d35d 157 ((ADC_REG_TRIG_EXT_EDGE_DEFAULT) << (4U * 2U)) | \
<> 135:176b8275d35d 158 ((ADC_REG_TRIG_EXT_EDGE_DEFAULT) << (4U * 3U)) )
<> 135:176b8275d35d 159
<> 135:176b8275d35d 160 /* Definition of ADC group regular trigger bits information. */
<> 135:176b8275d35d 161 #define ADC_REG_TRIG_EXTSEL_BITOFFSET_POS ((uint32_t) 6U) /* Value equivalent to POSITION_VAL(ADC_CFGR_EXTSEL) */
<> 135:176b8275d35d 162 #define ADC_REG_TRIG_EXTEN_BITOFFSET_POS ((uint32_t)10U) /* Value equivalent to POSITION_VAL(ADC_CFGR_EXTEN) */
<> 135:176b8275d35d 163
<> 135:176b8275d35d 164
<> 135:176b8275d35d 165
<> 135:176b8275d35d 166 /* Internal definitions for ADC group regular trigger sources: */
<> 135:176b8275d35d 167 /* To differentiate into literal LL_ADC_REG_TRIG_x the trigger sources */
<> 135:176b8275d35d 168 /* depending on ADC instances ADC1, ADC2, ADC3, ADC4 (if ADC instance is */
<> 135:176b8275d35d 169 /* available on the selected device). */
<> 135:176b8275d35d 170
<> 135:176b8275d35d 171 #if defined(STM32F303xC) || defined(STM32F358xx) || defined(STM32F303xE) || defined(STM32F398xx)
<> 135:176b8275d35d 172 /* Internal mask offset for ADC group injected trigger sources */
<> 135:176b8275d35d 173 /* available only on specific ADC instances. */
<> 135:176b8275d35d 174 /* (offset placed into a spare area of literal definition) */
<> 135:176b8275d35d 175 #define ADC_REG_TRIG_EXT_INST_ADC12 ((uint32_t)0x00000001U) /* Marker for differentiation of ADC group regular external trigger available only on ADC instance: ADC1, ADC2 */
<> 135:176b8275d35d 176 #define ADC_REG_TRIG_EXT_INST_ADC34 ((uint32_t)0x00000002U) /* Marker for differentiation of ADC group regular external trigger available only on ADC instance: ADC3, ADC4 */
<> 135:176b8275d35d 177 #endif
<> 135:176b8275d35d 178
<> 135:176b8275d35d 179 /* Internal mask for ADC group injected trigger: */
<> 135:176b8275d35d 180 /* To select into literal LL_ADC_INJ_TRIG_x the relevant bits for: */
<> 135:176b8275d35d 181 /* - injected trigger source */
<> 135:176b8275d35d 182 /* - injected trigger edge */
<> 135:176b8275d35d 183 #define ADC_INJ_TRIG_EXT_EDGE_DEFAULT (ADC_JSQR_JEXTEN_0) /* Trigger edge set to rising edge (default setting for compatibility with some ADC on other STM32 families having this setting set by HW default value) */
<> 135:176b8275d35d 184
<> 135:176b8275d35d 185 /* Mask containing trigger source masks for each of possible */
<> 135:176b8275d35d 186 /* trigger edge selection duplicated with shifts [0; 4; 8; 12] */
<> 135:176b8275d35d 187 /* corresponding to {SW start; ext trigger; ext trigger; ext trigger}. */
<> 135:176b8275d35d 188 #define ADC_INJ_TRIG_SOURCE_MASK (((LL_ADC_INJ_TRIG_SOFTWARE & ADC_JSQR_JEXTSEL) << (4U * 0U)) | \
<> 135:176b8275d35d 189 ((ADC_JSQR_JEXTSEL) << (4U * 1U)) | \
<> 135:176b8275d35d 190 ((ADC_JSQR_JEXTSEL) << (4U * 2U)) | \
<> 135:176b8275d35d 191 ((ADC_JSQR_JEXTSEL) << (4U * 3U)) )
<> 135:176b8275d35d 192
<> 135:176b8275d35d 193 /* Mask containing trigger edge masks for each of possible */
<> 135:176b8275d35d 194 /* trigger edge selection duplicated with shifts [0; 4; 8; 12] */
<> 135:176b8275d35d 195 /* corresponding to {SW start; ext trigger; ext trigger; ext trigger}. */
<> 135:176b8275d35d 196 #define ADC_INJ_TRIG_EDGE_MASK (((LL_ADC_INJ_TRIG_SOFTWARE & ADC_JSQR_JEXTEN) << (4U * 0U)) | \
<> 135:176b8275d35d 197 ((ADC_INJ_TRIG_EXT_EDGE_DEFAULT) << (4U * 1U)) | \
<> 135:176b8275d35d 198 ((ADC_INJ_TRIG_EXT_EDGE_DEFAULT) << (4U * 2U)) | \
<> 135:176b8275d35d 199 ((ADC_INJ_TRIG_EXT_EDGE_DEFAULT) << (4U * 3U)) )
<> 135:176b8275d35d 200
<> 135:176b8275d35d 201 /* Definition of ADC group injected trigger bits information. */
<> 135:176b8275d35d 202 #define ADC_INJ_TRIG_EXTSEL_BITOFFSET_POS ((uint32_t) 2U) /* Value equivalent to POSITION_VAL(ADC_JSQR_JEXTSEL) */
<> 135:176b8275d35d 203 #define ADC_INJ_TRIG_EXTEN_BITOFFSET_POS ((uint32_t) 6U) /* Value equivalent to POSITION_VAL(ADC_JSQR_JEXTEN) */
<> 135:176b8275d35d 204
<> 135:176b8275d35d 205
<> 135:176b8275d35d 206
<> 135:176b8275d35d 207 /* Internal definitions for ADC group injected trigger sources: */
<> 135:176b8275d35d 208 /* To differentiate into literal LL_ADC_INJ_TRIG_x the trigger sources */
<> 135:176b8275d35d 209 /* depending on ADC instances ADC1, ADC2, ADC3, ADC4 (if ADC instance is */
<> 135:176b8275d35d 210 /* available on the selected device). */
<> 135:176b8275d35d 211
<> 135:176b8275d35d 212 #if defined(STM32F303xC) || defined(STM32F358xx) || defined(STM32F303xE) || defined(STM32F398xx)
<> 135:176b8275d35d 213 /* Internal mask offset for ADC group injected trigger sources */
<> 135:176b8275d35d 214 /* available only on specific ADC instances. */
<> 135:176b8275d35d 215 /* (offset placed into a spare area of literal definition) */
<> 135:176b8275d35d 216 #define ADC_INJ_TRIG_EXT_INST_ADC12 ((uint32_t)0x00000001U) /* Marker for differentiation of ADC group injected external trigger available only on ADC instance: ADC1, ADC2 */
<> 135:176b8275d35d 217 #define ADC_INJ_TRIG_EXT_INST_ADC34 ((uint32_t)0x00000002U) /* Marker for differentiation of ADC group injected external trigger available only on ADC instance: ADC3, ADC4 */
<> 135:176b8275d35d 218 #endif
<> 135:176b8275d35d 219
<> 135:176b8275d35d 220
<> 135:176b8275d35d 221
<> 135:176b8275d35d 222
<> 135:176b8275d35d 223 /* Internal mask for ADC channel: */
<> 135:176b8275d35d 224 /* To select into literal LL_ADC_CHANNEL_x the relevant bits for: */
<> 135:176b8275d35d 225 /* - channel identifier defined by number */
<> 135:176b8275d35d 226 /* - channel identifier defined by bitfield */
<> 135:176b8275d35d 227 /* - channel differentiation between external channels (connected to */
<> 135:176b8275d35d 228 /* GPIO pins) and internal channels (connected to internal paths) */
<> 135:176b8275d35d 229 /* - channel sampling time defined by SMPRx register offset */
<> 135:176b8275d35d 230 /* and SMPx bits positions into SMPRx register */
<> 135:176b8275d35d 231 #define ADC_CHANNEL_ID_NUMBER_MASK (ADC_CFGR_AWD1CH)
<> 135:176b8275d35d 232 #define ADC_CHANNEL_ID_BITFIELD_MASK (ADC_AWD2CR_AWD2CH)
<> 135:176b8275d35d 233 #define ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS ((uint32_t)26U)/* Value equivalent to POSITION_VAL(ADC_CHANNEL_ID_NUMBER_MASK) */
<> 135:176b8275d35d 234 #define ADC_CHANNEL_ID_MASK (ADC_CHANNEL_ID_NUMBER_MASK | ADC_CHANNEL_ID_BITFIELD_MASK | ADC_CHANNEL_ID_INTERNAL_CH_MASK)
<> 135:176b8275d35d 235 /* Equivalent mask of ADC_CHANNEL_NUMBER_MASK aligned on register LSB (bit 0) */
<> 135:176b8275d35d 236 #define ADC_CHANNEL_ID_NUMBER_MASK_POSBIT0 (ADC_SQR2_SQ5) /* Equivalent to shift: (ADC_CHANNEL_NUMBER_MASK >> POSITION_VAL(ADC_CHANNEL_NUMBER_MASK)) */
<> 135:176b8275d35d 237
<> 135:176b8275d35d 238 /* Channel differentiation between external and internal channels */
<> 135:176b8275d35d 239 #define ADC_CHANNEL_ID_INTERNAL_CH ((uint32_t)0x80000000U) /* Marker of internal channel */
<> 135:176b8275d35d 240 #define ADC_CHANNEL_ID_INTERNAL_CH_2 ((uint32_t)0x00080000U) /* Marker of internal channel for other ADC instances, in case of different ADC internal channels mapped on same channel number on different ADC instances */
<> 135:176b8275d35d 241 #define ADC_CHANNEL_ID_INTERNAL_CH_MASK (ADC_CHANNEL_ID_INTERNAL_CH | ADC_CHANNEL_ID_INTERNAL_CH_2)
<> 135:176b8275d35d 242
<> 135:176b8275d35d 243 /* Internal register offset for ADC channel sampling time configuration */
<> 135:176b8275d35d 244 /* (offset placed into a spare area of literal definition) */
<> 135:176b8275d35d 245 #define ADC_SMPR1_REGOFFSET ((uint32_t)0x00000000U)
<> 135:176b8275d35d 246 #define ADC_SMPR2_REGOFFSET ((uint32_t)0x02000000U)
<> 135:176b8275d35d 247 #define ADC_CHANNEL_SMPRX_REGOFFSET_MASK (ADC_SMPR1_REGOFFSET | ADC_SMPR2_REGOFFSET)
<> 135:176b8275d35d 248
<> 135:176b8275d35d 249 #define ADC_CHANNEL_SMPx_BITOFFSET_MASK ((uint32_t)0x01F00000U)
<> 135:176b8275d35d 250 #define ADC_CHANNEL_SMPx_BITOFFSET_POS ((uint32_t)20U) /* Value equivalent to POSITION_VAL(ADC_CHANNEL_SMPx_BITOFFSET_MASK) */
<> 135:176b8275d35d 251
<> 135:176b8275d35d 252 /* Definition of channels ID number information to be inserted into */
<> 135:176b8275d35d 253 /* channels literals definition. */
<> 135:176b8275d35d 254 #define ADC_CHANNEL_0_NUMBER ((uint32_t)0x00000000U)
<> 135:176b8275d35d 255 #define ADC_CHANNEL_1_NUMBER ( ADC_CFGR_AWD1CH_0)
<> 135:176b8275d35d 256 #define ADC_CHANNEL_2_NUMBER ( ADC_CFGR_AWD1CH_1 )
<> 135:176b8275d35d 257 #define ADC_CHANNEL_3_NUMBER ( ADC_CFGR_AWD1CH_1 | ADC_CFGR_AWD1CH_0)
<> 135:176b8275d35d 258 #define ADC_CHANNEL_4_NUMBER ( ADC_CFGR_AWD1CH_2 )
<> 135:176b8275d35d 259 #define ADC_CHANNEL_5_NUMBER ( ADC_CFGR_AWD1CH_2 | ADC_CFGR_AWD1CH_0)
<> 135:176b8275d35d 260 #define ADC_CHANNEL_6_NUMBER ( ADC_CFGR_AWD1CH_2 | ADC_CFGR_AWD1CH_1 )
<> 135:176b8275d35d 261 #define ADC_CHANNEL_7_NUMBER ( ADC_CFGR_AWD1CH_2 | ADC_CFGR_AWD1CH_1 | ADC_CFGR_AWD1CH_0)
<> 135:176b8275d35d 262 #define ADC_CHANNEL_8_NUMBER ( ADC_CFGR_AWD1CH_3 )
<> 135:176b8275d35d 263 #define ADC_CHANNEL_9_NUMBER ( ADC_CFGR_AWD1CH_3 | ADC_CFGR_AWD1CH_0)
<> 135:176b8275d35d 264 #define ADC_CHANNEL_10_NUMBER ( ADC_CFGR_AWD1CH_3 | ADC_CFGR_AWD1CH_1 )
<> 135:176b8275d35d 265 #define ADC_CHANNEL_11_NUMBER ( ADC_CFGR_AWD1CH_3 | ADC_CFGR_AWD1CH_1 | ADC_CFGR_AWD1CH_0)
<> 135:176b8275d35d 266 #define ADC_CHANNEL_12_NUMBER ( ADC_CFGR_AWD1CH_3 | ADC_CFGR_AWD1CH_2 )
<> 135:176b8275d35d 267 #define ADC_CHANNEL_13_NUMBER ( ADC_CFGR_AWD1CH_3 | ADC_CFGR_AWD1CH_2 | ADC_CFGR_AWD1CH_0)
<> 135:176b8275d35d 268 #define ADC_CHANNEL_14_NUMBER ( ADC_CFGR_AWD1CH_3 | ADC_CFGR_AWD1CH_2 | ADC_CFGR_AWD1CH_1 )
<> 135:176b8275d35d 269 #define ADC_CHANNEL_15_NUMBER ( ADC_CFGR_AWD1CH_3 | ADC_CFGR_AWD1CH_2 | ADC_CFGR_AWD1CH_1 | ADC_CFGR_AWD1CH_0)
<> 135:176b8275d35d 270 #define ADC_CHANNEL_16_NUMBER (ADC_CFGR_AWD1CH_4 )
<> 135:176b8275d35d 271 #define ADC_CHANNEL_17_NUMBER (ADC_CFGR_AWD1CH_4 | ADC_CFGR_AWD1CH_0)
<> 135:176b8275d35d 272 #define ADC_CHANNEL_18_NUMBER (ADC_CFGR_AWD1CH_4 | ADC_CFGR_AWD1CH_1 )
<> 135:176b8275d35d 273
<> 135:176b8275d35d 274 /* Definition of channels ID bitfield information to be inserted into */
<> 135:176b8275d35d 275 /* channels literals definition. */
<> 135:176b8275d35d 276 #define ADC_CHANNEL_0_BITFIELD (ADC_AWD2CR_AWD2CH_0)
<> 135:176b8275d35d 277 #define ADC_CHANNEL_1_BITFIELD (ADC_AWD2CR_AWD2CH_1)
<> 135:176b8275d35d 278 #define ADC_CHANNEL_2_BITFIELD (ADC_AWD2CR_AWD2CH_2)
<> 135:176b8275d35d 279 #define ADC_CHANNEL_3_BITFIELD (ADC_AWD2CR_AWD2CH_3)
<> 135:176b8275d35d 280 #define ADC_CHANNEL_4_BITFIELD (ADC_AWD2CR_AWD2CH_4)
<> 135:176b8275d35d 281 #define ADC_CHANNEL_5_BITFIELD (ADC_AWD2CR_AWD2CH_5)
<> 135:176b8275d35d 282 #define ADC_CHANNEL_6_BITFIELD (ADC_AWD2CR_AWD2CH_6)
<> 135:176b8275d35d 283 #define ADC_CHANNEL_7_BITFIELD (ADC_AWD2CR_AWD2CH_7)
<> 135:176b8275d35d 284 #define ADC_CHANNEL_8_BITFIELD (ADC_AWD2CR_AWD2CH_8)
<> 135:176b8275d35d 285 #define ADC_CHANNEL_9_BITFIELD (ADC_AWD2CR_AWD2CH_9)
<> 135:176b8275d35d 286 #define ADC_CHANNEL_10_BITFIELD (ADC_AWD2CR_AWD2CH_10)
<> 135:176b8275d35d 287 #define ADC_CHANNEL_11_BITFIELD (ADC_AWD2CR_AWD2CH_11)
<> 135:176b8275d35d 288 #define ADC_CHANNEL_12_BITFIELD (ADC_AWD2CR_AWD2CH_12)
<> 135:176b8275d35d 289 #define ADC_CHANNEL_13_BITFIELD (ADC_AWD2CR_AWD2CH_13)
<> 135:176b8275d35d 290 #define ADC_CHANNEL_14_BITFIELD (ADC_AWD2CR_AWD2CH_14)
<> 135:176b8275d35d 291 #define ADC_CHANNEL_15_BITFIELD (ADC_AWD2CR_AWD2CH_15)
<> 135:176b8275d35d 292 #define ADC_CHANNEL_16_BITFIELD (ADC_AWD2CR_AWD2CH_16)
<> 135:176b8275d35d 293 #define ADC_CHANNEL_17_BITFIELD (ADC_AWD2CR_AWD2CH_17)
<> 135:176b8275d35d 294 #define ADC_CHANNEL_18_BITFIELD (ADC_AWD2CR_AWD2CH_18)
<> 135:176b8275d35d 295
<> 135:176b8275d35d 296 /* Definition of channels sampling time information to be inserted into */
<> 135:176b8275d35d 297 /* channels literals definition. */
<> 135:176b8275d35d 298 #define ADC_CHANNEL_0_SMP (ADC_SMPR1_REGOFFSET | (((uint32_t) 0U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP0) */
<> 135:176b8275d35d 299 #define ADC_CHANNEL_1_SMP (ADC_SMPR1_REGOFFSET | (((uint32_t) 3U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP1) */
<> 135:176b8275d35d 300 #define ADC_CHANNEL_2_SMP (ADC_SMPR1_REGOFFSET | (((uint32_t) 6U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP2) */
<> 135:176b8275d35d 301 #define ADC_CHANNEL_3_SMP (ADC_SMPR1_REGOFFSET | (((uint32_t) 9U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP3) */
<> 135:176b8275d35d 302 #define ADC_CHANNEL_4_SMP (ADC_SMPR1_REGOFFSET | (((uint32_t)12U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP4) */
<> 135:176b8275d35d 303 #define ADC_CHANNEL_5_SMP (ADC_SMPR1_REGOFFSET | (((uint32_t)15U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP5) */
<> 135:176b8275d35d 304 #define ADC_CHANNEL_6_SMP (ADC_SMPR1_REGOFFSET | (((uint32_t)18U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP6) */
<> 135:176b8275d35d 305 #define ADC_CHANNEL_7_SMP (ADC_SMPR1_REGOFFSET | (((uint32_t)21U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP7) */
<> 135:176b8275d35d 306 #define ADC_CHANNEL_8_SMP (ADC_SMPR1_REGOFFSET | (((uint32_t)24U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP8) */
<> 135:176b8275d35d 307 #define ADC_CHANNEL_9_SMP (ADC_SMPR1_REGOFFSET | (((uint32_t)27U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP9) */
<> 135:176b8275d35d 308 #define ADC_CHANNEL_10_SMP (ADC_SMPR2_REGOFFSET | (((uint32_t) 0U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP10) */
<> 135:176b8275d35d 309 #define ADC_CHANNEL_11_SMP (ADC_SMPR2_REGOFFSET | (((uint32_t) 3U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP11) */
<> 135:176b8275d35d 310 #define ADC_CHANNEL_12_SMP (ADC_SMPR2_REGOFFSET | (((uint32_t) 6U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP12) */
<> 135:176b8275d35d 311 #define ADC_CHANNEL_13_SMP (ADC_SMPR2_REGOFFSET | (((uint32_t) 9U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP13) */
<> 135:176b8275d35d 312 #define ADC_CHANNEL_14_SMP (ADC_SMPR2_REGOFFSET | (((uint32_t)12U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP14) */
<> 135:176b8275d35d 313 #define ADC_CHANNEL_15_SMP (ADC_SMPR2_REGOFFSET | (((uint32_t)15U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP15) */
<> 135:176b8275d35d 314 #define ADC_CHANNEL_16_SMP (ADC_SMPR2_REGOFFSET | (((uint32_t)18U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP16) */
<> 135:176b8275d35d 315 #define ADC_CHANNEL_17_SMP (ADC_SMPR2_REGOFFSET | (((uint32_t)21U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP17) */
<> 135:176b8275d35d 316 #define ADC_CHANNEL_18_SMP (ADC_SMPR2_REGOFFSET | (((uint32_t)24U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP18) */
<> 135:176b8275d35d 317
<> 135:176b8275d35d 318
<> 135:176b8275d35d 319 /* Internal mask for ADC mode single or differential ended: */
<> 135:176b8275d35d 320 /* To select into literals LL_ADC_SINGLE_ENDED or LL_ADC_SINGLE_DIFFERENTIAL */
<> 135:176b8275d35d 321 /* the relevant bits for: */
<> 135:176b8275d35d 322 /* (concatenation of multiple bits used in different registers) */
<> 135:176b8275d35d 323 /* - ADC calibration: calibration start, calibration factor get or set */
<> 135:176b8275d35d 324 /* - ADC channels: set each ADC channel ending mode */
<> 135:176b8275d35d 325 #define ADC_SINGLEDIFF_CALIB_START_MASK (ADC_CR_ADCALDIF)
<> 135:176b8275d35d 326 #define ADC_SINGLEDIFF_CALIB_FACTOR_MASK (ADC_CALFACT_CALFACT_D | ADC_CALFACT_CALFACT_S)
<> 135:176b8275d35d 327 #define ADC_SINGLEDIFF_CHANNEL_MASK (ADC_CHANNEL_ID_BITFIELD_MASK) /* Equivalent to ADC_DIFSEL_DIFSEL */
<> 135:176b8275d35d 328 #define ADC_SINGLEDIFF_CHANNEL_SHIFT_MASK (ADC_CALFACT_CALFACT_S_5) /* Bit chosen to perform of shift when single mode is selected, shift value out of channels bits range. */
<> 135:176b8275d35d 329
<> 135:176b8275d35d 330
<> 135:176b8275d35d 331 /* Internal mask for ADC analog watchdog: */
<> 135:176b8275d35d 332 /* To select into literals LL_ADC_AWD_CHANNELx_xxx the relevant bits for: */
<> 135:176b8275d35d 333 /* (concatenation of multiple bits used in different analog watchdogs, */
<> 135:176b8275d35d 334 /* (feature of several watchdogs not available on all STM32 families)). */
<> 135:176b8275d35d 335 /* - analog watchdog 1: monitored channel defined by number, */
<> 135:176b8275d35d 336 /* selection of ADC group (ADC groups regular and-or injected). */
<> 135:176b8275d35d 337 /* - analog watchdog 2 and 3: monitored channel defined by bitfield, no */
<> 135:176b8275d35d 338 /* selection on groups. */
<> 135:176b8275d35d 339
<> 135:176b8275d35d 340 /* Internal register offset for ADC analog watchdog channel configuration */
<> 135:176b8275d35d 341 #define ADC_AWD_CR1_REGOFFSET ((uint32_t)0x00000000U)
<> 135:176b8275d35d 342 #define ADC_AWD_CR2_REGOFFSET ((uint32_t)0x00100000U)
<> 135:176b8275d35d 343 #define ADC_AWD_CR3_REGOFFSET ((uint32_t)0x00200000U)
<> 135:176b8275d35d 344
<> 135:176b8275d35d 345 /* Register offset gap between AWD1 and AWD2-AWD3 configuration registers */
<> 135:176b8275d35d 346 /* (Set separately as ADC_AWD_CRX_REGOFFSET to spare 32 bits space */
<> 135:176b8275d35d 347 #define ADC_AWD_CR12_REGOFFSETGAP_MASK (ADC_AWD2CR_AWD2CH_0)
<> 135:176b8275d35d 348 #define ADC_AWD_CR12_REGOFFSETGAP_VAL ((uint32_t)0x00000024U)
<> 135:176b8275d35d 349
<> 135:176b8275d35d 350 #define ADC_AWD_CRX_REGOFFSET_MASK (ADC_AWD_CR1_REGOFFSET | ADC_AWD_CR2_REGOFFSET | ADC_AWD_CR3_REGOFFSET)
<> 135:176b8275d35d 351
<> 135:176b8275d35d 352 #define ADC_AWD_CR1_CHANNEL_MASK (ADC_CFGR_AWD1CH | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL)
<> 135:176b8275d35d 353 #define ADC_AWD_CR23_CHANNEL_MASK (ADC_AWD2CR_AWD2CH)
<> 135:176b8275d35d 354 #define ADC_AWD_CR_ALL_CHANNEL_MASK (ADC_AWD_CR1_CHANNEL_MASK | ADC_AWD_CR23_CHANNEL_MASK)
<> 135:176b8275d35d 355
<> 135:176b8275d35d 356 /* Internal register offset for ADC analog watchdog threshold configuration */
<> 135:176b8275d35d 357 #define ADC_AWD_TR1_REGOFFSET (ADC_AWD_CR1_REGOFFSET)
<> 135:176b8275d35d 358 #define ADC_AWD_TR2_REGOFFSET (ADC_AWD_CR2_REGOFFSET)
<> 135:176b8275d35d 359 #define ADC_AWD_TR3_REGOFFSET (ADC_AWD_CR3_REGOFFSET)
<> 135:176b8275d35d 360 #define ADC_AWD_TRX_REGOFFSET_MASK (ADC_AWD_TR1_REGOFFSET | ADC_AWD_TR2_REGOFFSET | ADC_AWD_TR3_REGOFFSET)
<> 135:176b8275d35d 361
<> 135:176b8275d35d 362
<> 135:176b8275d35d 363 /* Internal mask for ADC offset: */
<> 135:176b8275d35d 364 /* Internal register offset for ADC offset number configuration */
<> 135:176b8275d35d 365 #define ADC_OFR1_REGOFFSET ((uint32_t)0x00000000U)
<> 135:176b8275d35d 366 #define ADC_OFR2_REGOFFSET ((uint32_t)0x00000001U)
<> 135:176b8275d35d 367 #define ADC_OFR3_REGOFFSET ((uint32_t)0x00000002U)
<> 135:176b8275d35d 368 #define ADC_OFR4_REGOFFSET ((uint32_t)0x00000003U)
<> 135:176b8275d35d 369 #define ADC_OFRx_REGOFFSET_MASK (ADC_OFR1_REGOFFSET | ADC_OFR2_REGOFFSET | ADC_OFR3_REGOFFSET | ADC_OFR4_REGOFFSET)
<> 135:176b8275d35d 370
<> 135:176b8275d35d 371
<> 135:176b8275d35d 372 /* ADC registers bits positions */
<> 135:176b8275d35d 373 #define ADC_CFGR_RES_BITOFFSET_POS ((uint32_t) 3U) /* Value equivalent to POSITION_VAL(ADC_CFGR_RES) */
<> 135:176b8275d35d 374 #define ADC_CFGR_AWD1SGL_BITOFFSET_POS ((uint32_t)22U) /* Value equivalent to POSITION_VAL(ADC_CFGR_AWD1SGL) */
<> 135:176b8275d35d 375 #define ADC_CFGR_AWD1EN_BITOFFSET_POS ((uint32_t)23U) /* Value equivalent to POSITION_VAL(ADC_CFGR_AWD1EN) */
<> 135:176b8275d35d 376 #define ADC_CFGR_JAWD1EN_BITOFFSET_POS ((uint32_t)24U) /* Value equivalent to POSITION_VAL(ADC_CFGR_JAWD1EN) */
<> 135:176b8275d35d 377 #define ADC_TR1_HT1_BITOFFSET_POS ((uint32_t)16U) /* Value equivalent to POSITION_VAL(ADC_TR1_HT1) */
<> 135:176b8275d35d 378
<> 135:176b8275d35d 379
<> 135:176b8275d35d 380 /* ADC registers bits groups */
<> 135:176b8275d35d 381 #define ADC_CR_BITS_PROPERTY_RS (ADC_CR_ADCAL | ADC_CR_JADSTP | ADC_CR_ADSTP | ADC_CR_JADSTART | ADC_CR_ADSTART | ADC_CR_ADDIS | ADC_CR_ADEN) /* ADC register CR bits with HW property "rs": Software can read as well as set this bit. Writing '0' has no effect on the bit value. */
<> 135:176b8275d35d 382
<> 135:176b8275d35d 383
<> 135:176b8275d35d 384 /* ADC internal channels related definitions */
<> 135:176b8275d35d 385 /* Internal voltage reference VrefInt */
<> 135:176b8275d35d 386 #define VREFINT_CAL_ADDR ((uint16_t*) ((uint32_t)0x1FFFF7BAU)) /* Internal voltage reference, address of parameter VREFINT_CAL: VrefInt ADC raw data acquired at temperature 30 DegC (tolerance: +-5 DegC), Vref+ = 3.3 V (tolerance: +-10 mV). */
<> 135:176b8275d35d 387 #define VREFINT_CAL_VREF ((uint32_t) 3300U) /* Analog voltage reference (Vref+) value with which temperature sensor has been calibrated in production (tolerance: +-10 mV) (unit: mV). */
<> 135:176b8275d35d 388 /* Temperature sensor */
<> 135:176b8275d35d 389 #define TEMPSENSOR_CAL1_ADDR ((uint16_t*) ((uint32_t)0x1FFFF7B8U)) /* Internal temperature sensor, address of parameter TS_CAL1: On STM32F3, temperature sensor ADC raw data acquired at temperature 25 DegC (tolerance: +-5 DegC), Vref+ = 3.3 V (tolerance: +-10 mV). */
<> 135:176b8275d35d 390 #define TEMPSENSOR_CAL2_ADDR ((uint16_t*) ((uint32_t)0x1FFFF7C2U)) /* Internal temperature sensor, address of parameter TS_CAL2: On STM32F3, temperature sensor ADC raw data acquired at temperature 110 DegC (tolerance: +-5 DegC), Vref+ = 3.3 V (tolerance: +-10 mV). */
<> 135:176b8275d35d 391 #define TEMPSENSOR_CAL1_TEMP (( int32_t) 25) /* Internal temperature sensor, temperature at which temperature sensor has been calibrated in production for data into TEMPSENSOR_CAL1_ADDR (tolerance: +-5 DegC) (unit: DegC). */
<> 135:176b8275d35d 392 #define TEMPSENSOR_CAL2_TEMP (( int32_t) 110) /* Internal temperature sensor, temperature at which temperature sensor has been calibrated in production for data into TEMPSENSOR_CAL2_ADDR (tolerance: +-5 DegC) (unit: DegC). */
<> 135:176b8275d35d 393 #define TEMPSENSOR_CAL_VREFANALOG ((uint32_t) 3300U) /* Analog voltage reference (Vref+) voltage with which temperature sensor has been calibrated in production (+-10 mV) (unit: mV). */
<> 135:176b8275d35d 394
<> 135:176b8275d35d 395
<> 135:176b8275d35d 396 /**
<> 135:176b8275d35d 397 * @}
<> 135:176b8275d35d 398 */
<> 135:176b8275d35d 399
<> 135:176b8275d35d 400
<> 135:176b8275d35d 401 /* Private macros ------------------------------------------------------------*/
<> 135:176b8275d35d 402 /** @defgroup ADC_LL_Private_Macros ADC Private Macros
<> 135:176b8275d35d 403 * @{
<> 135:176b8275d35d 404 */
<> 135:176b8275d35d 405
<> 135:176b8275d35d 406 /**
<> 135:176b8275d35d 407 * @brief Driver macro reserved for internal use: isolate bits with the
<> 135:176b8275d35d 408 * selected mask and shift them to the register LSB
<> 135:176b8275d35d 409 * (shift mask on register position bit 0).
<> 135:176b8275d35d 410 * @param __BITS__ Bits in register 32 bits
<> 135:176b8275d35d 411 * @param __MASK__ Mask in register 32 bits
<> 135:176b8275d35d 412 * @retval Bits in register 32 bits
<> 135:176b8275d35d 413 */
<> 135:176b8275d35d 414 #define __ADC_MASK_SHIFT(__BITS__, __MASK__) \
<> 135:176b8275d35d 415 (((__BITS__) & (__MASK__)) >> POSITION_VAL((__MASK__)))
<> 135:176b8275d35d 416
<> 135:176b8275d35d 417 /**
<> 135:176b8275d35d 418 * @brief Driver macro reserved for internal use: set a pointer to
<> 135:176b8275d35d 419 * a register from a register basis from which an offset
<> 135:176b8275d35d 420 * is applied.
<> 135:176b8275d35d 421 * @param __REG__ Register basis from which the offset is applied.
<> 135:176b8275d35d 422 * @param __REG_OFFFSET__ Offset to be applied (unit: number of registers).
<> 135:176b8275d35d 423 * @retval Pointer to register address
<> 135:176b8275d35d 424 */
<> 135:176b8275d35d 425 #define __ADC_PTR_REG_OFFSET(__REG__, __REG_OFFFSET__) \
<> 135:176b8275d35d 426 ((uint32_t *)((uint32_t) ((uint32_t)(&(__REG__)) + ((__REG_OFFFSET__) << 2U))))
<> 135:176b8275d35d 427
<> 135:176b8275d35d 428 /**
<> 135:176b8275d35d 429 * @}
<> 135:176b8275d35d 430 */
<> 135:176b8275d35d 431
<> 135:176b8275d35d 432
<> 135:176b8275d35d 433 /* Exported types ------------------------------------------------------------*/
<> 135:176b8275d35d 434 #if defined(USE_FULL_LL_DRIVER)
<> 135:176b8275d35d 435 /** @defgroup ADC_LL_ES_INIT ADC Exported Init structure
<> 135:176b8275d35d 436 * @{
<> 135:176b8275d35d 437 */
<> 135:176b8275d35d 438
<> 135:176b8275d35d 439 /**
<> 135:176b8275d35d 440 * @brief Structure definition of some features of ADC common parameters
<> 135:176b8275d35d 441 * and multimode
<> 135:176b8275d35d 442 * (all ADC instances belonging to the same ADC common instance).
<> 135:176b8275d35d 443 * @note The setting of these parameters by function @ref LL_ADC_CommonInit()
<> 135:176b8275d35d 444 * is conditioned to ADC instances state (all ADC instances
<> 135:176b8275d35d 445 * sharing the same ADC common instance):
<> 135:176b8275d35d 446 * All ADC instances sharing the same ADC common instance must be
<> 135:176b8275d35d 447 * disabled.
<> 135:176b8275d35d 448 */
<> 135:176b8275d35d 449 typedef struct
<> 135:176b8275d35d 450 {
<> 135:176b8275d35d 451 uint32_t CommonClock; /*!< Set parameter common to several ADC: Clock source and prescaler.
<> 135:176b8275d35d 452 This parameter can be a value of @ref ADC_LL_EC_COMMON_CLOCK_SOURCE
<> 135:176b8275d35d 453 @note On this STM32 serie, if ADC group injected is used, some
<> 135:176b8275d35d 454 clock ratio constraints between ADC clock and AHB clock
<> 135:176b8275d35d 455 must be respected. Refer to reference manual.
<> 135:176b8275d35d 456
<> 135:176b8275d35d 457 This feature can be modified afterwards using unitary function @ref LL_ADC_SetCommonClock(). */
<> 135:176b8275d35d 458
<> 135:176b8275d35d 459 #if defined(ADC_MULTIMODE_SUPPORT)
<> 135:176b8275d35d 460 uint32_t Multimode; /*!< Set ADC multimode configuration to operate in independent mode or multimode (for devices with several ADC instances).
<> 135:176b8275d35d 461 This parameter can be a value of @ref ADC_LL_EC_MULTI_MODE
<> 135:176b8275d35d 462
<> 135:176b8275d35d 463 This feature can be modified afterwards using unitary function @ref LL_ADC_SetMultimode(). */
<> 135:176b8275d35d 464
<> 135:176b8275d35d 465 uint32_t MultiDMATransfer; /*!< Set ADC multimode conversion data transfer: no transfer or transfer by DMA.
<> 135:176b8275d35d 466 This parameter can be a value of @ref ADC_LL_EC_MULTI_DMA_TRANSFER
<> 135:176b8275d35d 467
<> 135:176b8275d35d 468 This feature can be modified afterwards using unitary function @ref LL_ADC_SetMultiDMATransfer(). */
<> 135:176b8275d35d 469
<> 135:176b8275d35d 470 uint32_t MultiTwoSamplingDelay; /*!< Set ADC multimode delay between 2 sampling phases.
<> 135:176b8275d35d 471 This parameter can be a value of @ref ADC_LL_EC_MULTI_TWOSMP_DELAY
<> 135:176b8275d35d 472
<> 135:176b8275d35d 473 This feature can be modified afterwards using unitary function @ref LL_ADC_SetMultiTwoSamplingDelay(). */
<> 135:176b8275d35d 474 #endif /* ADC_MULTIMODE_SUPPORT */
<> 135:176b8275d35d 475
<> 135:176b8275d35d 476 } LL_ADC_CommonInitTypeDef;
<> 135:176b8275d35d 477
<> 135:176b8275d35d 478 /**
<> 135:176b8275d35d 479 * @brief Structure definition of some features of ADC instance.
<> 135:176b8275d35d 480 * @note These parameters have an impact on ADC scope: ADC instance.
<> 135:176b8275d35d 481 * Affects both group regular and group injected (availability
<> 135:176b8275d35d 482 * of ADC group injected depends on STM32 families).
<> 135:176b8275d35d 483 * Refer to corresponding unitary functions into
<> 135:176b8275d35d 484 * @ref ADC_LL_EF_Configuration_ADC_Instance .
<> 135:176b8275d35d 485 * @note The setting of these parameters by function @ref LL_ADC_Init()
<> 135:176b8275d35d 486 * is conditioned to ADC state:
<> 135:176b8275d35d 487 * ADC instance must be disabled.
<> 135:176b8275d35d 488 * This condition is applied to all ADC features, for efficiency
<> 135:176b8275d35d 489 * and compatibility over all STM32 families. However, the different
<> 135:176b8275d35d 490 * features can be set under different ADC state conditions
<> 135:176b8275d35d 491 * (setting possible with ADC enabled without conversion on going,
<> 135:176b8275d35d 492 * ADC enabled with conversion on going, ...)
<> 135:176b8275d35d 493 * Each feature can be updated afterwards with a unitary function
<> 135:176b8275d35d 494 * and potentially with ADC in a different state than disabled,
<> 135:176b8275d35d 495 * refer to description of each function for setting
<> 135:176b8275d35d 496 * conditioned to ADC state.
<> 135:176b8275d35d 497 */
<> 135:176b8275d35d 498 typedef struct
<> 135:176b8275d35d 499 {
<> 135:176b8275d35d 500 uint32_t Resolution; /*!< Set ADC resolution.
<> 135:176b8275d35d 501 This parameter can be a value of @ref ADC_LL_EC_RESOLUTION
<> 135:176b8275d35d 502
<> 135:176b8275d35d 503 This feature can be modified afterwards using unitary function @ref LL_ADC_SetResolution(). */
<> 135:176b8275d35d 504
<> 135:176b8275d35d 505 uint32_t DataAlignment; /*!< Set ADC conversion data alignment.
<> 135:176b8275d35d 506 This parameter can be a value of @ref ADC_LL_EC_DATA_ALIGN
<> 135:176b8275d35d 507
<> 135:176b8275d35d 508 This feature can be modified afterwards using unitary function @ref LL_ADC_SetDataAlignment(). */
<> 135:176b8275d35d 509
<> 135:176b8275d35d 510 uint32_t LowPowerMode; /*!< Set ADC low power mode.
<> 135:176b8275d35d 511 This parameter can be a value of @ref ADC_LL_EC_LP_MODE
<> 135:176b8275d35d 512
<> 135:176b8275d35d 513 This feature can be modified afterwards using unitary function @ref LL_ADC_SetLowPowerMode(). */
<> 135:176b8275d35d 514
<> 135:176b8275d35d 515 } LL_ADC_InitTypeDef;
<> 135:176b8275d35d 516
<> 135:176b8275d35d 517 /**
<> 135:176b8275d35d 518 * @brief Structure definition of some features of ADC group regular.
<> 135:176b8275d35d 519 * @note These parameters have an impact on ADC scope: ADC group regular.
<> 135:176b8275d35d 520 * Refer to corresponding unitary functions into
<> 135:176b8275d35d 521 * @ref ADC_LL_EF_Configuration_ADC_Group_Regular
<> 135:176b8275d35d 522 * (functions with prefix "REG").
<> 135:176b8275d35d 523 * @note The setting of these parameters by function @ref LL_ADC_REG_Init()
<> 135:176b8275d35d 524 * is conditioned to ADC state:
<> 135:176b8275d35d 525 * ADC instance must be disabled.
<> 135:176b8275d35d 526 * This condition is applied to all ADC features, for efficiency
<> 135:176b8275d35d 527 * and compatibility over all STM32 families. However, the different
<> 135:176b8275d35d 528 * features can be set under different ADC state conditions
<> 135:176b8275d35d 529 * (setting possible with ADC enabled without conversion on going,
<> 135:176b8275d35d 530 * ADC enabled with conversion on going, ...)
<> 135:176b8275d35d 531 * Each feature can be updated afterwards with a unitary function
<> 135:176b8275d35d 532 * and potentially with ADC in a different state than disabled,
<> 135:176b8275d35d 533 * refer to description of each function for setting
<> 135:176b8275d35d 534 * conditioned to ADC state.
<> 135:176b8275d35d 535 */
<> 135:176b8275d35d 536 typedef struct
<> 135:176b8275d35d 537 {
<> 135:176b8275d35d 538 uint32_t TriggerSource; /*!< Set ADC group regular conversion trigger source: internal (SW start) or from external IP (timer event, external interrupt line).
<> 135:176b8275d35d 539 This parameter can be a value of @ref ADC_LL_EC_REG_TRIGGER_SOURCE
<> 135:176b8275d35d 540 @note On this STM32 serie, setting trigger source to external trigger also set trigger polarity to rising edge
<> 135:176b8275d35d 541 (default setting for compatibility with some ADC on other STM32 families having this setting set by HW default value).
<> 135:176b8275d35d 542 In case of need to modify trigger edge, use function @ref LL_ADC_REG_SetTriggerEdge().
<> 135:176b8275d35d 543
<> 135:176b8275d35d 544 This feature can be modified afterwards using unitary function @ref LL_ADC_REG_SetTriggerSource(). */
<> 135:176b8275d35d 545
<> 135:176b8275d35d 546 uint32_t SequencerLength; /*!< Set ADC group regular sequencer length.
<> 135:176b8275d35d 547 This parameter can be a value of @ref ADC_LL_EC_REG_SEQ_SCAN_LENGTH
<> 135:176b8275d35d 548
<> 135:176b8275d35d 549 This feature can be modified afterwards using unitary function @ref LL_ADC_REG_SetSequencerLength(). */
<> 135:176b8275d35d 550
<> 135:176b8275d35d 551 uint32_t SequencerDiscont; /*!< Set ADC group regular sequencer discontinuous mode: sequence subdivided and scan conversions interrupted every selected number of ranks.
<> 135:176b8275d35d 552 This parameter can be a value of @ref ADC_LL_EC_REG_SEQ_DISCONT_MODE
<> 135:176b8275d35d 553 @note This parameter has an effect only if group regular sequencer is enabled
<> 135:176b8275d35d 554 (scan length of 2 ranks or more).
<> 135:176b8275d35d 555
<> 135:176b8275d35d 556 This feature can be modified afterwards using unitary function @ref LL_ADC_REG_SetSequencerDiscont(). */
<> 135:176b8275d35d 557
<> 135:176b8275d35d 558 uint32_t ContinuousMode; /*!< Set ADC continuous conversion mode on ADC group regular, whether ADC conversions are performed in single mode (one conversion per trigger) or in continuous mode (after the first trigger, following conversions launched successively automatically).
<> 135:176b8275d35d 559 This parameter can be a value of @ref ADC_LL_EC_REG_CONTINUOUS_MODE
<> 135:176b8275d35d 560 Note: It is not possible to enable both ADC group regular continuous mode and discontinuous mode.
<> 135:176b8275d35d 561
<> 135:176b8275d35d 562 This feature can be modified afterwards using unitary function @ref LL_ADC_REG_SetContinuousMode(). */
<> 135:176b8275d35d 563
<> 135:176b8275d35d 564 uint32_t DMATransfer; /*!< Set ADC group regular conversion data transfer: no transfer or transfer by DMA, and DMA requests mode.
<> 135:176b8275d35d 565 This parameter can be a value of @ref ADC_LL_EC_REG_DMA_TRANSFER
<> 135:176b8275d35d 566
<> 135:176b8275d35d 567 This feature can be modified afterwards using unitary function @ref LL_ADC_REG_SetDMATransfer(). */
<> 135:176b8275d35d 568
<> 135:176b8275d35d 569 uint32_t Overrun; /*!< Set ADC group regular behavior in case of overrun:
<> 135:176b8275d35d 570 data preserved or overwritten.
<> 135:176b8275d35d 571 This parameter can be a value of @ref ADC_LL_EC_REG_OVR_DATA_BEHAVIOR
<> 135:176b8275d35d 572
<> 135:176b8275d35d 573 This feature can be modified afterwards using unitary function @ref LL_ADC_REG_SetOverrun(). */
<> 135:176b8275d35d 574
<> 135:176b8275d35d 575 } LL_ADC_REG_InitTypeDef;
<> 135:176b8275d35d 576
<> 135:176b8275d35d 577 /**
<> 135:176b8275d35d 578 * @brief Structure definition of some features of ADC group injected.
<> 135:176b8275d35d 579 * @note These parameters have an impact on ADC scope: ADC group injected.
<> 135:176b8275d35d 580 * Refer to corresponding unitary functions into
<> 135:176b8275d35d 581 * @ref ADC_LL_EF_Configuration_ADC_Group_Regular
<> 135:176b8275d35d 582 * (functions with prefix "INJ").
<> 135:176b8275d35d 583 * @note The setting of these parameters by function @ref LL_ADC_INJ_Init()
<> 135:176b8275d35d 584 * is conditioned to ADC state:
<> 135:176b8275d35d 585 * ADC instance must be disabled.
<> 135:176b8275d35d 586 * This condition is applied to all ADC features, for efficiency
<> 135:176b8275d35d 587 * and compatibility over all STM32 families. However, the different
<> 135:176b8275d35d 588 * features can be set under different ADC state conditions
<> 135:176b8275d35d 589 * (setting possible with ADC enabled without conversion on going,
<> 135:176b8275d35d 590 * ADC enabled with conversion on going, ...)
<> 135:176b8275d35d 591 * Each feature can be updated afterwards with a unitary function
<> 135:176b8275d35d 592 * and potentially with ADC in a different state than disabled,
<> 135:176b8275d35d 593 * refer to description of each function for setting
<> 135:176b8275d35d 594 * conditioned to ADC state.
<> 135:176b8275d35d 595 */
<> 135:176b8275d35d 596 typedef struct
<> 135:176b8275d35d 597 {
<> 135:176b8275d35d 598 uint32_t TriggerSource; /*!< Set ADC group injected conversion trigger source: internal (SW start) or from external IP (timer event, external interrupt line).
<> 135:176b8275d35d 599 This parameter can be a value of @ref ADC_LL_EC_INJ_TRIGGER_SOURCE
<> 135:176b8275d35d 600 @note On this STM32 serie, setting trigger source to external trigger also set trigger polarity to rising edge
<> 135:176b8275d35d 601 (default setting for compatibility with some ADC on other STM32 families having this setting set by HW default value).
<> 135:176b8275d35d 602 In case of need to modify trigger edge, use function @ref LL_ADC_INJ_SetTriggerEdge().
<> 135:176b8275d35d 603
<> 135:176b8275d35d 604 This feature can be modified afterwards using unitary function @ref LL_ADC_INJ_SetTriggerSource(). */
<> 135:176b8275d35d 605
<> 135:176b8275d35d 606 uint32_t SequencerLength; /*!< Set ADC group injected sequencer length.
<> 135:176b8275d35d 607 This parameter can be a value of @ref ADC_LL_EC_INJ_SEQ_SCAN_LENGTH
<> 135:176b8275d35d 608
<> 135:176b8275d35d 609 This feature can be modified afterwards using unitary function @ref LL_ADC_INJ_SetSequencerLength(). */
<> 135:176b8275d35d 610
<> 135:176b8275d35d 611 uint32_t SequencerDiscont; /*!< Set ADC group injected sequencer discontinuous mode: sequence subdivided and scan conversions interrupted every selected number of ranks.
<> 135:176b8275d35d 612 This parameter can be a value of @ref ADC_LL_EC_INJ_SEQ_DISCONT_MODE
<> 135:176b8275d35d 613 @note This parameter has an effect only if group injected sequencer is enabled
<> 135:176b8275d35d 614 (scan length of 2 ranks or more).
<> 135:176b8275d35d 615
<> 135:176b8275d35d 616 This feature can be modified afterwards using unitary function @ref LL_ADC_INJ_SetSequencerDiscont(). */
<> 135:176b8275d35d 617
<> 135:176b8275d35d 618 uint32_t TrigAuto; /*!< Set ADC group injected conversion trigger: independent or from ADC group regular.
<> 135:176b8275d35d 619 This parameter can be a value of @ref ADC_LL_EC_INJ_TRIG_AUTO
<> 135:176b8275d35d 620 Note: This parameter must be set to set to independent trigger if injected trigger source is set to an external trigger.
<> 135:176b8275d35d 621
<> 135:176b8275d35d 622 This feature can be modified afterwards using unitary function @ref LL_ADC_INJ_SetTrigAuto(). */
<> 135:176b8275d35d 623
<> 135:176b8275d35d 624 } LL_ADC_INJ_InitTypeDef;
<> 135:176b8275d35d 625
<> 135:176b8275d35d 626 /**
<> 135:176b8275d35d 627 * @}
<> 135:176b8275d35d 628 */
<> 135:176b8275d35d 629 #endif /* USE_FULL_LL_DRIVER */
<> 135:176b8275d35d 630
<> 135:176b8275d35d 631 /* Exported constants --------------------------------------------------------*/
<> 135:176b8275d35d 632 /** @defgroup ADC_LL_Exported_Constants ADC Exported Constants
<> 135:176b8275d35d 633 * @{
<> 135:176b8275d35d 634 */
<> 135:176b8275d35d 635
<> 135:176b8275d35d 636 /** @defgroup ADC_LL_EC_FLAG ADC flags
<> 135:176b8275d35d 637 * @brief Flags defines which can be used with LL_ADC_ReadReg function
<> 135:176b8275d35d 638 * @{
<> 135:176b8275d35d 639 */
<> 135:176b8275d35d 640 #define LL_ADC_FLAG_ADRDY ADC_ISR_ADRDY /*!< ADC flag ADC instance ready */
<> 135:176b8275d35d 641 #define LL_ADC_FLAG_EOC ADC_ISR_EOC /*!< ADC flag ADC group regular end of unitary conversion */
<> 135:176b8275d35d 642 #define LL_ADC_FLAG_EOS ADC_ISR_EOS /*!< ADC flag ADC group regular end of sequence conversions */
<> 135:176b8275d35d 643 #define LL_ADC_FLAG_OVR ADC_ISR_OVR /*!< ADC flag ADC group regular overrun */
<> 135:176b8275d35d 644 #define LL_ADC_FLAG_EOSMP ADC_ISR_EOSMP /*!< ADC flag ADC group regular end of sampling phase */
<> 135:176b8275d35d 645 #define LL_ADC_FLAG_JEOC ADC_ISR_JEOC /*!< ADC flag ADC group injected end of unitary conversion */
<> 135:176b8275d35d 646 #define LL_ADC_FLAG_JEOS ADC_ISR_JEOS /*!< ADC flag ADC group injected end of sequence conversions */
<> 135:176b8275d35d 647 #define LL_ADC_FLAG_JQOVF ADC_ISR_JQOVF /*!< ADC flag ADC group injected contexts queue overflow */
<> 135:176b8275d35d 648 #define LL_ADC_FLAG_AWD1 ADC_ISR_AWD1 /*!< ADC flag ADC analog watchdog 1 */
<> 135:176b8275d35d 649 #define LL_ADC_FLAG_AWD2 ADC_ISR_AWD2 /*!< ADC flag ADC analog watchdog 2 */
<> 135:176b8275d35d 650 #define LL_ADC_FLAG_AWD3 ADC_ISR_AWD3 /*!< ADC flag ADC analog watchdog 3 */
<> 135:176b8275d35d 651 #if defined(ADC_MULTIMODE_SUPPORT)
<> 135:176b8275d35d 652 #define LL_ADC_FLAG_ADRDY_MST ADC_CSR_ADRDY_MST /*!< ADC flag ADC multimode master instance ready */
<> 135:176b8275d35d 653 #define LL_ADC_FLAG_ADRDY_SLV ADC_CSR_ADRDY_SLV /*!< ADC flag ADC multimode slave instance ready */
<> 135:176b8275d35d 654 #define LL_ADC_FLAG_EOC_MST ADC_CSR_EOC_MST /*!< ADC flag ADC multimode master group regular end of unitary conversion */
<> 135:176b8275d35d 655 #define LL_ADC_FLAG_EOC_SLV ADC_CSR_EOC_SLV /*!< ADC flag ADC multimode slave group regular end of unitary conversion */
<> 135:176b8275d35d 656 #define LL_ADC_FLAG_EOS_MST ADC_CSR_EOS_MST /*!< ADC flag ADC multimode master group regular end of sequence conversions */
<> 135:176b8275d35d 657 #define LL_ADC_FLAG_EOS_SLV ADC_CSR_EOS_SLV /*!< ADC flag ADC multimode slave group regular end of sequence conversions */
<> 135:176b8275d35d 658 #define LL_ADC_FLAG_OVR_MST ADC_CSR_OVR_MST /*!< ADC flag ADC multimode master group regular overrun */
<> 135:176b8275d35d 659 #define LL_ADC_FLAG_OVR_SLV ADC_CSR_OVR_SLV /*!< ADC flag ADC multimode slave group regular overrun */
<> 135:176b8275d35d 660 #define LL_ADC_FLAG_EOSMP_MST ADC_CSR_EOSMP_MST /*!< ADC flag ADC multimode master group regular end of sampling phase */
<> 135:176b8275d35d 661 #define LL_ADC_FLAG_EOSMP_SLV ADC_CSR_EOSMP_SLV /*!< ADC flag ADC multimode slave group regular end of sampling phase */
<> 135:176b8275d35d 662 #define LL_ADC_FLAG_JEOC_MST ADC_CSR_JEOC_MST /*!< ADC flag ADC multimode master group injected end of unitary conversion */
<> 135:176b8275d35d 663 #define LL_ADC_FLAG_JEOC_SLV ADC_CSR_JEOC_SLV /*!< ADC flag ADC multimode slave group injected end of unitary conversion */
<> 135:176b8275d35d 664 #define LL_ADC_FLAG_JEOS_MST ADC_CSR_JEOS_MST /*!< ADC flag ADC multimode master group injected end of sequence conversions */
<> 135:176b8275d35d 665 #define LL_ADC_FLAG_JEOS_SLV ADC_CSR_JEOS_SLV /*!< ADC flag ADC multimode slave group injected end of sequence conversions */
<> 135:176b8275d35d 666 #define LL_ADC_FLAG_JQOVF_MST ADC_CSR_JQOVF_MST /*!< ADC flag ADC multimode master group injected contexts queue overflow */
<> 135:176b8275d35d 667 #define LL_ADC_FLAG_JQOVF_SLV ADC_CSR_JQOVF_SLV /*!< ADC flag ADC multimode slave group injected contexts queue overflow */
<> 135:176b8275d35d 668 #define LL_ADC_FLAG_AWD1_MST ADC_CSR_AWD1_MST /*!< ADC flag ADC multimode master analog watchdog 1 of the ADC master */
<> 135:176b8275d35d 669 #define LL_ADC_FLAG_AWD1_SLV ADC_CSR_AWD1_SLV /*!< ADC flag ADC multimode slave analog watchdog 1 of the ADC slave */
<> 135:176b8275d35d 670 #define LL_ADC_FLAG_AWD2_MST ADC_CSR_AWD2_MST /*!< ADC flag ADC multimode master analog watchdog 2 of the ADC master */
<> 135:176b8275d35d 671 #define LL_ADC_FLAG_AWD2_SLV ADC_CSR_AWD2_SLV /*!< ADC flag ADC multimode slave analog watchdog 2 of the ADC slave */
<> 135:176b8275d35d 672 #define LL_ADC_FLAG_AWD3_MST ADC_CSR_AWD3_MST /*!< ADC flag ADC multimode master analog watchdog 3 of the ADC master */
<> 135:176b8275d35d 673 #define LL_ADC_FLAG_AWD3_SLV ADC_CSR_AWD3_SLV /*!< ADC flag ADC multimode slave analog watchdog 3 of the ADC slave */
<> 135:176b8275d35d 674 #endif
<> 135:176b8275d35d 675 /**
<> 135:176b8275d35d 676 * @}
<> 135:176b8275d35d 677 */
<> 135:176b8275d35d 678
<> 135:176b8275d35d 679 /** @defgroup ADC_LL_EC_IT ADC interruptions for configuration (interruption enable or disable)
<> 135:176b8275d35d 680 * @brief IT defines which can be used with LL_ADC_ReadReg and LL_ADC_WriteReg functions
<> 135:176b8275d35d 681 * @{
<> 135:176b8275d35d 682 */
<> 135:176b8275d35d 683 #define LL_ADC_IT_ADRDY ADC_IER_ADRDYIE /*!< ADC interruption ADC instance ready */
<> 135:176b8275d35d 684 #define LL_ADC_IT_EOC ADC_IER_EOCIE /*!< ADC interruption ADC group regular end of unitary conversion */
<> 135:176b8275d35d 685 #define LL_ADC_IT_EOS ADC_IER_EOSIE /*!< ADC interruption ADC group regular end of sequence conversions */
<> 135:176b8275d35d 686 #define LL_ADC_IT_OVR ADC_IER_OVRIE /*!< ADC interruption ADC group regular overrun */
<> 135:176b8275d35d 687 #define LL_ADC_IT_EOSMP ADC_IER_EOSMPIE /*!< ADC interruption ADC group regular end of sampling phase */
<> 135:176b8275d35d 688 #define LL_ADC_IT_JEOC ADC_IER_JEOCIE /*!< ADC interruption ADC group injected end of unitary conversion */
<> 135:176b8275d35d 689 #define LL_ADC_IT_JEOS ADC_IER_JEOSIE /*!< ADC interruption ADC group injected end of sequence conversions */
<> 135:176b8275d35d 690 #define LL_ADC_IT_JQOVF ADC_IER_JQOVFIE /*!< ADC interruption ADC group injected contexts queue overflow */
<> 135:176b8275d35d 691 #define LL_ADC_IT_AWD1 ADC_IER_AWD1IE /*!< ADC interruption ADC analog watchdog 1 */
<> 135:176b8275d35d 692 #define LL_ADC_IT_AWD2 ADC_IER_AWD2IE /*!< ADC interruption ADC analog watchdog 2 */
<> 135:176b8275d35d 693 #define LL_ADC_IT_AWD3 ADC_IER_AWD3IE /*!< ADC interruption ADC analog watchdog 3 */
<> 135:176b8275d35d 694 /**
<> 135:176b8275d35d 695 * @}
<> 135:176b8275d35d 696 */
<> 135:176b8275d35d 697
<> 135:176b8275d35d 698 /** @defgroup ADC_LL_EC_REGISTERS ADC registers compliant with specific purpose
<> 135:176b8275d35d 699 * @{
<> 135:176b8275d35d 700 */
<> 135:176b8275d35d 701 /* List of ADC registers intended to be used (most commonly) with */
<> 135:176b8275d35d 702 /* DMA transfer. */
<> 135:176b8275d35d 703 /* Refer to function @ref LL_ADC_DMA_GetRegAddr(). */
<> 135:176b8275d35d 704 #define LL_ADC_DMA_REG_REGULAR_DATA ((uint32_t)0x00000000U) /* ADC group regular conversion data register (corresponding to register DR) to be used with ADC configured in independent mode. Without DMA transfer, register accessed by LL function @ref LL_ADC_REG_ReadConversionData32() and other functions @ref LL_ADC_REG_ReadConversionDatax() */
<> 135:176b8275d35d 705 #if defined(ADC_MULTIMODE_SUPPORT)
<> 135:176b8275d35d 706 #define LL_ADC_DMA_REG_REGULAR_DATA_MULTI ((uint32_t)0x00000001U) /* ADC group regular conversion data register (corresponding to register CDR) to be used with ADC configured in multimode (available on STM32 devices with several ADC instances). Without DMA transfer, register accessed by LL function @ref LL_ADC_REG_ReadMultiConversionData32() */
<> 135:176b8275d35d 707 #endif
<> 135:176b8275d35d 708 /**
<> 135:176b8275d35d 709 * @}
<> 135:176b8275d35d 710 */
<> 135:176b8275d35d 711
<> 135:176b8275d35d 712 /** @defgroup ADC_LL_EC_COMMON_CLOCK_SOURCE ADC common - Clock source
<> 135:176b8275d35d 713 * @{
<> 135:176b8275d35d 714 */
<> 135:176b8275d35d 715 #define LL_ADC_CLOCK_SYNC_PCLK_DIV1 (ADC_CCR_CKMODE_0) /*!< ADC synchronous clock derived from AHB clock without prescaler */
<> 135:176b8275d35d 716 #define LL_ADC_CLOCK_SYNC_PCLK_DIV2 (ADC_CCR_CKMODE_1 ) /*!< ADC synchronous clock derived from AHB clock with prescaler division by 2 */
<> 135:176b8275d35d 717 #define LL_ADC_CLOCK_SYNC_PCLK_DIV4 (ADC_CCR_CKMODE_1 | ADC_CCR_CKMODE_0) /*!< ADC synchronous clock derived from AHB clock with prescaler division by 4 */
<> 135:176b8275d35d 718 #define LL_ADC_CLOCK_ASYNC_DIV1 ((uint32_t)0x00000000U) /*!< ADC asynchronous clock without prescaler */
<> 135:176b8275d35d 719 /**
<> 135:176b8275d35d 720 * @}
<> 135:176b8275d35d 721 */
<> 135:176b8275d35d 722
<> 135:176b8275d35d 723 /** @defgroup ADC_LL_EC_COMMON_PATH_INTERNAL ADC common - Measurement path to internal channels
<> 135:176b8275d35d 724 * @{
<> 135:176b8275d35d 725 */
<> 135:176b8275d35d 726 /* Note: Other measurement paths to internal channels may be available */
<> 135:176b8275d35d 727 /* (connections to other peripherals). */
<> 135:176b8275d35d 728 /* If they are not listed below, they do not require any specific */
<> 135:176b8275d35d 729 /* path enable. In this case, Access to measurement path is done */
<> 135:176b8275d35d 730 /* only by selecting the corresponding ADC internal channel. */
<> 135:176b8275d35d 731 #define LL_ADC_PATH_INTERNAL_NONE ((uint32_t)0x00000000U)/*!< ADC measurement pathes all disabled */
<> 135:176b8275d35d 732 #define LL_ADC_PATH_INTERNAL_VREFINT (ADC_CCR_VREFEN) /*!< ADC measurement path to internal channel VrefInt */
<> 135:176b8275d35d 733 #define LL_ADC_PATH_INTERNAL_TEMPSENSOR (ADC_CCR_TSEN) /*!< ADC measurement path to internal channel temperature sensor */
<> 135:176b8275d35d 734 #define LL_ADC_PATH_INTERNAL_VBAT (ADC_CCR_VBATEN) /*!< ADC measurement path to internal channel Vbat */
<> 135:176b8275d35d 735 /**
<> 135:176b8275d35d 736 * @}
<> 135:176b8275d35d 737 */
<> 135:176b8275d35d 738
<> 135:176b8275d35d 739 /** @defgroup ADC_LL_EC_RESOLUTION ADC instance - Resolution
<> 135:176b8275d35d 740 * @{
<> 135:176b8275d35d 741 */
<> 135:176b8275d35d 742 #define LL_ADC_RESOLUTION_12B ((uint32_t)0x00000000U) /*!< ADC resolution 12 bits */
<> 135:176b8275d35d 743 #define LL_ADC_RESOLUTION_10B ( ADC_CFGR_RES_0) /*!< ADC resolution 10 bits */
<> 135:176b8275d35d 744 #define LL_ADC_RESOLUTION_8B (ADC_CFGR_RES_1 ) /*!< ADC resolution 8 bits */
<> 135:176b8275d35d 745 #define LL_ADC_RESOLUTION_6B (ADC_CFGR_RES_1 | ADC_CFGR_RES_0) /*!< ADC resolution 6 bits */
<> 135:176b8275d35d 746 /**
<> 135:176b8275d35d 747 * @}
<> 135:176b8275d35d 748 */
<> 135:176b8275d35d 749
<> 135:176b8275d35d 750 /** @defgroup ADC_LL_EC_DATA_ALIGN ADC instance - Data alignment
<> 135:176b8275d35d 751 * @{
<> 135:176b8275d35d 752 */
<> 135:176b8275d35d 753 #define LL_ADC_DATA_ALIGN_RIGHT ((uint32_t)0x00000000U)/*!< ADC conversion data alignment: right aligned (alignment on data register LSB bit 0)*/
<> 135:176b8275d35d 754 #define LL_ADC_DATA_ALIGN_LEFT (ADC_CFGR_ALIGN) /*!< ADC conversion data alignment: left aligned (aligment on data register MSB bit 15)*/
<> 135:176b8275d35d 755 /**
<> 135:176b8275d35d 756 * @}
<> 135:176b8275d35d 757 */
<> 135:176b8275d35d 758
<> 135:176b8275d35d 759 /** @defgroup ADC_LL_EC_LP_MODE ADC instance - Low power mode
<> 135:176b8275d35d 760 * @{
<> 135:176b8275d35d 761 */
<> 135:176b8275d35d 762 #define LL_ADC_LP_MODE_NONE ((uint32_t)0x00000000U) /*!< No ADC low power mode activated */
<> 135:176b8275d35d 763 #define LL_ADC_LP_AUTOWAIT (ADC_CFGR_AUTDLY) /*!< ADC low power mode auto delay: Dynamic low power mode, ADC conversions are performed only when necessary (when previous ADC conversion data is read). See description with function @ref LL_ADC_SetLowPowerMode(). */
<> 135:176b8275d35d 764 /**
<> 135:176b8275d35d 765 * @}
<> 135:176b8275d35d 766 */
<> 135:176b8275d35d 767
<> 135:176b8275d35d 768 /** @defgroup ADC_LL_EC_OFFSET_NB ADC instance - Offset number
<> 135:176b8275d35d 769 * @{
<> 135:176b8275d35d 770 */
<> 135:176b8275d35d 771 #define LL_ADC_OFFSET_1 ADC_OFR1_REGOFFSET /*!< ADC offset number 1: ADC channel and offset level to which the offset programmed will be applied (independently of channel mapped on ADC group regular or group injected) */
<> 135:176b8275d35d 772 #define LL_ADC_OFFSET_2 ADC_OFR2_REGOFFSET /*!< ADC offset number 2: ADC channel and offset level to which the offset programmed will be applied (independently of channel mapped on ADC group regular or group injected) */
<> 135:176b8275d35d 773 #define LL_ADC_OFFSET_3 ADC_OFR3_REGOFFSET /*!< ADC offset number 3: ADC channel and offset level to which the offset programmed will be applied (independently of channel mapped on ADC group regular or group injected) */
<> 135:176b8275d35d 774 #define LL_ADC_OFFSET_4 ADC_OFR4_REGOFFSET /*!< ADC offset number 4: ADC channel and offset level to which the offset programmed will be applied (independently of channel mapped on ADC group regular or group injected) */
<> 135:176b8275d35d 775 /**
<> 135:176b8275d35d 776 * @}
<> 135:176b8275d35d 777 */
<> 135:176b8275d35d 778
<> 135:176b8275d35d 779 /** @defgroup ADC_LL_EC_OFFSET_STATE ADC instance - Offset state
<> 135:176b8275d35d 780 * @{
<> 135:176b8275d35d 781 */
<> 135:176b8275d35d 782 #define LL_ADC_OFFSET_DISABLE ((uint32_t)0x00000000U)/*!< ADC offset disabled (among ADC selected offset number 1, 2, 3 or 4) */
<> 135:176b8275d35d 783 #define LL_ADC_OFFSET_ENABLE (ADC_OFR1_OFFSET1_EN) /*!< ADC offset enabled (among ADC selected offset number 1, 2, 3 or 4) */
<> 135:176b8275d35d 784 /**
<> 135:176b8275d35d 785 * @}
<> 135:176b8275d35d 786 */
<> 135:176b8275d35d 787
<> 135:176b8275d35d 788 /** @defgroup ADC_LL_EC_GROUPS ADC instance - Groups
<> 135:176b8275d35d 789 * @{
<> 135:176b8275d35d 790 */
<> 135:176b8275d35d 791 #define LL_ADC_GROUP_REGULAR ((uint32_t)0x00000001U) /*!< ADC group regular (available on all STM32 devices) */
<> 135:176b8275d35d 792 #define LL_ADC_GROUP_INJECTED ((uint32_t)0x00000002U) /*!< ADC group injected (not available on all STM32 devices)*/
<> 135:176b8275d35d 793 #define LL_ADC_GROUP_REGULAR_INJECTED ((uint32_t)0x00000003U) /*!< ADC both groups regular and injected */
<> 135:176b8275d35d 794 /**
<> 135:176b8275d35d 795 * @}
<> 135:176b8275d35d 796 */
<> 135:176b8275d35d 797
<> 135:176b8275d35d 798 /** @defgroup ADC_LL_EC_CHANNEL ADC instance - Channel number
<> 135:176b8275d35d 799 * @{
<> 135:176b8275d35d 800 */
<> 135:176b8275d35d 801 #define LL_ADC_CHANNEL_0 (ADC_CHANNEL_0_NUMBER | ADC_CHANNEL_0_SMP | ADC_CHANNEL_0_BITFIELD ) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN0 */
<> 135:176b8275d35d 802 #define LL_ADC_CHANNEL_1 (ADC_CHANNEL_1_NUMBER | ADC_CHANNEL_1_SMP | ADC_CHANNEL_1_BITFIELD ) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN1 */
<> 135:176b8275d35d 803 #define LL_ADC_CHANNEL_2 (ADC_CHANNEL_2_NUMBER | ADC_CHANNEL_2_SMP | ADC_CHANNEL_2_BITFIELD ) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN2 */
<> 135:176b8275d35d 804 #define LL_ADC_CHANNEL_3 (ADC_CHANNEL_3_NUMBER | ADC_CHANNEL_3_SMP | ADC_CHANNEL_3_BITFIELD ) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN3 */
<> 135:176b8275d35d 805 #define LL_ADC_CHANNEL_4 (ADC_CHANNEL_4_NUMBER | ADC_CHANNEL_4_SMP | ADC_CHANNEL_4_BITFIELD ) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN4 */
<> 135:176b8275d35d 806 #define LL_ADC_CHANNEL_5 (ADC_CHANNEL_5_NUMBER | ADC_CHANNEL_5_SMP | ADC_CHANNEL_5_BITFIELD ) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN5 */
<> 135:176b8275d35d 807 #define LL_ADC_CHANNEL_6 (ADC_CHANNEL_6_NUMBER | ADC_CHANNEL_6_SMP | ADC_CHANNEL_6_BITFIELD ) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN6 */
<> 135:176b8275d35d 808 #define LL_ADC_CHANNEL_7 (ADC_CHANNEL_7_NUMBER | ADC_CHANNEL_7_SMP | ADC_CHANNEL_7_BITFIELD ) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN7 */
<> 135:176b8275d35d 809 #define LL_ADC_CHANNEL_8 (ADC_CHANNEL_8_NUMBER | ADC_CHANNEL_8_SMP | ADC_CHANNEL_8_BITFIELD ) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN8 */
<> 135:176b8275d35d 810 #define LL_ADC_CHANNEL_9 (ADC_CHANNEL_9_NUMBER | ADC_CHANNEL_9_SMP | ADC_CHANNEL_9_BITFIELD ) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN9 */
<> 135:176b8275d35d 811 #define LL_ADC_CHANNEL_10 (ADC_CHANNEL_10_NUMBER | ADC_CHANNEL_10_SMP | ADC_CHANNEL_10_BITFIELD) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN10 */
<> 135:176b8275d35d 812 #define LL_ADC_CHANNEL_11 (ADC_CHANNEL_11_NUMBER | ADC_CHANNEL_11_SMP | ADC_CHANNEL_11_BITFIELD) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN11 */
<> 135:176b8275d35d 813 #define LL_ADC_CHANNEL_12 (ADC_CHANNEL_12_NUMBER | ADC_CHANNEL_12_SMP | ADC_CHANNEL_12_BITFIELD) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN12 */
<> 135:176b8275d35d 814 #define LL_ADC_CHANNEL_13 (ADC_CHANNEL_13_NUMBER | ADC_CHANNEL_13_SMP | ADC_CHANNEL_13_BITFIELD) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN13 */
<> 135:176b8275d35d 815 #define LL_ADC_CHANNEL_14 (ADC_CHANNEL_14_NUMBER | ADC_CHANNEL_14_SMP | ADC_CHANNEL_14_BITFIELD) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN14 */
<> 135:176b8275d35d 816 #define LL_ADC_CHANNEL_15 (ADC_CHANNEL_15_NUMBER | ADC_CHANNEL_15_SMP | ADC_CHANNEL_15_BITFIELD) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN15 */
<> 135:176b8275d35d 817 #define LL_ADC_CHANNEL_16 (ADC_CHANNEL_16_NUMBER | ADC_CHANNEL_16_SMP | ADC_CHANNEL_16_BITFIELD) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN16 */
<> 135:176b8275d35d 818 #define LL_ADC_CHANNEL_17 (ADC_CHANNEL_17_NUMBER | ADC_CHANNEL_17_SMP | ADC_CHANNEL_17_BITFIELD) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN17 */
<> 135:176b8275d35d 819 #define LL_ADC_CHANNEL_18 (ADC_CHANNEL_18_NUMBER | ADC_CHANNEL_18_SMP | ADC_CHANNEL_18_BITFIELD) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN18 */
<> 135:176b8275d35d 820 #define LL_ADC_CHANNEL_VREFINT (LL_ADC_CHANNEL_18 | ADC_CHANNEL_ID_INTERNAL_CH) /*!< ADC internal channel connected to VrefInt: Internal voltage reference. On STM32F3, ADC channel available only on all ADC instances, but only one ADC instance is allowed to be connected to VrefInt at the same time. */
<> 135:176b8275d35d 821 #define LL_ADC_CHANNEL_TEMPSENSOR (LL_ADC_CHANNEL_16 | ADC_CHANNEL_ID_INTERNAL_CH) /*!< ADC internal channel connected to Temperature sensor. On STM32F3, ADC channel available only on ADC instance: ADC1. */
<> 135:176b8275d35d 822 #define LL_ADC_CHANNEL_VBAT (LL_ADC_CHANNEL_17 | ADC_CHANNEL_ID_INTERNAL_CH) /*!< ADC internal channel connected to Vbat/3: Vbat voltage through a divider ladder of factor 1/3 to have Vbat always below Vdda. On STM32F3, ADC channel available only on ADC instance: ADC1. */
<> 135:176b8275d35d 823 #if defined(OPAMP1_CSR_OPAMP1EN)
<> 135:176b8275d35d 824 #define LL_ADC_CHANNEL_VOPAMP1 (LL_ADC_CHANNEL_15 | ADC_CHANNEL_ID_INTERNAL_CH) /*!< ADC internal channel connected to OPAMP1 output. On STM32F3, ADC channel available only on ADC instance: ADC1. */
<> 135:176b8275d35d 825 #endif
<> 135:176b8275d35d 826 #if defined(OPAMP2_CSR_OPAMP2EN)
<> 135:176b8275d35d 827 #define LL_ADC_CHANNEL_VOPAMP2 (LL_ADC_CHANNEL_17 | ADC_CHANNEL_ID_INTERNAL_CH | ADC_CHANNEL_ID_INTERNAL_CH_2) /*!< ADC internal channel connected to OPAMP2 output. On STM32F3, ADC channel available only on ADC instance: ADC2. */
<> 135:176b8275d35d 828 #endif
<> 135:176b8275d35d 829 #if defined(OPAMP3_CSR_OPAMP3EN)
<> 135:176b8275d35d 830 #define LL_ADC_CHANNEL_VOPAMP3 (LL_ADC_CHANNEL_17 | ADC_CHANNEL_ID_INTERNAL_CH | ADC_CHANNEL_ID_INTERNAL_CH_2) /*!< ADC internal channel connected to OPAMP3 output. On STM32F3, ADC channel available only on ADC instance: ADC3. */
<> 135:176b8275d35d 831 #endif
<> 135:176b8275d35d 832 #if defined(OPAMP4_CSR_OPAMP4EN)
<> 135:176b8275d35d 833 #define LL_ADC_CHANNEL_VOPAMP4 (LL_ADC_CHANNEL_17 | ADC_CHANNEL_ID_INTERNAL_CH | ADC_CHANNEL_ID_INTERNAL_CH_2) /*!< ADC internal channel connected to OPAMP4 output. On STM32F3, ADC channel available only on ADC instance: ADC4. */
<> 135:176b8275d35d 834 #endif
<> 135:176b8275d35d 835 /**
<> 135:176b8275d35d 836 * @}
<> 135:176b8275d35d 837 */
<> 135:176b8275d35d 838
<> 135:176b8275d35d 839 /** @defgroup ADC_LL_EC_REG_TRIGGER_SOURCE ADC group regular - Trigger source
<> 135:176b8275d35d 840 * @{
<> 135:176b8275d35d 841 */
<> 135:176b8275d35d 842 #define LL_ADC_REG_TRIG_SOFTWARE ((uint32_t)0x00000000U) /*!< ADC group regular conversion trigger internal: SW start. */
<> 135:176b8275d35d 843 #if defined(STM32F303xC) || defined(STM32F358xx) || defined(STM32F303xE) || defined(STM32F398xx)
<> 135:176b8275d35d 844 /* ADC group regular external triggers for ADC instances: ADC1, ADC2 (for */
<> 135:176b8275d35d 845 /* ADC instances ADCx available on the selected device) */
<> 135:176b8275d35d 846 /* Note: Literal without suffix "ADCxy" means that external trigger */
<> 135:176b8275d35d 847 /* is available on all ADC instances. */
<> 135:176b8275d35d 848 /* Note: For devices STM32F303xE, STM32F398xx: some triggers require to set */
<> 135:176b8275d35d 849 /* register SYSCFG_CFGR4. Refer to reference manual. */
<> 135:176b8275d35d 850 #define LL_ADC_REG_TRIG_EXT_TIM1_CH1_ADC12 (ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM1 channel 1 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 851 #define LL_ADC_REG_TRIG_EXT_TIM1_CH2_ADC12 (ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM1 channel 2 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 852 #define LL_ADC_REG_TRIG_EXT_TIM1_CH3 (ADC_CFGR_EXTSEL_1 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM1 channel 3 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 853 #define LL_ADC_REG_TRIG_EXT_TIM2_CH2_ADC12 (ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM2 channel 2 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 854 #define LL_ADC_REG_TRIG_EXT_TIM3_TRGO_ADC12 (ADC_CFGR_EXTSEL_2 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM3 TRGO. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 855 #define LL_ADC_REG_TRIG_EXT_TIM4_CH4_ADC12 (ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM4 channel 4 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 856 #define LL_ADC_REG_TRIG_EXT_EXTI_LINE11_ADC12 (ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_1 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: external interrupt line 11. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 857 #define LL_ADC_REG_TRIG_EXT_TIM8_TRGO_ADC12 (ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM8 TRGO. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 858 #define LL_ADC_REG_TRIG_EXT_TIM8_TRGO2 (ADC_CFGR_EXTSEL_3 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM8 TRGO2. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 859 #define LL_ADC_REG_TRIG_EXT_TIM1_TRGO (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM1 TRGO. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 860 #define LL_ADC_REG_TRIG_EXT_TIM1_TRGO2 (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_1 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM1 TRGO2. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 861 #define LL_ADC_REG_TRIG_EXT_TIM2_TRGO_ADC12 (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM2 TRGO. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 862 #define LL_ADC_REG_TRIG_EXT_TIM4_TRGO (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_2 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM4 TRGO. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 863 #define LL_ADC_REG_TRIG_EXT_TIM6_TRGO_ADC12 (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM6 TRGO. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 864 #define LL_ADC_REG_TRIG_EXT_TIM15_TRGO (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_1 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM15 TRGO. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 865 #define LL_ADC_REG_TRIG_EXT_TIM3_CH4_ADC12 (ADC_CFGR_EXTSEL | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM3 channel 4 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 866 #if defined(STM32F303xE) || defined(STM32F398xx)
<> 135:176b8275d35d 867 #define LL_ADC_REG_TRIG_EXT_TIM20_TRG0_ADC12 (LL_ADC_REG_TRIG_EXT_TIM1_CH3) /*!< ADC group regular conversion trigger from external IP: TIM20 TRGO. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 868 #define LL_ADC_REG_TRIG_EXT_TIM20_TRG02_ADC12 (LL_ADC_REG_TRIG_EXT_TIM2_CH2_ADC12) /*!< ADC group regular conversion trigger from external IP: TIM20 TRGO2. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 869 #define LL_ADC_REG_TRIG_EXT_TIM20_CH1_ADC12 (LL_ADC_REG_TRIG_EXT_TIM4_CH4_ADC12) /*!< ADC group regular conversion trigger from external IP: TIM20 channel 1 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 870 #define LL_ADC_REG_TRIG_EXT_TIM20_CH2_ADC12 (LL_ADC_REG_TRIG_EXT_TIM6_TRGO_ADC12) /*!< ADC group regular conversion trigger from external IP: TIM20 channel 2 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 871 #define LL_ADC_REG_TRIG_EXT_TIM20_CH3_ADC12 (LL_ADC_REG_TRIG_EXT_TIM3_CH4_ADC12) /*!< ADC group regular conversion trigger from external IP: TIM20 channel 3 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 872 #endif /* STM32F303xE || STM32F398xx */
<> 135:176b8275d35d 873
<> 135:176b8275d35d 874 /* ADC group regular external triggers for ADC instances: ADC3, ADC4 (for */
<> 135:176b8275d35d 875 /* ADC instances ADCx available on the selected device) */
<> 135:176b8275d35d 876 /* Note: Literal without suffix "ADCxy" means that external trigger */
<> 135:176b8275d35d 877 /* is available on all ADC instances. */
<> 135:176b8275d35d 878 /* Note: For devices STM32F303xE, STM32F398xx: some triggers require to set */
<> 135:176b8275d35d 879 /* register SYSCFG_CFGR4. Refer to reference manual. */
<> 135:176b8275d35d 880 #define LL_ADC_REG_TRIG_EXT_TIM3_CH1_ADC34 (ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM3 channel 1 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 881 #define LL_ADC_REG_TRIG_EXT_TIM2_CH3_ADC34 (ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM2 channel 3 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 882 #define LL_ADC_REG_TRIG_EXT_TIM1_CH3 (ADC_CFGR_EXTSEL_1 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM1 channel 3 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 883 #define LL_ADC_REG_TRIG_EXT_TIM8_CH1_ADC34 (ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM8 channel 1 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 884 #define LL_ADC_REG_TRIG_EXT_TIM8_TRGO__ADC34 (ADC_CFGR_EXTSEL_2 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM8 TRGO. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 885 #define LL_ADC_REG_TRIG_EXT_EXTI_LINE2_ADC34 (ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: external interrupt line 2. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 886 #define LL_ADC_REG_TRIG_EXT_TIM4_CH1_ADC34 (ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_1 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM4 channel 1 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 887 #define LL_ADC_REG_TRIG_EXT_TIM2_TRGO__ADC34 (ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM2 TRGO. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 888 #define LL_ADC_REG_TRIG_EXT_TIM8_TRGO2 (ADC_CFGR_EXTSEL_3 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM8 TRGO2. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 889 #define LL_ADC_REG_TRIG_EXT_TIM1_TRGO (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM1 TRGO. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 890 #define LL_ADC_REG_TRIG_EXT_TIM1_TRGO2 (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_1 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM1 TRGO2. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 891 #define LL_ADC_REG_TRIG_EXT_TIM3_TRGO__ADC34 (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM3 TRGO. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 892 #define LL_ADC_REG_TRIG_EXT_TIM4_TRGO (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_2 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM4 TRGO. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 893 #define LL_ADC_REG_TRIG_EXT_TIM7_TRGO_ADC34 (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM7 TRGO. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 894 #define LL_ADC_REG_TRIG_EXT_TIM15_TRGO (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_1 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM15 TRGO. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 895 #define LL_ADC_REG_TRIG_EXT_TIM2_CH1_ADC34 (ADC_CFGR_EXTSEL | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM2 CCx. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 896 #if defined(STM32F303xE) || defined(STM32F398xx)
<> 135:176b8275d35d 897 #define LL_ADC_REG_TRIG_EXT_TIM20_TRG0_ADC34 (LL_ADC_REG_TRIG_EXT_EXTI_LINE2_ADC34) /*!< ADC group regular conversion trigger from external IP: TIM20 TRGO. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 898 #define LL_ADC_REG_TRIG_EXT_TIM20_TRG02_ADC34 (LL_ADC_REG_TRIG_EXT_TIM4_CH1_ADC34) /*!< ADC group regular conversion trigger from external IP: TIM20 TRGO2. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 899 #define LL_ADC_REG_TRIG_EXT_TIM20_CH1_ADC34 (LL_ADC_REG_TRIG_EXT_TIM2_CH1_ADC34) /*!< ADC group regular conversion trigger from external IP: TIM20 channel 1 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 900 #endif /* STM32F303xE || STM32F398xx */
<> 135:176b8275d35d 901
<> 135:176b8275d35d 902 #elif defined(STM32F303x8) || defined(STM32F328xx)
<> 135:176b8275d35d 903 #define LL_ADC_REG_TRIG_EXT_TIM1_CH1 (ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM1 channel 1 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 904 #define LL_ADC_REG_TRIG_EXT_TIM1_CH2 (ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM1 channel 2 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 905 #define LL_ADC_REG_TRIG_EXT_TIM1_CH3 (ADC_CFGR_EXTSEL_1 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM1 channel 3 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 906 #define LL_ADC_REG_TRIG_EXT_TIM2_CH2 (ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM2 channel 2 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 907 #define LL_ADC_REG_TRIG_EXT_TIM3_TRGO (ADC_CFGR_EXTSEL_2 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM3 TRGO. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 908 #define LL_ADC_REG_TRIG_EXT_TIM4_CH4 (ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM4 channel 4 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 909 #define LL_ADC_REG_TRIG_EXT_EXTI_LINE11 (ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_1 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: external interrupt line 11. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 910 #define LL_ADC_REG_TRIG_EXT_TIM8_TRGO (ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM8 TRGO. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 911 #define LL_ADC_REG_TRIG_EXT_TIM1_TRGO (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM1 TRGO. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 912 #define LL_ADC_REG_TRIG_EXT_TIM1_TRGO2 (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_1 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM1 TRGO2. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 913 #define LL_ADC_REG_TRIG_EXT_TIM2_TRGO (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM2 TRGO. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 914 #define LL_ADC_REG_TRIG_EXT_TIM4_TRGO (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_2 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM4 TRGO. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 915 #define LL_ADC_REG_TRIG_EXT_TIM6_TRGO (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM6 TRGO. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 916 #define LL_ADC_REG_TRIG_EXT_TIM15_TRGO (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_1 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM15 TRGO. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 917 #define LL_ADC_REG_TRIG_EXT_TIM3_CH4 (ADC_CFGR_EXTSEL | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM3 channel 4 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 918
<> 135:176b8275d35d 919 #elif defined(STM32F334x8)
<> 135:176b8275d35d 920 #define LL_ADC_REG_TRIG_EXT_TIM1_CH1 (ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM1 channel 1 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 921 #define LL_ADC_REG_TRIG_EXT_TIM1_CH2 (ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM1 channel 2 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 922 #define LL_ADC_REG_TRIG_EXT_TIM1_CH3 (ADC_CFGR_EXTSEL_1 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM1 channel 3 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 923 #define LL_ADC_REG_TRIG_EXT_TIM2_CH2 (ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM2 channel 2 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 924 #define LL_ADC_REG_TRIG_EXT_TIM3_TRGO (ADC_CFGR_EXTSEL_2 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM3 TRGO. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 925 #define LL_ADC_REG_TRIG_EXT_EXTI_LINE11 (ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_1 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: external interrupt line 11. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 926 #define LL_ADC_REG_TRIG_EXT_HRTIM_TRG1 (ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: HRTIM TRG1. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 927 #define LL_ADC_REG_TRIG_EXT_HRTIM_TRG3 (ADC_CFGR_EXTSEL_3 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: HRTIM TRG3. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 928 #define LL_ADC_REG_TRIG_EXT_TIM1_TRGO (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM1 TRGO. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 929 #define LL_ADC_REG_TRIG_EXT_TIM1_TRGO2 (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_1 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM1 TRGO2. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 930 #define LL_ADC_REG_TRIG_EXT_TIM2_TRGO (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM2 TRGO. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 931 #define LL_ADC_REG_TRIG_EXT_TIM6_TRGO (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM6 TRGO. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 932 #define LL_ADC_REG_TRIG_EXT_TIM15_TRGO (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_1 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM15 TRGO. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 933 #define LL_ADC_REG_TRIG_EXT_TIM3_CH4 (ADC_CFGR_EXTSEL | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM3 channel 4 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 934
<> 135:176b8275d35d 935 #elif defined(STM32F302xC) || defined(STM32F302xE)
<> 135:176b8275d35d 936 #define LL_ADC_REG_TRIG_EXT_TIM1_CH1 (ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM1 channel 1 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 937 #define LL_ADC_REG_TRIG_EXT_TIM1_CH2 (ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM1 channel 2 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 938 #define LL_ADC_REG_TRIG_EXT_TIM1_CH3 (ADC_CFGR_EXTSEL_1 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM1 channel 3 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 939 #define LL_ADC_REG_TRIG_EXT_TIM2_CH2 (ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM2 channel 2 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 940 #define LL_ADC_REG_TRIG_EXT_TIM3_TRGO (ADC_CFGR_EXTSEL_2 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM3 TRGO. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 941 #define LL_ADC_REG_TRIG_EXT_TIM4_CH4 (ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM4 channel 4 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 942 #define LL_ADC_REG_TRIG_EXT_EXTI_LINE11 (ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_1 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: external interrupt line 11. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 943 #define LL_ADC_REG_TRIG_EXT_TIM1_TRGO (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM1 TRGO. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 944 #define LL_ADC_REG_TRIG_EXT_TIM1_TRGO2 (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_1 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM1 TRGO2. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 945 #define LL_ADC_REG_TRIG_EXT_TIM2_TRGO (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM2 TRGO. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 946 #define LL_ADC_REG_TRIG_EXT_TIM4_TRGO (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_2 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM4 TRGO. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 947 #define LL_ADC_REG_TRIG_EXT_TIM6_TRGO (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM6 TRGO. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 948 #define LL_ADC_REG_TRIG_EXT_TIM15_TRGO (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_1 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM15 TRGO. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 949 #define LL_ADC_REG_TRIG_EXT_TIM3_CH4 (ADC_CFGR_EXTSEL | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM3 channel 4 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 950
<> 135:176b8275d35d 951 #elif defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx)
<> 135:176b8275d35d 952 #define LL_ADC_REG_TRIG_EXT_TIM1_CH1 (ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM1 channel 1 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 953 #define LL_ADC_REG_TRIG_EXT_TIM1_CH2 (ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM1 channel 2 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 954 #define LL_ADC_REG_TRIG_EXT_TIM1_CH3 (ADC_CFGR_EXTSEL_1 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM1 channel 3 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 955 #define LL_ADC_REG_TRIG_EXT_EXTI_LINE11 (ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_1 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: external interrupt line 11. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 956 #define LL_ADC_REG_TRIG_EXT_TIM1_TRGO (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM1 TRGO. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 957 #define LL_ADC_REG_TRIG_EXT_TIM1_TRGO2 (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_1 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM1 TRGO2. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 958 #define LL_ADC_REG_TRIG_EXT_TIM2_TRGO (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM2 TRGO. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 959 #define LL_ADC_REG_TRIG_EXT_TIM6_TRGO (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM6 TRGO. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 960 #define LL_ADC_REG_TRIG_EXT_TIM15_TRGO (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_1 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM15 TRGO. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 961 #endif
<> 135:176b8275d35d 962 /**
<> 135:176b8275d35d 963 * @}
<> 135:176b8275d35d 964 */
<> 135:176b8275d35d 965
<> 135:176b8275d35d 966 /** @defgroup ADC_LL_EC_REG_TRIGGER_EDGE ADC group regular - Trigger edge
<> 135:176b8275d35d 967 * @{
<> 135:176b8275d35d 968 */
<> 135:176b8275d35d 969 #define LL_ADC_REG_TRIG_EXT_RISING ( ADC_CFGR_EXTEN_0) /*!< ADC group regular conversion trigger polarity set to rising edge */
<> 135:176b8275d35d 970 #define LL_ADC_REG_TRIG_EXT_FALLING (ADC_CFGR_EXTEN_1 ) /*!< ADC group regular conversion trigger polarity set to falling edge */
<> 135:176b8275d35d 971 #define LL_ADC_REG_TRIG_EXT_RISINGFALLING (ADC_CFGR_EXTEN_1 | ADC_CFGR_EXTEN_0) /*!< ADC group regular conversion trigger polarity set to both rising and falling edges */
<> 135:176b8275d35d 972 /**
<> 135:176b8275d35d 973 * @}
<> 135:176b8275d35d 974 */
<> 135:176b8275d35d 975
<> 135:176b8275d35d 976 /** @defgroup ADC_LL_EC_REG_CONTINUOUS_MODE ADC group regular - Continuous mode
<> 135:176b8275d35d 977 * @{
<> 135:176b8275d35d 978 */
<> 135:176b8275d35d 979 #define LL_ADC_REG_CONV_SINGLE ((uint32_t)0x00000000U) /*!< ADC conversions are performed in single mode: one conversion per trigger */
<> 135:176b8275d35d 980 #define LL_ADC_REG_CONV_CONTINUOUS (ADC_CFGR_CONT) /*!< ADC conversions are performed in continuous mode: after the first trigger, following conversions launched successively automatically */
<> 135:176b8275d35d 981 /**
<> 135:176b8275d35d 982 * @}
<> 135:176b8275d35d 983 */
<> 135:176b8275d35d 984
<> 135:176b8275d35d 985 /** @defgroup ADC_LL_EC_REG_DMA_TRANSFER ADC group regular - DMA transfer of ADC conversion data
<> 135:176b8275d35d 986 * @{
<> 135:176b8275d35d 987 */
<> 135:176b8275d35d 988 #define LL_ADC_REG_DMA_TRANSFER_NONE ((uint32_t)0x00000000U) /*!< ADC conversions are not transferred by DMA */
<> 135:176b8275d35d 989 #define LL_ADC_REG_DMA_TRANSFER_LIMITED ( ADC_CFGR_DMAEN) /*!< ADC conversion data are transferred by DMA, in limited mode (one shot mode): DMA transfer requests are stopped when number of DMA data transfers (number of ADC conversions) is reached. This ADC mode is intended to be used with DMA mode non-circular. */
<> 135:176b8275d35d 990 #define LL_ADC_REG_DMA_TRANSFER_UNLIMITED (ADC_CFGR_DMACFG | ADC_CFGR_DMAEN) /*!< ADC conversion data are transferred by DMA, in unlimited mode: DMA transfer requests are unlimited, whatever number of DMA data transferred (number of ADC conversions). This ADC mode is intended to be used with DMA mode circular. */
<> 135:176b8275d35d 991 /**
<> 135:176b8275d35d 992 * @}
<> 135:176b8275d35d 993 */
<> 135:176b8275d35d 994
<> 135:176b8275d35d 995 /** @defgroup ADC_LL_EC_REG_OVR_DATA_BEHAVIOR ADC group regular - Overrun behavior on conversion data
<> 135:176b8275d35d 996 * @{
<> 135:176b8275d35d 997 */
<> 135:176b8275d35d 998 #define LL_ADC_REG_OVR_DATA_PRESERVED ((uint32_t)0x00000000U)/*!< ADC group regular behavior in case of overrun: data preserved */
<> 135:176b8275d35d 999 #define LL_ADC_REG_OVR_DATA_OVERWRITTEN (ADC_CFGR_OVRMOD) /*!< ADC group regular behavior in case of overrun: data overwritten */
<> 135:176b8275d35d 1000 /**
<> 135:176b8275d35d 1001 * @}
<> 135:176b8275d35d 1002 */
<> 135:176b8275d35d 1003
<> 135:176b8275d35d 1004 /** @defgroup ADC_LL_EC_REG_SEQ_SCAN_LENGTH ADC group regular - Sequencer scan length
<> 135:176b8275d35d 1005 * @{
<> 135:176b8275d35d 1006 */
<> 135:176b8275d35d 1007 #define LL_ADC_REG_SEQ_SCAN_DISABLE ((uint32_t)0x00000000U) /*!< ADC group regular sequencer disable (equivalent to sequencer of 1 rank: ADC conversion on only 1 channel) */
<> 135:176b8275d35d 1008 #define LL_ADC_REG_SEQ_SCAN_ENABLE_2RANKS ( ADC_SQR1_L_0) /*!< ADC group regular sequencer enable with 2 ranks in the sequence */
<> 135:176b8275d35d 1009 #define LL_ADC_REG_SEQ_SCAN_ENABLE_3RANKS ( ADC_SQR1_L_1 ) /*!< ADC group regular sequencer enable with 3 ranks in the sequence */
<> 135:176b8275d35d 1010 #define LL_ADC_REG_SEQ_SCAN_ENABLE_4RANKS ( ADC_SQR1_L_1 | ADC_SQR1_L_0) /*!< ADC group regular sequencer enable with 4 ranks in the sequence */
<> 135:176b8275d35d 1011 #define LL_ADC_REG_SEQ_SCAN_ENABLE_5RANKS ( ADC_SQR1_L_2 ) /*!< ADC group regular sequencer enable with 5 ranks in the sequence */
<> 135:176b8275d35d 1012 #define LL_ADC_REG_SEQ_SCAN_ENABLE_6RANKS ( ADC_SQR1_L_2 | ADC_SQR1_L_0) /*!< ADC group regular sequencer enable with 6 ranks in the sequence */
<> 135:176b8275d35d 1013 #define LL_ADC_REG_SEQ_SCAN_ENABLE_7RANKS ( ADC_SQR1_L_2 | ADC_SQR1_L_1 ) /*!< ADC group regular sequencer enable with 7 ranks in the sequence */
<> 135:176b8275d35d 1014 #define LL_ADC_REG_SEQ_SCAN_ENABLE_8RANKS ( ADC_SQR1_L_2 | ADC_SQR1_L_1 | ADC_SQR1_L_0) /*!< ADC group regular sequencer enable with 8 ranks in the sequence */
<> 135:176b8275d35d 1015 #define LL_ADC_REG_SEQ_SCAN_ENABLE_9RANKS (ADC_SQR1_L_3 ) /*!< ADC group regular sequencer enable with 9 ranks in the sequence */
<> 135:176b8275d35d 1016 #define LL_ADC_REG_SEQ_SCAN_ENABLE_10RANKS (ADC_SQR1_L_3 | ADC_SQR1_L_0) /*!< ADC group regular sequencer enable with 10 ranks in the sequence */
<> 135:176b8275d35d 1017 #define LL_ADC_REG_SEQ_SCAN_ENABLE_11RANKS (ADC_SQR1_L_3 | ADC_SQR1_L_1 ) /*!< ADC group regular sequencer enable with 11 ranks in the sequence */
<> 135:176b8275d35d 1018 #define LL_ADC_REG_SEQ_SCAN_ENABLE_12RANKS (ADC_SQR1_L_3 | ADC_SQR1_L_1 | ADC_SQR1_L_0) /*!< ADC group regular sequencer enable with 12 ranks in the sequence */
<> 135:176b8275d35d 1019 #define LL_ADC_REG_SEQ_SCAN_ENABLE_13RANKS (ADC_SQR1_L_3 | ADC_SQR1_L_2 ) /*!< ADC group regular sequencer enable with 13 ranks in the sequence */
<> 135:176b8275d35d 1020 #define LL_ADC_REG_SEQ_SCAN_ENABLE_14RANKS (ADC_SQR1_L_3 | ADC_SQR1_L_2 | ADC_SQR1_L_0) /*!< ADC group regular sequencer enable with 14 ranks in the sequence */
<> 135:176b8275d35d 1021 #define LL_ADC_REG_SEQ_SCAN_ENABLE_15RANKS (ADC_SQR1_L_3 | ADC_SQR1_L_2 | ADC_SQR1_L_1 ) /*!< ADC group regular sequencer enable with 15 ranks in the sequence */
<> 135:176b8275d35d 1022 #define LL_ADC_REG_SEQ_SCAN_ENABLE_16RANKS (ADC_SQR1_L_3 | ADC_SQR1_L_2 | ADC_SQR1_L_1 | ADC_SQR1_L_0) /*!< ADC group regular sequencer enable with 16 ranks in the sequence */
<> 135:176b8275d35d 1023 /**
<> 135:176b8275d35d 1024 * @}
<> 135:176b8275d35d 1025 */
<> 135:176b8275d35d 1026
<> 135:176b8275d35d 1027 /** @defgroup ADC_LL_EC_REG_SEQ_DISCONT_MODE ADC group regular - Sequencer discontinuous mode
<> 135:176b8275d35d 1028 * @{
<> 135:176b8275d35d 1029 */
<> 135:176b8275d35d 1030 #define LL_ADC_REG_SEQ_DISCONT_DISABLE ((uint32_t)0x00000000U) /*!< ADC group regular sequencer discontinuous mode disable */
<> 135:176b8275d35d 1031 #define LL_ADC_REG_SEQ_DISCONT_1RANK ( ADC_CFGR_DISCEN) /*!< ADC group regular sequencer discontinuous mode enable with sequence interruption every rank */
<> 135:176b8275d35d 1032 #define LL_ADC_REG_SEQ_DISCONT_2RANKS ( ADC_CFGR_DISCNUM_0 | ADC_CFGR_DISCEN) /*!< ADC group regular sequencer discontinuous mode enabled with sequence interruption every 2 ranks */
<> 135:176b8275d35d 1033 #define LL_ADC_REG_SEQ_DISCONT_3RANKS ( ADC_CFGR_DISCNUM_1 | ADC_CFGR_DISCEN) /*!< ADC group regular sequencer discontinuous mode enable with sequence interruption every 3 ranks */
<> 135:176b8275d35d 1034 #define LL_ADC_REG_SEQ_DISCONT_4RANKS ( ADC_CFGR_DISCNUM_1 | ADC_CFGR_DISCNUM_0 | ADC_CFGR_DISCEN) /*!< ADC group regular sequencer discontinuous mode enable with sequence interruption every 4 ranks */
<> 135:176b8275d35d 1035 #define LL_ADC_REG_SEQ_DISCONT_5RANKS (ADC_CFGR_DISCNUM_2 | ADC_CFGR_DISCEN) /*!< ADC group regular sequencer discontinuous mode enable with sequence interruption every 5 ranks */
<> 135:176b8275d35d 1036 #define LL_ADC_REG_SEQ_DISCONT_6RANKS (ADC_CFGR_DISCNUM_2 | ADC_CFGR_DISCNUM_0 | ADC_CFGR_DISCEN) /*!< ADC group regular sequencer discontinuous mode enable with sequence interruption every 6 ranks */
<> 135:176b8275d35d 1037 #define LL_ADC_REG_SEQ_DISCONT_7RANKS (ADC_CFGR_DISCNUM_2 | ADC_CFGR_DISCNUM_1 | ADC_CFGR_DISCEN) /*!< ADC group regular sequencer discontinuous mode enable with sequence interruption every 7 ranks */
<> 135:176b8275d35d 1038 #define LL_ADC_REG_SEQ_DISCONT_8RANKS (ADC_CFGR_DISCNUM_2 | ADC_CFGR_DISCNUM_1 | ADC_CFGR_DISCNUM_0 | ADC_CFGR_DISCEN) /*!< ADC group regular sequencer discontinuous mode enable with sequence interruption every 8 ranks */
<> 135:176b8275d35d 1039 /**
<> 135:176b8275d35d 1040 * @}
<> 135:176b8275d35d 1041 */
<> 135:176b8275d35d 1042
<> 135:176b8275d35d 1043 /** @defgroup ADC_LL_EC_REG_SEQ_RANKS ADC group regular - Sequencer ranks
<> 135:176b8275d35d 1044 * @{
<> 135:176b8275d35d 1045 */
<> 135:176b8275d35d 1046 #define LL_ADC_REG_RANK_1 (ADC_SQR1_REGOFFSET | ADC_REG_RANK_1_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 1 */
<> 135:176b8275d35d 1047 #define LL_ADC_REG_RANK_2 (ADC_SQR1_REGOFFSET | ADC_REG_RANK_2_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 2 */
<> 135:176b8275d35d 1048 #define LL_ADC_REG_RANK_3 (ADC_SQR1_REGOFFSET | ADC_REG_RANK_3_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 3 */
<> 135:176b8275d35d 1049 #define LL_ADC_REG_RANK_4 (ADC_SQR1_REGOFFSET | ADC_REG_RANK_4_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 4 */
<> 135:176b8275d35d 1050 #define LL_ADC_REG_RANK_5 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_5_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 5 */
<> 135:176b8275d35d 1051 #define LL_ADC_REG_RANK_6 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_6_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 6 */
<> 135:176b8275d35d 1052 #define LL_ADC_REG_RANK_7 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_7_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 7 */
<> 135:176b8275d35d 1053 #define LL_ADC_REG_RANK_8 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_8_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 8 */
<> 135:176b8275d35d 1054 #define LL_ADC_REG_RANK_9 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_9_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 9 */
<> 135:176b8275d35d 1055 #define LL_ADC_REG_RANK_10 (ADC_SQR3_REGOFFSET | ADC_REG_RANK_10_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 10 */
<> 135:176b8275d35d 1056 #define LL_ADC_REG_RANK_11 (ADC_SQR3_REGOFFSET | ADC_REG_RANK_11_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 11 */
<> 135:176b8275d35d 1057 #define LL_ADC_REG_RANK_12 (ADC_SQR3_REGOFFSET | ADC_REG_RANK_12_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 12 */
<> 135:176b8275d35d 1058 #define LL_ADC_REG_RANK_13 (ADC_SQR3_REGOFFSET | ADC_REG_RANK_13_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 13 */
<> 135:176b8275d35d 1059 #define LL_ADC_REG_RANK_14 (ADC_SQR3_REGOFFSET | ADC_REG_RANK_14_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 14 */
<> 135:176b8275d35d 1060 #define LL_ADC_REG_RANK_15 (ADC_SQR4_REGOFFSET | ADC_REG_RANK_15_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 15 */
<> 135:176b8275d35d 1061 #define LL_ADC_REG_RANK_16 (ADC_SQR4_REGOFFSET | ADC_REG_RANK_16_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 16 */
<> 135:176b8275d35d 1062 /**
<> 135:176b8275d35d 1063 * @}
<> 135:176b8275d35d 1064 */
<> 135:176b8275d35d 1065
<> 135:176b8275d35d 1066 /** @defgroup ADC_LL_EC_INJ_TRIGGER_SOURCE ADC group injected - Trigger source
<> 135:176b8275d35d 1067 * @{
<> 135:176b8275d35d 1068 */
<> 135:176b8275d35d 1069 #define LL_ADC_INJ_TRIG_SOFTWARE ((uint32_t)0x00000000U) /*!< ADC group injected conversion trigger internal: SW start.. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1070 #if defined(STM32F303xC) || defined(STM32F358xx) || defined(STM32F303xE) || defined(STM32F398xx)
<> 135:176b8275d35d 1071 /* ADC group injected external triggers for ADC instances: ADC1, ADC2 (for */
<> 135:176b8275d35d 1072 /* ADC instances ADCx available on the selected device) */
<> 135:176b8275d35d 1073 /* Note: Literal without suffix "ADCxy" means that external trigger */
<> 135:176b8275d35d 1074 /* is available on all ADC instances. */
<> 135:176b8275d35d 1075 /* Note: For devices STM32F303xE, STM32F398xx: some triggers require to set */
<> 135:176b8275d35d 1076 /* register SYSCFG_CFGR4. Refer to reference manual. */
<> 135:176b8275d35d 1077 #define LL_ADC_INJ_TRIG_EXT_TIM1_TRGO (ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM1 TRG0. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1078 #define LL_ADC_INJ_TRIG_EXT_TIM1_CH4 (ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM1 channel 4 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1079 #define LL_ADC_INJ_TRIG_EXT_TIM2_TRGO_ADC12 (ADC_JSQR_JEXTSEL_1 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM2 TRG0. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1080 #define LL_ADC_INJ_TRIG_EXT_TIM2_CH1_ADC12 (ADC_JSQR_JEXTSEL_1 | ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM2 channel 1 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1081 #define LL_ADC_INJ_TRIG_EXT_TIM3_CH4_ADC12 (ADC_JSQR_JEXTSEL_2 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM3 channel 4 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1082 #define LL_ADC_INJ_TRIG_EXT_TIM4_TRGO_ADC12 (ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM4 TRG0. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1083 #define LL_ADC_INJ_TRIG_EXT_EXTI_LINE15_ADC12 (ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_1 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: external interrupt line 15. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1084 #define LL_ADC_INJ_TRIG_EXT_TIM8_CH4_ADC12 (ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_1 | ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM8 channel 4 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1085 #define LL_ADC_INJ_TRIG_EXT_TIM1_TRGO2 (ADC_JSQR_JEXTSEL_3 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM1 TRG02. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1086 #define LL_ADC_INJ_TRIG_EXT_TIM8_TRGO (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM8 TRG0. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1087 #define LL_ADC_INJ_TRIG_EXT_TIM8_TRGO2 (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_1 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM8 TRG02. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1088 #define LL_ADC_INJ_TRIG_EXT_TIM3_CH3_ADC12 (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_1 | ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM3 channel 3 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1089 #define LL_ADC_INJ_TRIG_EXT_TIM3_TRGO (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_2 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM3 TRG0. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1090 #define LL_ADC_INJ_TRIG_EXT_TIM3_CH1_ADC12 (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM3 channel 1 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1091 #define LL_ADC_INJ_TRIG_EXT_TIM6_TRGO_ADC12 (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_1 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM6 TRG0. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1092 #define LL_ADC_INJ_TRIG_EXT_TIM15_TRGO (ADC_JSQR_JEXTSEL | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM15 TRG0. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1093 #if defined(STM32F303xE) || defined(STM32F398xx)
<> 135:176b8275d35d 1094 #define LL_ADC_INJ_TRIG_EXT_TIM20_TRGO_ADC12 (LL_ADC_INJ_TRIG_EXT_TIM2_CH1_ADC12) /*!< ADC group injected conversion trigger from external IP: TIM20 TRG0. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1095 #define LL_ADC_INJ_TRIG_EXT_TIM20_TRGO2_ADC12 (LL_ADC_INJ_TRIG_EXT_EXTI_LINE15_ADC12) /*!< ADC group injected conversion trigger from external IP: TIM20 TRG02. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1096 #define LL_ADC_INJ_TRIG_EXT_TIM20_CH4_ADC12 (LL_ADC_INJ_TRIG_EXT_TIM2_CH1_ADC12) /*!< ADC group injected conversion trigger from external IP: TIM20 channel 4 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1097 #endif /* STM32F303xE || STM32F398xx */
<> 135:176b8275d35d 1098
<> 135:176b8275d35d 1099 /* ADC group injected external triggers for ADC instances: ADC3, ADC4 (for */
<> 135:176b8275d35d 1100 /* ADC instances ADCx available on the selected device) */
<> 135:176b8275d35d 1101 /* Note: Literal without suffix "ADCxy" means that external trigger */
<> 135:176b8275d35d 1102 /* is available on all ADC instances. */
<> 135:176b8275d35d 1103 /* Note: External triggers JEXT2 and JEXT5 are the same (TIM4_CH3 event). */
<> 135:176b8275d35d 1104 /* JEXT2 is the main trigger, JEXT5 is kept as spare trigger for */
<> 135:176b8275d35d 1105 /* future devices. */
<> 135:176b8275d35d 1106 /* Note: For devices STM32F303xE, STM32F398xx: some triggers require to set */
<> 135:176b8275d35d 1107 /* register SYSCFG_CFGR4. Refer to reference manual. */
<> 135:176b8275d35d 1108 #define LL_ADC_INJ_TRIG_EXT_TIM1_TRGO (ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM1 TRG0. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1109 #define LL_ADC_INJ_TRIG_EXT_TIM1_CH4 (ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM1 channel 4 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1110 #define LL_ADC_INJ_TRIG_EXT_TIM4_CH3_ADC34 (ADC_JSQR_JEXTSEL_1 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM4 channel 3 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1111 #define LL_ADC_INJ_TRIG_EXT_TIM8_CH2_ADC34 (ADC_JSQR_JEXTSEL_1 | ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM8 channel 2 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1112 #define LL_ADC_INJ_TRIG_EXT_TIM8_CH4__ADC34 (ADC_JSQR_JEXTSEL_2 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM8 channel 4 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1113 #define LL_ADC_INJ_TRIG_EXT_TIM4_CH4_ADC34 (ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_1 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM4 channel 4 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1114 #define LL_ADC_INJ_TRIG_EXT_TIM4_TRGO__ADC34 (ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_1 | ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM4 TRG0. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1115 #define LL_ADC_INJ_TRIG_EXT_TIM1_TRGO2 (ADC_JSQR_JEXTSEL_3 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM1 TRG02. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1116 #define LL_ADC_INJ_TRIG_EXT_TIM8_TRGO (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM8 TRG0. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1117 #define LL_ADC_INJ_TRIG_EXT_TIM8_TRGO2 (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_1 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM8 TRG02. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1118 #define LL_ADC_INJ_TRIG_EXT_TIM1_CH3_ADC34 (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_1 | ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM1 channel 3 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1119 #define LL_ADC_INJ_TRIG_EXT_TIM3_TRGO (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_2 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM3 TRG0. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1120 #define LL_ADC_INJ_TRIG_EXT_TIM2_TRGO__ADC34 (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM2 TRG0. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1121 #define LL_ADC_INJ_TRIG_EXT_TIM7_TRGO_ADC34 (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_1 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM7 TRG0. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1122 #define LL_ADC_INJ_TRIG_EXT_TIM15_TRGO (ADC_JSQR_JEXTSEL | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM15 TRG0. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1123 #if defined(STM32F303xE) || defined(STM32F398xx)
<> 135:176b8275d35d 1124 #define LL_ADC_INJ_TRIG_EXT_TIM20_TRG_ADC34 (ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM20 TRG0. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1125 #define LL_ADC_INJ_TRIG_EXT_TIM20_TRG2_ADC34 (LL_ADC_INJ_TRIG_EXT_TIM1_CH3_ADC34) /*!< ADC group injected conversion trigger from external IP: TIM20 TRG02. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1126 #define LL_ADC_INJ_TRIG_EXT_TIM20_CH2 (LL_ADC_INJ_TRIG_EXT_TIM15_TRGO) /*!< ADC group injected conversion trigger from external IP: TIM20 channel 2 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1127 #endif /* STM32F303xE || STM32F398xx */
<> 135:176b8275d35d 1128
<> 135:176b8275d35d 1129 #elif defined(STM32F303x8) || defined(STM32F328xx)
<> 135:176b8275d35d 1130 #define LL_ADC_INJ_TRIG_EXT_TIM1_TRGO (ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM1 TRG0. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1131 #define LL_ADC_INJ_TRIG_EXT_TIM1_CH4 (ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM1 channel 4 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1132 #define LL_ADC_INJ_TRIG_EXT_TIM2_TRGO (ADC_JSQR_JEXTSEL_1 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM2 TRG0. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1133 #define LL_ADC_INJ_TRIG_EXT_TIM2_CH1 (ADC_JSQR_JEXTSEL_1 | ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM2 channel 1 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1134 #define LL_ADC_INJ_TRIG_EXT_TIM3_CH4 (ADC_JSQR_JEXTSEL_2 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM3 channel 4 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1135 #define LL_ADC_INJ_TRIG_EXT_TIM4_TRGO (ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM4 TRG0. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1136 #define LL_ADC_INJ_TRIG_EXT_EXTI_LINE15 (ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_1 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: external interrupt line 15. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1137 #define LL_ADC_INJ_TRIG_EXT_TIM8_CH4 (ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_1 | ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM8 channel 4 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1138 #define LL_ADC_INJ_TRIG_EXT_TIM1_TRGO2 (ADC_JSQR_JEXTSEL_3 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM1 TRG02. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1139 #define LL_ADC_INJ_TRIG_EXT_TIM8_TRGO (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM8 TRG0. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1140 #define LL_ADC_INJ_TRIG_EXT_TIM8_TRGO2 (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_1 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM8 TRG02. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1141 #define LL_ADC_INJ_TRIG_EXT_TIM3_CH3 (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_1 | ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM3 channel 3 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1142 #define LL_ADC_INJ_TRIG_EXT_TIM3_TRGO (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_2 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM3 TRG0. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1143 #define LL_ADC_INJ_TRIG_EXT_TIM3_CH1 (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM3 channel 1 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1144 #define LL_ADC_INJ_TRIG_EXT_TIM6_TRGO (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_1 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM6 TRG0. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1145 #define LL_ADC_INJ_TRIG_EXT_TIM15_TRGO (ADC_JSQR_JEXTSEL | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM15 TRG0. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1146
<> 135:176b8275d35d 1147 #elif defined(STM32F334x8)
<> 135:176b8275d35d 1148 #define LL_ADC_INJ_TRIG_EXT_TIM1_TRGO (ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM1 TRG0. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1149 #define LL_ADC_INJ_TRIG_EXT_TIM1_CH4 (ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM1 channel 4 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1150 #define LL_ADC_INJ_TRIG_EXT_TIM2_TRGO (ADC_JSQR_JEXTSEL_1 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM2 TRG0. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1151 #define LL_ADC_INJ_TRIG_EXT_TIM2_CH1 (ADC_JSQR_JEXTSEL_1 | ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM2 channel 1 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1152 #define LL_ADC_INJ_TRIG_EXT_TIM3_CH4 (ADC_JSQR_JEXTSEL_2 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM3 channel 4 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1153 #define LL_ADC_INJ_TRIG_EXT_EXTI_LINE15 (ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_1 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: external interrupt line 15. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1154 #define LL_ADC_INJ_TRIG_EXT_TIM1_TRGO2 (ADC_JSQR_JEXTSEL_3 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM1 TRG02. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1155 #define LL_ADC_INJ_TRIG_EXT_HRTIM_TRG2 (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: HRTIM TRG2. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1156 #define LL_ADC_INJ_TRIG_EXT_HRTIM_TRG4 (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_1 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: HRTIM TRG4. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1157 #define LL_ADC_INJ_TRIG_EXT_TIM3_CH3 (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_1 | ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM3 channel 3 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1158 #define LL_ADC_INJ_TRIG_EXT_TIM3_TRGO (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_2 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM3 TRG0. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1159 #define LL_ADC_INJ_TRIG_EXT_TIM3_CH1 (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM3 channel 1 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1160 #define LL_ADC_INJ_TRIG_EXT_TIM6_TRGO (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_1 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM6 TRG0. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1161 #define LL_ADC_INJ_TRIG_EXT_TIM15_TRGO (ADC_JSQR_JEXTSEL | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM15 TRG0. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1162
<> 135:176b8275d35d 1163 #elif defined(STM32F302xC) || defined(STM32F302xE)
<> 135:176b8275d35d 1164 #define LL_ADC_INJ_TRIG_EXT_TIM1_TRGO (ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM1 TRG0. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1165 #define LL_ADC_INJ_TRIG_EXT_TIM1_CH4 (ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM1 channel 4 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1166 #define LL_ADC_INJ_TRIG_EXT_TIM2_TRGO (ADC_JSQR_JEXTSEL_1 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM2 TRG0. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1167 #define LL_ADC_INJ_TRIG_EXT_TIM2_CH1 (ADC_JSQR_JEXTSEL_1 | ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM2 channel 1 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1168 #define LL_ADC_INJ_TRIG_EXT_TIM3_CH4 (ADC_JSQR_JEXTSEL_2 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM3 channel 4 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1169 #define LL_ADC_INJ_TRIG_EXT_TIM4_TRGO (ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM4 TRG0. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1170 #define LL_ADC_INJ_TRIG_EXT_EXTI_LINE15 (ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_1 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: external interrupt line 15. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1171 #define LL_ADC_INJ_TRIG_EXT_TIM1_TRGO2 (ADC_JSQR_JEXTSEL_3 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM1 TRG02. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1172 #define LL_ADC_INJ_TRIG_EXT_TIM3_CH3 (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_1 | ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM3 channel 3 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1173 #define LL_ADC_INJ_TRIG_EXT_TIM3_TRGO (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_2 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM3 TRG0. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1174 #define LL_ADC_INJ_TRIG_EXT_TIM3_CH1 (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM3 channel 1 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1175 #define LL_ADC_INJ_TRIG_EXT_TIM6_TRGO (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_1 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM6 TRG0. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1176 #define LL_ADC_INJ_TRIG_EXT_TIM15_TRGO (ADC_JSQR_JEXTSEL | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM15 TRG0. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1177
<> 135:176b8275d35d 1178 #elif defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx)
<> 135:176b8275d35d 1179 #define LL_ADC_INJ_TRIG_EXT_TIM1_TRGO (ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM1 TRG0. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1180 #define LL_ADC_INJ_TRIG_EXT_TIM1_CH4 (ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM1 channel 4 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1181 #define LL_ADC_INJ_TRIG_EXT_EXTI_LINE15 (ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_1 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: external interrupt line 15. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1182 #define LL_ADC_INJ_TRIG_EXT_TIM1_TRGO2 (ADC_JSQR_JEXTSEL_3 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM1 TRG02. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1183 #define LL_ADC_INJ_TRIG_EXT_TIM6_TRGO (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_1 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM6 TRG0. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1184 #define LL_ADC_INJ_TRIG_EXT_TIM15_TRGO (ADC_JSQR_JEXTSEL | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM15 TRG0. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 1185 #endif
<> 135:176b8275d35d 1186 /**
<> 135:176b8275d35d 1187 * @}
<> 135:176b8275d35d 1188 */
<> 135:176b8275d35d 1189
<> 135:176b8275d35d 1190 /** @defgroup ADC_LL_EC_INJ_TRIGGER_EDGE ADC group injected - Trigger edge
<> 135:176b8275d35d 1191 * @{
<> 135:176b8275d35d 1192 */
<> 135:176b8275d35d 1193 #define LL_ADC_INJ_TRIG_EXT_RISING ( ADC_JSQR_JEXTEN_0) /*!< ADC group injected conversion trigger polarity set to rising edge */
<> 135:176b8275d35d 1194 #define LL_ADC_INJ_TRIG_EXT_FALLING (ADC_JSQR_JEXTEN_1 ) /*!< ADC group injected conversion trigger polarity set to falling edge */
<> 135:176b8275d35d 1195 #define LL_ADC_INJ_TRIG_EXT_RISINGFALLING (ADC_JSQR_JEXTEN_1 | ADC_JSQR_JEXTEN_0) /*!< ADC group injected conversion trigger polarity set to both rising and falling edges */
<> 135:176b8275d35d 1196 /**
<> 135:176b8275d35d 1197 * @}
<> 135:176b8275d35d 1198 */
<> 135:176b8275d35d 1199
<> 135:176b8275d35d 1200 /** @defgroup ADC_LL_EC_INJ_TRIG_AUTO ADC group injected - Automatic trigger mode
<> 135:176b8275d35d 1201 * @{
<> 135:176b8275d35d 1202 */
<> 135:176b8275d35d 1203 #define LL_ADC_INJ_TRIG_INDEPENDENT ((uint32_t)0x00000000U)/*!< ADC group injected conversion trigger independent. Setting mandatory if ADC group injected injected trigger source is set to an external trigger. */
<> 135:176b8275d35d 1204 #define LL_ADC_INJ_TRIG_FROM_GRP_REGULAR (ADC_CFGR_JAUTO) /*!< ADC group injected conversion trigger from ADC group regular. Setting compliant only with group injected trigger source set to SW start, without any further action on ADC group injected conversion start or stop: in this case, ADC group injected is controlled only from ADC group regular. */
<> 135:176b8275d35d 1205 /**
<> 135:176b8275d35d 1206 * @}
<> 135:176b8275d35d 1207 */
<> 135:176b8275d35d 1208
<> 135:176b8275d35d 1209 /** @defgroup ADC_LL_EC_INJ_CONTEXT_QUEUE ADC group injected - Context queue mode
<> 135:176b8275d35d 1210 * @{
<> 135:176b8275d35d 1211 */
<> 135:176b8275d35d 1212 #define LL_ADC_INJ_QUEUE_2CONTEXTS_LAST_ACTIVE ((uint32_t)0x00000000U)/* Group injected sequence context queue is enabled and can contain up to 2 contexts. When all contexts have been processed, the queue maintains the last context active perpetually. */
<> 135:176b8275d35d 1213 #define LL_ADC_INJ_QUEUE_2CONTEXTS_END_EMPTY (ADC_CFGR_JQM) /* Group injected sequence context queue is enabled and can contain up to 2 contexts. When all contexts have been processed, the queue is empty and injected group triggers are disabled. */
<> 135:176b8275d35d 1214 /**
<> 135:176b8275d35d 1215 * @}
<> 135:176b8275d35d 1216 */
<> 135:176b8275d35d 1217
<> 135:176b8275d35d 1218 /** @defgroup ADC_LL_EC_INJ_SEQ_SCAN_LENGTH ADC group injected - Sequencer scan length
<> 135:176b8275d35d 1219 * @{
<> 135:176b8275d35d 1220 */
<> 135:176b8275d35d 1221 #define LL_ADC_INJ_SEQ_SCAN_DISABLE ((uint32_t)0x00000000U) /*!< ADC group injected sequencer disable (equivalent to sequencer of 1 rank: ADC conversion on only 1 channel) */
<> 135:176b8275d35d 1222 #define LL_ADC_INJ_SEQ_SCAN_ENABLE_2RANKS ( ADC_JSQR_JL_0) /*!< ADC group injected sequencer enable with 2 ranks in the sequence */
<> 135:176b8275d35d 1223 #define LL_ADC_INJ_SEQ_SCAN_ENABLE_3RANKS (ADC_JSQR_JL_1 ) /*!< ADC group injected sequencer enable with 3 ranks in the sequence */
<> 135:176b8275d35d 1224 #define LL_ADC_INJ_SEQ_SCAN_ENABLE_4RANKS (ADC_JSQR_JL_1 | ADC_JSQR_JL_0) /*!< ADC group injected sequencer enable with 4 ranks in the sequence */
<> 135:176b8275d35d 1225 /**
<> 135:176b8275d35d 1226 * @}
<> 135:176b8275d35d 1227 */
<> 135:176b8275d35d 1228
<> 135:176b8275d35d 1229 /** @defgroup ADC_LL_EC_INJ_SEQ_DISCONT_MODE ADC group injected - Sequencer discontinuous mode
<> 135:176b8275d35d 1230 * @{
<> 135:176b8275d35d 1231 */
<> 135:176b8275d35d 1232 #define LL_ADC_INJ_SEQ_DISCONT_DISABLE ((uint32_t)0x00000000U)/*!< ADC group injected sequencer discontinuous mode disable */
<> 135:176b8275d35d 1233 #define LL_ADC_INJ_SEQ_DISCONT_1RANK (ADC_CFGR_JDISCEN) /*!< ADC group injected sequencer discontinuous mode enable with sequence interruption every rank */
<> 135:176b8275d35d 1234 /**
<> 135:176b8275d35d 1235 * @}
<> 135:176b8275d35d 1236 */
<> 135:176b8275d35d 1237
<> 135:176b8275d35d 1238 /** @defgroup ADC_LL_EC_INJ_SEQ_RANKS ADC group injected - Sequencer ranks
<> 135:176b8275d35d 1239 * @{
<> 135:176b8275d35d 1240 */
<> 135:176b8275d35d 1241 #define LL_ADC_INJ_RANK_1 (ADC_JDR1_REGOFFSET | ADC_INJ_RANK_1_JSQR_BITOFFSET_POS) /*!< ADC group injected sequencer rank 1 */
<> 135:176b8275d35d 1242 #define LL_ADC_INJ_RANK_2 (ADC_JDR2_REGOFFSET | ADC_INJ_RANK_2_JSQR_BITOFFSET_POS) /*!< ADC group injected sequencer rank 2 */
<> 135:176b8275d35d 1243 #define LL_ADC_INJ_RANK_3 (ADC_JDR3_REGOFFSET | ADC_INJ_RANK_3_JSQR_BITOFFSET_POS) /*!< ADC group injected sequencer rank 3 */
<> 135:176b8275d35d 1244 #define LL_ADC_INJ_RANK_4 (ADC_JDR4_REGOFFSET | ADC_INJ_RANK_4_JSQR_BITOFFSET_POS) /*!< ADC group injected sequencer rank 4 */
<> 135:176b8275d35d 1245 /**
<> 135:176b8275d35d 1246 * @}
<> 135:176b8275d35d 1247 */
<> 135:176b8275d35d 1248
<> 135:176b8275d35d 1249 /** @defgroup ADC_LL_EC_CHANNEL_SAMPLINGTIME Channel - Sampling time
<> 135:176b8275d35d 1250 * @{
<> 135:176b8275d35d 1251 */
<> 135:176b8275d35d 1252 #define LL_ADC_SAMPLINGTIME_1CYCLE_5 (0x00000000U) /*!< Sampling time 1.5 ADC clock cycle */
<> 135:176b8275d35d 1253 #define LL_ADC_SAMPLINGTIME_2CYCLES_5 ( ADC_SMPR2_SMP10_0) /*!< Sampling time 2.5 ADC clock cycles */
<> 135:176b8275d35d 1254 #define LL_ADC_SAMPLINGTIME_4CYCLES_5 ( ADC_SMPR2_SMP10_1 ) /*!< Sampling time 4.5 ADC clock cycles */
<> 135:176b8275d35d 1255 #define LL_ADC_SAMPLINGTIME_7CYCLES_5 ( ADC_SMPR2_SMP10_1 | ADC_SMPR2_SMP10_0) /*!< Sampling time 7.5 ADC clock cycles */
<> 135:176b8275d35d 1256 #define LL_ADC_SAMPLINGTIME_19CYCLES_5 (ADC_SMPR2_SMP10_2 ) /*!< Sampling time 19.5 ADC clock cycles */
<> 135:176b8275d35d 1257 #define LL_ADC_SAMPLINGTIME_61CYCLES_5 (ADC_SMPR2_SMP10_2 | ADC_SMPR2_SMP10_0) /*!< Sampling time 61.5 ADC clock cycles */
<> 135:176b8275d35d 1258 #define LL_ADC_SAMPLINGTIME_181CYCLES_5 (ADC_SMPR2_SMP10_2 | ADC_SMPR2_SMP10_1 ) /*!< Sampling time 181.5 ADC clock cycles */
<> 135:176b8275d35d 1259 #define LL_ADC_SAMPLINGTIME_601CYCLES_5 (ADC_SMPR2_SMP10_2 | ADC_SMPR2_SMP10_1 | ADC_SMPR2_SMP10_0) /*!< Sampling time 601.5 ADC clock cycles */
<> 135:176b8275d35d 1260 /**
<> 135:176b8275d35d 1261 * @}
<> 135:176b8275d35d 1262 */
<> 135:176b8275d35d 1263
<> 135:176b8275d35d 1264 /** @defgroup ADC_LL_EC_CHANNEL_SINGLE_DIFF_ENDING Channel - Single or differential ending
<> 135:176b8275d35d 1265 * @{
<> 135:176b8275d35d 1266 */
<> 135:176b8275d35d 1267 #define LL_ADC_SINGLE_ENDED ( ADC_CALFACT_CALFACT_S) /*!< ADC channel ending set to single ended (literal also used to set calibration mode) */
<> 135:176b8275d35d 1268 #define LL_ADC_DIFFERENTIAL_ENDED (ADC_CR_ADCALDIF | ADC_CALFACT_CALFACT_D) /*!< ADC channel ending set to differential (literal also used to set calibration mode) */
<> 135:176b8275d35d 1269 #define LL_ADC_BOTH_SINGLE_DIFF_ENDED (LL_ADC_SINGLE_ENDED | LL_ADC_DIFFERENTIAL_ENDED) /*!< ADC channel ending set to both single ended and differential (literal used only to set calibration factors) */
<> 135:176b8275d35d 1270 /**
<> 135:176b8275d35d 1271 * @}
<> 135:176b8275d35d 1272 */
<> 135:176b8275d35d 1273
<> 135:176b8275d35d 1274 /** @defgroup ADC_LL_EC_AWD_NUMBER Analog watchdog - Analog watchdog number
<> 135:176b8275d35d 1275 * @{
<> 135:176b8275d35d 1276 */
<> 135:176b8275d35d 1277 #define LL_ADC_AWD1 (ADC_AWD_CR1_CHANNEL_MASK | ADC_AWD_CR1_REGOFFSET) /*!< ADC analog watchdog number 1 */
<> 135:176b8275d35d 1278 #define LL_ADC_AWD2 (ADC_AWD_CR23_CHANNEL_MASK | ADC_AWD_CR2_REGOFFSET) /*!< ADC analog watchdog number 2 */
<> 135:176b8275d35d 1279 #define LL_ADC_AWD3 (ADC_AWD_CR23_CHANNEL_MASK | ADC_AWD_CR3_REGOFFSET) /*!< ADC analog watchdog number 3 */
<> 135:176b8275d35d 1280 /**
<> 135:176b8275d35d 1281 * @}
<> 135:176b8275d35d 1282 */
<> 135:176b8275d35d 1283
<> 135:176b8275d35d 1284 /** @defgroup ADC_LL_EC_AWD_CHANNELS Analog watchdog - Monitored channels
<> 135:176b8275d35d 1285 * @{
<> 135:176b8275d35d 1286 */
<> 135:176b8275d35d 1287 #define LL_ADC_AWD_DISABLE ((uint32_t)0x00000000U) /*!< ADC analog watchdog monitoring disabled */
<> 135:176b8275d35d 1288 #define LL_ADC_AWD_ALL_CHANNELS_REG (ADC_AWD_CR23_CHANNEL_MASK | ADC_CFGR_AWD1EN ) /*!< ADC analog watchdog monitoring of all channels, converted by group regular only */
<> 135:176b8275d35d 1289 #define LL_ADC_AWD_ALL_CHANNELS_INJ (ADC_AWD_CR23_CHANNEL_MASK | ADC_CFGR_JAWD1EN ) /*!< ADC analog watchdog monitoring of all channels, converted by group injected only */
<> 135:176b8275d35d 1290 #define LL_ADC_AWD_ALL_CHANNELS_REG_INJ (ADC_AWD_CR23_CHANNEL_MASK | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN ) /*!< ADC analog watchdog monitoring of all channels, converted by either group regular or injected */
<> 135:176b8275d35d 1291 #define LL_ADC_AWD_CHANNEL_0_REG ((LL_ADC_CHANNEL_0 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN0, converted by group regular only */
<> 135:176b8275d35d 1292 #define LL_ADC_AWD_CHANNEL_0_INJ ((LL_ADC_CHANNEL_0 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN0, converted by group injected only */
<> 135:176b8275d35d 1293 #define LL_ADC_AWD_CHANNEL_0_REG_INJ ((LL_ADC_CHANNEL_0 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN0, converted by either group regular or injected */
<> 135:176b8275d35d 1294 #define LL_ADC_AWD_CHANNEL_1_REG ((LL_ADC_CHANNEL_1 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN1, converted by group regular only */
<> 135:176b8275d35d 1295 #define LL_ADC_AWD_CHANNEL_1_INJ ((LL_ADC_CHANNEL_1 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN1, converted by group injected only */
<> 135:176b8275d35d 1296 #define LL_ADC_AWD_CHANNEL_1_REG_INJ ((LL_ADC_CHANNEL_1 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN1, converted by either group regular or injected */
<> 135:176b8275d35d 1297 #define LL_ADC_AWD_CHANNEL_2_REG ((LL_ADC_CHANNEL_2 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN2, converted by group regular only */
<> 135:176b8275d35d 1298 #define LL_ADC_AWD_CHANNEL_2_INJ ((LL_ADC_CHANNEL_2 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN2, converted by group injected only */
<> 135:176b8275d35d 1299 #define LL_ADC_AWD_CHANNEL_2_REG_INJ ((LL_ADC_CHANNEL_2 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN2, converted by either group regular or injected */
<> 135:176b8275d35d 1300 #define LL_ADC_AWD_CHANNEL_3_REG ((LL_ADC_CHANNEL_3 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN3, converted by group regular only */
<> 135:176b8275d35d 1301 #define LL_ADC_AWD_CHANNEL_3_INJ ((LL_ADC_CHANNEL_3 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN3, converted by group injected only */
<> 135:176b8275d35d 1302 #define LL_ADC_AWD_CHANNEL_3_REG_INJ ((LL_ADC_CHANNEL_3 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN3, converted by either group regular or injected */
<> 135:176b8275d35d 1303 #define LL_ADC_AWD_CHANNEL_4_REG ((LL_ADC_CHANNEL_4 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN4, converted by group regular only */
<> 135:176b8275d35d 1304 #define LL_ADC_AWD_CHANNEL_4_INJ ((LL_ADC_CHANNEL_4 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN4, converted by group injected only */
<> 135:176b8275d35d 1305 #define LL_ADC_AWD_CHANNEL_4_REG_INJ ((LL_ADC_CHANNEL_4 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN4, converted by either group regular or injected */
<> 135:176b8275d35d 1306 #define LL_ADC_AWD_CHANNEL_5_REG ((LL_ADC_CHANNEL_5 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN5, converted by group regular only */
<> 135:176b8275d35d 1307 #define LL_ADC_AWD_CHANNEL_5_INJ ((LL_ADC_CHANNEL_5 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN5, converted by group injected only */
<> 135:176b8275d35d 1308 #define LL_ADC_AWD_CHANNEL_5_REG_INJ ((LL_ADC_CHANNEL_5 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN5, converted by either group regular or injected */
<> 135:176b8275d35d 1309 #define LL_ADC_AWD_CHANNEL_6_REG ((LL_ADC_CHANNEL_6 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN6, converted by group regular only */
<> 135:176b8275d35d 1310 #define LL_ADC_AWD_CHANNEL_6_INJ ((LL_ADC_CHANNEL_6 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN6, converted by group injected only */
<> 135:176b8275d35d 1311 #define LL_ADC_AWD_CHANNEL_6_REG_INJ ((LL_ADC_CHANNEL_6 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN6, converted by either group regular or injected */
<> 135:176b8275d35d 1312 #define LL_ADC_AWD_CHANNEL_7_REG ((LL_ADC_CHANNEL_7 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN7, converted by group regular only */
<> 135:176b8275d35d 1313 #define LL_ADC_AWD_CHANNEL_7_INJ ((LL_ADC_CHANNEL_7 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN7, converted by group injected only */
<> 135:176b8275d35d 1314 #define LL_ADC_AWD_CHANNEL_7_REG_INJ ((LL_ADC_CHANNEL_7 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN7, converted by either group regular or injected */
<> 135:176b8275d35d 1315 #define LL_ADC_AWD_CHANNEL_8_REG ((LL_ADC_CHANNEL_8 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN8, converted by group regular only */
<> 135:176b8275d35d 1316 #define LL_ADC_AWD_CHANNEL_8_INJ ((LL_ADC_CHANNEL_8 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN8, converted by group injected only */
<> 135:176b8275d35d 1317 #define LL_ADC_AWD_CHANNEL_8_REG_INJ ((LL_ADC_CHANNEL_8 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN8, converted by either group regular or injected */
<> 135:176b8275d35d 1318 #define LL_ADC_AWD_CHANNEL_9_REG ((LL_ADC_CHANNEL_9 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN9, converted by group regular only */
<> 135:176b8275d35d 1319 #define LL_ADC_AWD_CHANNEL_9_INJ ((LL_ADC_CHANNEL_9 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN9, converted by group injected only */
<> 135:176b8275d35d 1320 #define LL_ADC_AWD_CHANNEL_9_REG_INJ ((LL_ADC_CHANNEL_9 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN9, converted by either group regular or injected */
<> 135:176b8275d35d 1321 #define LL_ADC_AWD_CHANNEL_10_REG ((LL_ADC_CHANNEL_10 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN10, converted by group regular only */
<> 135:176b8275d35d 1322 #define LL_ADC_AWD_CHANNEL_10_INJ ((LL_ADC_CHANNEL_10 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN10, converted by group injected only */
<> 135:176b8275d35d 1323 #define LL_ADC_AWD_CHANNEL_10_REG_INJ ((LL_ADC_CHANNEL_10 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN10, converted by either group regular or injected */
<> 135:176b8275d35d 1324 #define LL_ADC_AWD_CHANNEL_11_REG ((LL_ADC_CHANNEL_11 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN11, converted by group regular only */
<> 135:176b8275d35d 1325 #define LL_ADC_AWD_CHANNEL_11_INJ ((LL_ADC_CHANNEL_11 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN11, converted by group injected only */
<> 135:176b8275d35d 1326 #define LL_ADC_AWD_CHANNEL_11_REG_INJ ((LL_ADC_CHANNEL_11 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN11, converted by either group regular or injected */
<> 135:176b8275d35d 1327 #define LL_ADC_AWD_CHANNEL_12_REG ((LL_ADC_CHANNEL_12 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN12, converted by group regular only */
<> 135:176b8275d35d 1328 #define LL_ADC_AWD_CHANNEL_12_INJ ((LL_ADC_CHANNEL_12 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN12, converted by group injected only */
<> 135:176b8275d35d 1329 #define LL_ADC_AWD_CHANNEL_12_REG_INJ ((LL_ADC_CHANNEL_12 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN12, converted by either group regular or injected */
<> 135:176b8275d35d 1330 #define LL_ADC_AWD_CHANNEL_13_REG ((LL_ADC_CHANNEL_13 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN13, converted by group regular only */
<> 135:176b8275d35d 1331 #define LL_ADC_AWD_CHANNEL_13_INJ ((LL_ADC_CHANNEL_13 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN13, converted by group injected only */
<> 135:176b8275d35d 1332 #define LL_ADC_AWD_CHANNEL_13_REG_INJ ((LL_ADC_CHANNEL_13 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN13, converted by either group regular or injected */
<> 135:176b8275d35d 1333 #define LL_ADC_AWD_CHANNEL_14_REG ((LL_ADC_CHANNEL_14 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN14, converted by group regular only */
<> 135:176b8275d35d 1334 #define LL_ADC_AWD_CHANNEL_14_INJ ((LL_ADC_CHANNEL_14 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN14, converted by group injected only */
<> 135:176b8275d35d 1335 #define LL_ADC_AWD_CHANNEL_14_REG_INJ ((LL_ADC_CHANNEL_14 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN14, converted by either group regular or injected */
<> 135:176b8275d35d 1336 #define LL_ADC_AWD_CHANNEL_15_REG ((LL_ADC_CHANNEL_15 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN15, converted by group regular only */
<> 135:176b8275d35d 1337 #define LL_ADC_AWD_CHANNEL_15_INJ ((LL_ADC_CHANNEL_15 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN15, converted by group injected only */
<> 135:176b8275d35d 1338 #define LL_ADC_AWD_CHANNEL_15_REG_INJ ((LL_ADC_CHANNEL_15 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN15, converted by either group regular or injected */
<> 135:176b8275d35d 1339 #define LL_ADC_AWD_CHANNEL_16_REG ((LL_ADC_CHANNEL_16 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN16, converted by group regular only */
<> 135:176b8275d35d 1340 #define LL_ADC_AWD_CHANNEL_16_INJ ((LL_ADC_CHANNEL_16 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN16, converted by group injected only */
<> 135:176b8275d35d 1341 #define LL_ADC_AWD_CHANNEL_16_REG_INJ ((LL_ADC_CHANNEL_16 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN16, converted by either group regular or injected */
<> 135:176b8275d35d 1342 #define LL_ADC_AWD_CHANNEL_17_REG ((LL_ADC_CHANNEL_17 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN17, converted by group regular only */
<> 135:176b8275d35d 1343 #define LL_ADC_AWD_CHANNEL_17_INJ ((LL_ADC_CHANNEL_17 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN17, converted by group injected only */
<> 135:176b8275d35d 1344 #define LL_ADC_AWD_CHANNEL_17_REG_INJ ((LL_ADC_CHANNEL_17 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN17, converted by either group regular or injected */
<> 135:176b8275d35d 1345 #define LL_ADC_AWD_CHANNEL_18_REG ((LL_ADC_CHANNEL_18 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN18, converted by group regular only */
<> 135:176b8275d35d 1346 #define LL_ADC_AWD_CHANNEL_18_INJ ((LL_ADC_CHANNEL_18 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN18, converted by group injected only */
<> 135:176b8275d35d 1347 #define LL_ADC_AWD_CHANNEL_18_REG_INJ ((LL_ADC_CHANNEL_18 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN18, converted by either group regular or injected */
<> 135:176b8275d35d 1348 #define LL_ADC_AWD_CH_VREFINT_REG ((LL_ADC_CHANNEL_VREFINT & ADC_CHANNEL_ID_MASK) | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to VrefInt: Internal voltage reference, converted by group regular only */
<> 135:176b8275d35d 1349 #define LL_ADC_AWD_CH_VREFINT_INJ ((LL_ADC_CHANNEL_VREFINT & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to VrefInt: Internal voltage reference, converted by group injected only */
<> 135:176b8275d35d 1350 #define LL_ADC_AWD_CH_VREFINT_REG_INJ ((LL_ADC_CHANNEL_VREFINT & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to VrefInt: Internal voltage reference, converted by either group regular or injected */
<> 135:176b8275d35d 1351 #define LL_ADC_AWD_CH_TEMPSENSOR_REG ((LL_ADC_CHANNEL_TEMPSENSOR & ADC_CHANNEL_ID_MASK) | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to Temperature sensor, converted by group regular only */
<> 135:176b8275d35d 1352 #define LL_ADC_AWD_CH_TEMPSENSOR_INJ ((LL_ADC_CHANNEL_TEMPSENSOR & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to Temperature sensor, converted by group injected only */
<> 135:176b8275d35d 1353 #define LL_ADC_AWD_CH_TEMPSENSOR_REG_INJ ((LL_ADC_CHANNEL_TEMPSENSOR & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to Temperature sensor, converted by either group regular or injected */
<> 135:176b8275d35d 1354 #define LL_ADC_AWD_CH_VBAT_REG ((LL_ADC_CHANNEL_VBAT & ADC_CHANNEL_ID_MASK) | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to Vbat/3: Vbat voltage through a divider ladder of factor 1/3 to have Vbat always below Vdda, converted by group regular only */
<> 135:176b8275d35d 1355 #define LL_ADC_AWD_CH_VBAT_INJ ((LL_ADC_CHANNEL_VBAT & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to Vbat/3: Vbat voltage through a divider ladder of factor 1/3 to have Vbat always below Vdda, converted by group injected only */
<> 135:176b8275d35d 1356 #define LL_ADC_AWD_CH_VBAT_REG_INJ ((LL_ADC_CHANNEL_VBAT & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to Vbat/3: Vbat voltage through a divider ladder of factor 1/3 to have Vbat always below Vdda */
<> 135:176b8275d35d 1357 #if defined(OPAMP1_CSR_OPAMP1EN)
<> 135:176b8275d35d 1358 #define LL_ADC_AWD_CH_VOPAMP1_REG ((LL_ADC_CHANNEL_VOPAMP1 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to DAC1 channel 1, channel specific to ADC2, converted by group regular only */
<> 135:176b8275d35d 1359 #define LL_ADC_AWD_CH_VOPAMP1_INJ ((LL_ADC_CHANNEL_VOPAMP1 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to DAC1 channel 1, channel specific to ADC2, converted by group injected only */
<> 135:176b8275d35d 1360 #define LL_ADC_AWD_CH_VOPAMP1_REG_INJ ((LL_ADC_CHANNEL_VOPAMP1 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to DAC1 channel 1, channel specific to ADC2, converted by either group regular or injected */
<> 135:176b8275d35d 1361 #endif
<> 135:176b8275d35d 1362 #if defined(OPAMP2_CSR_OPAMP2EN)
<> 135:176b8275d35d 1363 #define LL_ADC_AWD_CH_VOPAMP2_REG ((LL_ADC_CHANNEL_VOPAMP2 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to DAC1 channel 1, channel specific to ADC2, converted by group regular only */
<> 135:176b8275d35d 1364 #define LL_ADC_AWD_CH_VOPAMP2_INJ ((LL_ADC_CHANNEL_VOPAMP2 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to DAC1 channel 1, channel specific to ADC2, converted by group injected only */
<> 135:176b8275d35d 1365 #define LL_ADC_AWD_CH_VOPAMP2_REG_INJ ((LL_ADC_CHANNEL_VOPAMP2 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to DAC1 channel 1, channel specific to ADC2, converted by either group regular or injected */
<> 135:176b8275d35d 1366 #endif
<> 135:176b8275d35d 1367 #if defined(OPAMP3_CSR_OPAMP3EN)
<> 135:176b8275d35d 1368 #define LL_ADC_AWD_CH_VOPAMP3_REG ((LL_ADC_CHANNEL_VOPAMP3 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to DAC1 channel 1, channel specific to ADC3, converted by group regular only */
<> 135:176b8275d35d 1369 #define LL_ADC_AWD_CH_VOPAMP3_INJ ((LL_ADC_CHANNEL_VOPAMP3 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to DAC1 channel 1, channel specific to ADC3, converted by group injected only */
<> 135:176b8275d35d 1370 #define LL_ADC_AWD_CH_VOPAMP3_REG_INJ ((LL_ADC_CHANNEL_VOPAMP3 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to DAC1 channel 1, channel specific to ADC3, converted by either group regular or injected */
<> 135:176b8275d35d 1371 #endif
<> 135:176b8275d35d 1372 #if defined(OPAMP4_CSR_OPAMP4EN)
<> 135:176b8275d35d 1373 #define LL_ADC_AWD_CH_VOPAMP4_REG ((LL_ADC_CHANNEL_VOPAMP4 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to DAC1 channel 1, channel specific to ADC3, converted by group regular only */
<> 135:176b8275d35d 1374 #define LL_ADC_AWD_CH_VOPAMP4_INJ ((LL_ADC_CHANNEL_VOPAMP4 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to DAC1 channel 1, channel specific to ADC3, converted by group injected only */
<> 135:176b8275d35d 1375 #define LL_ADC_AWD_CH_VOPAMP4_REG_INJ ((LL_ADC_CHANNEL_VOPAMP4 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to DAC1 channel 1, channel specific to ADC3, converted by either group regular or injected */
<> 135:176b8275d35d 1376 #endif
<> 135:176b8275d35d 1377 /**
<> 135:176b8275d35d 1378 * @}
<> 135:176b8275d35d 1379 */
<> 135:176b8275d35d 1380
<> 135:176b8275d35d 1381 /** @defgroup ADC_LL_EC_AWD_THRESHOLDS Analog watchdog - Thresholds
<> 135:176b8275d35d 1382 * @{
<> 135:176b8275d35d 1383 */
<> 135:176b8275d35d 1384 #define LL_ADC_AWD_THRESHOLD_HIGH (ADC_TR1_HT1 ) /*!< ADC analog watchdog threshold high */
<> 135:176b8275d35d 1385 #define LL_ADC_AWD_THRESHOLD_LOW ( ADC_TR1_LT1) /*!< ADC analog watchdog threshold low */
<> 135:176b8275d35d 1386 #define LL_ADC_AWD_THRESHOLDS_HIGH_LOW (ADC_TR1_HT1 | ADC_TR1_LT1) /*!< ADC analog watchdog both thresholds high and low concatenated into the same data */
<> 135:176b8275d35d 1387 /**
<> 135:176b8275d35d 1388 * @}
<> 135:176b8275d35d 1389 */
<> 135:176b8275d35d 1390
<> 135:176b8275d35d 1391 #if defined(ADC_MULTIMODE_SUPPORT)
<> 135:176b8275d35d 1392 /** @defgroup ADC_LL_EC_MULTI_MODE Multimode - Mode
<> 135:176b8275d35d 1393 * @{
<> 135:176b8275d35d 1394 */
<> 135:176b8275d35d 1395 #define LL_ADC_MULTI_INDEPENDENT ((uint32_t)0x00000000U) /*!< ADC dual mode disabled (ADC independent mode) */
<> 135:176b8275d35d 1396 #define LL_ADC_MULTI_DUAL_REG_SIMULT ( ADC_CCR_DUAL_2 | ADC_CCR_DUAL_1 ) /*!< ADC dual mode enabled: group regular simultaneous */
<> 135:176b8275d35d 1397 #define LL_ADC_MULTI_DUAL_REG_INTERL ( ADC_CCR_DUAL_2 | ADC_CCR_DUAL_1 | ADC_CCR_DUAL_0) /*!< ADC dual mode enabled: Combined group regular interleaved */
<> 135:176b8275d35d 1398 #define LL_ADC_MULTI_DUAL_INJ_SIMULT ( ADC_CCR_DUAL_2 | ADC_CCR_DUAL_0) /*!< ADC dual mode enabled: group injected simultaneous */
<> 135:176b8275d35d 1399 #define LL_ADC_MULTI_DUAL_INJ_ALTERN (ADC_CCR_DUAL_3 | ADC_CCR_DUAL_0) /*!< ADC dual mode enabled: group injected alternate trigger. Works only with external triggers (not internal SW start) */
<> 135:176b8275d35d 1400 #define LL_ADC_MULTI_DUAL_REG_SIM_INJ_SIM ( ADC_CCR_DUAL_0) /*!< ADC dual mode enabled: Combined group regular simultaneous + group injected simultaneous */
<> 135:176b8275d35d 1401 #define LL_ADC_MULTI_DUAL_REG_SIM_INJ_ALT ( ADC_CCR_DUAL_1 ) /*!< ADC dual mode enabled: Combined group regular simultaneous + group injected alternate trigger */
<> 135:176b8275d35d 1402 #define LL_ADC_MULTI_DUAL_REG_INT_INJ_SIM ( ADC_CCR_DUAL_1 | ADC_CCR_DUAL_0) /*!< ADC dual mode enabled: Combined group regular interleaved + group injected simultaneous */
<> 135:176b8275d35d 1403 /**
<> 135:176b8275d35d 1404 * @}
<> 135:176b8275d35d 1405 */
<> 135:176b8275d35d 1406
<> 135:176b8275d35d 1407 /** @defgroup ADC_LL_EC_MULTI_DMA_TRANSFER Multimode - DMA transfer
<> 135:176b8275d35d 1408 * @{
<> 135:176b8275d35d 1409 */
<> 135:176b8275d35d 1410 #define LL_ADC_MULTI_REG_DMA_EACH_ADC ((uint32_t)0x00000000U) /*!< ADC multimode group regular conversions are transferred by DMA: each ADC uses its own DMA channel, with its individual DMA transfer settings */
<> 135:176b8275d35d 1411 #define LL_ADC_MULTI_REG_DMA_LIMIT_RES12_10B ( ADC_CCR_MDMA_1 ) /*!< ADC multimode group regular conversions are transferred by DMA, one DMA channel for both ADC (DMA of ADC master), in limited mode (one shot mode): DMA transfer requests are stopped when number of DMA data transfers (number of ADC conversions) is reached. This ADC mode is intended to be used with DMA mode non-circular. Setting for ADC resolution of 12 and 10 bits */
<> 135:176b8275d35d 1412 #define LL_ADC_MULTI_REG_DMA_LIMIT_RES8_6B ( ADC_CCR_MDMA_1 | ADC_CCR_MDMA_0) /*!< ADC multimode group regular conversions are transferred by DMA, one DMA channel for both ADC (DMA of ADC master), in limited mode (one shot mode): DMA transfer requests are stopped when number of DMA data transfers (number of ADC conversions) is reached. This ADC mode is intended to be used with DMA mode non-circular. Setting for ADC resolution of 8 and 6 bits */
<> 135:176b8275d35d 1413 #define LL_ADC_MULTI_REG_DMA_UNLMT_RES12_10B (ADC_CCR_DMACFG | ADC_CCR_MDMA_1 ) /*!< ADC multimode group regular conversions are transferred by DMA, one DMA channel for both ADC (DMA of ADC master), in unlimited mode: DMA transfer requests are unlimited, whatever number of DMA data transferred (number of ADC conversions). This ADC mode is intended to be used with DMA mode circular. Setting for ADC resolution of 12 and 10 bits */
<> 135:176b8275d35d 1414 #define LL_ADC_MULTI_REG_DMA_UNLMT_RES8_6B (ADC_CCR_DMACFG | ADC_CCR_MDMA_1 | ADC_CCR_MDMA_0) /*!< ADC multimode group regular conversions are transferred by DMA, one DMA channel for both ADC (DMA of ADC master), in unlimited mode: DMA transfer requests are unlimited, whatever number of DMA data transferred (number of ADC conversions). This ADC mode is intended to be used with DMA mode circular. Setting for ADC resolution of 8 and 6 bits */
<> 135:176b8275d35d 1415 /**
<> 135:176b8275d35d 1416 * @}
<> 135:176b8275d35d 1417 */
<> 135:176b8275d35d 1418
<> 135:176b8275d35d 1419 /** @defgroup ADC_LL_EC_MULTI_TWOSMP_DELAY Multimode - Delay between two sampling phases
<> 135:176b8275d35d 1420 * @{
<> 135:176b8275d35d 1421 */
<> 135:176b8275d35d 1422 #define LL_ADC_MULTI_TWOSMP_DELAY_1CYCLE ((uint32_t)0x00000000U) /*!< ADC multimode delay between two sampling phases: 1 ADC clock cycle */
<> 135:176b8275d35d 1423 #define LL_ADC_MULTI_TWOSMP_DELAY_2CYCLES ( ADC_CCR_DELAY_0) /*!< ADC multimode delay between two sampling phases: 2 ADC clock cycles */
<> 135:176b8275d35d 1424 #define LL_ADC_MULTI_TWOSMP_DELAY_3CYCLES ( ADC_CCR_DELAY_1 ) /*!< ADC multimode delay between two sampling phases: 3 ADC clock cycles */
<> 135:176b8275d35d 1425 #define LL_ADC_MULTI_TWOSMP_DELAY_4CYCLES ( ADC_CCR_DELAY_1 | ADC_CCR_DELAY_0) /*!< ADC multimode delay between two sampling phases: 4 ADC clock cycles */
<> 135:176b8275d35d 1426 #define LL_ADC_MULTI_TWOSMP_DELAY_5CYCLES ( ADC_CCR_DELAY_2 ) /*!< ADC multimode delay between two sampling phases: 5 ADC clock cycles */
<> 135:176b8275d35d 1427 #define LL_ADC_MULTI_TWOSMP_DELAY_6CYCLES ( ADC_CCR_DELAY_2 | ADC_CCR_DELAY_0) /*!< ADC multimode delay between two sampling phases: 6 ADC clock cycles */
<> 135:176b8275d35d 1428 #define LL_ADC_MULTI_TWOSMP_DELAY_7CYCLES ( ADC_CCR_DELAY_2 | ADC_CCR_DELAY_1 ) /*!< ADC multimode delay between two sampling phases: 7 ADC clock cycles */
<> 135:176b8275d35d 1429 #define LL_ADC_MULTI_TWOSMP_DELAY_8CYCLES ( ADC_CCR_DELAY_2 | ADC_CCR_DELAY_1 | ADC_CCR_DELAY_0) /*!< ADC multimode delay between two sampling phases: 8 ADC clock cycles */
<> 135:176b8275d35d 1430 #define LL_ADC_MULTI_TWOSMP_DELAY_9CYCLES (ADC_CCR_DELAY_3 ) /*!< ADC multimode delay between two sampling phases: 9 ADC clock cycles */
<> 135:176b8275d35d 1431 #define LL_ADC_MULTI_TWOSMP_DELAY_10CYCLES (ADC_CCR_DELAY_3 | ADC_CCR_DELAY_0) /*!< ADC multimode delay between two sampling phases: 10 ADC clock cycles */
<> 135:176b8275d35d 1432 #define LL_ADC_MULTI_TWOSMP_DELAY_11CYCLES (ADC_CCR_DELAY_3 | ADC_CCR_DELAY_1 ) /*!< ADC multimode delay between two sampling phases: 11 ADC clock cycles */
<> 135:176b8275d35d 1433 #define LL_ADC_MULTI_TWOSMP_DELAY_12CYCLES (ADC_CCR_DELAY_3 | ADC_CCR_DELAY_1 | ADC_CCR_DELAY_0) /*!< ADC multimode delay between two sampling phases: 12 ADC clock cycles */
<> 135:176b8275d35d 1434 /**
<> 135:176b8275d35d 1435 * @}
<> 135:176b8275d35d 1436 */
<> 135:176b8275d35d 1437
<> 135:176b8275d35d 1438 /** @defgroup ADC_LL_EC_MULTI_MASTER_SLAVE Multimode - ADC master or slave
<> 135:176b8275d35d 1439 * @{
<> 135:176b8275d35d 1440 */
<> 135:176b8275d35d 1441 #define LL_ADC_MULTI_MASTER ( ADC_CDR_RDATA_MST) /*!< In multimode, selection among several ADC instances: ADC master */
<> 135:176b8275d35d 1442 #define LL_ADC_MULTI_SLAVE (ADC_CDR_RDATA_SLV ) /*!< In multimode, selection among several ADC instances: ADC slave */
<> 135:176b8275d35d 1443 #define LL_ADC_MULTI_MASTER_SLAVE (ADC_CDR_RDATA_SLV | ADC_CDR_RDATA_MST) /*!< In multimode, selection among several ADC instances: both ADC master and ADC slave */
<> 135:176b8275d35d 1444 /**
<> 135:176b8275d35d 1445 * @}
<> 135:176b8275d35d 1446 */
<> 135:176b8275d35d 1447
<> 135:176b8275d35d 1448 #endif /* ADC_MULTIMODE_SUPPORT */
<> 135:176b8275d35d 1449
<> 135:176b8275d35d 1450
<> 135:176b8275d35d 1451 /** @defgroup ADC_LL_EC_HW_DELAYS Definitions of ADC hardware constraints delays
<> 135:176b8275d35d 1452 * @note Only ADC IP HW delays are defined in ADC LL driver driver,
<> 135:176b8275d35d 1453 * not timeout values.
<> 135:176b8275d35d 1454 * For details on delays values, refer to descriptions in source code
<> 135:176b8275d35d 1455 * above each literal definition.
<> 135:176b8275d35d 1456 * @{
<> 135:176b8275d35d 1457 */
<> 135:176b8275d35d 1458
<> 135:176b8275d35d 1459 /* Note: Only ADC IP HW delays are defined in ADC LL driver driver, */
<> 135:176b8275d35d 1460 /* not timeout values. */
<> 135:176b8275d35d 1461 /* Timeout values for ADC operations are dependent to device clock */
<> 135:176b8275d35d 1462 /* configuration (system clock versus ADC clock), */
<> 135:176b8275d35d 1463 /* and therefore must be defined in user application. */
<> 135:176b8275d35d 1464 /* Indications for estimation of ADC timeout delays, for this */
<> 135:176b8275d35d 1465 /* STM32 serie: */
<> 135:176b8275d35d 1466 /* - ADC calibration time: maximum delay is 112/fADC. */
<> 135:176b8275d35d 1467 /* (refer to device datasheet, parameter "tCAL") */
<> 135:176b8275d35d 1468 /* - ADC enable time: maximum delay is 1 conversion cycle. */
<> 135:176b8275d35d 1469 /* (refer to device datasheet, parameter "tSTAB") */
<> 135:176b8275d35d 1470 /* - ADC disable time: maximum delay should be a few ADC clock cycles */
<> 135:176b8275d35d 1471 /* - ADC stop conversion time: maximum delay should be a few ADC clock */
<> 135:176b8275d35d 1472 /* cycles */
<> 135:176b8275d35d 1473 /* - ADC conversion time: duration depending on ADC clock and ADC */
<> 135:176b8275d35d 1474 /* configuration. */
<> 135:176b8275d35d 1475 /* (refer to device reference manual, section "Timing") */
<> 135:176b8275d35d 1476
<> 135:176b8275d35d 1477 /* Delay for ADC stabilization time (ADC voltage regulator start-up time) */
<> 135:176b8275d35d 1478 /* Delay set to maximum value (refer to device datasheet, */
<> 135:176b8275d35d 1479 /* parameter "tADCVREG_STUP"). */
<> 135:176b8275d35d 1480 /* Unit: us */
<> 135:176b8275d35d 1481 #define LL_ADC_DELAY_INTERNAL_REGUL_STAB_US ((uint32_t) 10U) /*!< Delay for ADC stabilization time (ADC voltage regulator start-up time) */
<> 135:176b8275d35d 1482
<> 135:176b8275d35d 1483 /* Delay for internal voltage reference stabilization time. */
<> 135:176b8275d35d 1484 /* Delay set to maximum value (refer to device datasheet, */
<> 135:176b8275d35d 1485 /* parameter "tstart_vrefint"). */
<> 135:176b8275d35d 1486 /* Unit: us */
<> 135:176b8275d35d 1487 #define LL_ADC_DELAY_VREFINT_STAB_US ((uint32_t) 12U) /*!< Delay for internal voltage reference stabilization time */
<> 135:176b8275d35d 1488
<> 135:176b8275d35d 1489 /* Delay for temperature sensor stabilization time. */
<> 135:176b8275d35d 1490 /* Literal set to maximum value (refer to device datasheet, */
<> 135:176b8275d35d 1491 /* parameter "tSTART"). */
<> 135:176b8275d35d 1492 /* Unit: us */
<> 135:176b8275d35d 1493 #define LL_ADC_DELAY_TEMPSENSOR_STAB_US ((uint32_t) 120U) /*!< Delay for temperature sensor stabilization time */
<> 135:176b8275d35d 1494
<> 135:176b8275d35d 1495 /* Delay required between ADC end of calibration and ADC enable. */
<> 135:176b8275d35d 1496 /* Note: On this STM32 serie, a minimum number of ADC clock cycles */
<> 135:176b8275d35d 1497 /* are required between ADC end of calibration and ADC enable. */
<> 135:176b8275d35d 1498 /* Wait time can be computed in user application by waiting for the */
<> 135:176b8275d35d 1499 /* equivalent number of CPU cycles, by taking into account */
<> 135:176b8275d35d 1500 /* ratio of CPU clock versus ADC clock prescalers. */
<> 135:176b8275d35d 1501 /* Unit: ADC clock cycles. */
<> 135:176b8275d35d 1502 #define LL_ADC_DELAY_CALIB_ENABLE_ADC_CYCLES ((uint32_t) 4U) /*!< Delay required between ADC end of calibration and ADC enable */
<> 135:176b8275d35d 1503
<> 135:176b8275d35d 1504 /**
<> 135:176b8275d35d 1505 * @}
<> 135:176b8275d35d 1506 */
<> 135:176b8275d35d 1507
<> 135:176b8275d35d 1508 /**
<> 135:176b8275d35d 1509 * @}
<> 135:176b8275d35d 1510 */
<> 135:176b8275d35d 1511
<> 135:176b8275d35d 1512
<> 135:176b8275d35d 1513 /* Exported macro ------------------------------------------------------------*/
<> 135:176b8275d35d 1514 /** @defgroup ADC_LL_Exported_Macros ADC Exported Macros
<> 135:176b8275d35d 1515 * @{
<> 135:176b8275d35d 1516 */
<> 135:176b8275d35d 1517
<> 135:176b8275d35d 1518 /** @defgroup ADC_LL_EM_WRITE_READ Common write and read registers Macros
<> 135:176b8275d35d 1519 * @{
<> 135:176b8275d35d 1520 */
<> 135:176b8275d35d 1521
<> 135:176b8275d35d 1522 /**
<> 135:176b8275d35d 1523 * @brief Write a value in ADC register
<> 135:176b8275d35d 1524 * @param __INSTANCE__ ADC Instance
<> 135:176b8275d35d 1525 * @param __REG__ Register to be written
<> 135:176b8275d35d 1526 * @param __VALUE__ Value to be written in the register
<> 135:176b8275d35d 1527 * @retval None
<> 135:176b8275d35d 1528 */
<> 135:176b8275d35d 1529 #define LL_ADC_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__))
<> 135:176b8275d35d 1530
<> 135:176b8275d35d 1531 /**
<> 135:176b8275d35d 1532 * @brief Read a value in ADC register
<> 135:176b8275d35d 1533 * @param __INSTANCE__ ADC Instance
<> 135:176b8275d35d 1534 * @param __REG__ Register to be read
<> 135:176b8275d35d 1535 * @retval Register value
<> 135:176b8275d35d 1536 */
<> 135:176b8275d35d 1537 #define LL_ADC_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__)
<> 135:176b8275d35d 1538 /**
<> 135:176b8275d35d 1539 * @}
<> 135:176b8275d35d 1540 */
<> 135:176b8275d35d 1541
<> 135:176b8275d35d 1542 /** @defgroup ADC_LL_EM_HELPER_MACRO ADC helper macro
<> 135:176b8275d35d 1543 * @{
<> 135:176b8275d35d 1544 */
<> 135:176b8275d35d 1545
<> 135:176b8275d35d 1546 /**
<> 135:176b8275d35d 1547 * @brief Helper macro to get ADC channel number in decimal format
<> 135:176b8275d35d 1548 * from literals LL_ADC_CHANNEL_x.
<> 135:176b8275d35d 1549 * @note Example:
<> 135:176b8275d35d 1550 * __LL_ADC_CHANNEL_TO_DECIMAL_NB(LL_ADC_CHANNEL_4)
<> 135:176b8275d35d 1551 * will return decimal number "4".
<> 135:176b8275d35d 1552 * @note The input can be a value from functions where a channel
<> 135:176b8275d35d 1553 * number is returned, either defined with number
<> 135:176b8275d35d 1554 * or with bitfield (only one bit must be set).
<> 135:176b8275d35d 1555 * @param __CHANNEL__ This parameter can be one of the following values:
<> 135:176b8275d35d 1556 * @arg @ref LL_ADC_CHANNEL_0
<> 135:176b8275d35d 1557 * @arg @ref LL_ADC_CHANNEL_1
<> 135:176b8275d35d 1558 * @arg @ref LL_ADC_CHANNEL_2
<> 135:176b8275d35d 1559 * @arg @ref LL_ADC_CHANNEL_3
<> 135:176b8275d35d 1560 * @arg @ref LL_ADC_CHANNEL_4
<> 135:176b8275d35d 1561 * @arg @ref LL_ADC_CHANNEL_5
<> 135:176b8275d35d 1562 * @arg @ref LL_ADC_CHANNEL_6
<> 135:176b8275d35d 1563 * @arg @ref LL_ADC_CHANNEL_7
<> 135:176b8275d35d 1564 * @arg @ref LL_ADC_CHANNEL_8
<> 135:176b8275d35d 1565 * @arg @ref LL_ADC_CHANNEL_9
<> 135:176b8275d35d 1566 * @arg @ref LL_ADC_CHANNEL_10
<> 135:176b8275d35d 1567 * @arg @ref LL_ADC_CHANNEL_11
<> 135:176b8275d35d 1568 * @arg @ref LL_ADC_CHANNEL_12
<> 135:176b8275d35d 1569 * @arg @ref LL_ADC_CHANNEL_13
<> 135:176b8275d35d 1570 * @arg @ref LL_ADC_CHANNEL_14
<> 135:176b8275d35d 1571 * @arg @ref LL_ADC_CHANNEL_15
<> 135:176b8275d35d 1572 * @arg @ref LL_ADC_CHANNEL_16
<> 135:176b8275d35d 1573 * @arg @ref LL_ADC_CHANNEL_17
<> 135:176b8275d35d 1574 * @arg @ref LL_ADC_CHANNEL_18
<> 135:176b8275d35d 1575 * @arg @ref LL_ADC_CHANNEL_VREFINT (5)
<> 135:176b8275d35d 1576 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (1)
<> 135:176b8275d35d 1577 * @arg @ref LL_ADC_CHANNEL_VBAT (1)
<> 135:176b8275d35d 1578 * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1)
<> 135:176b8275d35d 1579 * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2)
<> 135:176b8275d35d 1580 * @arg @ref LL_ADC_CHANNEL_VOPAMP3 (3)
<> 135:176b8275d35d 1581 * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (4)
<> 135:176b8275d35d 1582 *
<> 135:176b8275d35d 1583 * (1) On STM32F3, parameter available only on ADC instance: ADC1.\n
<> 135:176b8275d35d 1584 * (2) On STM32F3, parameter available only on ADC instance: ADC2.\n
<> 135:176b8275d35d 1585 * (3) On STM32F3, parameter available only on ADC instance: ADC3.\n
<> 135:176b8275d35d 1586 * (4) On STM32F3, parameter available only on ADC instances: ADC4.\n
<> 135:176b8275d35d 1587 * (5) On STM32F3, ADC channel available only on all ADC instances, but
<> 135:176b8275d35d 1588 * only one ADC instance is allowed to be connected to VrefInt at the same time.
<> 135:176b8275d35d 1589 * @retval Value between Min_Data=0 and Max_Data=18
<> 135:176b8275d35d 1590 */
<> 135:176b8275d35d 1591 #define __LL_ADC_CHANNEL_TO_DECIMAL_NB(__CHANNEL__) \
<> 135:176b8275d35d 1592 ((((__CHANNEL__) & ADC_CHANNEL_ID_BITFIELD_MASK) == 0U) \
<> 135:176b8275d35d 1593 ? ( \
<> 135:176b8275d35d 1594 ((__CHANNEL__) & ADC_CHANNEL_ID_NUMBER_MASK) >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS \
<> 135:176b8275d35d 1595 ) \
<> 135:176b8275d35d 1596 : \
<> 135:176b8275d35d 1597 ( \
<> 135:176b8275d35d 1598 POSITION_VAL((__CHANNEL__)) \
<> 135:176b8275d35d 1599 ) \
<> 135:176b8275d35d 1600 )
<> 135:176b8275d35d 1601
<> 135:176b8275d35d 1602 /**
<> 135:176b8275d35d 1603 * @brief Helper macro to get ADC channel in literal format LL_ADC_CHANNEL_x
<> 135:176b8275d35d 1604 * from number in decimal format.
<> 135:176b8275d35d 1605 * @note Example:
<> 135:176b8275d35d 1606 * __LL_ADC_DECIMAL_NB_TO_CHANNEL(4)
<> 135:176b8275d35d 1607 * will return a data equivalent to "LL_ADC_CHANNEL_4".
<> 135:176b8275d35d 1608 * @param __DECIMAL_NB__: Value between Min_Data=0 and Max_Data=18
<> 135:176b8275d35d 1609 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 1610 * @arg @ref LL_ADC_CHANNEL_0
<> 135:176b8275d35d 1611 * @arg @ref LL_ADC_CHANNEL_1
<> 135:176b8275d35d 1612 * @arg @ref LL_ADC_CHANNEL_2
<> 135:176b8275d35d 1613 * @arg @ref LL_ADC_CHANNEL_3
<> 135:176b8275d35d 1614 * @arg @ref LL_ADC_CHANNEL_4
<> 135:176b8275d35d 1615 * @arg @ref LL_ADC_CHANNEL_5
<> 135:176b8275d35d 1616 * @arg @ref LL_ADC_CHANNEL_6
<> 135:176b8275d35d 1617 * @arg @ref LL_ADC_CHANNEL_7
<> 135:176b8275d35d 1618 * @arg @ref LL_ADC_CHANNEL_8
<> 135:176b8275d35d 1619 * @arg @ref LL_ADC_CHANNEL_9
<> 135:176b8275d35d 1620 * @arg @ref LL_ADC_CHANNEL_10
<> 135:176b8275d35d 1621 * @arg @ref LL_ADC_CHANNEL_11
<> 135:176b8275d35d 1622 * @arg @ref LL_ADC_CHANNEL_12
<> 135:176b8275d35d 1623 * @arg @ref LL_ADC_CHANNEL_13
<> 135:176b8275d35d 1624 * @arg @ref LL_ADC_CHANNEL_14
<> 135:176b8275d35d 1625 * @arg @ref LL_ADC_CHANNEL_15
<> 135:176b8275d35d 1626 * @arg @ref LL_ADC_CHANNEL_16
<> 135:176b8275d35d 1627 * @arg @ref LL_ADC_CHANNEL_17
<> 135:176b8275d35d 1628 * @arg @ref LL_ADC_CHANNEL_18
<> 135:176b8275d35d 1629 * @arg @ref LL_ADC_CHANNEL_VREFINT (5)
<> 135:176b8275d35d 1630 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (1)
<> 135:176b8275d35d 1631 * @arg @ref LL_ADC_CHANNEL_VBAT (1)
<> 135:176b8275d35d 1632 * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1)
<> 135:176b8275d35d 1633 * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2)
<> 135:176b8275d35d 1634 * @arg @ref LL_ADC_CHANNEL_VOPAMP3 (3)
<> 135:176b8275d35d 1635 * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (4)
<> 135:176b8275d35d 1636 *
<> 135:176b8275d35d 1637 * (1) On STM32F3, parameter available only on ADC instance: ADC1.\n
<> 135:176b8275d35d 1638 * (2) On STM32F3, parameter available only on ADC instance: ADC2.\n
<> 135:176b8275d35d 1639 * (3) On STM32F3, parameter available only on ADC instance: ADC3.\n
<> 135:176b8275d35d 1640 * (4) On STM32F3, parameter available only on ADC instances: ADC4.\n
<> 135:176b8275d35d 1641 * (5) On STM32F3, ADC channel available only on all ADC instances, but
<> 135:176b8275d35d 1642 * only one ADC instance is allowed to be connected to VrefInt at the same time.\n
<> 135:176b8275d35d 1643 * (1, 2, 3, 4, 5) For ADC channel read back from ADC register,
<> 135:176b8275d35d 1644 * comparison with internal channel parameter to be done
<> 135:176b8275d35d 1645 * using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL().
<> 135:176b8275d35d 1646 */
<> 135:176b8275d35d 1647 #define __LL_ADC_DECIMAL_NB_TO_CHANNEL(__DECIMAL_NB__) \
<> 135:176b8275d35d 1648 (((__DECIMAL_NB__) <= 9U) \
<> 135:176b8275d35d 1649 ? ( \
<> 135:176b8275d35d 1650 ((__DECIMAL_NB__) << ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) | \
<> 135:176b8275d35d 1651 (ADC_AWD2CR_AWD2CH_0 << (__DECIMAL_NB__)) | \
<> 135:176b8275d35d 1652 (ADC_SMPR1_REGOFFSET | (((uint32_t) (3U * (__DECIMAL_NB__))) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) \
<> 135:176b8275d35d 1653 ) \
<> 135:176b8275d35d 1654 : \
<> 135:176b8275d35d 1655 ( \
<> 135:176b8275d35d 1656 ((__DECIMAL_NB__) << ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) | \
<> 135:176b8275d35d 1657 (ADC_AWD2CR_AWD2CH_0 << (__DECIMAL_NB__)) | \
<> 135:176b8275d35d 1658 (ADC_SMPR2_REGOFFSET | (((uint32_t) (3U * ((__DECIMAL_NB__) - 10U))) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) \
<> 135:176b8275d35d 1659 ) \
<> 135:176b8275d35d 1660 )
<> 135:176b8275d35d 1661
<> 135:176b8275d35d 1662 /**
<> 135:176b8275d35d 1663 * @brief Helper macro to determine whether the selected channel
<> 135:176b8275d35d 1664 * corresponds to literal definitions of driver.
<> 135:176b8275d35d 1665 * @note The different literal definitions of ADC channels are:
<> 135:176b8275d35d 1666 * - ADC internal channel:
<> 135:176b8275d35d 1667 * LL_ADC_CHANNEL_VREFINT, LL_ADC_CHANNEL_TEMPSENSOR, ...
<> 135:176b8275d35d 1668 * - ADC external channel (channel connected to a GPIO pin):
<> 135:176b8275d35d 1669 * LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...
<> 135:176b8275d35d 1670 * @note The channel parameter must be a value defined from literal
<> 135:176b8275d35d 1671 * definition of a ADC internal channel (LL_ADC_CHANNEL_VREFINT,
<> 135:176b8275d35d 1672 * LL_ADC_CHANNEL_TEMPSENSOR, ...),
<> 135:176b8275d35d 1673 * ADC external channel (LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...),
<> 135:176b8275d35d 1674 * must not be a value from functions where a channel number is
<> 135:176b8275d35d 1675 * returned from ADC registers,
<> 135:176b8275d35d 1676 * because internal and external channels share the same channel
<> 135:176b8275d35d 1677 * number in ADC registers. The differentiation is made only with
<> 135:176b8275d35d 1678 * parameters definitions of driver.
<> 135:176b8275d35d 1679 * @param __CHANNEL__ This parameter can be one of the following values:
<> 135:176b8275d35d 1680 * @arg @ref LL_ADC_CHANNEL_0
<> 135:176b8275d35d 1681 * @arg @ref LL_ADC_CHANNEL_1
<> 135:176b8275d35d 1682 * @arg @ref LL_ADC_CHANNEL_2
<> 135:176b8275d35d 1683 * @arg @ref LL_ADC_CHANNEL_3
<> 135:176b8275d35d 1684 * @arg @ref LL_ADC_CHANNEL_4
<> 135:176b8275d35d 1685 * @arg @ref LL_ADC_CHANNEL_5
<> 135:176b8275d35d 1686 * @arg @ref LL_ADC_CHANNEL_6
<> 135:176b8275d35d 1687 * @arg @ref LL_ADC_CHANNEL_7
<> 135:176b8275d35d 1688 * @arg @ref LL_ADC_CHANNEL_8
<> 135:176b8275d35d 1689 * @arg @ref LL_ADC_CHANNEL_9
<> 135:176b8275d35d 1690 * @arg @ref LL_ADC_CHANNEL_10
<> 135:176b8275d35d 1691 * @arg @ref LL_ADC_CHANNEL_11
<> 135:176b8275d35d 1692 * @arg @ref LL_ADC_CHANNEL_12
<> 135:176b8275d35d 1693 * @arg @ref LL_ADC_CHANNEL_13
<> 135:176b8275d35d 1694 * @arg @ref LL_ADC_CHANNEL_14
<> 135:176b8275d35d 1695 * @arg @ref LL_ADC_CHANNEL_15
<> 135:176b8275d35d 1696 * @arg @ref LL_ADC_CHANNEL_16
<> 135:176b8275d35d 1697 * @arg @ref LL_ADC_CHANNEL_17
<> 135:176b8275d35d 1698 * @arg @ref LL_ADC_CHANNEL_18
<> 135:176b8275d35d 1699 * @arg @ref LL_ADC_CHANNEL_VREFINT (5)
<> 135:176b8275d35d 1700 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (1)
<> 135:176b8275d35d 1701 * @arg @ref LL_ADC_CHANNEL_VBAT (1)
<> 135:176b8275d35d 1702 * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1)
<> 135:176b8275d35d 1703 * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2)
<> 135:176b8275d35d 1704 * @arg @ref LL_ADC_CHANNEL_VOPAMP3 (3)
<> 135:176b8275d35d 1705 * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (4)
<> 135:176b8275d35d 1706 *
<> 135:176b8275d35d 1707 * (1) On STM32F3, parameter available only on ADC instance: ADC1.\n
<> 135:176b8275d35d 1708 * (2) On STM32F3, parameter available only on ADC instance: ADC2.\n
<> 135:176b8275d35d 1709 * (3) On STM32F3, parameter available only on ADC instance: ADC3.\n
<> 135:176b8275d35d 1710 * (4) On STM32F3, parameter available only on ADC instances: ADC4.\n
<> 135:176b8275d35d 1711 * (5) On STM32F3, ADC channel available only on all ADC instances, but
<> 135:176b8275d35d 1712 * only one ADC instance is allowed to be connected to VrefInt at the same time.
<> 135:176b8275d35d 1713 * @retval Value "0" if the channel corresponds to a parameter definition of a ADC external channel (channel connected to a GPIO pin).
<> 135:176b8275d35d 1714 * Value "1" if the channel corresponds to a parameter definition of a ADC internal channel.
<> 135:176b8275d35d 1715 */
<> 135:176b8275d35d 1716 #define __LL_ADC_IS_CHANNEL_INTERNAL(__CHANNEL__) \
<> 135:176b8275d35d 1717 (((__CHANNEL__) & ADC_CHANNEL_ID_INTERNAL_CH_MASK) != 0U)
<> 135:176b8275d35d 1718
<> 135:176b8275d35d 1719 /**
<> 135:176b8275d35d 1720 * @brief Helper macro to convert a channel defined from parameter
<> 135:176b8275d35d 1721 * definition of a ADC internal channel (LL_ADC_CHANNEL_VREFINT,
<> 135:176b8275d35d 1722 * LL_ADC_CHANNEL_TEMPSENSOR, ...),
<> 135:176b8275d35d 1723 * to its equivalent parameter definition of a ADC external channel
<> 135:176b8275d35d 1724 * (LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...).
<> 135:176b8275d35d 1725 * @note The channel parameter can be, additionally to a value
<> 135:176b8275d35d 1726 * defined from parameter definition of a ADC internal channel
<> 135:176b8275d35d 1727 * (LL_ADC_CHANNEL_VREFINT, LL_ADC_CHANNEL_TEMPSENSOR, ...),
<> 135:176b8275d35d 1728 * a value defined from parameter definition of
<> 135:176b8275d35d 1729 * ADC external channel (LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...)
<> 135:176b8275d35d 1730 * or a value from functions where a channel number is returned
<> 135:176b8275d35d 1731 * from ADC registers.
<> 135:176b8275d35d 1732 * @param __CHANNEL__ This parameter can be one of the following values:
<> 135:176b8275d35d 1733 * @arg @ref LL_ADC_CHANNEL_0
<> 135:176b8275d35d 1734 * @arg @ref LL_ADC_CHANNEL_1
<> 135:176b8275d35d 1735 * @arg @ref LL_ADC_CHANNEL_2
<> 135:176b8275d35d 1736 * @arg @ref LL_ADC_CHANNEL_3
<> 135:176b8275d35d 1737 * @arg @ref LL_ADC_CHANNEL_4
<> 135:176b8275d35d 1738 * @arg @ref LL_ADC_CHANNEL_5
<> 135:176b8275d35d 1739 * @arg @ref LL_ADC_CHANNEL_6
<> 135:176b8275d35d 1740 * @arg @ref LL_ADC_CHANNEL_7
<> 135:176b8275d35d 1741 * @arg @ref LL_ADC_CHANNEL_8
<> 135:176b8275d35d 1742 * @arg @ref LL_ADC_CHANNEL_9
<> 135:176b8275d35d 1743 * @arg @ref LL_ADC_CHANNEL_10
<> 135:176b8275d35d 1744 * @arg @ref LL_ADC_CHANNEL_11
<> 135:176b8275d35d 1745 * @arg @ref LL_ADC_CHANNEL_12
<> 135:176b8275d35d 1746 * @arg @ref LL_ADC_CHANNEL_13
<> 135:176b8275d35d 1747 * @arg @ref LL_ADC_CHANNEL_14
<> 135:176b8275d35d 1748 * @arg @ref LL_ADC_CHANNEL_15
<> 135:176b8275d35d 1749 * @arg @ref LL_ADC_CHANNEL_16
<> 135:176b8275d35d 1750 * @arg @ref LL_ADC_CHANNEL_17
<> 135:176b8275d35d 1751 * @arg @ref LL_ADC_CHANNEL_18
<> 135:176b8275d35d 1752 * @arg @ref LL_ADC_CHANNEL_VREFINT (5)
<> 135:176b8275d35d 1753 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (1)
<> 135:176b8275d35d 1754 * @arg @ref LL_ADC_CHANNEL_VBAT (1)
<> 135:176b8275d35d 1755 * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1)
<> 135:176b8275d35d 1756 * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2)
<> 135:176b8275d35d 1757 * @arg @ref LL_ADC_CHANNEL_VOPAMP3 (3)
<> 135:176b8275d35d 1758 * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (4)
<> 135:176b8275d35d 1759 *
<> 135:176b8275d35d 1760 * (1) On STM32F3, parameter available only on ADC instance: ADC1.\n
<> 135:176b8275d35d 1761 * (2) On STM32F3, parameter available only on ADC instance: ADC2.\n
<> 135:176b8275d35d 1762 * (3) On STM32F3, parameter available only on ADC instance: ADC3.\n
<> 135:176b8275d35d 1763 * (4) On STM32F3, parameter available only on ADC instances: ADC4.\n
<> 135:176b8275d35d 1764 * (5) On STM32F3, ADC channel available only on all ADC instances, but
<> 135:176b8275d35d 1765 * only one ADC instance is allowed to be connected to VrefInt at the same time.
<> 135:176b8275d35d 1766 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 1767 * @arg @ref LL_ADC_CHANNEL_0
<> 135:176b8275d35d 1768 * @arg @ref LL_ADC_CHANNEL_1
<> 135:176b8275d35d 1769 * @arg @ref LL_ADC_CHANNEL_2
<> 135:176b8275d35d 1770 * @arg @ref LL_ADC_CHANNEL_3
<> 135:176b8275d35d 1771 * @arg @ref LL_ADC_CHANNEL_4
<> 135:176b8275d35d 1772 * @arg @ref LL_ADC_CHANNEL_5
<> 135:176b8275d35d 1773 * @arg @ref LL_ADC_CHANNEL_6
<> 135:176b8275d35d 1774 * @arg @ref LL_ADC_CHANNEL_7
<> 135:176b8275d35d 1775 * @arg @ref LL_ADC_CHANNEL_8
<> 135:176b8275d35d 1776 * @arg @ref LL_ADC_CHANNEL_9
<> 135:176b8275d35d 1777 * @arg @ref LL_ADC_CHANNEL_10
<> 135:176b8275d35d 1778 * @arg @ref LL_ADC_CHANNEL_11
<> 135:176b8275d35d 1779 * @arg @ref LL_ADC_CHANNEL_12
<> 135:176b8275d35d 1780 * @arg @ref LL_ADC_CHANNEL_13
<> 135:176b8275d35d 1781 * @arg @ref LL_ADC_CHANNEL_14
<> 135:176b8275d35d 1782 * @arg @ref LL_ADC_CHANNEL_15
<> 135:176b8275d35d 1783 * @arg @ref LL_ADC_CHANNEL_16
<> 135:176b8275d35d 1784 * @arg @ref LL_ADC_CHANNEL_17
<> 135:176b8275d35d 1785 * @arg @ref LL_ADC_CHANNEL_18
<> 135:176b8275d35d 1786 */
<> 135:176b8275d35d 1787 #define __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL(__CHANNEL__) \
<> 135:176b8275d35d 1788 ((__CHANNEL__) & ~ADC_CHANNEL_ID_INTERNAL_CH_MASK)
<> 135:176b8275d35d 1789
<> 135:176b8275d35d 1790 /**
<> 135:176b8275d35d 1791 * @brief Helper macro to determine whether the internal channel
<> 135:176b8275d35d 1792 * selected is available on the ADC instance selected.
<> 135:176b8275d35d 1793 * @note The channel parameter must be a value defined from parameter
<> 135:176b8275d35d 1794 * definition of a ADC internal channel (LL_ADC_CHANNEL_VREFINT,
<> 135:176b8275d35d 1795 * LL_ADC_CHANNEL_TEMPSENSOR, ...),
<> 135:176b8275d35d 1796 * must not be a value defined from parameter definition of
<> 135:176b8275d35d 1797 * ADC external channel (LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...)
<> 135:176b8275d35d 1798 * or a value from functions where a channel number is
<> 135:176b8275d35d 1799 * returned from ADC registers,
<> 135:176b8275d35d 1800 * because internal and external channels share the same channel
<> 135:176b8275d35d 1801 * number in ADC registers. The differentiation is made only with
<> 135:176b8275d35d 1802 * parameters definitions of driver.
<> 135:176b8275d35d 1803 * @param __ADC_INSTANCE__ ADC instance
<> 135:176b8275d35d 1804 * @param __CHANNEL__ This parameter can be one of the following values:
<> 135:176b8275d35d 1805 * @arg @ref LL_ADC_CHANNEL_VREFINT (5)
<> 135:176b8275d35d 1806 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (1)
<> 135:176b8275d35d 1807 * @arg @ref LL_ADC_CHANNEL_VBAT (1)
<> 135:176b8275d35d 1808 * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1)
<> 135:176b8275d35d 1809 * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2)
<> 135:176b8275d35d 1810 * @arg @ref LL_ADC_CHANNEL_VOPAMP3 (3)
<> 135:176b8275d35d 1811 * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (4)
<> 135:176b8275d35d 1812 *
<> 135:176b8275d35d 1813 * (1) On STM32F3, parameter available only on ADC instance: ADC1.\n
<> 135:176b8275d35d 1814 * (2) On STM32F3, parameter available only on ADC instance: ADC2.\n
<> 135:176b8275d35d 1815 * (3) On STM32F3, parameter available only on ADC instance: ADC3.\n
<> 135:176b8275d35d 1816 * (4) On STM32F3, parameter available only on ADC instances: ADC4.\n
<> 135:176b8275d35d 1817 * (5) On STM32F3, ADC channel available only on all ADC instances, but
<> 135:176b8275d35d 1818 * only one ADC instance is allowed to be connected to VrefInt at the same time.
<> 135:176b8275d35d 1819 * @retval Value "0" if the internal channel selected is not available on the ADC instance selected.
<> 135:176b8275d35d 1820 * Value "1" if the internal channel selected is available on the ADC instance selected.
<> 135:176b8275d35d 1821 */
<> 135:176b8275d35d 1822 #if defined (ADC1) && defined (ADC2) && defined (ADC3) && defined (ADC4)
<> 135:176b8275d35d 1823 #define __LL_ADC_IS_CHANNEL_INTERNAL_AVAILABLE(__ADC_INSTANCE__, __CHANNEL__) \
<> 135:176b8275d35d 1824 (((__ADC_INSTANCE__) == ADC1) \
<> 135:176b8275d35d 1825 ? ( \
<> 135:176b8275d35d 1826 ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) || \
<> 135:176b8275d35d 1827 ((__CHANNEL__) == LL_ADC_CHANNEL_TEMPSENSOR) || \
<> 135:176b8275d35d 1828 ((__CHANNEL__) == LL_ADC_CHANNEL_VBAT) || \
<> 135:176b8275d35d 1829 ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP1) \
<> 135:176b8275d35d 1830 ) \
<> 135:176b8275d35d 1831 : \
<> 135:176b8275d35d 1832 ((__ADC_INSTANCE__) == ADC2) \
<> 135:176b8275d35d 1833 ? ( \
<> 135:176b8275d35d 1834 ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) || \
<> 135:176b8275d35d 1835 ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP2) \
<> 135:176b8275d35d 1836 ) \
<> 135:176b8275d35d 1837 : \
<> 135:176b8275d35d 1838 ((__ADC_INSTANCE__) == ADC3) \
<> 135:176b8275d35d 1839 ? ( \
<> 135:176b8275d35d 1840 ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) || \
<> 135:176b8275d35d 1841 ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP3) \
<> 135:176b8275d35d 1842 ) \
<> 135:176b8275d35d 1843 : \
<> 135:176b8275d35d 1844 ((__ADC_INSTANCE__) == ADC4) \
<> 135:176b8275d35d 1845 ? ( \
<> 135:176b8275d35d 1846 ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) || \
<> 135:176b8275d35d 1847 ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP4) \
<> 135:176b8275d35d 1848 ) \
<> 135:176b8275d35d 1849 : \
<> 135:176b8275d35d 1850 (0U) \
<> 135:176b8275d35d 1851 )
<> 135:176b8275d35d 1852 #elif defined (ADC1) && defined (ADC2)
<> 135:176b8275d35d 1853 #if defined(OPAMP1_CSR_OPAMP1EN) && defined(OPAMP2_CSR_OPAMP2EN)
<> 135:176b8275d35d 1854 #define __LL_ADC_IS_CHANNEL_INTERNAL_AVAILABLE(__ADC_INSTANCE__, __CHANNEL__) \
<> 135:176b8275d35d 1855 (((__ADC_INSTANCE__) == ADC1) \
<> 135:176b8275d35d 1856 ? ( \
<> 135:176b8275d35d 1857 ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) || \
<> 135:176b8275d35d 1858 ((__CHANNEL__) == LL_ADC_CHANNEL_TEMPSENSOR) || \
<> 135:176b8275d35d 1859 ((__CHANNEL__) == LL_ADC_CHANNEL_VBAT) || \
<> 135:176b8275d35d 1860 ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP1) \
<> 135:176b8275d35d 1861 ) \
<> 135:176b8275d35d 1862 : \
<> 135:176b8275d35d 1863 ((__ADC_INSTANCE__) == ADC2) \
<> 135:176b8275d35d 1864 ? ( \
<> 135:176b8275d35d 1865 ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) || \
<> 135:176b8275d35d 1866 ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP2) \
<> 135:176b8275d35d 1867 ) \
<> 135:176b8275d35d 1868 : \
<> 135:176b8275d35d 1869 (0U) \
<> 135:176b8275d35d 1870 )
<> 135:176b8275d35d 1871 #elif defined(OPAMP2_CSR_OPAMP2EN)
<> 135:176b8275d35d 1872 #define __LL_ADC_IS_CHANNEL_INTERNAL_AVAILABLE(__ADC_INSTANCE__, __CHANNEL__) \
<> 135:176b8275d35d 1873 (((__ADC_INSTANCE__) == ADC1) \
<> 135:176b8275d35d 1874 ? ( \
<> 135:176b8275d35d 1875 ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) || \
<> 135:176b8275d35d 1876 ((__CHANNEL__) == LL_ADC_CHANNEL_TEMPSENSOR) || \
<> 135:176b8275d35d 1877 ((__CHANNEL__) == LL_ADC_CHANNEL_VBAT) \
<> 135:176b8275d35d 1878 ) \
<> 135:176b8275d35d 1879 : \
<> 135:176b8275d35d 1880 ((__ADC_INSTANCE__) == ADC2) \
<> 135:176b8275d35d 1881 ? ( \
<> 135:176b8275d35d 1882 ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) || \
<> 135:176b8275d35d 1883 ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP2) \
<> 135:176b8275d35d 1884 ) \
<> 135:176b8275d35d 1885 : \
<> 135:176b8275d35d 1886 (0U) \
<> 135:176b8275d35d 1887 )
<> 135:176b8275d35d 1888 #else
<> 135:176b8275d35d 1889 #define __LL_ADC_IS_CHANNEL_INTERNAL_AVAILABLE(__ADC_INSTANCE__, __CHANNEL__) \
<> 135:176b8275d35d 1890 (((__ADC_INSTANCE__) == ADC1) \
<> 135:176b8275d35d 1891 ? ( \
<> 135:176b8275d35d 1892 ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) || \
<> 135:176b8275d35d 1893 ((__CHANNEL__) == LL_ADC_CHANNEL_TEMPSENSOR) || \
<> 135:176b8275d35d 1894 ((__CHANNEL__) == LL_ADC_CHANNEL_VBAT) || \
<> 135:176b8275d35d 1895 ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP1) \
<> 135:176b8275d35d 1896 ) \
<> 135:176b8275d35d 1897 : \
<> 135:176b8275d35d 1898 ((__ADC_INSTANCE__) == ADC2) \
<> 135:176b8275d35d 1899 ? ( \
<> 135:176b8275d35d 1900 ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) \
<> 135:176b8275d35d 1901 ) \
<> 135:176b8275d35d 1902 : \
<> 135:176b8275d35d 1903 (0U) \
<> 135:176b8275d35d 1904 )
<> 135:176b8275d35d 1905 #endif
<> 135:176b8275d35d 1906 #elif defined (ADC1)
<> 135:176b8275d35d 1907 #if defined(OPAMP1_CSR_OPAMP1EN)
<> 135:176b8275d35d 1908 #define __LL_ADC_IS_CHANNEL_INTERNAL_AVAILABLE(__ADC_INSTANCE__, __CHANNEL__) \
<> 135:176b8275d35d 1909 ( \
<> 135:176b8275d35d 1910 ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) || \
<> 135:176b8275d35d 1911 ((__CHANNEL__) == LL_ADC_CHANNEL_TEMPSENSOR) || \
<> 135:176b8275d35d 1912 ((__CHANNEL__) == LL_ADC_CHANNEL_VBAT) || \
<> 135:176b8275d35d 1913 ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP1) \
<> 135:176b8275d35d 1914 )
<> 135:176b8275d35d 1915 #else
<> 135:176b8275d35d 1916 #define __LL_ADC_IS_CHANNEL_INTERNAL_AVAILABLE(__ADC_INSTANCE__, __CHANNEL__) \
<> 135:176b8275d35d 1917 ( \
<> 135:176b8275d35d 1918 ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) || \
<> 135:176b8275d35d 1919 ((__CHANNEL__) == LL_ADC_CHANNEL_TEMPSENSOR) || \
<> 135:176b8275d35d 1920 ((__CHANNEL__) == LL_ADC_CHANNEL_VBAT) \
<> 135:176b8275d35d 1921 )
<> 135:176b8275d35d 1922 #endif
<> 135:176b8275d35d 1923 #endif
<> 135:176b8275d35d 1924
<> 135:176b8275d35d 1925 /**
<> 135:176b8275d35d 1926 * @brief Helper macro to define ADC analog watchdog parameter:
<> 135:176b8275d35d 1927 * define a single channel to monitor with analog watchdog
<> 135:176b8275d35d 1928 * from sequencer channel and groups definition.
<> 135:176b8275d35d 1929 * @note To be used with function @ref LL_ADC_SetAnalogWDMonitChannels().
<> 135:176b8275d35d 1930 * Example:
<> 135:176b8275d35d 1931 * LL_ADC_SetAnalogWDMonitChannels(
<> 135:176b8275d35d 1932 * ADC1, LL_ADC_AWD1,
<> 135:176b8275d35d 1933 * __LL_ADC_ANALOGWD_CHANNEL_GROUP(LL_ADC_CHANNEL4, LL_ADC_GROUP_REGULAR))
<> 135:176b8275d35d 1934 * @param __CHANNEL__ This parameter can be one of the following values:
<> 135:176b8275d35d 1935 * @arg @ref LL_ADC_CHANNEL_0
<> 135:176b8275d35d 1936 * @arg @ref LL_ADC_CHANNEL_1
<> 135:176b8275d35d 1937 * @arg @ref LL_ADC_CHANNEL_2
<> 135:176b8275d35d 1938 * @arg @ref LL_ADC_CHANNEL_3
<> 135:176b8275d35d 1939 * @arg @ref LL_ADC_CHANNEL_4
<> 135:176b8275d35d 1940 * @arg @ref LL_ADC_CHANNEL_5
<> 135:176b8275d35d 1941 * @arg @ref LL_ADC_CHANNEL_6
<> 135:176b8275d35d 1942 * @arg @ref LL_ADC_CHANNEL_7
<> 135:176b8275d35d 1943 * @arg @ref LL_ADC_CHANNEL_8
<> 135:176b8275d35d 1944 * @arg @ref LL_ADC_CHANNEL_9
<> 135:176b8275d35d 1945 * @arg @ref LL_ADC_CHANNEL_10
<> 135:176b8275d35d 1946 * @arg @ref LL_ADC_CHANNEL_11
<> 135:176b8275d35d 1947 * @arg @ref LL_ADC_CHANNEL_12
<> 135:176b8275d35d 1948 * @arg @ref LL_ADC_CHANNEL_13
<> 135:176b8275d35d 1949 * @arg @ref LL_ADC_CHANNEL_14
<> 135:176b8275d35d 1950 * @arg @ref LL_ADC_CHANNEL_15
<> 135:176b8275d35d 1951 * @arg @ref LL_ADC_CHANNEL_16
<> 135:176b8275d35d 1952 * @arg @ref LL_ADC_CHANNEL_17
<> 135:176b8275d35d 1953 * @arg @ref LL_ADC_CHANNEL_18
<> 135:176b8275d35d 1954 * @arg @ref LL_ADC_CHANNEL_VREFINT (5)
<> 135:176b8275d35d 1955 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (1)
<> 135:176b8275d35d 1956 * @arg @ref LL_ADC_CHANNEL_VBAT (1)
<> 135:176b8275d35d 1957 * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1)
<> 135:176b8275d35d 1958 * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2)
<> 135:176b8275d35d 1959 * @arg @ref LL_ADC_CHANNEL_VOPAMP3 (3)
<> 135:176b8275d35d 1960 * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (4)
<> 135:176b8275d35d 1961 *
<> 135:176b8275d35d 1962 * (1) On STM32F3, parameter available only on ADC instance: ADC1.\n
<> 135:176b8275d35d 1963 * (2) On STM32F3, parameter available only on ADC instance: ADC2.\n
<> 135:176b8275d35d 1964 * (3) On STM32F3, parameter available only on ADC instance: ADC3.\n
<> 135:176b8275d35d 1965 * (4) On STM32F3, parameter available only on ADC instances: ADC4.\n
<> 135:176b8275d35d 1966 * (5) On STM32F3, ADC channel available only on all ADC instances, but
<> 135:176b8275d35d 1967 * only one ADC instance is allowed to be connected to VrefInt at the same time.\n
<> 135:176b8275d35d 1968 * (1, 2, 3, 4, 5) For ADC channel read back from ADC register,
<> 135:176b8275d35d 1969 * comparison with internal channel parameter to be done
<> 135:176b8275d35d 1970 * using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL().
<> 135:176b8275d35d 1971 * @param __GROUP__ This parameter can be one of the following values:
<> 135:176b8275d35d 1972 * @arg @ref LL_ADC_GROUP_REGULAR
<> 135:176b8275d35d 1973 * @arg @ref LL_ADC_GROUP_INJECTED
<> 135:176b8275d35d 1974 * @arg @ref LL_ADC_GROUP_REGULAR_INJECTED
<> 135:176b8275d35d 1975 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 1976 * @arg @ref LL_ADC_AWD_DISABLE
<> 135:176b8275d35d 1977 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG (0)
<> 135:176b8275d35d 1978 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_INJ (0)
<> 135:176b8275d35d 1979 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG_INJ
<> 135:176b8275d35d 1980 * @arg @ref LL_ADC_AWD_CHANNEL_0_REG (0)
<> 135:176b8275d35d 1981 * @arg @ref LL_ADC_AWD_CHANNEL_0_INJ (0)
<> 135:176b8275d35d 1982 * @arg @ref LL_ADC_AWD_CHANNEL_0_REG_INJ
<> 135:176b8275d35d 1983 * @arg @ref LL_ADC_AWD_CHANNEL_1_REG (0)
<> 135:176b8275d35d 1984 * @arg @ref LL_ADC_AWD_CHANNEL_1_INJ (0)
<> 135:176b8275d35d 1985 * @arg @ref LL_ADC_AWD_CHANNEL_1_REG_INJ
<> 135:176b8275d35d 1986 * @arg @ref LL_ADC_AWD_CHANNEL_2_REG (0)
<> 135:176b8275d35d 1987 * @arg @ref LL_ADC_AWD_CHANNEL_2_INJ (0)
<> 135:176b8275d35d 1988 * @arg @ref LL_ADC_AWD_CHANNEL_2_REG_INJ
<> 135:176b8275d35d 1989 * @arg @ref LL_ADC_AWD_CHANNEL_3_REG (0)
<> 135:176b8275d35d 1990 * @arg @ref LL_ADC_AWD_CHANNEL_3_INJ (0)
<> 135:176b8275d35d 1991 * @arg @ref LL_ADC_AWD_CHANNEL_3_REG_INJ
<> 135:176b8275d35d 1992 * @arg @ref LL_ADC_AWD_CHANNEL_4_REG (0)
<> 135:176b8275d35d 1993 * @arg @ref LL_ADC_AWD_CHANNEL_4_INJ (0)
<> 135:176b8275d35d 1994 * @arg @ref LL_ADC_AWD_CHANNEL_4_REG_INJ
<> 135:176b8275d35d 1995 * @arg @ref LL_ADC_AWD_CHANNEL_5_REG (0)
<> 135:176b8275d35d 1996 * @arg @ref LL_ADC_AWD_CHANNEL_5_INJ (0)
<> 135:176b8275d35d 1997 * @arg @ref LL_ADC_AWD_CHANNEL_5_REG_INJ
<> 135:176b8275d35d 1998 * @arg @ref LL_ADC_AWD_CHANNEL_6_REG (0)
<> 135:176b8275d35d 1999 * @arg @ref LL_ADC_AWD_CHANNEL_6_INJ (0)
<> 135:176b8275d35d 2000 * @arg @ref LL_ADC_AWD_CHANNEL_6_REG_INJ
<> 135:176b8275d35d 2001 * @arg @ref LL_ADC_AWD_CHANNEL_7_REG (0)
<> 135:176b8275d35d 2002 * @arg @ref LL_ADC_AWD_CHANNEL_7_INJ (0)
<> 135:176b8275d35d 2003 * @arg @ref LL_ADC_AWD_CHANNEL_7_REG_INJ
<> 135:176b8275d35d 2004 * @arg @ref LL_ADC_AWD_CHANNEL_8_REG (0)
<> 135:176b8275d35d 2005 * @arg @ref LL_ADC_AWD_CHANNEL_8_INJ (0)
<> 135:176b8275d35d 2006 * @arg @ref LL_ADC_AWD_CHANNEL_8_REG_INJ
<> 135:176b8275d35d 2007 * @arg @ref LL_ADC_AWD_CHANNEL_9_REG (0)
<> 135:176b8275d35d 2008 * @arg @ref LL_ADC_AWD_CHANNEL_9_INJ (0)
<> 135:176b8275d35d 2009 * @arg @ref LL_ADC_AWD_CHANNEL_9_REG_INJ
<> 135:176b8275d35d 2010 * @arg @ref LL_ADC_AWD_CHANNEL_10_REG (0)
<> 135:176b8275d35d 2011 * @arg @ref LL_ADC_AWD_CHANNEL_10_INJ (0)
<> 135:176b8275d35d 2012 * @arg @ref LL_ADC_AWD_CHANNEL_10_REG_INJ
<> 135:176b8275d35d 2013 * @arg @ref LL_ADC_AWD_CHANNEL_11_REG (0)
<> 135:176b8275d35d 2014 * @arg @ref LL_ADC_AWD_CHANNEL_11_INJ (0)
<> 135:176b8275d35d 2015 * @arg @ref LL_ADC_AWD_CHANNEL_11_REG_INJ
<> 135:176b8275d35d 2016 * @arg @ref LL_ADC_AWD_CHANNEL_12_REG (0)
<> 135:176b8275d35d 2017 * @arg @ref LL_ADC_AWD_CHANNEL_12_INJ (0)
<> 135:176b8275d35d 2018 * @arg @ref LL_ADC_AWD_CHANNEL_12_REG_INJ
<> 135:176b8275d35d 2019 * @arg @ref LL_ADC_AWD_CHANNEL_13_REG (0)
<> 135:176b8275d35d 2020 * @arg @ref LL_ADC_AWD_CHANNEL_13_INJ (0)
<> 135:176b8275d35d 2021 * @arg @ref LL_ADC_AWD_CHANNEL_13_REG_INJ
<> 135:176b8275d35d 2022 * @arg @ref LL_ADC_AWD_CHANNEL_14_REG (0)
<> 135:176b8275d35d 2023 * @arg @ref LL_ADC_AWD_CHANNEL_14_INJ (0)
<> 135:176b8275d35d 2024 * @arg @ref LL_ADC_AWD_CHANNEL_14_REG_INJ
<> 135:176b8275d35d 2025 * @arg @ref LL_ADC_AWD_CHANNEL_15_REG (0)
<> 135:176b8275d35d 2026 * @arg @ref LL_ADC_AWD_CHANNEL_15_INJ (0)
<> 135:176b8275d35d 2027 * @arg @ref LL_ADC_AWD_CHANNEL_15_REG_INJ
<> 135:176b8275d35d 2028 * @arg @ref LL_ADC_AWD_CHANNEL_16_REG (0)
<> 135:176b8275d35d 2029 * @arg @ref LL_ADC_AWD_CHANNEL_16_INJ (0)
<> 135:176b8275d35d 2030 * @arg @ref LL_ADC_AWD_CHANNEL_16_REG_INJ
<> 135:176b8275d35d 2031 * @arg @ref LL_ADC_AWD_CHANNEL_17_REG (0)
<> 135:176b8275d35d 2032 * @arg @ref LL_ADC_AWD_CHANNEL_17_INJ (0)
<> 135:176b8275d35d 2033 * @arg @ref LL_ADC_AWD_CHANNEL_17_REG_INJ
<> 135:176b8275d35d 2034 * @arg @ref LL_ADC_AWD_CHANNEL_18_REG (0)
<> 135:176b8275d35d 2035 * @arg @ref LL_ADC_AWD_CHANNEL_18_INJ (0)
<> 135:176b8275d35d 2036 * @arg @ref LL_ADC_AWD_CHANNEL_18_REG_INJ
<> 135:176b8275d35d 2037 * @arg @ref LL_ADC_AWD_CH_VREFINT_REG (0)(5)
<> 135:176b8275d35d 2038 * @arg @ref LL_ADC_AWD_CH_VREFINT_INJ (0)(5)
<> 135:176b8275d35d 2039 * @arg @ref LL_ADC_AWD_CH_VREFINT_REG_INJ (5)
<> 135:176b8275d35d 2040 * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_REG (0)(1)
<> 135:176b8275d35d 2041 * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_INJ (0)(1)
<> 135:176b8275d35d 2042 * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_REG_INJ (1)
<> 135:176b8275d35d 2043 * @arg @ref LL_ADC_AWD_CH_VBAT_REG (0)(1)
<> 135:176b8275d35d 2044 * @arg @ref LL_ADC_AWD_CH_VBAT_INJ (0)(1)
<> 135:176b8275d35d 2045 * @arg @ref LL_ADC_AWD_CH_VBAT_REG_INJ (1)
<> 135:176b8275d35d 2046 * @arg @ref LL_ADC_AWD_CH_VOPAMP1_REG (0)(1)
<> 135:176b8275d35d 2047 * @arg @ref LL_ADC_AWD_CH_VOPAMP1_INJ (0)(1)
<> 135:176b8275d35d 2048 * @arg @ref LL_ADC_AWD_CH_VOPAMP1_REG_INJ (1)
<> 135:176b8275d35d 2049 * @arg @ref LL_ADC_AWD_CH_VOPAMP2_REG (0)(2)
<> 135:176b8275d35d 2050 * @arg @ref LL_ADC_AWD_CH_VOPAMP2_INJ (0)(2)
<> 135:176b8275d35d 2051 * @arg @ref LL_ADC_AWD_CH_VOPAMP2_REG_INJ (2)
<> 135:176b8275d35d 2052 * @arg @ref LL_ADC_AWD_CH_VOPAMP3_REG (0)(3)
<> 135:176b8275d35d 2053 * @arg @ref LL_ADC_AWD_CH_VOPAMP3_INJ (0)(3)
<> 135:176b8275d35d 2054 * @arg @ref LL_ADC_AWD_CH_VOPAMP3_REG_INJ (3)
<> 135:176b8275d35d 2055 * @arg @ref LL_ADC_AWD_CH_VOPAMP4_REG (0)(4)
<> 135:176b8275d35d 2056 * @arg @ref LL_ADC_AWD_CH_VOPAMP4_INJ (0)(4)
<> 135:176b8275d35d 2057 * @arg @ref LL_ADC_AWD_CH_VOPAMP4_REG_INJ (4)
<> 135:176b8275d35d 2058 *
<> 135:176b8275d35d 2059 * (0) On STM32F3, parameter available only on analog watchdog number: AWD1.\n
<> 135:176b8275d35d 2060 * (1) On STM32F3, parameter available only on ADC instance: ADC1.\n
<> 135:176b8275d35d 2061 * (2) On STM32F3, parameter available only on ADC instance: ADC2.\n
<> 135:176b8275d35d 2062 * (3) On STM32F3, parameter available only on ADC instance: ADC3.\n
<> 135:176b8275d35d 2063 * (4) On STM32F3, parameter available only on ADC instances: ADC4.\n
<> 135:176b8275d35d 2064 * (5) On STM32F3, ADC channel available only on all ADC instances, but
<> 135:176b8275d35d 2065 * only one ADC instance is allowed to be connected to VrefInt at the same time.
<> 135:176b8275d35d 2066 */
<> 135:176b8275d35d 2067 #define __LL_ADC_ANALOGWD_CHANNEL_GROUP(__CHANNEL__, __GROUP__) \
<> 135:176b8275d35d 2068 (((__GROUP__) == LL_ADC_GROUP_REGULAR) \
<> 135:176b8275d35d 2069 ? (((__CHANNEL__) & ADC_CHANNEL_ID_MASK) | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) \
<> 135:176b8275d35d 2070 : \
<> 135:176b8275d35d 2071 ((__GROUP__) == LL_ADC_GROUP_INJECTED) \
<> 135:176b8275d35d 2072 ? (((__CHANNEL__) & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) \
<> 135:176b8275d35d 2073 : \
<> 135:176b8275d35d 2074 (((__CHANNEL__) & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) \
<> 135:176b8275d35d 2075 )
<> 135:176b8275d35d 2076
<> 135:176b8275d35d 2077 /**
<> 135:176b8275d35d 2078 * @brief Helper macro to set the value of ADC analog watchdog threshold high
<> 135:176b8275d35d 2079 * or low in function of ADC resolution, when ADC resolution is
<> 135:176b8275d35d 2080 * different of 12 bits.
<> 135:176b8275d35d 2081 * @note To be used with function @ref LL_ADC_ConfigAnalogWDThresholds()
<> 135:176b8275d35d 2082 * or @ref LL_ADC_SetAnalogWDThresholds().
<> 135:176b8275d35d 2083 * Example, with a ADC resolution of 8 bits, to set the value of
<> 135:176b8275d35d 2084 * analog watchdog threshold high (on 8 bits):
<> 135:176b8275d35d 2085 * LL_ADC_SetAnalogWDThresholds
<> 135:176b8275d35d 2086 * (< ADCx param >,
<> 135:176b8275d35d 2087 * __LL_ADC_ANALOGWD_SET_THRESHOLD_RESOLUTION(LL_ADC_RESOLUTION_8B, <threshold_value_8_bits>)
<> 135:176b8275d35d 2088 * );
<> 135:176b8275d35d 2089 * @param __ADC_RESOLUTION__ This parameter can be one of the following values:
<> 135:176b8275d35d 2090 * @arg @ref LL_ADC_RESOLUTION_12B
<> 135:176b8275d35d 2091 * @arg @ref LL_ADC_RESOLUTION_10B
<> 135:176b8275d35d 2092 * @arg @ref LL_ADC_RESOLUTION_8B
<> 135:176b8275d35d 2093 * @arg @ref LL_ADC_RESOLUTION_6B
<> 135:176b8275d35d 2094 * @param __AWD_THRESHOLD__ Value between Min_Data=0x000 and Max_Data=0xFFF
<> 135:176b8275d35d 2095 * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
<> 135:176b8275d35d 2096 */
<> 135:176b8275d35d 2097 #define __LL_ADC_ANALOGWD_SET_THRESHOLD_RESOLUTION(__ADC_RESOLUTION__, __AWD_THRESHOLD__) \
<> 135:176b8275d35d 2098 ((__AWD_THRESHOLD__) << ((__ADC_RESOLUTION__) >> (ADC_CFGR_RES_BITOFFSET_POS - 1U )))
<> 135:176b8275d35d 2099
<> 135:176b8275d35d 2100 /**
<> 135:176b8275d35d 2101 * @brief Helper macro to get the value of ADC analog watchdog threshold high
<> 135:176b8275d35d 2102 * or low in function of ADC resolution, when ADC resolution is
<> 135:176b8275d35d 2103 * different of 12 bits.
<> 135:176b8275d35d 2104 * @note To be used with function @ref LL_ADC_GetAnalogWDThresholds().
<> 135:176b8275d35d 2105 * Example, with a ADC resolution of 8 bits, to get the value of
<> 135:176b8275d35d 2106 * analog watchdog threshold high (on 8 bits):
<> 135:176b8275d35d 2107 * < threshold_value_6_bits > = __LL_ADC_ANALOGWD_GET_THRESHOLD_RESOLUTION
<> 135:176b8275d35d 2108 * (LL_ADC_RESOLUTION_8B,
<> 135:176b8275d35d 2109 * LL_ADC_GetAnalogWDThresholds(<ADCx param>, LL_ADC_AWD_THRESHOLD_HIGH)
<> 135:176b8275d35d 2110 * );
<> 135:176b8275d35d 2111 * @param __ADC_RESOLUTION__ This parameter can be one of the following values:
<> 135:176b8275d35d 2112 * @arg @ref LL_ADC_RESOLUTION_12B
<> 135:176b8275d35d 2113 * @arg @ref LL_ADC_RESOLUTION_10B
<> 135:176b8275d35d 2114 * @arg @ref LL_ADC_RESOLUTION_8B
<> 135:176b8275d35d 2115 * @arg @ref LL_ADC_RESOLUTION_6B
<> 135:176b8275d35d 2116 * @param __AWD_THRESHOLD_12_BITS__ Value between Min_Data=0x000 and Max_Data=0xFFF
<> 135:176b8275d35d 2117 * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
<> 135:176b8275d35d 2118 */
<> 135:176b8275d35d 2119 #define __LL_ADC_ANALOGWD_GET_THRESHOLD_RESOLUTION(__ADC_RESOLUTION__, __AWD_THRESHOLD_12_BITS__) \
<> 135:176b8275d35d 2120 ((__AWD_THRESHOLD_12_BITS__) >> ((__ADC_RESOLUTION__) >> (ADC_CFGR_RES_BITOFFSET_POS - 1U )))
<> 135:176b8275d35d 2121
<> 135:176b8275d35d 2122 /**
<> 135:176b8275d35d 2123 * @brief Helper macro to get the ADC analog watchdog threshold high
<> 135:176b8275d35d 2124 * or low from raw value containing both thresholds concatenated.
<> 135:176b8275d35d 2125 * @note To be used with function @ref LL_ADC_GetAnalogWDThresholds().
<> 135:176b8275d35d 2126 * Example, to get analog watchdog threshold high from the register raw value:
<> 135:176b8275d35d 2127 * __LL_ADC_ANALOGWD_THRESHOLDS_HIGH_LOW(LL_ADC_AWD_THRESHOLD_HIGH, <raw_value_with_both_thresholds>);
<> 135:176b8275d35d 2128 * @param __AWD_THRESHOLD_TYPE__ This parameter can be one of the following values:
<> 135:176b8275d35d 2129 * @arg @ref LL_ADC_AWD_THRESHOLD_HIGH
<> 135:176b8275d35d 2130 * @arg @ref LL_ADC_AWD_THRESHOLD_LOW
<> 135:176b8275d35d 2131 * @param __AWD_THRESHOLDS__ Value between Min_Data=0x00000000 and Max_Data=0xFFFFFFFF
<> 135:176b8275d35d 2132 * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
<> 135:176b8275d35d 2133 */
<> 135:176b8275d35d 2134 #define __LL_ADC_ANALOGWD_THRESHOLDS_HIGH_LOW(__AWD_THRESHOLD_TYPE__, __AWD_THRESHOLDS__) \
<> 135:176b8275d35d 2135 (((__AWD_THRESHOLDS__) >> POSITION_VAL((__AWD_THRESHOLD_TYPE__))) & LL_ADC_AWD_THRESHOLD_LOW)
<> 135:176b8275d35d 2136
<> 135:176b8275d35d 2137 /**
<> 135:176b8275d35d 2138 * @brief Helper macro to set the ADC calibration value with both single ended
<> 135:176b8275d35d 2139 * and differential modes calibration factors concatenated.
<> 135:176b8275d35d 2140 * @note To be used with function @ref LL_ADC_SetCalibrationFactor().
<> 135:176b8275d35d 2141 * Example, to set calibration factors single ended to 0x55
<> 135:176b8275d35d 2142 * and differential ended to 0x2A:
<> 135:176b8275d35d 2143 * LL_ADC_SetCalibrationFactor(
<> 135:176b8275d35d 2144 * ADC1,
<> 135:176b8275d35d 2145 * __LL_ADC_CALIB_FACTOR_SINGLE_DIFF(0x55, 0x2A))
<> 135:176b8275d35d 2146 * @param __CALIB_FACTOR_SINGLE_ENDED__ Value between Min_Data=0x00 and Max_Data=0x7F
<> 135:176b8275d35d 2147 * @param __CALIB_FACTOR_DIFFERENTIAL__ Value between Min_Data=0x00 and Max_Data=0x7F
<> 135:176b8275d35d 2148 * @retval Value between Min_Data=0x00000000 and Max_Data=0xFFFFFFFF
<> 135:176b8275d35d 2149 */
<> 135:176b8275d35d 2150 #define __LL_ADC_CALIB_FACTOR_SINGLE_DIFF(__CALIB_FACTOR_SINGLE_ENDED__, __CALIB_FACTOR_DIFFERENTIAL__) \
<> 135:176b8275d35d 2151 (((__CALIB_FACTOR_DIFFERENTIAL__) << POSITION_VAL(ADC_CALFACT_CALFACT_D)) | (__CALIB_FACTOR_SINGLE_ENDED__))
<> 135:176b8275d35d 2152
<> 135:176b8275d35d 2153 #if defined(ADC_MULTIMODE_SUPPORT)
<> 135:176b8275d35d 2154 /**
<> 135:176b8275d35d 2155 * @brief Helper macro to get the ADC multimode conversion data of ADC master
<> 135:176b8275d35d 2156 * or ADC slave from raw value with both ADC conversion data concatenated.
<> 135:176b8275d35d 2157 * @note This macro is intended to be used when multimode transfer by DMA
<> 135:176b8275d35d 2158 * is enabled: refer to function @ref LL_ADC_SetMultiDMATransfer().
<> 135:176b8275d35d 2159 * In this case the transferred data need to processed with this macro
<> 135:176b8275d35d 2160 * to separate the conversion data of ADC master and ADC slave.
<> 135:176b8275d35d 2161 * @param __ADC_MULTI_MASTER_SLAVE__ This parameter can be one of the following values:
<> 135:176b8275d35d 2162 * @arg @ref LL_ADC_MULTI_MASTER
<> 135:176b8275d35d 2163 * @arg @ref LL_ADC_MULTI_SLAVE
<> 135:176b8275d35d 2164 * @param __ADC_MULTI_CONV_DATA__ Value between Min_Data=0x000 and Max_Data=0xFFF
<> 135:176b8275d35d 2165 * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
<> 135:176b8275d35d 2166 */
<> 135:176b8275d35d 2167 #define __LL_ADC_MULTI_CONV_DATA_MASTER_SLAVE(__ADC_MULTI_MASTER_SLAVE__, __ADC_MULTI_CONV_DATA__) \
<> 135:176b8275d35d 2168 (((__ADC_MULTI_CONV_DATA__) >> POSITION_VAL((__ADC_MULTI_MASTER_SLAVE__))) & ADC_CDR_RDATA_MST)
<> 135:176b8275d35d 2169 #endif
<> 135:176b8275d35d 2170
<> 135:176b8275d35d 2171 /**
<> 135:176b8275d35d 2172 * @brief Helper macro to select the ADC common instance
<> 135:176b8275d35d 2173 * to which is belonging the selected ADC instance.
<> 135:176b8275d35d 2174 * @note ADC common register instance can be used for:
<> 135:176b8275d35d 2175 * - Set parameters common to several ADC instances
<> 135:176b8275d35d 2176 * - Multimode (for devices with several ADC instances)
<> 135:176b8275d35d 2177 * Refer to functions having argument "ADCxy_COMMON" as parameter.
<> 135:176b8275d35d 2178 * @param __ADCx__ ADC instance
<> 135:176b8275d35d 2179 * @retval ADC common register instance
<> 135:176b8275d35d 2180 */
<> 135:176b8275d35d 2181 #if defined(ADC3) && defined(ADC4)
<> 135:176b8275d35d 2182 #define __LL_ADC_COMMON_INSTANCE(__ADCx__) \
<> 135:176b8275d35d 2183 ((((__ADCx__) == ADC1) || ((__ADCx__) == ADC2)) \
<> 135:176b8275d35d 2184 ? ( \
<> 135:176b8275d35d 2185 (ADC12_COMMON) \
<> 135:176b8275d35d 2186 ) \
<> 135:176b8275d35d 2187 : \
<> 135:176b8275d35d 2188 ( \
<> 135:176b8275d35d 2189 (ADC34_COMMON) \
<> 135:176b8275d35d 2190 ) \
<> 135:176b8275d35d 2191 )
<> 135:176b8275d35d 2192 #elif defined(ADC1) && defined(ADC2)
<> 135:176b8275d35d 2193 #define __LL_ADC_COMMON_INSTANCE(__ADCx__) \
<> 135:176b8275d35d 2194 (ADC12_COMMON)
<> 135:176b8275d35d 2195 #else
<> 135:176b8275d35d 2196 #define __LL_ADC_COMMON_INSTANCE(__ADCx__) \
<> 135:176b8275d35d 2197 (ADC1_COMMON)
<> 135:176b8275d35d 2198 #endif
<> 135:176b8275d35d 2199
<> 135:176b8275d35d 2200 /**
<> 135:176b8275d35d 2201 * @brief Helper macro to check if all ADC instances sharing the same
<> 135:176b8275d35d 2202 * ADC common instance are disabled.
<> 135:176b8275d35d 2203 * @note This check is required by functions with setting conditioned to
<> 135:176b8275d35d 2204 * ADC state:
<> 135:176b8275d35d 2205 * All ADC instances of the ADC common group must be disabled.
<> 135:176b8275d35d 2206 * Refer to functions having argument "ADCxy_COMMON" as parameter.
<> 135:176b8275d35d 2207 * @note On devices with only 1 ADC common instance, parameter of this macro
<> 135:176b8275d35d 2208 * is useless and can be ignored (parameter kept for compatibility
<> 135:176b8275d35d 2209 * with devices featuring several ADC common instances).
<> 135:176b8275d35d 2210 * @param __ADCXY_COMMON__ ADC common instance
<> 135:176b8275d35d 2211 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
<> 135:176b8275d35d 2212 * @retval Value "0" if all ADC instances sharing the same ADC common instance
<> 135:176b8275d35d 2213 * are disabled.
<> 135:176b8275d35d 2214 * Value "1" if at least one ADC instance sharing the same ADC common instance
<> 135:176b8275d35d 2215 * is enabled.
<> 135:176b8275d35d 2216 */
<> 135:176b8275d35d 2217 #if defined(ADC3) && defined(ADC4)
<> 135:176b8275d35d 2218 #define __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(__ADCXY_COMMON__) \
<> 135:176b8275d35d 2219 (((__ADCXY_COMMON__) == ADC12_COMMON) \
<> 135:176b8275d35d 2220 ? ( \
<> 135:176b8275d35d 2221 (LL_ADC_IsEnabled(ADC1) | \
<> 135:176b8275d35d 2222 LL_ADC_IsEnabled(ADC2) ) \
<> 135:176b8275d35d 2223 ) \
<> 135:176b8275d35d 2224 : \
<> 135:176b8275d35d 2225 ( \
<> 135:176b8275d35d 2226 (LL_ADC_IsEnabled(ADC3) | \
<> 135:176b8275d35d 2227 LL_ADC_IsEnabled(ADC4) ) \
<> 135:176b8275d35d 2228 ) \
<> 135:176b8275d35d 2229 )
<> 135:176b8275d35d 2230 #elif defined(ADC1) && defined(ADC2)
<> 135:176b8275d35d 2231 #define __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(__ADCXY_COMMON__) \
<> 135:176b8275d35d 2232 (LL_ADC_IsEnabled(ADC1) | \
<> 135:176b8275d35d 2233 LL_ADC_IsEnabled(ADC2) )
<> 135:176b8275d35d 2234 #else
<> 135:176b8275d35d 2235 #define __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(__ADCXY_COMMON__) \
<> 135:176b8275d35d 2236 LL_ADC_IsEnabled(ADC1)
<> 135:176b8275d35d 2237 #endif
<> 135:176b8275d35d 2238
<> 135:176b8275d35d 2239 /**
<> 135:176b8275d35d 2240 * @brief Helper macro to define the ADC conversion data full-scale digital
<> 135:176b8275d35d 2241 * value corresponding to the selected ADC resolution.
<> 135:176b8275d35d 2242 * @note ADC conversion data full-scale corresponds to voltage range
<> 135:176b8275d35d 2243 * determined by analog voltage references Vref+ and Vref-
<> 135:176b8275d35d 2244 * (refer to reference manual).
<> 135:176b8275d35d 2245 * @param __ADC_RESOLUTION__ This parameter can be one of the following values:
<> 135:176b8275d35d 2246 * @arg @ref LL_ADC_RESOLUTION_12B
<> 135:176b8275d35d 2247 * @arg @ref LL_ADC_RESOLUTION_10B
<> 135:176b8275d35d 2248 * @arg @ref LL_ADC_RESOLUTION_8B
<> 135:176b8275d35d 2249 * @arg @ref LL_ADC_RESOLUTION_6B
<> 135:176b8275d35d 2250 * @retval ADC conversion data equivalent voltage value (unit: mVolt)
<> 135:176b8275d35d 2251 */
<> 135:176b8275d35d 2252 #define __LL_ADC_DIGITAL_SCALE(__ADC_RESOLUTION__) \
<> 135:176b8275d35d 2253 (((uint32_t)0xFFFU) >> ((__ADC_RESOLUTION__) >> (ADC_CFGR_RES_BITOFFSET_POS - 1U)))
<> 135:176b8275d35d 2254
<> 135:176b8275d35d 2255 /**
<> 135:176b8275d35d 2256 * @brief Helper macro to convert the ADC conversion data from
<> 135:176b8275d35d 2257 * a resolution to another resolution.
<> 135:176b8275d35d 2258 * @param __DATA__ ADC conversion data to be converted
<> 135:176b8275d35d 2259 * @param __ADC_RESOLUTION_CURRENT__ Resolution of to the data to be converted
<> 135:176b8275d35d 2260 * This parameter can be one of the following values:
<> 135:176b8275d35d 2261 * @arg @ref LL_ADC_RESOLUTION_12B
<> 135:176b8275d35d 2262 * @arg @ref LL_ADC_RESOLUTION_10B
<> 135:176b8275d35d 2263 * @arg @ref LL_ADC_RESOLUTION_8B
<> 135:176b8275d35d 2264 * @arg @ref LL_ADC_RESOLUTION_6B
<> 135:176b8275d35d 2265 * @param __ADC_RESOLUTION_TARGET__ Resolution of the data after conversion
<> 135:176b8275d35d 2266 * This parameter can be one of the following values:
<> 135:176b8275d35d 2267 * @arg @ref LL_ADC_RESOLUTION_12B
<> 135:176b8275d35d 2268 * @arg @ref LL_ADC_RESOLUTION_10B
<> 135:176b8275d35d 2269 * @arg @ref LL_ADC_RESOLUTION_8B
<> 135:176b8275d35d 2270 * @arg @ref LL_ADC_RESOLUTION_6B
<> 135:176b8275d35d 2271 * @retval ADC conversion data to the requested resolution
<> 135:176b8275d35d 2272 */
<> 135:176b8275d35d 2273 #define __LL_ADC_CONVERT_DATA_RESOLUTION(__DATA__,\
<> 135:176b8275d35d 2274 __ADC_RESOLUTION_CURRENT__,\
<> 135:176b8275d35d 2275 __ADC_RESOLUTION_TARGET__) \
<> 135:176b8275d35d 2276 (((__DATA__) \
<> 135:176b8275d35d 2277 << ((__ADC_RESOLUTION_CURRENT__) >> (ADC_CFGR_RES_BITOFFSET_POS - 1U))) \
<> 135:176b8275d35d 2278 >> ((__ADC_RESOLUTION_TARGET__) >> (ADC_CFGR_RES_BITOFFSET_POS - 1U)) \
<> 135:176b8275d35d 2279 )
<> 135:176b8275d35d 2280
<> 135:176b8275d35d 2281 /**
<> 135:176b8275d35d 2282 * @brief Helper macro to calculate the voltage (unit: mVolt)
<> 135:176b8275d35d 2283 * corresponding to a ADC conversion data (unit: digital value).
<> 135:176b8275d35d 2284 * @note Analog reference voltage (Vref+) must be either known from
<> 135:176b8275d35d 2285 * user board environment or can be calculated using ADC measurement
<> 135:176b8275d35d 2286 * and ADC helper macro @ref __LL_ADC_CALC_VREFANALOG_VOLTAGE().
<> 135:176b8275d35d 2287 * @param __VREFANALOG_VOLTAGE__ Analog reference voltage (unit: mV)
<> 135:176b8275d35d 2288 * @param __ADC_DATA__ ADC conversion data (resolution 12 bits)
<> 135:176b8275d35d 2289 * (unit: digital value).
<> 135:176b8275d35d 2290 * @param __ADC_RESOLUTION__ This parameter can be one of the following values:
<> 135:176b8275d35d 2291 * @arg @ref LL_ADC_RESOLUTION_12B
<> 135:176b8275d35d 2292 * @arg @ref LL_ADC_RESOLUTION_10B
<> 135:176b8275d35d 2293 * @arg @ref LL_ADC_RESOLUTION_8B
<> 135:176b8275d35d 2294 * @arg @ref LL_ADC_RESOLUTION_6B
<> 135:176b8275d35d 2295 * @retval ADC conversion data equivalent voltage value (unit: mVolt)
<> 135:176b8275d35d 2296 */
<> 135:176b8275d35d 2297 #define __LL_ADC_CALC_DATA_TO_VOLTAGE(__VREFANALOG_VOLTAGE__,\
<> 135:176b8275d35d 2298 __ADC_DATA__,\
<> 135:176b8275d35d 2299 __ADC_RESOLUTION__) \
<> 135:176b8275d35d 2300 ((__ADC_DATA__) * (__VREFANALOG_VOLTAGE__) \
<> 135:176b8275d35d 2301 / __LL_ADC_DIGITAL_SCALE(__ADC_RESOLUTION__) \
<> 135:176b8275d35d 2302 )
<> 135:176b8275d35d 2303
<> 135:176b8275d35d 2304 /**
<> 135:176b8275d35d 2305 * @brief Helper macro to calculate analog reference voltage (Vref+)
<> 135:176b8275d35d 2306 * (unit: mVolt) from ADC conversion data of internal voltage
<> 135:176b8275d35d 2307 * reference VrefInt.
<> 135:176b8275d35d 2308 * @note Computation is using VrefInt calibration value
<> 135:176b8275d35d 2309 * stored in system memory for each device during production.
<> 135:176b8275d35d 2310 * @note This voltage depends on user board environment: voltage level
<> 135:176b8275d35d 2311 * connected to pin Vref+.
<> 135:176b8275d35d 2312 * On devices with small package, the pin Vref+ is not present
<> 135:176b8275d35d 2313 * and internally bonded to pin Vdda.
<> 135:176b8275d35d 2314 * @note On this STM32 serie, calibration data of internal voltage reference
<> 135:176b8275d35d 2315 * VrefInt corresponds to a resolution of 12 bits,
<> 135:176b8275d35d 2316 * this is the recommended ADC resolution to convert voltage of
<> 135:176b8275d35d 2317 * internal voltage reference VrefInt.
<> 135:176b8275d35d 2318 * Otherwise, this macro performs the processing to scale
<> 135:176b8275d35d 2319 * ADC conversion data to 12 bits.
<> 135:176b8275d35d 2320 * @param __VREFINT_ADC_DATA__: ADC conversion data (resolution 12 bits)
<> 135:176b8275d35d 2321 * of internal voltage reference VrefInt (unit: digital value).
<> 135:176b8275d35d 2322 * @param __ADC_RESOLUTION__ This parameter can be one of the following values:
<> 135:176b8275d35d 2323 * @arg @ref LL_ADC_RESOLUTION_12B
<> 135:176b8275d35d 2324 * @arg @ref LL_ADC_RESOLUTION_10B
<> 135:176b8275d35d 2325 * @arg @ref LL_ADC_RESOLUTION_8B
<> 135:176b8275d35d 2326 * @arg @ref LL_ADC_RESOLUTION_6B
<> 135:176b8275d35d 2327 * @retval Analog reference voltage (unit: mV)
<> 135:176b8275d35d 2328 */
<> 135:176b8275d35d 2329 #define __LL_ADC_CALC_VREFANALOG_VOLTAGE(__VREFINT_ADC_DATA__,\
<> 135:176b8275d35d 2330 __ADC_RESOLUTION__) \
<> 135:176b8275d35d 2331 (((uint32_t)(*VREFINT_CAL_ADDR) * VREFINT_CAL_VREF) \
<> 135:176b8275d35d 2332 / __LL_ADC_CONVERT_DATA_RESOLUTION((__VREFINT_ADC_DATA__), \
<> 135:176b8275d35d 2333 (__ADC_RESOLUTION__), \
<> 135:176b8275d35d 2334 LL_ADC_RESOLUTION_12B) \
<> 135:176b8275d35d 2335 )
<> 135:176b8275d35d 2336
<> 135:176b8275d35d 2337 /**
<> 135:176b8275d35d 2338 * @brief Helper macro to calculate the temperature (unit: degree Celsius)
<> 135:176b8275d35d 2339 * from ADC conversion data of internal temperature sensor.
<> 135:176b8275d35d 2340 * @note Computation is using temperature sensor calibration values
<> 135:176b8275d35d 2341 * stored in system memory for each device during production.
<> 135:176b8275d35d 2342 * @note Calculation formula:
<> 135:176b8275d35d 2343 * Temperature = ((TS_ADC_DATA - TS_CAL1)
<> 135:176b8275d35d 2344 * * (TS_CAL2_TEMP - TS_CAL1_TEMP))
<> 135:176b8275d35d 2345 * / (TS_CAL2 - TS_CAL1) + TS_CAL1_TEMP
<> 135:176b8275d35d 2346 * with TS_ADC_DATA = temperature sensor raw data measured by ADC
<> 135:176b8275d35d 2347 * Avg_Slope = (TS_CAL2 - TS_CAL1)
<> 135:176b8275d35d 2348 * / (TS_CAL2_TEMP - TS_CAL1_TEMP)
<> 135:176b8275d35d 2349 * TS_CAL1 = equivalent TS_ADC_DATA at temperature
<> 135:176b8275d35d 2350 * TEMP_DEGC_CAL1 (calibrated in factory)
<> 135:176b8275d35d 2351 * TS_CAL2 = equivalent TS_ADC_DATA at temperature
<> 135:176b8275d35d 2352 * TEMP_DEGC_CAL2 (calibrated in factory)
<> 135:176b8275d35d 2353 * Caution: Calculation relevancy under reserve that calibration
<> 135:176b8275d35d 2354 * parameters are correct (address and data).
<> 135:176b8275d35d 2355 * To calculate temperature using temperature sensor
<> 135:176b8275d35d 2356 * datasheet typical values (generic values less, therefore
<> 135:176b8275d35d 2357 * less accurate than calibrated values),
<> 135:176b8275d35d 2358 * use helper macro @ref __LL_ADC_CALC_TEMPERATURE_TYP_PARAMS().
<> 135:176b8275d35d 2359 * @note As calculation input, the analog reference voltage (Vref+) must be
<> 135:176b8275d35d 2360 * defined as it impacts the ADC LSB equivalent voltage.
<> 135:176b8275d35d 2361 * @note Analog reference voltage (Vref+) must be either known from
<> 135:176b8275d35d 2362 * user board environment or can be calculated using ADC measurement
<> 135:176b8275d35d 2363 * and ADC helper macro @ref __LL_ADC_CALC_VREFANALOG_VOLTAGE().
<> 135:176b8275d35d 2364 * @note On this STM32 serie, calibration data of temperature sensor
<> 135:176b8275d35d 2365 * corresponds to a resolution of 12 bits,
<> 135:176b8275d35d 2366 * this is the recommended ADC resolution to convert voltage of
<> 135:176b8275d35d 2367 * temperature sensor.
<> 135:176b8275d35d 2368 * Otherwise, this macro performs the processing to scale
<> 135:176b8275d35d 2369 * ADC conversion data to 12 bits.
<> 135:176b8275d35d 2370 * @param __VREFANALOG_VOLTAGE__ Analog reference voltage (unit: mV)
<> 135:176b8275d35d 2371 * @param __TEMPSENSOR_ADC_DATA__ ADC conversion data of internal
<> 135:176b8275d35d 2372 * temperature sensor (unit: digital value).
<> 135:176b8275d35d 2373 * @param __ADC_RESOLUTION__ ADC resolution at which internal temperature
<> 135:176b8275d35d 2374 * sensor voltage has been measured.
<> 135:176b8275d35d 2375 * This parameter can be one of the following values:
<> 135:176b8275d35d 2376 * @arg @ref LL_ADC_RESOLUTION_12B
<> 135:176b8275d35d 2377 * @arg @ref LL_ADC_RESOLUTION_10B
<> 135:176b8275d35d 2378 * @arg @ref LL_ADC_RESOLUTION_8B
<> 135:176b8275d35d 2379 * @arg @ref LL_ADC_RESOLUTION_6B
<> 135:176b8275d35d 2380 * @retval Temperature (unit: degree Celsius)
<> 135:176b8275d35d 2381 */
<> 135:176b8275d35d 2382 #define __LL_ADC_CALC_TEMPERATURE(__VREFANALOG_VOLTAGE__,\
<> 135:176b8275d35d 2383 __TEMPSENSOR_ADC_DATA__,\
<> 135:176b8275d35d 2384 __ADC_RESOLUTION__) \
<> 135:176b8275d35d 2385 (((( ((int32_t)((__LL_ADC_CONVERT_DATA_RESOLUTION((__TEMPSENSOR_ADC_DATA__), \
<> 135:176b8275d35d 2386 (__ADC_RESOLUTION__), \
<> 135:176b8275d35d 2387 LL_ADC_RESOLUTION_12B) \
<> 135:176b8275d35d 2388 * (__VREFANALOG_VOLTAGE__)) \
<> 135:176b8275d35d 2389 / TEMPSENSOR_CAL_VREFANALOG) \
<> 135:176b8275d35d 2390 - (int32_t) *TEMPSENSOR_CAL1_ADDR) \
<> 135:176b8275d35d 2391 ) * (int32_t)(TEMPSENSOR_CAL2_TEMP - TEMPSENSOR_CAL1_TEMP) \
<> 135:176b8275d35d 2392 ) / (int32_t)((int32_t)*TEMPSENSOR_CAL2_ADDR - (int32_t)*TEMPSENSOR_CAL1_ADDR) \
<> 135:176b8275d35d 2393 ) + TEMPSENSOR_CAL1_TEMP \
<> 135:176b8275d35d 2394 )
<> 135:176b8275d35d 2395
<> 135:176b8275d35d 2396 /**
<> 135:176b8275d35d 2397 * @brief Helper macro to calculate the temperature (unit: degree Celsius)
<> 135:176b8275d35d 2398 * from ADC conversion data of internal temperature sensor.
<> 135:176b8275d35d 2399 * @note Computation is using temperature sensor typical values
<> 135:176b8275d35d 2400 * (refer to device datasheet).
<> 135:176b8275d35d 2401 * @note Calculation formula:
<> 135:176b8275d35d 2402 * Temperature = (TS_TYP_CALx_VOLT(uV) - TS_ADC_DATA * Conversion_uV)
<> 135:176b8275d35d 2403 * / Avg_Slope + CALx_TEMP
<> 135:176b8275d35d 2404 * with TS_ADC_DATA = temperature sensor raw data measured by ADC
<> 135:176b8275d35d 2405 * (unit: digital value)
<> 135:176b8275d35d 2406 * Avg_Slope = temperature sensor slope
<> 135:176b8275d35d 2407 * (unit: uV/Degree Celsius)
<> 135:176b8275d35d 2408 * TS_TYP_CALx_VOLT = temperature sensor digital value at
<> 135:176b8275d35d 2409 * temperature CALx_TEMP (unit: mV)
<> 135:176b8275d35d 2410 * Caution: Calculation relevancy under reserve the temperature sensor
<> 135:176b8275d35d 2411 * of the current device has characteristics in line with
<> 135:176b8275d35d 2412 * datasheet typical values.
<> 135:176b8275d35d 2413 * If temperature sensor calibration values are available on
<> 135:176b8275d35d 2414 * on this device (presence of macro __LL_ADC_CALC_TEMPERATURE()),
<> 135:176b8275d35d 2415 * temperature calculation will be more accurate using
<> 135:176b8275d35d 2416 * helper macro @ref __LL_ADC_CALC_TEMPERATURE().
<> 135:176b8275d35d 2417 * @note As calculation input, the analog reference voltage (Vref+) must be
<> 135:176b8275d35d 2418 * defined as it impacts the ADC LSB equivalent voltage.
<> 135:176b8275d35d 2419 * @note Analog reference voltage (Vref+) must be either known from
<> 135:176b8275d35d 2420 * user board environment or can be calculated using ADC measurement
<> 135:176b8275d35d 2421 * and ADC helper macro @ref __LL_ADC_CALC_VREFANALOG_VOLTAGE().
<> 135:176b8275d35d 2422 * @note ADC measurement data must correspond to a resolution of 12bits
<> 135:176b8275d35d 2423 * (full scale digital value 4095). If not the case, the data must be
<> 135:176b8275d35d 2424 * preliminarily rescaled to an equivalent resolution of 12 bits.
<> 135:176b8275d35d 2425 * @param __TEMPSENSOR_TYP_AVGSLOPE__ Device datasheet data: Temperature sensor slope typical value (unit: uV/DegCelsius).
<> 135:176b8275d35d 2426 * On STM32F3, refer to device datasheet parameter "Avg_Slope".
<> 135:176b8275d35d 2427 * @param __TEMPSENSOR_TYP_CALX_V__ Device datasheet data: Temperature sensor voltage typical value (at temperature and Vref+ defined in parameters below) (unit: mV).
<> 135:176b8275d35d 2428 * On STM32F3, refer to device datasheet parameter "V25" (corresponding to TS_CAL1).
<> 135:176b8275d35d 2429 * @param __TEMPSENSOR_CALX_TEMP__ Device datasheet data: Temperature at which temperature sensor voltage (see parameter above) is corresponding (unit: mV)
<> 135:176b8275d35d 2430 * @param __VREFANALOG_VOLTAGE__ Analog voltage reference (Vref+) voltage (unit: mV)
<> 135:176b8275d35d 2431 * @param __TEMPSENSOR_ADC_DATA__ ADC conversion data of internal temperature sensor (unit: digital value).
<> 135:176b8275d35d 2432 * @param __ADC_RESOLUTION__ ADC resolution at which internal temperature sensor voltage has been measured.
<> 135:176b8275d35d 2433 * This parameter can be one of the following values:
<> 135:176b8275d35d 2434 * @arg @ref LL_ADC_RESOLUTION_12B
<> 135:176b8275d35d 2435 * @arg @ref LL_ADC_RESOLUTION_10B
<> 135:176b8275d35d 2436 * @arg @ref LL_ADC_RESOLUTION_8B
<> 135:176b8275d35d 2437 * @arg @ref LL_ADC_RESOLUTION_6B
<> 135:176b8275d35d 2438 * @retval Temperature (unit: degree Celsius)
<> 135:176b8275d35d 2439 */
<> 135:176b8275d35d 2440 #define __LL_ADC_CALC_TEMPERATURE_TYP_PARAMS(__TEMPSENSOR_TYP_AVGSLOPE__,\
<> 135:176b8275d35d 2441 __TEMPSENSOR_TYP_CALX_V__,\
<> 135:176b8275d35d 2442 __TEMPSENSOR_CALX_TEMP__,\
<> 135:176b8275d35d 2443 __VREFANALOG_VOLTAGE__,\
<> 135:176b8275d35d 2444 __TEMPSENSOR_ADC_DATA__,\
<> 135:176b8275d35d 2445 __ADC_RESOLUTION__) \
<> 135:176b8275d35d 2446 ((( ( \
<> 135:176b8275d35d 2447 (int32_t)(((__TEMPSENSOR_TYP_CALX_V__)) \
<> 135:176b8275d35d 2448 * 1000) \
<> 135:176b8275d35d 2449 - \
<> 135:176b8275d35d 2450 (int32_t)((((__TEMPSENSOR_ADC_DATA__) * (__VREFANALOG_VOLTAGE__)) \
<> 135:176b8275d35d 2451 / __LL_ADC_DIGITAL_SCALE(__ADC_RESOLUTION__)) \
<> 135:176b8275d35d 2452 * 1000) \
<> 135:176b8275d35d 2453 ) \
<> 135:176b8275d35d 2454 ) / (__TEMPSENSOR_TYP_AVGSLOPE__) \
<> 135:176b8275d35d 2455 ) + (__TEMPSENSOR_CALX_TEMP__) \
<> 135:176b8275d35d 2456 )
<> 135:176b8275d35d 2457
<> 135:176b8275d35d 2458 /**
<> 135:176b8275d35d 2459 * @}
<> 135:176b8275d35d 2460 */
<> 135:176b8275d35d 2461
<> 135:176b8275d35d 2462 /**
<> 135:176b8275d35d 2463 * @}
<> 135:176b8275d35d 2464 */
<> 135:176b8275d35d 2465
<> 135:176b8275d35d 2466
<> 135:176b8275d35d 2467 /* Exported functions --------------------------------------------------------*/
<> 135:176b8275d35d 2468 /** @defgroup ADC_LL_Exported_Functions ADC Exported Functions
<> 135:176b8275d35d 2469 * @{
<> 135:176b8275d35d 2470 */
<> 135:176b8275d35d 2471
<> 135:176b8275d35d 2472 /** @defgroup ADC_LL_EF_DMA_Management ADC DMA management
<> 135:176b8275d35d 2473 * @{
<> 135:176b8275d35d 2474 */
<> 135:176b8275d35d 2475 /* Note: LL ADC functions to set DMA transfer are located into sections of */
<> 135:176b8275d35d 2476 /* configuration of ADC instance, groups and multimode (if available): */
<> 135:176b8275d35d 2477 /* @ref LL_ADC_REG_SetDMATransfer(), ... */
<> 135:176b8275d35d 2478
<> 135:176b8275d35d 2479 /**
<> 135:176b8275d35d 2480 * @brief Function to help to configure DMA transfer from ADC: retrieve the
<> 135:176b8275d35d 2481 * ADC register address from ADC instance and a list of ADC registers
<> 135:176b8275d35d 2482 * intended to be used (most commonly) with DMA transfer.
<> 135:176b8275d35d 2483 * @note These ADC registers are data registers:
<> 135:176b8275d35d 2484 * when ADC conversion data is available in ADC data registers,
<> 135:176b8275d35d 2485 * ADC generates a DMA transfer request.
<> 135:176b8275d35d 2486 * @note This macro is intended to be used with LL DMA driver, refer to
<> 135:176b8275d35d 2487 * function "LL_DMA_ConfigAddresses()".
<> 135:176b8275d35d 2488 * Example:
<> 135:176b8275d35d 2489 * LL_DMA_ConfigAddresses(DMA1,
<> 135:176b8275d35d 2490 * LL_DMA_CHANNEL_1,
<> 135:176b8275d35d 2491 * LL_ADC_DMA_GetRegAddr(ADC1, LL_ADC_DMA_REG_REGULAR_DATA),
<> 135:176b8275d35d 2492 * (uint32_t)&< array or variable >,
<> 135:176b8275d35d 2493 * LL_DMA_DIRECTION_PERIPH_TO_MEMORY);
<> 135:176b8275d35d 2494 * @note For devices with several ADC: in multimode, some devices
<> 135:176b8275d35d 2495 * use a different data register outside of ADC instance scope
<> 135:176b8275d35d 2496 * (common data register). This macro manages this register difference,
<> 135:176b8275d35d 2497 * only ADC instance has to be set as parameter.
<> 135:176b8275d35d 2498 * @rmtoll DR RDATA LL_ADC_DMA_GetRegAddr\n
<> 135:176b8275d35d 2499 * CDR RDATA_MST LL_ADC_DMA_GetRegAddr\n
<> 135:176b8275d35d 2500 * CDR RDATA_SLV LL_ADC_DMA_GetRegAddr
<> 135:176b8275d35d 2501 * @param ADCx ADC instance
<> 135:176b8275d35d 2502 * @param Register This parameter can be one of the following values:
<> 135:176b8275d35d 2503 * @arg @ref LL_ADC_DMA_REG_REGULAR_DATA
<> 135:176b8275d35d 2504 * @arg @ref LL_ADC_DMA_REG_REGULAR_DATA_MULTI (1)
<> 135:176b8275d35d 2505 *
<> 135:176b8275d35d 2506 * (1) Available on devices with several ADC instances.
<> 135:176b8275d35d 2507 * @retval ADC register address
<> 135:176b8275d35d 2508 */
<> 135:176b8275d35d 2509 #if defined(ADC_MULTIMODE_SUPPORT)
<> 135:176b8275d35d 2510 __STATIC_INLINE uint32_t LL_ADC_DMA_GetRegAddr(ADC_TypeDef *ADCx, uint32_t Register)
<> 135:176b8275d35d 2511 {
<> 135:176b8275d35d 2512 register uint32_t data_reg_addr = 0U;
<> 135:176b8275d35d 2513
<> 135:176b8275d35d 2514 if (Register == LL_ADC_DMA_REG_REGULAR_DATA)
<> 135:176b8275d35d 2515 {
<> 135:176b8275d35d 2516 /* Retrieve address of register DR */
<> 135:176b8275d35d 2517 data_reg_addr = (uint32_t)&(ADCx->DR);
<> 135:176b8275d35d 2518 }
<> 135:176b8275d35d 2519 else /* (Register == LL_ADC_DMA_REG_REGULAR_DATA_MULTI) */
<> 135:176b8275d35d 2520 {
<> 135:176b8275d35d 2521 /* Retrieve address of register CDR */
<> 135:176b8275d35d 2522 data_reg_addr = (uint32_t)&((__LL_ADC_COMMON_INSTANCE(ADCx))->CDR);
<> 135:176b8275d35d 2523 }
<> 135:176b8275d35d 2524
<> 135:176b8275d35d 2525 return data_reg_addr;
<> 135:176b8275d35d 2526 }
<> 135:176b8275d35d 2527 #else
<> 135:176b8275d35d 2528 __STATIC_INLINE uint32_t LL_ADC_DMA_GetRegAddr(ADC_TypeDef *ADCx, uint32_t Register)
<> 135:176b8275d35d 2529 {
<> 135:176b8275d35d 2530 /* Retrieve address of register DR */
<> 135:176b8275d35d 2531 return (uint32_t)&(ADCx->DR);
<> 135:176b8275d35d 2532 }
<> 135:176b8275d35d 2533 #endif
<> 135:176b8275d35d 2534
<> 135:176b8275d35d 2535 /**
<> 135:176b8275d35d 2536 * @}
<> 135:176b8275d35d 2537 */
<> 135:176b8275d35d 2538
<> 135:176b8275d35d 2539 /** @defgroup ADC_LL_EF_Configuration_ADC_Common Configuration of ADC hierarchical scope: common to several ADC instances
<> 135:176b8275d35d 2540 * @{
<> 135:176b8275d35d 2541 */
<> 135:176b8275d35d 2542
<> 135:176b8275d35d 2543 /**
<> 135:176b8275d35d 2544 * @brief Set parameter common to several ADC: Clock source and prescaler.
<> 135:176b8275d35d 2545 * @note On this STM32 serie, if ADC group injected is used, some
<> 135:176b8275d35d 2546 * clock ratio constraints between ADC clock and AHB clock
<> 135:176b8275d35d 2547 * must be respected.
<> 135:176b8275d35d 2548 * Refer to reference manual.
<> 135:176b8275d35d 2549 * @note On this STM32 serie, setting of this feature is conditioned to
<> 135:176b8275d35d 2550 * ADC state:
<> 135:176b8275d35d 2551 * All ADC instances of the ADC common group must be disabled.
<> 135:176b8275d35d 2552 * This check can be done with function @ref LL_ADC_IsEnabled() for each
<> 135:176b8275d35d 2553 * ADC instance or by using helper macro helper macro
<> 135:176b8275d35d 2554 * @ref __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE().
<> 135:176b8275d35d 2555 * @rmtoll CCR CKMODE LL_ADC_SetCommonClock\n
<> 135:176b8275d35d 2556 * CCR PRESC LL_ADC_SetCommonClock
<> 135:176b8275d35d 2557 * @param ADCxy_COMMON ADC common instance
<> 135:176b8275d35d 2558 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
<> 135:176b8275d35d 2559 * @param CommonClock This parameter can be one of the following values:
<> 135:176b8275d35d 2560 * @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV1
<> 135:176b8275d35d 2561 * @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV2
<> 135:176b8275d35d 2562 * @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV4
<> 135:176b8275d35d 2563 * @arg @ref LL_ADC_CLOCK_ASYNC_DIV1
<> 135:176b8275d35d 2564 * @retval None
<> 135:176b8275d35d 2565 */
<> 135:176b8275d35d 2566 __STATIC_INLINE void LL_ADC_SetCommonClock(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t CommonClock)
<> 135:176b8275d35d 2567 {
<> 135:176b8275d35d 2568 MODIFY_REG(ADCxy_COMMON->CCR, ADC_CCR_CKMODE, CommonClock);
<> 135:176b8275d35d 2569 }
<> 135:176b8275d35d 2570
<> 135:176b8275d35d 2571 /**
<> 135:176b8275d35d 2572 * @brief Get parameter common to several ADC: Clock source and prescaler.
<> 135:176b8275d35d 2573 * @rmtoll CCR CKMODE LL_ADC_GetCommonClock\n
<> 135:176b8275d35d 2574 * CCR PRESC LL_ADC_GetCommonClock
<> 135:176b8275d35d 2575 * @param ADCxy_COMMON ADC common instance
<> 135:176b8275d35d 2576 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
<> 135:176b8275d35d 2577 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 2578 * @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV1
<> 135:176b8275d35d 2579 * @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV2
<> 135:176b8275d35d 2580 * @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV4
<> 135:176b8275d35d 2581 * @arg @ref LL_ADC_CLOCK_ASYNC_DIV1
<> 135:176b8275d35d 2582 */
<> 135:176b8275d35d 2583 __STATIC_INLINE uint32_t LL_ADC_GetCommonClock(ADC_Common_TypeDef *ADCxy_COMMON)
<> 135:176b8275d35d 2584 {
<> 135:176b8275d35d 2585 return (uint32_t)(READ_BIT(ADCxy_COMMON->CCR, ADC_CCR_CKMODE));
<> 135:176b8275d35d 2586 }
<> 135:176b8275d35d 2587
<> 135:176b8275d35d 2588 /**
<> 135:176b8275d35d 2589 * @brief Set parameter common to several ADC: measurement path to internal
<> 135:176b8275d35d 2590 * channels (VrefInt, temperature sensor, ...).
<> 135:176b8275d35d 2591 * @note One or several values can be selected.
<> 135:176b8275d35d 2592 * Example: (LL_ADC_PATH_INTERNAL_VREFINT |
<> 135:176b8275d35d 2593 * LL_ADC_PATH_INTERNAL_TEMPSENSOR)
<> 135:176b8275d35d 2594 * @note Stabilization time of measurement path to internal channel:
<> 135:176b8275d35d 2595 * After enabling internal paths, before starting ADC conversion,
<> 135:176b8275d35d 2596 * a delay is required for internal voltage reference and
<> 135:176b8275d35d 2597 * temperature sensor stabilization time.
<> 135:176b8275d35d 2598 * Refer to device datasheet.
<> 135:176b8275d35d 2599 * Refer to literal @ref LL_ADC_DELAY_VREFINT_STAB_US.
<> 135:176b8275d35d 2600 * Refer to literal @ref LL_ADC_DELAY_TEMPSENSOR_STAB_US.
<> 135:176b8275d35d 2601 * @note ADC internal channel sampling time constraint:
<> 135:176b8275d35d 2602 * For ADC conversion of internal channels,
<> 135:176b8275d35d 2603 * a sampling time minimum value is required.
<> 135:176b8275d35d 2604 * Refer to device datasheet.
<> 135:176b8275d35d 2605 * @note On this STM32 serie, setting of this feature is conditioned to
<> 135:176b8275d35d 2606 * ADC state:
<> 135:176b8275d35d 2607 * All ADC instances of the ADC common group must be disabled.
<> 135:176b8275d35d 2608 * This check can be done with function @ref LL_ADC_IsEnabled() for each
<> 135:176b8275d35d 2609 * ADC instance or by using helper macro helper macro
<> 135:176b8275d35d 2610 * @ref __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE().
<> 135:176b8275d35d 2611 * @rmtoll CCR VREFEN LL_ADC_SetCommonPathInternalCh\n
<> 135:176b8275d35d 2612 * CCR TSEN LL_ADC_SetCommonPathInternalCh\n
<> 135:176b8275d35d 2613 * CCR VBATEN LL_ADC_SetCommonPathInternalCh
<> 135:176b8275d35d 2614 * @param ADCxy_COMMON ADC common instance
<> 135:176b8275d35d 2615 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
<> 135:176b8275d35d 2616 * @param PathInternal This parameter can be a combination of the following values:
<> 135:176b8275d35d 2617 * @arg @ref LL_ADC_PATH_INTERNAL_NONE
<> 135:176b8275d35d 2618 * @arg @ref LL_ADC_PATH_INTERNAL_VREFINT
<> 135:176b8275d35d 2619 * @arg @ref LL_ADC_PATH_INTERNAL_TEMPSENSOR
<> 135:176b8275d35d 2620 * @arg @ref LL_ADC_PATH_INTERNAL_VBAT
<> 135:176b8275d35d 2621 * @retval None
<> 135:176b8275d35d 2622 */
<> 135:176b8275d35d 2623 __STATIC_INLINE void LL_ADC_SetCommonPathInternalCh(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t PathInternal)
<> 135:176b8275d35d 2624 {
<> 135:176b8275d35d 2625 MODIFY_REG(ADCxy_COMMON->CCR, ADC_CCR_VREFEN | ADC_CCR_TSEN | ADC_CCR_VBATEN, PathInternal);
<> 135:176b8275d35d 2626 }
<> 135:176b8275d35d 2627
<> 135:176b8275d35d 2628 /**
<> 135:176b8275d35d 2629 * @brief Get parameter common to several ADC: measurement path to internal
<> 135:176b8275d35d 2630 * channels (VrefInt, temperature sensor, ...).
<> 135:176b8275d35d 2631 * @note One or several values can be selected.
<> 135:176b8275d35d 2632 * Example: (LL_ADC_PATH_INTERNAL_VREFINT |
<> 135:176b8275d35d 2633 * LL_ADC_PATH_INTERNAL_TEMPSENSOR)
<> 135:176b8275d35d 2634 * @rmtoll CCR VREFEN LL_ADC_GetCommonPathInternalCh\n
<> 135:176b8275d35d 2635 * CCR TSEN LL_ADC_GetCommonPathInternalCh\n
<> 135:176b8275d35d 2636 * CCR VBATEN LL_ADC_GetCommonPathInternalCh
<> 135:176b8275d35d 2637 * @param ADCxy_COMMON ADC common instance
<> 135:176b8275d35d 2638 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
<> 135:176b8275d35d 2639 * @retval Returned value can be a combination of the following values:
<> 135:176b8275d35d 2640 * @arg @ref LL_ADC_PATH_INTERNAL_NONE
<> 135:176b8275d35d 2641 * @arg @ref LL_ADC_PATH_INTERNAL_VREFINT
<> 135:176b8275d35d 2642 * @arg @ref LL_ADC_PATH_INTERNAL_TEMPSENSOR
<> 135:176b8275d35d 2643 * @arg @ref LL_ADC_PATH_INTERNAL_VBAT
<> 135:176b8275d35d 2644 */
<> 135:176b8275d35d 2645 __STATIC_INLINE uint32_t LL_ADC_GetCommonPathInternalCh(ADC_Common_TypeDef *ADCxy_COMMON)
<> 135:176b8275d35d 2646 {
<> 135:176b8275d35d 2647 return (uint32_t)(READ_BIT(ADCxy_COMMON->CCR, ADC_CCR_VREFEN | ADC_CCR_TSEN | ADC_CCR_VBATEN));
<> 135:176b8275d35d 2648 }
<> 135:176b8275d35d 2649
<> 135:176b8275d35d 2650 /**
<> 135:176b8275d35d 2651 * @}
<> 135:176b8275d35d 2652 */
<> 135:176b8275d35d 2653
<> 135:176b8275d35d 2654 /** @defgroup ADC_LL_EF_Configuration_ADC_Instance Configuration of ADC hierarchical scope: ADC instance
<> 135:176b8275d35d 2655 * @{
<> 135:176b8275d35d 2656 */
<> 135:176b8275d35d 2657
<> 135:176b8275d35d 2658 /**
<> 135:176b8275d35d 2659 * @brief Set ADC calibration factor in the mode single-ended
<> 135:176b8275d35d 2660 * or differential (for devices with differential mode available).
<> 135:176b8275d35d 2661 * @note This function is intended to set calibration parameters
<> 135:176b8275d35d 2662 * without having to perform a new calibration using
<> 135:176b8275d35d 2663 * @ref LL_ADC_StartCalibration().
<> 135:176b8275d35d 2664 * @note For devices with differential mode available:
<> 135:176b8275d35d 2665 * Calibration of offset is specific to each of
<> 135:176b8275d35d 2666 * single-ended and differential modes
<> 135:176b8275d35d 2667 * (calibration factor must be specified for each of these
<> 135:176b8275d35d 2668 * differential modes, if used afterwards and if the application
<> 135:176b8275d35d 2669 * requires their calibration).
<> 135:176b8275d35d 2670 * @note In case of setting calibration factors of both modes single ended
<> 135:176b8275d35d 2671 * and differential (parameter LL_ADC_BOTH_SINGLE_DIFF_ENDED):
<> 135:176b8275d35d 2672 * both calibration factors must be concatenated.
<> 135:176b8275d35d 2673 * To perform this processing, use helper macro
<> 135:176b8275d35d 2674 * @ref __LL_ADC_CALIB_FACTOR_SINGLE_DIFF().
<> 135:176b8275d35d 2675 * @note On this STM32 serie, setting of this feature is conditioned to
<> 135:176b8275d35d 2676 * ADC state:
<> 135:176b8275d35d 2677 * ADC must be enabled, without calibration on going, without conversion
<> 135:176b8275d35d 2678 * on going on group regular.
<> 135:176b8275d35d 2679 * @rmtoll CALFACT CALFACT_S LL_ADC_SetCalibrationFactor\n
<> 135:176b8275d35d 2680 * CALFACT CALFACT_D LL_ADC_SetCalibrationFactor
<> 135:176b8275d35d 2681 * @param ADCx ADC instance
<> 135:176b8275d35d 2682 * @param SingleDiff This parameter can be one of the following values:
<> 135:176b8275d35d 2683 * @arg @ref LL_ADC_SINGLE_ENDED
<> 135:176b8275d35d 2684 * @arg @ref LL_ADC_DIFFERENTIAL_ENDED
<> 135:176b8275d35d 2685 * @arg @ref LL_ADC_BOTH_SINGLE_DIFF_ENDED
<> 135:176b8275d35d 2686 * @param CalibrationFactor Value between Min_Data=0x00 and Max_Data=0x7F
<> 135:176b8275d35d 2687 * @retval None
<> 135:176b8275d35d 2688 */
<> 135:176b8275d35d 2689 __STATIC_INLINE void LL_ADC_SetCalibrationFactor(ADC_TypeDef *ADCx, uint32_t SingleDiff, uint32_t CalibrationFactor)
<> 135:176b8275d35d 2690 {
<> 135:176b8275d35d 2691 MODIFY_REG(ADCx->CALFACT,
<> 135:176b8275d35d 2692 SingleDiff & ADC_SINGLEDIFF_CALIB_FACTOR_MASK,
<> 135:176b8275d35d 2693 CalibrationFactor << POSITION_VAL(SingleDiff & ADC_SINGLEDIFF_CALIB_FACTOR_MASK));
<> 135:176b8275d35d 2694 }
<> 135:176b8275d35d 2695
<> 135:176b8275d35d 2696 /**
<> 135:176b8275d35d 2697 * @brief Get ADC calibration factor in the mode single-ended
<> 135:176b8275d35d 2698 * or differential (for devices with differential mode available).
<> 135:176b8275d35d 2699 * @note Calibration factors are set by hardware after performing
<> 135:176b8275d35d 2700 * a calibration run using function @ref LL_ADC_StartCalibration().
<> 135:176b8275d35d 2701 * @note For devices with differential mode available:
<> 135:176b8275d35d 2702 * Calibration of offset is specific to each of
<> 135:176b8275d35d 2703 * single-ended and differential modes
<> 135:176b8275d35d 2704 * @rmtoll CALFACT CALFACT_S LL_ADC_GetCalibrationFactor\n
<> 135:176b8275d35d 2705 * CALFACT CALFACT_D LL_ADC_GetCalibrationFactor
<> 135:176b8275d35d 2706 * @param ADCx ADC instance
<> 135:176b8275d35d 2707 * @param SingleDiff This parameter can be one of the following values:
<> 135:176b8275d35d 2708 * @arg @ref LL_ADC_SINGLE_ENDED
<> 135:176b8275d35d 2709 * @arg @ref LL_ADC_DIFFERENTIAL_ENDED
<> 135:176b8275d35d 2710 * @retval Value between Min_Data=0x00 and Max_Data=0x7F
<> 135:176b8275d35d 2711 */
<> 135:176b8275d35d 2712 __STATIC_INLINE uint32_t LL_ADC_GetCalibrationFactor(ADC_TypeDef *ADCx, uint32_t SingleDiff)
<> 135:176b8275d35d 2713 {
<> 135:176b8275d35d 2714 /* Retrieve bits with position in register depending on parameter */
<> 135:176b8275d35d 2715 /* "SingleDiff". */
<> 135:176b8275d35d 2716 /* Parameter used with mask "ADC_SINGLEDIFF_CALIB_FACTOR_MASK" because */
<> 135:176b8275d35d 2717 /* containing other bits reserved for other purpose. */
<> 135:176b8275d35d 2718 return (uint32_t)(READ_BIT(ADCx->CALFACT, (SingleDiff & ADC_SINGLEDIFF_CALIB_FACTOR_MASK)) >> POSITION_VAL(SingleDiff & ADC_SINGLEDIFF_CALIB_FACTOR_MASK));
<> 135:176b8275d35d 2719 }
<> 135:176b8275d35d 2720
<> 135:176b8275d35d 2721 /**
<> 135:176b8275d35d 2722 * @brief Set ADC resolution.
<> 135:176b8275d35d 2723 * Refer to reference manual for alignments formats
<> 135:176b8275d35d 2724 * dependencies to ADC resolutions.
<> 135:176b8275d35d 2725 * @note On this STM32 serie, setting of this feature is conditioned to
<> 135:176b8275d35d 2726 * ADC state:
<> 135:176b8275d35d 2727 * ADC must be disabled or enabled without conversion on going
<> 135:176b8275d35d 2728 * on either groups regular or injected.
<> 135:176b8275d35d 2729 * @rmtoll CFGR RES LL_ADC_SetResolution
<> 135:176b8275d35d 2730 * @param ADCx ADC instance
<> 135:176b8275d35d 2731 * @param Resolution This parameter can be one of the following values:
<> 135:176b8275d35d 2732 * @arg @ref LL_ADC_RESOLUTION_12B
<> 135:176b8275d35d 2733 * @arg @ref LL_ADC_RESOLUTION_10B
<> 135:176b8275d35d 2734 * @arg @ref LL_ADC_RESOLUTION_8B
<> 135:176b8275d35d 2735 * @arg @ref LL_ADC_RESOLUTION_6B
<> 135:176b8275d35d 2736 * @retval None
<> 135:176b8275d35d 2737 */
<> 135:176b8275d35d 2738 __STATIC_INLINE void LL_ADC_SetResolution(ADC_TypeDef *ADCx, uint32_t Resolution)
<> 135:176b8275d35d 2739 {
<> 135:176b8275d35d 2740 MODIFY_REG(ADCx->CFGR, ADC_CFGR_RES, Resolution);
<> 135:176b8275d35d 2741 }
<> 135:176b8275d35d 2742
<> 135:176b8275d35d 2743 /**
<> 135:176b8275d35d 2744 * @brief Get ADC resolution.
<> 135:176b8275d35d 2745 * Refer to reference manual for alignments formats
<> 135:176b8275d35d 2746 * dependencies to ADC resolutions.
<> 135:176b8275d35d 2747 * @rmtoll CFGR RES LL_ADC_GetResolution
<> 135:176b8275d35d 2748 * @param ADCx ADC instance
<> 135:176b8275d35d 2749 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 2750 * @arg @ref LL_ADC_RESOLUTION_12B
<> 135:176b8275d35d 2751 * @arg @ref LL_ADC_RESOLUTION_10B
<> 135:176b8275d35d 2752 * @arg @ref LL_ADC_RESOLUTION_8B
<> 135:176b8275d35d 2753 * @arg @ref LL_ADC_RESOLUTION_6B
<> 135:176b8275d35d 2754 */
<> 135:176b8275d35d 2755 __STATIC_INLINE uint32_t LL_ADC_GetResolution(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 2756 {
<> 135:176b8275d35d 2757 return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_RES));
<> 135:176b8275d35d 2758 }
<> 135:176b8275d35d 2759
<> 135:176b8275d35d 2760 /**
<> 135:176b8275d35d 2761 * @brief Set ADC conversion data alignment.
<> 135:176b8275d35d 2762 * @note Refer to reference manual for alignments formats
<> 135:176b8275d35d 2763 * dependencies to ADC resolutions.
<> 135:176b8275d35d 2764 * @note On this STM32 serie, setting of this feature is conditioned to
<> 135:176b8275d35d 2765 * ADC state:
<> 135:176b8275d35d 2766 * ADC must be disabled or enabled without conversion on going
<> 135:176b8275d35d 2767 * on either groups regular or injected.
<> 135:176b8275d35d 2768 * @rmtoll CFGR ALIGN LL_ADC_SetDataAlignment
<> 135:176b8275d35d 2769 * @param ADCx ADC instance
<> 135:176b8275d35d 2770 * @param DataAlignment This parameter can be one of the following values:
<> 135:176b8275d35d 2771 * @arg @ref LL_ADC_DATA_ALIGN_RIGHT
<> 135:176b8275d35d 2772 * @arg @ref LL_ADC_DATA_ALIGN_LEFT
<> 135:176b8275d35d 2773 * @retval None
<> 135:176b8275d35d 2774 */
<> 135:176b8275d35d 2775 __STATIC_INLINE void LL_ADC_SetDataAlignment(ADC_TypeDef *ADCx, uint32_t DataAlignment)
<> 135:176b8275d35d 2776 {
<> 135:176b8275d35d 2777 MODIFY_REG(ADCx->CFGR, ADC_CFGR_ALIGN, DataAlignment);
<> 135:176b8275d35d 2778 }
<> 135:176b8275d35d 2779
<> 135:176b8275d35d 2780 /**
<> 135:176b8275d35d 2781 * @brief Get ADC conversion data alignment.
<> 135:176b8275d35d 2782 * @note Refer to reference manual for alignments formats
<> 135:176b8275d35d 2783 * dependencies to ADC resolutions.
<> 135:176b8275d35d 2784 * @rmtoll CFGR ALIGN LL_ADC_GetDataAlignment
<> 135:176b8275d35d 2785 * @param ADCx ADC instance
<> 135:176b8275d35d 2786 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 2787 * @arg @ref LL_ADC_DATA_ALIGN_RIGHT
<> 135:176b8275d35d 2788 * @arg @ref LL_ADC_DATA_ALIGN_LEFT
<> 135:176b8275d35d 2789 */
<> 135:176b8275d35d 2790 __STATIC_INLINE uint32_t LL_ADC_GetDataAlignment(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 2791 {
<> 135:176b8275d35d 2792 return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_ALIGN));
<> 135:176b8275d35d 2793 }
<> 135:176b8275d35d 2794
<> 135:176b8275d35d 2795 /**
<> 135:176b8275d35d 2796 * @brief Set ADC low power mode.
<> 135:176b8275d35d 2797 * @note Description of ADC low power modes:
<> 135:176b8275d35d 2798 * - ADC low power mode "auto wait": Dynamic low power mode,
<> 135:176b8275d35d 2799 * ADC conversions occurrences are limited to the minimum necessary
<> 135:176b8275d35d 2800 * in order to reduce power consumption.
<> 135:176b8275d35d 2801 * New ADC conversion starts only when the previous
<> 135:176b8275d35d 2802 * unitary conversion data (for ADC group regular)
<> 135:176b8275d35d 2803 * or previous sequence conversions data (for ADC group injected)
<> 135:176b8275d35d 2804 * has been retrieved by user software.
<> 135:176b8275d35d 2805 * In the meantime, ADC remains idle: does not performs any
<> 135:176b8275d35d 2806 * other conversion.
<> 135:176b8275d35d 2807 * This mode allows to automatically adapt the ADC conversions
<> 135:176b8275d35d 2808 * triggers to the speed of the software that reads the data.
<> 135:176b8275d35d 2809 * Moreover, this avoids risk of overrun for low frequency
<> 135:176b8275d35d 2810 * applications.
<> 135:176b8275d35d 2811 * How to use this low power mode:
<> 135:176b8275d35d 2812 * - Do not use with interruption or DMA since these modes
<> 135:176b8275d35d 2813 * have to clear immediately the EOC flag to free the
<> 135:176b8275d35d 2814 * IRQ vector sequencer.
<> 135:176b8275d35d 2815 * - Do use with polling: 1. Start conversion,
<> 135:176b8275d35d 2816 * 2. Later on, when conversion data is needed: poll for end of
<> 135:176b8275d35d 2817 * conversion to ensure that conversion is completed and
<> 135:176b8275d35d 2818 * retrieve ADC conversion data. This will trig another
<> 135:176b8275d35d 2819 * ADC conversion start.
<> 135:176b8275d35d 2820 * - ADC low power mode "auto power-off" (feature available on
<> 135:176b8275d35d 2821 * this device if parameter LL_ADC_LP_MODE_AUTOOFF is available):
<> 135:176b8275d35d 2822 * the ADC automatically powers-off after a conversion and
<> 135:176b8275d35d 2823 * automatically wakes up when a new conversion is triggered
<> 135:176b8275d35d 2824 * (with startup time between trigger and start of sampling).
<> 135:176b8275d35d 2825 * This feature can be combined with low power mode "auto wait".
<> 135:176b8275d35d 2826 * @note With ADC low power mode "auto wait", the ADC conversion data read
<> 135:176b8275d35d 2827 * is corresponding to previous ADC conversion start, independently
<> 135:176b8275d35d 2828 * of delay during which ADC was idle.
<> 135:176b8275d35d 2829 * Therefore, the ADC conversion data may be outdated: does not
<> 135:176b8275d35d 2830 * correspond to the current voltage level on the selected
<> 135:176b8275d35d 2831 * ADC channel.
<> 135:176b8275d35d 2832 * @note On this STM32 serie, setting of this feature is conditioned to
<> 135:176b8275d35d 2833 * ADC state:
<> 135:176b8275d35d 2834 * ADC must be disabled or enabled without conversion on going
<> 135:176b8275d35d 2835 * on either groups regular or injected.
<> 135:176b8275d35d 2836 * @rmtoll CFGR AUTDLY LL_ADC_SetLowPowerMode
<> 135:176b8275d35d 2837 * @param ADCx ADC instance
<> 135:176b8275d35d 2838 * @param LowPowerMode This parameter can be one of the following values:
<> 135:176b8275d35d 2839 * @arg @ref LL_ADC_LP_MODE_NONE
<> 135:176b8275d35d 2840 * @arg @ref LL_ADC_LP_AUTOWAIT
<> 135:176b8275d35d 2841 * @retval None
<> 135:176b8275d35d 2842 */
<> 135:176b8275d35d 2843 __STATIC_INLINE void LL_ADC_SetLowPowerMode(ADC_TypeDef *ADCx, uint32_t LowPowerMode)
<> 135:176b8275d35d 2844 {
<> 135:176b8275d35d 2845 MODIFY_REG(ADCx->CFGR, ADC_CFGR_AUTDLY, LowPowerMode);
<> 135:176b8275d35d 2846 }
<> 135:176b8275d35d 2847
<> 135:176b8275d35d 2848 /**
<> 135:176b8275d35d 2849 * @brief Get ADC low power mode:
<> 135:176b8275d35d 2850 * @note Description of ADC low power modes:
<> 135:176b8275d35d 2851 * - ADC low power mode "auto wait": Dynamic low power mode,
<> 135:176b8275d35d 2852 * ADC conversions occurrences are limited to the minimum necessary
<> 135:176b8275d35d 2853 * in order to reduce power consumption.
<> 135:176b8275d35d 2854 * New ADC conversion starts only when the previous
<> 135:176b8275d35d 2855 * unitary conversion data (for ADC group regular)
<> 135:176b8275d35d 2856 * or previous sequence conversions data (for ADC group injected)
<> 135:176b8275d35d 2857 * has been retrieved by user software.
<> 135:176b8275d35d 2858 * In the meantime, ADC remains idle: does not performs any
<> 135:176b8275d35d 2859 * other conversion.
<> 135:176b8275d35d 2860 * This mode allows to automatically adapt the ADC conversions
<> 135:176b8275d35d 2861 * triggers to the speed of the software that reads the data.
<> 135:176b8275d35d 2862 * Moreover, this avoids risk of overrun for low frequency
<> 135:176b8275d35d 2863 * applications.
<> 135:176b8275d35d 2864 * How to use this low power mode:
<> 135:176b8275d35d 2865 * - Do not use with interruption or DMA since these modes
<> 135:176b8275d35d 2866 * have to clear immediately the EOC flag to free the
<> 135:176b8275d35d 2867 * IRQ vector sequencer.
<> 135:176b8275d35d 2868 * - Do use with polling: 1. Start conversion,
<> 135:176b8275d35d 2869 * 2. Later on, when conversion data is needed: poll for end of
<> 135:176b8275d35d 2870 * conversion to ensure that conversion is completed and
<> 135:176b8275d35d 2871 * retrieve ADC conversion data. This will trig another
<> 135:176b8275d35d 2872 * ADC conversion start.
<> 135:176b8275d35d 2873 * - ADC low power mode "auto power-off" (feature available on
<> 135:176b8275d35d 2874 * this device if parameter LL_ADC_LP_MODE_AUTOOFF is available):
<> 135:176b8275d35d 2875 * the ADC automatically powers-off after a conversion and
<> 135:176b8275d35d 2876 * automatically wakes up when a new conversion is triggered
<> 135:176b8275d35d 2877 * (with startup time between trigger and start of sampling).
<> 135:176b8275d35d 2878 * This feature can be combined with low power mode "auto wait".
<> 135:176b8275d35d 2879 * @note With ADC low power mode "auto wait", the ADC conversion data read
<> 135:176b8275d35d 2880 * is corresponding to previous ADC conversion start, independently
<> 135:176b8275d35d 2881 * of delay during which ADC was idle.
<> 135:176b8275d35d 2882 * Therefore, the ADC conversion data may be outdated: does not
<> 135:176b8275d35d 2883 * correspond to the current voltage level on the selected
<> 135:176b8275d35d 2884 * ADC channel.
<> 135:176b8275d35d 2885 * @rmtoll CFGR AUTDLY LL_ADC_GetLowPowerMode
<> 135:176b8275d35d 2886 * @param ADCx ADC instance
<> 135:176b8275d35d 2887 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 2888 * @arg @ref LL_ADC_LP_MODE_NONE
<> 135:176b8275d35d 2889 * @arg @ref LL_ADC_LP_AUTOWAIT
<> 135:176b8275d35d 2890 */
<> 135:176b8275d35d 2891 __STATIC_INLINE uint32_t LL_ADC_GetLowPowerMode(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 2892 {
<> 135:176b8275d35d 2893 return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_AUTDLY));
<> 135:176b8275d35d 2894 }
<> 135:176b8275d35d 2895
<> 135:176b8275d35d 2896 /**
<> 135:176b8275d35d 2897 * @brief Set ADC selected offset number 1, 2, 3 or 4.
<> 135:176b8275d35d 2898 * @note This function set the 2 items of offset configuration:
<> 135:176b8275d35d 2899 * - ADC channel to which the offset programmed will be applied
<> 135:176b8275d35d 2900 * (independently of channel mapped on ADC group regular
<> 135:176b8275d35d 2901 * or group injected)
<> 135:176b8275d35d 2902 * - Offset level (offset to be subtracted from the raw
<> 135:176b8275d35d 2903 * converted data).
<> 135:176b8275d35d 2904 * @note Caution: Offset format is dependent to ADC resolution:
<> 135:176b8275d35d 2905 * offset has to be left-aligned on bit 11, the LSB (right bits)
<> 135:176b8275d35d 2906 * are set to 0.
<> 135:176b8275d35d 2907 * @note This function enables the offset, by default. It can be forced
<> 135:176b8275d35d 2908 * to disable state using function LL_ADC_SetOffsetState().
<> 135:176b8275d35d 2909 * @note If a channel is mapped on several offsets numbers, only the offset
<> 135:176b8275d35d 2910 * with the lowest value is considered for the subtraction.
<> 135:176b8275d35d 2911 * @note On this STM32 serie, setting of this feature is conditioned to
<> 135:176b8275d35d 2912 * ADC state:
<> 135:176b8275d35d 2913 * ADC must be disabled or enabled without conversion on going
<> 135:176b8275d35d 2914 * on either groups regular or injected.
<> 135:176b8275d35d 2915 * @rmtoll OFR1 OFFSET1_CH LL_ADC_SetOffset\n
<> 135:176b8275d35d 2916 * OFR1 OFFSET1 LL_ADC_SetOffset\n
<> 135:176b8275d35d 2917 * OFR1 OFFSET1_EN LL_ADC_SetOffset\n
<> 135:176b8275d35d 2918 * OFR2 OFFSET2_CH LL_ADC_SetOffset\n
<> 135:176b8275d35d 2919 * OFR2 OFFSET2 LL_ADC_SetOffset\n
<> 135:176b8275d35d 2920 * OFR2 OFFSET2_EN LL_ADC_SetOffset\n
<> 135:176b8275d35d 2921 * OFR3 OFFSET3_CH LL_ADC_SetOffset\n
<> 135:176b8275d35d 2922 * OFR3 OFFSET3 LL_ADC_SetOffset\n
<> 135:176b8275d35d 2923 * OFR3 OFFSET3_EN LL_ADC_SetOffset\n
<> 135:176b8275d35d 2924 * OFR4 OFFSET4_CH LL_ADC_SetOffset\n
<> 135:176b8275d35d 2925 * OFR4 OFFSET4 LL_ADC_SetOffset\n
<> 135:176b8275d35d 2926 * OFR4 OFFSET4_EN LL_ADC_SetOffset
<> 135:176b8275d35d 2927 * @param ADCx ADC instance
<> 135:176b8275d35d 2928 * @param Offsety This parameter can be one of the following values:
<> 135:176b8275d35d 2929 * @arg @ref LL_ADC_OFFSET_1
<> 135:176b8275d35d 2930 * @arg @ref LL_ADC_OFFSET_2
<> 135:176b8275d35d 2931 * @arg @ref LL_ADC_OFFSET_3
<> 135:176b8275d35d 2932 * @arg @ref LL_ADC_OFFSET_4
<> 135:176b8275d35d 2933 * @param Channel This parameter can be one of the following values:
<> 135:176b8275d35d 2934 * @arg @ref LL_ADC_CHANNEL_0
<> 135:176b8275d35d 2935 * @arg @ref LL_ADC_CHANNEL_1
<> 135:176b8275d35d 2936 * @arg @ref LL_ADC_CHANNEL_2
<> 135:176b8275d35d 2937 * @arg @ref LL_ADC_CHANNEL_3
<> 135:176b8275d35d 2938 * @arg @ref LL_ADC_CHANNEL_4
<> 135:176b8275d35d 2939 * @arg @ref LL_ADC_CHANNEL_5
<> 135:176b8275d35d 2940 * @arg @ref LL_ADC_CHANNEL_6
<> 135:176b8275d35d 2941 * @arg @ref LL_ADC_CHANNEL_7
<> 135:176b8275d35d 2942 * @arg @ref LL_ADC_CHANNEL_8
<> 135:176b8275d35d 2943 * @arg @ref LL_ADC_CHANNEL_9
<> 135:176b8275d35d 2944 * @arg @ref LL_ADC_CHANNEL_10
<> 135:176b8275d35d 2945 * @arg @ref LL_ADC_CHANNEL_11
<> 135:176b8275d35d 2946 * @arg @ref LL_ADC_CHANNEL_12
<> 135:176b8275d35d 2947 * @arg @ref LL_ADC_CHANNEL_13
<> 135:176b8275d35d 2948 * @arg @ref LL_ADC_CHANNEL_14
<> 135:176b8275d35d 2949 * @arg @ref LL_ADC_CHANNEL_15
<> 135:176b8275d35d 2950 * @arg @ref LL_ADC_CHANNEL_16
<> 135:176b8275d35d 2951 * @arg @ref LL_ADC_CHANNEL_17
<> 135:176b8275d35d 2952 * @arg @ref LL_ADC_CHANNEL_18
<> 135:176b8275d35d 2953 * @arg @ref LL_ADC_CHANNEL_VREFINT (5)
<> 135:176b8275d35d 2954 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (1)
<> 135:176b8275d35d 2955 * @arg @ref LL_ADC_CHANNEL_VBAT (1)
<> 135:176b8275d35d 2956 * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1)
<> 135:176b8275d35d 2957 * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2)
<> 135:176b8275d35d 2958 * @arg @ref LL_ADC_CHANNEL_VOPAMP3 (3)
<> 135:176b8275d35d 2959 * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (4)
<> 135:176b8275d35d 2960 *
<> 135:176b8275d35d 2961 * (1) On STM32F3, parameter available only on ADC instance: ADC1.\n
<> 135:176b8275d35d 2962 * (2) On STM32F3, parameter available only on ADC instance: ADC2.\n
<> 135:176b8275d35d 2963 * (3) On STM32F3, parameter available only on ADC instance: ADC3.\n
<> 135:176b8275d35d 2964 * (4) On STM32F3, parameter available only on ADC instances: ADC4.\n
<> 135:176b8275d35d 2965 * (5) On STM32F3, ADC channel available only on all ADC instances, but
<> 135:176b8275d35d 2966 * only one ADC instance is allowed to be connected to VrefInt at the same time.
<> 135:176b8275d35d 2967 * @param OffsetLevel Value between Min_Data=0x000 and Max_Data=0xFFF
<> 135:176b8275d35d 2968 * @retval None
<> 135:176b8275d35d 2969 */
<> 135:176b8275d35d 2970 __STATIC_INLINE void LL_ADC_SetOffset(ADC_TypeDef *ADCx, uint32_t Offsety, uint32_t Channel, uint32_t OffsetLevel)
<> 135:176b8275d35d 2971 {
<> 135:176b8275d35d 2972 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->OFR1, Offsety);
<> 135:176b8275d35d 2973
<> 135:176b8275d35d 2974 MODIFY_REG(*preg,
<> 135:176b8275d35d 2975 ADC_OFR1_OFFSET1_EN | ADC_OFR1_OFFSET1_CH | ADC_OFR1_OFFSET1,
<> 135:176b8275d35d 2976 ADC_OFR1_OFFSET1_EN | (Channel & ADC_CHANNEL_ID_NUMBER_MASK) | OffsetLevel);
<> 135:176b8275d35d 2977 }
<> 135:176b8275d35d 2978
<> 135:176b8275d35d 2979 /**
<> 135:176b8275d35d 2980 * @brief Get for the ADC selected offset number 1, 2, 3 or 4:
<> 135:176b8275d35d 2981 * Channel to which the offset programmed will be applied
<> 135:176b8275d35d 2982 * (independently of channel mapped on ADC group regular
<> 135:176b8275d35d 2983 * or group injected)
<> 135:176b8275d35d 2984 * @note Usage of the returned channel number:
<> 135:176b8275d35d 2985 * - To reinject this channel into another function LL_ADC_xxx:
<> 135:176b8275d35d 2986 * the returned channel number is only partly formatted on definition
<> 135:176b8275d35d 2987 * of literals LL_ADC_CHANNEL_x. Therefore, it has to be compared
<> 135:176b8275d35d 2988 * with parts of literals LL_ADC_CHANNEL_x or using
<> 135:176b8275d35d 2989 * helper macro @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
<> 135:176b8275d35d 2990 * Then the selected literal LL_ADC_CHANNEL_x can be used
<> 135:176b8275d35d 2991 * as parameter for another function.
<> 135:176b8275d35d 2992 * - To get the channel number in decimal format:
<> 135:176b8275d35d 2993 * process the returned value with the helper macro
<> 135:176b8275d35d 2994 * @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
<> 135:176b8275d35d 2995 * @rmtoll OFR1 OFFSET1_CH LL_ADC_GetOffsetChannel\n
<> 135:176b8275d35d 2996 * OFR2 OFFSET2_CH LL_ADC_GetOffsetChannel\n
<> 135:176b8275d35d 2997 * OFR3 OFFSET3_CH LL_ADC_GetOffsetChannel\n
<> 135:176b8275d35d 2998 * OFR4 OFFSET4_CH LL_ADC_GetOffsetChannel
<> 135:176b8275d35d 2999 * @param ADCx ADC instance
<> 135:176b8275d35d 3000 * @param Offsety This parameter can be one of the following values:
<> 135:176b8275d35d 3001 * @arg @ref LL_ADC_OFFSET_1
<> 135:176b8275d35d 3002 * @arg @ref LL_ADC_OFFSET_2
<> 135:176b8275d35d 3003 * @arg @ref LL_ADC_OFFSET_3
<> 135:176b8275d35d 3004 * @arg @ref LL_ADC_OFFSET_4
<> 135:176b8275d35d 3005 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 3006 * @arg @ref LL_ADC_CHANNEL_0
<> 135:176b8275d35d 3007 * @arg @ref LL_ADC_CHANNEL_1
<> 135:176b8275d35d 3008 * @arg @ref LL_ADC_CHANNEL_2
<> 135:176b8275d35d 3009 * @arg @ref LL_ADC_CHANNEL_3
<> 135:176b8275d35d 3010 * @arg @ref LL_ADC_CHANNEL_4
<> 135:176b8275d35d 3011 * @arg @ref LL_ADC_CHANNEL_5
<> 135:176b8275d35d 3012 * @arg @ref LL_ADC_CHANNEL_6
<> 135:176b8275d35d 3013 * @arg @ref LL_ADC_CHANNEL_7
<> 135:176b8275d35d 3014 * @arg @ref LL_ADC_CHANNEL_8
<> 135:176b8275d35d 3015 * @arg @ref LL_ADC_CHANNEL_9
<> 135:176b8275d35d 3016 * @arg @ref LL_ADC_CHANNEL_10
<> 135:176b8275d35d 3017 * @arg @ref LL_ADC_CHANNEL_11
<> 135:176b8275d35d 3018 * @arg @ref LL_ADC_CHANNEL_12
<> 135:176b8275d35d 3019 * @arg @ref LL_ADC_CHANNEL_13
<> 135:176b8275d35d 3020 * @arg @ref LL_ADC_CHANNEL_14
<> 135:176b8275d35d 3021 * @arg @ref LL_ADC_CHANNEL_15
<> 135:176b8275d35d 3022 * @arg @ref LL_ADC_CHANNEL_16
<> 135:176b8275d35d 3023 * @arg @ref LL_ADC_CHANNEL_17
<> 135:176b8275d35d 3024 * @arg @ref LL_ADC_CHANNEL_18
<> 135:176b8275d35d 3025 * @arg @ref LL_ADC_CHANNEL_VREFINT (5)
<> 135:176b8275d35d 3026 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (1)
<> 135:176b8275d35d 3027 * @arg @ref LL_ADC_CHANNEL_VBAT (1)
<> 135:176b8275d35d 3028 * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1)
<> 135:176b8275d35d 3029 * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2)
<> 135:176b8275d35d 3030 * @arg @ref LL_ADC_CHANNEL_VOPAMP3 (3)
<> 135:176b8275d35d 3031 * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (4)
<> 135:176b8275d35d 3032 *
<> 135:176b8275d35d 3033 * (1) On STM32F3, parameter available only on ADC instance: ADC1.\n
<> 135:176b8275d35d 3034 * (2) On STM32F3, parameter available only on ADC instance: ADC2.\n
<> 135:176b8275d35d 3035 * (3) On STM32F3, parameter available only on ADC instance: ADC3.\n
<> 135:176b8275d35d 3036 * (4) On STM32F3, parameter available only on ADC instances: ADC4.\n
<> 135:176b8275d35d 3037 * (5) On STM32F3, ADC channel available only on all ADC instances, but
<> 135:176b8275d35d 3038 * only one ADC instance is allowed to be connected to VrefInt at the same time.\n
<> 135:176b8275d35d 3039 * (1, 2, 3, 4, 5) For ADC channel read back from ADC register,
<> 135:176b8275d35d 3040 * comparison with internal channel parameter to be done
<> 135:176b8275d35d 3041 * using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL().
<> 135:176b8275d35d 3042 */
<> 135:176b8275d35d 3043 __STATIC_INLINE uint32_t LL_ADC_GetOffsetChannel(ADC_TypeDef *ADCx, uint32_t Offsety)
<> 135:176b8275d35d 3044 {
<> 135:176b8275d35d 3045 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->OFR1, Offsety);
<> 135:176b8275d35d 3046
<> 135:176b8275d35d 3047 return (uint32_t) READ_BIT(*preg, ADC_OFR1_OFFSET1_CH);
<> 135:176b8275d35d 3048 }
<> 135:176b8275d35d 3049
<> 135:176b8275d35d 3050 /**
<> 135:176b8275d35d 3051 * @brief Get for the ADC selected offset number 1, 2, 3 or 4:
<> 135:176b8275d35d 3052 * Offset level (offset to be subtracted from the raw
<> 135:176b8275d35d 3053 * converted data).
<> 135:176b8275d35d 3054 * @note Caution: Offset format is dependent to ADC resolution:
<> 135:176b8275d35d 3055 * offset has to be left-aligned on bit 11, the LSB (right bits)
<> 135:176b8275d35d 3056 * are set to 0.
<> 135:176b8275d35d 3057 * @rmtoll OFR1 OFFSET1 LL_ADC_GetOffsetLevel\n
<> 135:176b8275d35d 3058 * OFR2 OFFSET2 LL_ADC_GetOffsetLevel\n
<> 135:176b8275d35d 3059 * OFR3 OFFSET3 LL_ADC_GetOffsetLevel\n
<> 135:176b8275d35d 3060 * OFR4 OFFSET4 LL_ADC_GetOffsetLevel
<> 135:176b8275d35d 3061 * @param ADCx ADC instance
<> 135:176b8275d35d 3062 * @param Offsety This parameter can be one of the following values:
<> 135:176b8275d35d 3063 * @arg @ref LL_ADC_OFFSET_1
<> 135:176b8275d35d 3064 * @arg @ref LL_ADC_OFFSET_2
<> 135:176b8275d35d 3065 * @arg @ref LL_ADC_OFFSET_3
<> 135:176b8275d35d 3066 * @arg @ref LL_ADC_OFFSET_4
<> 135:176b8275d35d 3067 * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
<> 135:176b8275d35d 3068 */
<> 135:176b8275d35d 3069 __STATIC_INLINE uint32_t LL_ADC_GetOffsetLevel(ADC_TypeDef *ADCx, uint32_t Offsety)
<> 135:176b8275d35d 3070 {
<> 135:176b8275d35d 3071 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->OFR1, Offsety);
<> 135:176b8275d35d 3072
<> 135:176b8275d35d 3073 return (uint32_t) READ_BIT(*preg, ADC_OFR1_OFFSET1);
<> 135:176b8275d35d 3074 }
<> 135:176b8275d35d 3075
<> 135:176b8275d35d 3076 /**
<> 135:176b8275d35d 3077 * @brief Set for the ADC selected offset number 1, 2, 3 or 4:
<> 135:176b8275d35d 3078 * force offset state disable or enable
<> 135:176b8275d35d 3079 * without modifying offset channel or offset value.
<> 135:176b8275d35d 3080 * @note This function should be needed only in case of offset to be
<> 135:176b8275d35d 3081 * enabled-disabled dynamically, and should not be needed in other cases:
<> 135:176b8275d35d 3082 * function LL_ADC_SetOffset() automatically enables the offset.
<> 135:176b8275d35d 3083 * @note On this STM32 serie, setting of this feature is conditioned to
<> 135:176b8275d35d 3084 * ADC state:
<> 135:176b8275d35d 3085 * ADC must be disabled or enabled without conversion on going
<> 135:176b8275d35d 3086 * on either groups regular or injected.
<> 135:176b8275d35d 3087 * @rmtoll OFR1 OFFSET1_EN LL_ADC_SetOffsetState\n
<> 135:176b8275d35d 3088 * OFR2 OFFSET2_EN LL_ADC_SetOffsetState\n
<> 135:176b8275d35d 3089 * OFR3 OFFSET3_EN LL_ADC_SetOffsetState\n
<> 135:176b8275d35d 3090 * OFR4 OFFSET4_EN LL_ADC_SetOffsetState
<> 135:176b8275d35d 3091 * @param ADCx ADC instance
<> 135:176b8275d35d 3092 * @param Offsety This parameter can be one of the following values:
<> 135:176b8275d35d 3093 * @arg @ref LL_ADC_OFFSET_1
<> 135:176b8275d35d 3094 * @arg @ref LL_ADC_OFFSET_2
<> 135:176b8275d35d 3095 * @arg @ref LL_ADC_OFFSET_3
<> 135:176b8275d35d 3096 * @arg @ref LL_ADC_OFFSET_4
<> 135:176b8275d35d 3097 * @param OffsetState This parameter can be one of the following values:
<> 135:176b8275d35d 3098 * @arg @ref LL_ADC_OFFSET_DISABLE
<> 135:176b8275d35d 3099 * @arg @ref LL_ADC_OFFSET_ENABLE
<> 135:176b8275d35d 3100 * @retval None
<> 135:176b8275d35d 3101 */
<> 135:176b8275d35d 3102 __STATIC_INLINE void LL_ADC_SetOffsetState(ADC_TypeDef *ADCx, uint32_t Offsety, uint32_t OffsetState)
<> 135:176b8275d35d 3103 {
<> 135:176b8275d35d 3104 register uint32_t *preg = (uint32_t *)((uint32_t)
<> 135:176b8275d35d 3105 ((uint32_t)(&ADCx->OFR1) + (Offsety*4U)));
<> 135:176b8275d35d 3106
<> 135:176b8275d35d 3107 MODIFY_REG(*preg,
<> 135:176b8275d35d 3108 ADC_OFR1_OFFSET1_EN,
<> 135:176b8275d35d 3109 OffsetState);
<> 135:176b8275d35d 3110 }
<> 135:176b8275d35d 3111
<> 135:176b8275d35d 3112 /**
<> 135:176b8275d35d 3113 * @brief Get for the ADC selected offset number 1, 2, 3 or 4:
<> 135:176b8275d35d 3114 * offset state disabled or enabled.
<> 135:176b8275d35d 3115 * @rmtoll OFR1 OFFSET1_EN LL_ADC_GetOffsetState\n
<> 135:176b8275d35d 3116 * OFR2 OFFSET2_EN LL_ADC_GetOffsetState\n
<> 135:176b8275d35d 3117 * OFR3 OFFSET3_EN LL_ADC_GetOffsetState\n
<> 135:176b8275d35d 3118 * OFR4 OFFSET4_EN LL_ADC_GetOffsetState
<> 135:176b8275d35d 3119 * @param ADCx ADC instance
<> 135:176b8275d35d 3120 * @param Offsety This parameter can be one of the following values:
<> 135:176b8275d35d 3121 * @arg @ref LL_ADC_OFFSET_1
<> 135:176b8275d35d 3122 * @arg @ref LL_ADC_OFFSET_2
<> 135:176b8275d35d 3123 * @arg @ref LL_ADC_OFFSET_3
<> 135:176b8275d35d 3124 * @arg @ref LL_ADC_OFFSET_4
<> 135:176b8275d35d 3125 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 3126 * @arg @ref LL_ADC_OFFSET_DISABLE
<> 135:176b8275d35d 3127 * @arg @ref LL_ADC_OFFSET_ENABLE
<> 135:176b8275d35d 3128 */
<> 135:176b8275d35d 3129 __STATIC_INLINE uint32_t LL_ADC_GetOffsetState(ADC_TypeDef *ADCx, uint32_t Offsety)
<> 135:176b8275d35d 3130 {
<> 135:176b8275d35d 3131 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->OFR1, Offsety);
<> 135:176b8275d35d 3132
<> 135:176b8275d35d 3133 return (uint32_t) READ_BIT(*preg, ADC_OFR1_OFFSET1_EN);
<> 135:176b8275d35d 3134 }
<> 135:176b8275d35d 3135
<> 135:176b8275d35d 3136 /**
<> 135:176b8275d35d 3137 * @}
<> 135:176b8275d35d 3138 */
<> 135:176b8275d35d 3139
<> 135:176b8275d35d 3140 /** @defgroup ADC_LL_EF_Configuration_ADC_Group_Regular Configuration of ADC hierarchical scope: group regular
<> 135:176b8275d35d 3141 * @{
<> 135:176b8275d35d 3142 */
<> 135:176b8275d35d 3143
<> 135:176b8275d35d 3144 /**
<> 135:176b8275d35d 3145 * @brief Set ADC group regular conversion trigger source:
<> 135:176b8275d35d 3146 * internal (SW start) or from external IP (timer event,
<> 135:176b8275d35d 3147 * external interrupt line).
<> 135:176b8275d35d 3148 * @note On this STM32 serie, setting trigger source to external trigger
<> 135:176b8275d35d 3149 * also set trigger polarity to rising edge
<> 135:176b8275d35d 3150 * (default setting for compatibility with some ADC on other
<> 135:176b8275d35d 3151 * STM32 families having this setting set by HW default value).
<> 135:176b8275d35d 3152 * In case of need to modify trigger edge, use
<> 135:176b8275d35d 3153 * function @ref LL_ADC_REG_SetTriggerEdge().
<> 135:176b8275d35d 3154 * @note Availability of parameters of trigger sources from timer
<> 135:176b8275d35d 3155 * depends on timers availability on the selected device.
<> 135:176b8275d35d 3156 * @note On this STM32 serie, setting of this feature is conditioned to
<> 135:176b8275d35d 3157 * ADC state:
<> 135:176b8275d35d 3158 * ADC must be disabled or enabled without conversion on going
<> 135:176b8275d35d 3159 * on group regular.
<> 135:176b8275d35d 3160 * @rmtoll CFGR EXTSEL LL_ADC_REG_SetTriggerSource\n
<> 135:176b8275d35d 3161 * CFGR EXTEN LL_ADC_REG_SetTriggerSource
<> 135:176b8275d35d 3162 * @param ADCx ADC instance
<> 135:176b8275d35d 3163 * @param TriggerSource This parameter can be one of the following values:
<> 135:176b8275d35d 3164 * @arg @ref LL_ADC_REG_TRIG_SOFTWARE
<> 135:176b8275d35d 3165 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_TRGO
<> 135:176b8275d35d 3166 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_TRGO2
<> 135:176b8275d35d 3167 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH1 (3)(4)(5)(6)
<> 135:176b8275d35d 3168 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH1_ADC12 (1)(2) (7)
<> 135:176b8275d35d 3169 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH2 (3)(4)(5)(6)
<> 135:176b8275d35d 3170 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH2_ADC12 (1)(2) (7)
<> 135:176b8275d35d 3171 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH3
<> 135:176b8275d35d 3172 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_TRGO (3)(4)(5)(6)
<> 135:176b8275d35d 3173 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_TRGO_ADC12 (1)(2) (7)
<> 135:176b8275d35d 3174 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_TRGO__ADC34 (1)(2) (8)
<> 135:176b8275d35d 3175 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_CH1_ADC34 (1)(2) (8)
<> 135:176b8275d35d 3176 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_CH2_ADC12 (1)(2) (7)
<> 135:176b8275d35d 3177 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_CH3_ADC34 (1)(2) (8)
<> 135:176b8275d35d 3178 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_TRGO (3)(4)(5)
<> 135:176b8275d35d 3179 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_TRGO_ADC12 (1)(2) (7)
<> 135:176b8275d35d 3180 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_TRGO__ADC34 (1)(2) (8)
<> 135:176b8275d35d 3181 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_CH1_ADC34 (1)(2) (8)
<> 135:176b8275d35d 3182 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_CH4 (3)(4)(5)
<> 135:176b8275d35d 3183 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_CH4_ADC12 (1)(2) (7)
<> 135:176b8275d35d 3184 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_TRGO (1)(2)(3)(5)
<> 135:176b8275d35d 3185 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_CH1_ADC34 (1)(2) (8)
<> 135:176b8275d35d 3186 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_CH4 (3) (5)
<> 135:176b8275d35d 3187 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_CH4_ADC12 (1)(2) (7)
<> 135:176b8275d35d 3188 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM6_TRGO (3)(4)(5)(6)
<> 135:176b8275d35d 3189 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM6_TRGO_ADC12 (1)(2) (7)
<> 135:176b8275d35d 3190 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_TRGO (3)
<> 135:176b8275d35d 3191 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_TRGO_ADC12 (1)(2) (7)
<> 135:176b8275d35d 3192 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_TRGO2 (1)(2)
<> 135:176b8275d35d 3193 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM6_TRGO_ADC12 (1)(2) (7)
<> 135:176b8275d35d 3194 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM7_TRGO_ADC34 (1)(2) (8)
<> 135:176b8275d35d 3195 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_TRGO__ADC34 (1)(2) (8)
<> 135:176b8275d35d 3196 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_TRGO2 (1)(2)
<> 135:176b8275d35d 3197 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_CH1_ADC34 (1)(2) (8)
<> 135:176b8275d35d 3198 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM15_TRGO (5)
<> 135:176b8275d35d 3199 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_TRG0_ADC12 (1) (7)
<> 135:176b8275d35d 3200 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_TRG02_ADC12 (1) (7)
<> 135:176b8275d35d 3201 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_CH1_ADC12 (1) (7)
<> 135:176b8275d35d 3202 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_CH2_ADC12 (1) (7)
<> 135:176b8275d35d 3203 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_CH3_ADC12 (1) (7)
<> 135:176b8275d35d 3204 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_TRG0_ADC3 (1) (8)
<> 135:176b8275d35d 3205 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_TRG02_ADC34 (1) (8)
<> 135:176b8275d35d 3206 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_CH1_ADC34 (1) (8)
<> 135:176b8275d35d 3207 * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG1 (4)
<> 135:176b8275d35d 3208 * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG3 (4)
<> 135:176b8275d35d 3209 * @arg @ref LL_ADC_REG_TRIG_EXT_EXTI_LINE2_ADC34 (1)(2) (8)
<> 135:176b8275d35d 3210 * @arg @ref LL_ADC_REG_TRIG_EXT_EXTI_LINE11 (3)(4)(5)(6)
<> 135:176b8275d35d 3211 * @arg @ref LL_ADC_REG_TRIG_EXT_EXTI_LINE11_ADC12 (1)(2) (7)
<> 135:176b8275d35d 3212
<> 135:176b8275d35d 3213 * (1) On STM32F3, parameter not available on all devices: among others, on STM32F303xE, STM32F398xx.\n
<> 135:176b8275d35d 3214 * (2) On STM32F3, parameter not available on all devices: among others, on STM32F303xC, STM32F358xx.\n
<> 135:176b8275d35d 3215 * (3) On STM32F3, parameter not available on all devices: among others, on STM32F303x8, STM32F328xx.\n
<> 135:176b8275d35d 3216 * (4) On STM32F3, parameter not available on all devices: among others, on STM32F334x8.\n
<> 135:176b8275d35d 3217 * (5) On STM32F3, parameter not available on all devices: among others, on STM32F302xC, STM32F302xE.\n
<> 135:176b8275d35d 3218 * (6) On STM32F3, parameter not available on all devices: among others, on STM32F301x8, STM32F302x8, STM32F318xx.\n
<> 135:176b8275d35d 3219 * (7) On STM32F3, parameter not available on all ADC instances: ADC1, ADC2 (for ADC instances ADCx available on the selected device).\n
<> 135:176b8275d35d 3220 * (8) On STM32F3, parameter not available on all ADC instances: ADC3, ADC4 (for ADC instances ADCx available on the selected device).
<> 135:176b8275d35d 3221 * @retval None
<> 135:176b8275d35d 3222 */
<> 135:176b8275d35d 3223 __STATIC_INLINE void LL_ADC_REG_SetTriggerSource(ADC_TypeDef *ADCx, uint32_t TriggerSource)
<> 135:176b8275d35d 3224 {
<> 135:176b8275d35d 3225 MODIFY_REG(ADCx->CFGR, ADC_CFGR_EXTEN | ADC_CFGR_EXTSEL, TriggerSource);
<> 135:176b8275d35d 3226 }
<> 135:176b8275d35d 3227
<> 135:176b8275d35d 3228 /**
<> 135:176b8275d35d 3229 * @brief Get ADC group regular conversion trigger source:
<> 135:176b8275d35d 3230 * internal (SW start) or from external IP (timer event,
<> 135:176b8275d35d 3231 * external interrupt line).
<> 135:176b8275d35d 3232 * @note To determine whether group regular trigger source is
<> 135:176b8275d35d 3233 * internal (SW start) or external, without detail
<> 135:176b8275d35d 3234 * of which peripheral is selected as external trigger,
<> 135:176b8275d35d 3235 * (equivalent to
<> 135:176b8275d35d 3236 * "if(LL_ADC_REG_GetTriggerSource(ADC1) == LL_ADC_REG_TRIG_SOFTWARE)")
<> 135:176b8275d35d 3237 * use function @ref LL_ADC_REG_IsTriggerSourceSWStart.
<> 135:176b8275d35d 3238 * @note Availability of parameters of trigger sources from timer
<> 135:176b8275d35d 3239 * depends on timers availability on the selected device.
<> 135:176b8275d35d 3240 * @rmtoll CFGR EXTSEL LL_ADC_REG_GetTriggerSource\n
<> 135:176b8275d35d 3241 * CFGR EXTEN LL_ADC_REG_GetTriggerSource
<> 135:176b8275d35d 3242 * @param ADCx ADC instance
<> 135:176b8275d35d 3243 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 3244 * @arg @ref LL_ADC_REG_TRIG_SOFTWARE
<> 135:176b8275d35d 3245 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_TRGO
<> 135:176b8275d35d 3246 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_TRGO2
<> 135:176b8275d35d 3247 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH1 (3)(4)(5)(6)
<> 135:176b8275d35d 3248 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH1_ADC12 (1)(2) (7)
<> 135:176b8275d35d 3249 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH2 (3)(4)(5)(6)
<> 135:176b8275d35d 3250 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH2_ADC12 (1)(2) (7)
<> 135:176b8275d35d 3251 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH3
<> 135:176b8275d35d 3252 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_TRGO (3)(4)(5)(6)
<> 135:176b8275d35d 3253 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_TRGO_ADC12 (1)(2) (7)
<> 135:176b8275d35d 3254 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_TRGO__ADC34 (1)(2) (8)
<> 135:176b8275d35d 3255 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_CH1_ADC34 (1)(2) (8)
<> 135:176b8275d35d 3256 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_CH2_ADC12 (1)(2) (7)
<> 135:176b8275d35d 3257 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_CH3_ADC34 (1)(2) (8)
<> 135:176b8275d35d 3258 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_TRGO (3)(4)(5)
<> 135:176b8275d35d 3259 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_TRGO_ADC12 (1)(2) (7)
<> 135:176b8275d35d 3260 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_TRGO__ADC34 (1)(2) (8)
<> 135:176b8275d35d 3261 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_CH1_ADC34 (1)(2) (8)
<> 135:176b8275d35d 3262 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_CH4 (3)(4)(5)
<> 135:176b8275d35d 3263 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_CH4_ADC12 (1)(2) (7)
<> 135:176b8275d35d 3264 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_TRGO (1)(2)(3)(5)
<> 135:176b8275d35d 3265 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_CH1_ADC34 (1)(2) (8)
<> 135:176b8275d35d 3266 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_CH4 (3) (5)
<> 135:176b8275d35d 3267 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_CH4_ADC12 (1)(2) (7)
<> 135:176b8275d35d 3268 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM6_TRGO (3)(4)(5)(6)
<> 135:176b8275d35d 3269 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM6_TRGO_ADC12 (1)(2) (7)
<> 135:176b8275d35d 3270 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_TRGO (3)
<> 135:176b8275d35d 3271 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_TRGO_ADC12 (1)(2) (7)
<> 135:176b8275d35d 3272 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_TRGO2 (1)(2)
<> 135:176b8275d35d 3273 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM6_TRGO_ADC12 (1)(2) (7)
<> 135:176b8275d35d 3274 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM7_TRGO_ADC34 (1)(2) (8)
<> 135:176b8275d35d 3275 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_TRGO__ADC34 (1)(2) (8)
<> 135:176b8275d35d 3276 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_TRGO2 (1)(2)
<> 135:176b8275d35d 3277 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_CH1_ADC34 (1)(2) (8)
<> 135:176b8275d35d 3278 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM15_TRGO (5)
<> 135:176b8275d35d 3279 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_TRG0_ADC12 (1) (7)
<> 135:176b8275d35d 3280 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_TRG02_ADC12 (1) (7)
<> 135:176b8275d35d 3281 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_CH1_ADC12 (1) (7)
<> 135:176b8275d35d 3282 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_CH2_ADC12 (1) (7)
<> 135:176b8275d35d 3283 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_CH3_ADC12 (1) (7)
<> 135:176b8275d35d 3284 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_TRG0_ADC3 (1) (8)
<> 135:176b8275d35d 3285 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_TRG02_ADC34 (1) (8)
<> 135:176b8275d35d 3286 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM20_CH1_ADC34 (1) (8)
<> 135:176b8275d35d 3287 * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG1 (4)
<> 135:176b8275d35d 3288 * @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG3 (4)
<> 135:176b8275d35d 3289 * @arg @ref LL_ADC_REG_TRIG_EXT_EXTI_LINE2_ADC34 (1)(2) (8)
<> 135:176b8275d35d 3290 * @arg @ref LL_ADC_REG_TRIG_EXT_EXTI_LINE11 (3)(4)(5)(6)
<> 135:176b8275d35d 3291 * @arg @ref LL_ADC_REG_TRIG_EXT_EXTI_LINE11_ADC12 (1)(2) (7)
<> 135:176b8275d35d 3292
<> 135:176b8275d35d 3293 * (1) On STM32F3, parameter not available on all devices: among others, on STM32F303xE, STM32F398xx.\n
<> 135:176b8275d35d 3294 * (2) On STM32F3, parameter not available on all devices: among others, on STM32F303xC, STM32F358xx.\n
<> 135:176b8275d35d 3295 * (3) On STM32F3, parameter not available on all devices: among others, on STM32F303x8, STM32F328xx.\n
<> 135:176b8275d35d 3296 * (4) On STM32F3, parameter not available on all devices: among others, on STM32F334x8.\n
<> 135:176b8275d35d 3297 * (5) On STM32F3, parameter not available on all devices: among others, on STM32F302xC, STM32F302xE.\n
<> 135:176b8275d35d 3298 * (6) On STM32F3, parameter not available on all devices: among others, on STM32F301x8, STM32F302x8, STM32F318xx.\n
<> 135:176b8275d35d 3299 * (7) On STM32F3, parameter not available on all ADC instances: ADC1, ADC2 (for ADC instances ADCx available on the selected device).\n
<> 135:176b8275d35d 3300 * (8) On STM32F3, parameter not available on all ADC instances: ADC3, ADC4 (for ADC instances ADCx available on the selected device).
<> 135:176b8275d35d 3301 */
<> 135:176b8275d35d 3302 __STATIC_INLINE uint32_t LL_ADC_REG_GetTriggerSource(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 3303 {
<> 135:176b8275d35d 3304 register uint32_t TriggerSource = READ_BIT(ADCx->CFGR, ADC_CFGR_EXTSEL | ADC_CFGR_EXTEN);
<> 135:176b8275d35d 3305
<> 135:176b8275d35d 3306 /* Value for shift of {0; 4; 8; 12} depending on value of bitfield */
<> 135:176b8275d35d 3307 /* corresponding to ADC_CFGR_EXTEN {0; 1; 2; 3}. */
<> 135:176b8275d35d 3308 register uint32_t ShiftExten = ((TriggerSource & ADC_CFGR_EXTEN) >> (ADC_REG_TRIG_EXTEN_BITOFFSET_POS - 2U));
<> 135:176b8275d35d 3309
<> 135:176b8275d35d 3310 /* Set bitfield corresponding to ADC_CFGR_EXTEN and ADC_CFGR_EXTSEL */
<> 135:176b8275d35d 3311 /* to match with triggers literals definition. */
<> 135:176b8275d35d 3312 return ((TriggerSource
<> 135:176b8275d35d 3313 & (ADC_REG_TRIG_SOURCE_MASK >> ShiftExten) & ADC_CFGR_EXTSEL)
<> 135:176b8275d35d 3314 | ((ADC_REG_TRIG_EDGE_MASK >> ShiftExten) & ADC_CFGR_EXTEN)
<> 135:176b8275d35d 3315 );
<> 135:176b8275d35d 3316 }
<> 135:176b8275d35d 3317
<> 135:176b8275d35d 3318 /**
<> 135:176b8275d35d 3319 * @brief Get ADC group regular conversion trigger source internal (SW start)
<> 135:176b8275d35d 3320 or external.
<> 135:176b8275d35d 3321 * @note In case of group regular trigger source set to external trigger,
<> 135:176b8275d35d 3322 * to determine which peripheral is selected as external trigger,
<> 135:176b8275d35d 3323 * use function @ref LL_ADC_REG_GetTriggerSource().
<> 135:176b8275d35d 3324 * @rmtoll CFGR EXTEN LL_ADC_REG_IsTriggerSourceSWStart
<> 135:176b8275d35d 3325 * @param ADCx ADC instance
<> 135:176b8275d35d 3326 * @retval Value "0" if trigger source external trigger
<> 135:176b8275d35d 3327 * Value "1" if trigger source SW start.
<> 135:176b8275d35d 3328 */
<> 135:176b8275d35d 3329 __STATIC_INLINE uint32_t LL_ADC_REG_IsTriggerSourceSWStart(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 3330 {
<> 135:176b8275d35d 3331 return (READ_BIT(ADCx->CFGR, ADC_CFGR_EXTEN) == (LL_ADC_REG_TRIG_SOFTWARE & ADC_CFGR_EXTEN));
<> 135:176b8275d35d 3332 }
<> 135:176b8275d35d 3333
<> 135:176b8275d35d 3334 /**
<> 135:176b8275d35d 3335 * @brief Set ADC group regular conversion trigger polarity.
<> 135:176b8275d35d 3336 * @note Applicable only for trigger source set to external trigger.
<> 135:176b8275d35d 3337 * @note On this STM32 serie, setting of this feature is conditioned to
<> 135:176b8275d35d 3338 * ADC state:
<> 135:176b8275d35d 3339 * ADC must be disabled or enabled without conversion on going
<> 135:176b8275d35d 3340 * on group regular.
<> 135:176b8275d35d 3341 * @rmtoll CFGR EXTEN LL_ADC_REG_SetTriggerEdge
<> 135:176b8275d35d 3342 * @param ADCx ADC instance
<> 135:176b8275d35d 3343 * @param ExternalTriggerEdge This parameter can be one of the following values:
<> 135:176b8275d35d 3344 * @arg @ref LL_ADC_REG_TRIG_EXT_RISING
<> 135:176b8275d35d 3345 * @arg @ref LL_ADC_REG_TRIG_EXT_FALLING
<> 135:176b8275d35d 3346 * @arg @ref LL_ADC_REG_TRIG_EXT_RISINGFALLING
<> 135:176b8275d35d 3347 * @retval None
<> 135:176b8275d35d 3348 */
<> 135:176b8275d35d 3349 __STATIC_INLINE void LL_ADC_REG_SetTriggerEdge(ADC_TypeDef *ADCx, uint32_t ExternalTriggerEdge)
<> 135:176b8275d35d 3350 {
<> 135:176b8275d35d 3351 MODIFY_REG(ADCx->CFGR, ADC_CFGR_EXTEN, ExternalTriggerEdge);
<> 135:176b8275d35d 3352 }
<> 135:176b8275d35d 3353
<> 135:176b8275d35d 3354 /**
<> 135:176b8275d35d 3355 * @brief Get ADC group regular conversion trigger polarity.
<> 135:176b8275d35d 3356 * @note Applicable only for trigger source set to external trigger.
<> 135:176b8275d35d 3357 * @rmtoll CFGR EXTEN LL_ADC_REG_GetTriggerEdge
<> 135:176b8275d35d 3358 * @param ADCx ADC instance
<> 135:176b8275d35d 3359 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 3360 * @arg @ref LL_ADC_REG_TRIG_EXT_RISING
<> 135:176b8275d35d 3361 * @arg @ref LL_ADC_REG_TRIG_EXT_FALLING
<> 135:176b8275d35d 3362 * @arg @ref LL_ADC_REG_TRIG_EXT_RISINGFALLING
<> 135:176b8275d35d 3363 */
<> 135:176b8275d35d 3364 __STATIC_INLINE uint32_t LL_ADC_REG_GetTriggerEdge(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 3365 {
<> 135:176b8275d35d 3366 return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_EXTEN));
<> 135:176b8275d35d 3367 }
<> 135:176b8275d35d 3368
<> 135:176b8275d35d 3369
<> 135:176b8275d35d 3370 /**
<> 135:176b8275d35d 3371 * @brief Set ADC group regular sequencer length and scan direction.
<> 135:176b8275d35d 3372 * @note Description of ADC group regular sequencer features:
<> 135:176b8275d35d 3373 * - For devices with sequencer fully configurable
<> 135:176b8275d35d 3374 * (function "LL_ADC_REG_SetSequencerRanks()" available):
<> 135:176b8275d35d 3375 * sequencer length and each rank affectation to a channel
<> 135:176b8275d35d 3376 * are configurable.
<> 135:176b8275d35d 3377 * This function performs configuration of:
<> 135:176b8275d35d 3378 * - Sequence length: Number of ranks in the scan sequence.
<> 135:176b8275d35d 3379 * - Sequence direction: Unless specified in parameters, sequencer
<> 135:176b8275d35d 3380 * scan direction is forward (from rank 1 to rank n).
<> 135:176b8275d35d 3381 * Sequencer ranks are selected using
<> 135:176b8275d35d 3382 * function "LL_ADC_REG_SetSequencerRanks()".
<> 135:176b8275d35d 3383 * - For devices with sequencer not fully configurable
<> 135:176b8275d35d 3384 * (function "LL_ADC_REG_SetSequencerChannels()" available):
<> 135:176b8275d35d 3385 * sequencer length and each rank affectation to a channel
<> 135:176b8275d35d 3386 * are defined by channel number.
<> 135:176b8275d35d 3387 * This function performs configuration of:
<> 135:176b8275d35d 3388 * - Sequence length: Number of ranks in the scan sequence is
<> 135:176b8275d35d 3389 * defined by number of channels set in the sequence,
<> 135:176b8275d35d 3390 * rank of each channel is fixed by channel HW number.
<> 135:176b8275d35d 3391 * (channel 0 fixed on rank 0, channel 1 fixed on rank1, ...).
<> 135:176b8275d35d 3392 * - Sequence direction: Unless specified in parameters, sequencer
<> 135:176b8275d35d 3393 * scan direction is forward (from lowest channel number to
<> 135:176b8275d35d 3394 * highest channel number).
<> 135:176b8275d35d 3395 * Sequencer ranks are selected using
<> 135:176b8275d35d 3396 * function "LL_ADC_REG_SetSequencerChannels()".
<> 135:176b8275d35d 3397 * @note Sequencer disabled is equivalent to sequencer of 1 rank:
<> 135:176b8275d35d 3398 * ADC conversion on only 1 channel.
<> 135:176b8275d35d 3399 * @note On this STM32 serie, setting of this feature is conditioned to
<> 135:176b8275d35d 3400 * ADC state:
<> 135:176b8275d35d 3401 * ADC must be disabled or enabled without conversion on going
<> 135:176b8275d35d 3402 * on group regular.
<> 135:176b8275d35d 3403 * @rmtoll SQR1 L LL_ADC_REG_SetSequencerLength
<> 135:176b8275d35d 3404 * @param ADCx ADC instance
<> 135:176b8275d35d 3405 * @param SequencerNbRanks This parameter can be one of the following values:
<> 135:176b8275d35d 3406 * @arg @ref LL_ADC_REG_SEQ_SCAN_DISABLE
<> 135:176b8275d35d 3407 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_2RANKS
<> 135:176b8275d35d 3408 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_3RANKS
<> 135:176b8275d35d 3409 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_4RANKS
<> 135:176b8275d35d 3410 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_5RANKS
<> 135:176b8275d35d 3411 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_6RANKS
<> 135:176b8275d35d 3412 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_7RANKS
<> 135:176b8275d35d 3413 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_8RANKS
<> 135:176b8275d35d 3414 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_9RANKS
<> 135:176b8275d35d 3415 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_10RANKS
<> 135:176b8275d35d 3416 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_11RANKS
<> 135:176b8275d35d 3417 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_12RANKS
<> 135:176b8275d35d 3418 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_13RANKS
<> 135:176b8275d35d 3419 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_14RANKS
<> 135:176b8275d35d 3420 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_15RANKS
<> 135:176b8275d35d 3421 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_16RANKS
<> 135:176b8275d35d 3422 * @retval None
<> 135:176b8275d35d 3423 */
<> 135:176b8275d35d 3424 __STATIC_INLINE void LL_ADC_REG_SetSequencerLength(ADC_TypeDef *ADCx, uint32_t SequencerNbRanks)
<> 135:176b8275d35d 3425 {
<> 135:176b8275d35d 3426 MODIFY_REG(ADCx->SQR1, ADC_SQR1_L, SequencerNbRanks);
<> 135:176b8275d35d 3427 }
<> 135:176b8275d35d 3428
<> 135:176b8275d35d 3429 /**
<> 135:176b8275d35d 3430 * @brief Get ADC group regular sequencer length and scan direction.
<> 135:176b8275d35d 3431 * @note Description of ADC group regular sequencer features:
<> 135:176b8275d35d 3432 * - For devices with sequencer fully configurable
<> 135:176b8275d35d 3433 * (function "LL_ADC_REG_SetSequencerRanks()" available):
<> 135:176b8275d35d 3434 * sequencer length and each rank affectation to a channel
<> 135:176b8275d35d 3435 * are configurable.
<> 135:176b8275d35d 3436 * This function retrieves:
<> 135:176b8275d35d 3437 * - Sequence length: Number of ranks in the scan sequence.
<> 135:176b8275d35d 3438 * - Sequence direction: Unless specified in parameters, sequencer
<> 135:176b8275d35d 3439 * scan direction is forward (from rank 1 to rank n).
<> 135:176b8275d35d 3440 * Sequencer ranks are selected using
<> 135:176b8275d35d 3441 * function "LL_ADC_REG_SetSequencerRanks()".
<> 135:176b8275d35d 3442 * - For devices with sequencer not fully configurable
<> 135:176b8275d35d 3443 * (function "LL_ADC_REG_SetSequencerChannels()" available):
<> 135:176b8275d35d 3444 * sequencer length and each rank affectation to a channel
<> 135:176b8275d35d 3445 * are defined by channel number.
<> 135:176b8275d35d 3446 * This function retrieves:
<> 135:176b8275d35d 3447 * - Sequence length: Number of ranks in the scan sequence is
<> 135:176b8275d35d 3448 * defined by number of channels set in the sequence,
<> 135:176b8275d35d 3449 * rank of each channel is fixed by channel HW number.
<> 135:176b8275d35d 3450 * (channel 0 fixed on rank 0, channel 1 fixed on rank1, ...).
<> 135:176b8275d35d 3451 * - Sequence direction: Unless specified in parameters, sequencer
<> 135:176b8275d35d 3452 * scan direction is forward (from lowest channel number to
<> 135:176b8275d35d 3453 * highest channel number).
<> 135:176b8275d35d 3454 * Sequencer ranks are selected using
<> 135:176b8275d35d 3455 * function "LL_ADC_REG_SetSequencerChannels()".
<> 135:176b8275d35d 3456 * @note Sequencer disabled is equivalent to sequencer of 1 rank:
<> 135:176b8275d35d 3457 * ADC conversion on only 1 channel.
<> 135:176b8275d35d 3458 * @rmtoll SQR1 L LL_ADC_REG_GetSequencerLength
<> 135:176b8275d35d 3459 * @param ADCx ADC instance
<> 135:176b8275d35d 3460 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 3461 * @arg @ref LL_ADC_REG_SEQ_SCAN_DISABLE
<> 135:176b8275d35d 3462 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_2RANKS
<> 135:176b8275d35d 3463 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_3RANKS
<> 135:176b8275d35d 3464 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_4RANKS
<> 135:176b8275d35d 3465 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_5RANKS
<> 135:176b8275d35d 3466 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_6RANKS
<> 135:176b8275d35d 3467 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_7RANKS
<> 135:176b8275d35d 3468 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_8RANKS
<> 135:176b8275d35d 3469 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_9RANKS
<> 135:176b8275d35d 3470 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_10RANKS
<> 135:176b8275d35d 3471 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_11RANKS
<> 135:176b8275d35d 3472 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_12RANKS
<> 135:176b8275d35d 3473 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_13RANKS
<> 135:176b8275d35d 3474 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_14RANKS
<> 135:176b8275d35d 3475 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_15RANKS
<> 135:176b8275d35d 3476 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_16RANKS
<> 135:176b8275d35d 3477 */
<> 135:176b8275d35d 3478 __STATIC_INLINE uint32_t LL_ADC_REG_GetSequencerLength(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 3479 {
<> 135:176b8275d35d 3480 return (uint32_t)(READ_BIT(ADCx->SQR1, ADC_SQR1_L));
<> 135:176b8275d35d 3481 }
<> 135:176b8275d35d 3482
<> 135:176b8275d35d 3483 /**
<> 135:176b8275d35d 3484 * @brief Set ADC group regular sequencer discontinuous mode:
<> 135:176b8275d35d 3485 * sequence subdivided and scan conversions interrupted every selected
<> 135:176b8275d35d 3486 * number of ranks.
<> 135:176b8275d35d 3487 * @note It is not possible to enable both ADC group regular
<> 135:176b8275d35d 3488 * continuous mode and sequencer discontinuous mode.
<> 135:176b8275d35d 3489 * @note It is not possible to enable both ADC auto-injected mode
<> 135:176b8275d35d 3490 * and ADC group regular sequencer discontinuous mode.
<> 135:176b8275d35d 3491 * @note On this STM32 serie, setting of this feature is conditioned to
<> 135:176b8275d35d 3492 * ADC state:
<> 135:176b8275d35d 3493 * ADC must be disabled or enabled without conversion on going
<> 135:176b8275d35d 3494 * on group regular.
<> 135:176b8275d35d 3495 * @rmtoll CFGR DISCEN LL_ADC_REG_SetSequencerDiscont\n
<> 135:176b8275d35d 3496 * CFGR DISCNUM LL_ADC_REG_SetSequencerDiscont
<> 135:176b8275d35d 3497 * @param ADCx ADC instance
<> 135:176b8275d35d 3498 * @param SeqDiscont This parameter can be one of the following values:
<> 135:176b8275d35d 3499 * @arg @ref LL_ADC_REG_SEQ_DISCONT_DISABLE
<> 135:176b8275d35d 3500 * @arg @ref LL_ADC_REG_SEQ_DISCONT_1RANK
<> 135:176b8275d35d 3501 * @arg @ref LL_ADC_REG_SEQ_DISCONT_2RANKS
<> 135:176b8275d35d 3502 * @arg @ref LL_ADC_REG_SEQ_DISCONT_3RANKS
<> 135:176b8275d35d 3503 * @arg @ref LL_ADC_REG_SEQ_DISCONT_4RANKS
<> 135:176b8275d35d 3504 * @arg @ref LL_ADC_REG_SEQ_DISCONT_5RANKS
<> 135:176b8275d35d 3505 * @arg @ref LL_ADC_REG_SEQ_DISCONT_6RANKS
<> 135:176b8275d35d 3506 * @arg @ref LL_ADC_REG_SEQ_DISCONT_7RANKS
<> 135:176b8275d35d 3507 * @arg @ref LL_ADC_REG_SEQ_DISCONT_8RANKS
<> 135:176b8275d35d 3508 * @retval None
<> 135:176b8275d35d 3509 */
<> 135:176b8275d35d 3510 __STATIC_INLINE void LL_ADC_REG_SetSequencerDiscont(ADC_TypeDef *ADCx, uint32_t SeqDiscont)
<> 135:176b8275d35d 3511 {
<> 135:176b8275d35d 3512 MODIFY_REG(ADCx->CFGR, ADC_CFGR_DISCEN | ADC_CFGR_DISCNUM, SeqDiscont);
<> 135:176b8275d35d 3513 }
<> 135:176b8275d35d 3514
<> 135:176b8275d35d 3515 /**
<> 135:176b8275d35d 3516 * @brief Get ADC group regular sequencer discontinuous mode:
<> 135:176b8275d35d 3517 * sequence subdivided and scan conversions interrupted every selected
<> 135:176b8275d35d 3518 * number of ranks.
<> 135:176b8275d35d 3519 * @rmtoll CFGR DISCEN LL_ADC_REG_GetSequencerDiscont\n
<> 135:176b8275d35d 3520 * CFGR DISCNUM LL_ADC_REG_GetSequencerDiscont
<> 135:176b8275d35d 3521 * @param ADCx ADC instance
<> 135:176b8275d35d 3522 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 3523 * @arg @ref LL_ADC_REG_SEQ_DISCONT_DISABLE
<> 135:176b8275d35d 3524 * @arg @ref LL_ADC_REG_SEQ_DISCONT_1RANK
<> 135:176b8275d35d 3525 * @arg @ref LL_ADC_REG_SEQ_DISCONT_2RANKS
<> 135:176b8275d35d 3526 * @arg @ref LL_ADC_REG_SEQ_DISCONT_3RANKS
<> 135:176b8275d35d 3527 * @arg @ref LL_ADC_REG_SEQ_DISCONT_4RANKS
<> 135:176b8275d35d 3528 * @arg @ref LL_ADC_REG_SEQ_DISCONT_5RANKS
<> 135:176b8275d35d 3529 * @arg @ref LL_ADC_REG_SEQ_DISCONT_6RANKS
<> 135:176b8275d35d 3530 * @arg @ref LL_ADC_REG_SEQ_DISCONT_7RANKS
<> 135:176b8275d35d 3531 * @arg @ref LL_ADC_REG_SEQ_DISCONT_8RANKS
<> 135:176b8275d35d 3532 */
<> 135:176b8275d35d 3533 __STATIC_INLINE uint32_t LL_ADC_REG_GetSequencerDiscont(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 3534 {
<> 135:176b8275d35d 3535 return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_DISCEN | ADC_CFGR_DISCNUM));
<> 135:176b8275d35d 3536 }
<> 135:176b8275d35d 3537
<> 135:176b8275d35d 3538 /**
<> 135:176b8275d35d 3539 * @brief Set ADC group regular sequence: channel on the selected
<> 135:176b8275d35d 3540 * scan sequence rank.
<> 135:176b8275d35d 3541 * @note This function performs configuration of:
<> 135:176b8275d35d 3542 * - Channels ordering into each rank of scan sequence:
<> 135:176b8275d35d 3543 * whatever channel can be placed into whatever rank.
<> 135:176b8275d35d 3544 * @note On this STM32 serie, ADC group regular sequencer is
<> 135:176b8275d35d 3545 * fully configurable: sequencer length and each rank
<> 135:176b8275d35d 3546 * affectation to a channel are configurable.
<> 135:176b8275d35d 3547 * Refer to description of function @ref LL_ADC_REG_SetSequencerLength().
<> 135:176b8275d35d 3548 * @note Depending on devices and packages, some channels may not be available.
<> 135:176b8275d35d 3549 * Refer to device datasheet for channels availability.
<> 135:176b8275d35d 3550 * @note On this STM32 serie, to measure internal channels (VrefInt,
<> 135:176b8275d35d 3551 * TempSensor, ...), measurement paths to internal channels must be
<> 135:176b8275d35d 3552 * enabled separately.
<> 135:176b8275d35d 3553 * This can be done using function @ref LL_ADC_SetCommonPathInternalCh().
<> 135:176b8275d35d 3554 * @note On this STM32 serie, setting of this feature is conditioned to
<> 135:176b8275d35d 3555 * ADC state:
<> 135:176b8275d35d 3556 * ADC must be disabled or enabled without conversion on going
<> 135:176b8275d35d 3557 * on group regular.
<> 135:176b8275d35d 3558 * @rmtoll SQR1 SQ1 LL_ADC_REG_SetSequencerRanks\n
<> 135:176b8275d35d 3559 * SQR1 SQ2 LL_ADC_REG_SetSequencerRanks\n
<> 135:176b8275d35d 3560 * SQR1 SQ3 LL_ADC_REG_SetSequencerRanks\n
<> 135:176b8275d35d 3561 * SQR1 SQ4 LL_ADC_REG_SetSequencerRanks\n
<> 135:176b8275d35d 3562 * SQR2 SQ5 LL_ADC_REG_SetSequencerRanks\n
<> 135:176b8275d35d 3563 * SQR2 SQ6 LL_ADC_REG_SetSequencerRanks\n
<> 135:176b8275d35d 3564 * SQR2 SQ7 LL_ADC_REG_SetSequencerRanks\n
<> 135:176b8275d35d 3565 * SQR2 SQ8 LL_ADC_REG_SetSequencerRanks\n
<> 135:176b8275d35d 3566 * SQR2 SQ9 LL_ADC_REG_SetSequencerRanks\n
<> 135:176b8275d35d 3567 * SQR3 SQ10 LL_ADC_REG_SetSequencerRanks\n
<> 135:176b8275d35d 3568 * SQR3 SQ11 LL_ADC_REG_SetSequencerRanks\n
<> 135:176b8275d35d 3569 * SQR3 SQ12 LL_ADC_REG_SetSequencerRanks\n
<> 135:176b8275d35d 3570 * SQR3 SQ13 LL_ADC_REG_SetSequencerRanks\n
<> 135:176b8275d35d 3571 * SQR3 SQ14 LL_ADC_REG_SetSequencerRanks\n
<> 135:176b8275d35d 3572 * SQR4 SQ15 LL_ADC_REG_SetSequencerRanks\n
<> 135:176b8275d35d 3573 * SQR4 SQ16 LL_ADC_REG_SetSequencerRanks
<> 135:176b8275d35d 3574 * @param ADCx ADC instance
<> 135:176b8275d35d 3575 * @param Rank This parameter can be one of the following values:
<> 135:176b8275d35d 3576 * @arg @ref LL_ADC_REG_RANK_1
<> 135:176b8275d35d 3577 * @arg @ref LL_ADC_REG_RANK_2
<> 135:176b8275d35d 3578 * @arg @ref LL_ADC_REG_RANK_3
<> 135:176b8275d35d 3579 * @arg @ref LL_ADC_REG_RANK_4
<> 135:176b8275d35d 3580 * @arg @ref LL_ADC_REG_RANK_5
<> 135:176b8275d35d 3581 * @arg @ref LL_ADC_REG_RANK_6
<> 135:176b8275d35d 3582 * @arg @ref LL_ADC_REG_RANK_7
<> 135:176b8275d35d 3583 * @arg @ref LL_ADC_REG_RANK_8
<> 135:176b8275d35d 3584 * @arg @ref LL_ADC_REG_RANK_9
<> 135:176b8275d35d 3585 * @arg @ref LL_ADC_REG_RANK_10
<> 135:176b8275d35d 3586 * @arg @ref LL_ADC_REG_RANK_11
<> 135:176b8275d35d 3587 * @arg @ref LL_ADC_REG_RANK_12
<> 135:176b8275d35d 3588 * @arg @ref LL_ADC_REG_RANK_13
<> 135:176b8275d35d 3589 * @arg @ref LL_ADC_REG_RANK_14
<> 135:176b8275d35d 3590 * @arg @ref LL_ADC_REG_RANK_15
<> 135:176b8275d35d 3591 * @arg @ref LL_ADC_REG_RANK_16
<> 135:176b8275d35d 3592 * @param Channel This parameter can be one of the following values:
<> 135:176b8275d35d 3593 * @arg @ref LL_ADC_CHANNEL_0
<> 135:176b8275d35d 3594 * @arg @ref LL_ADC_CHANNEL_1
<> 135:176b8275d35d 3595 * @arg @ref LL_ADC_CHANNEL_2
<> 135:176b8275d35d 3596 * @arg @ref LL_ADC_CHANNEL_3
<> 135:176b8275d35d 3597 * @arg @ref LL_ADC_CHANNEL_4
<> 135:176b8275d35d 3598 * @arg @ref LL_ADC_CHANNEL_5
<> 135:176b8275d35d 3599 * @arg @ref LL_ADC_CHANNEL_6
<> 135:176b8275d35d 3600 * @arg @ref LL_ADC_CHANNEL_7
<> 135:176b8275d35d 3601 * @arg @ref LL_ADC_CHANNEL_8
<> 135:176b8275d35d 3602 * @arg @ref LL_ADC_CHANNEL_9
<> 135:176b8275d35d 3603 * @arg @ref LL_ADC_CHANNEL_10
<> 135:176b8275d35d 3604 * @arg @ref LL_ADC_CHANNEL_11
<> 135:176b8275d35d 3605 * @arg @ref LL_ADC_CHANNEL_12
<> 135:176b8275d35d 3606 * @arg @ref LL_ADC_CHANNEL_13
<> 135:176b8275d35d 3607 * @arg @ref LL_ADC_CHANNEL_14
<> 135:176b8275d35d 3608 * @arg @ref LL_ADC_CHANNEL_15
<> 135:176b8275d35d 3609 * @arg @ref LL_ADC_CHANNEL_16
<> 135:176b8275d35d 3610 * @arg @ref LL_ADC_CHANNEL_17
<> 135:176b8275d35d 3611 * @arg @ref LL_ADC_CHANNEL_18
<> 135:176b8275d35d 3612 * @arg @ref LL_ADC_CHANNEL_VREFINT (5)
<> 135:176b8275d35d 3613 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (1)
<> 135:176b8275d35d 3614 * @arg @ref LL_ADC_CHANNEL_VBAT (1)
<> 135:176b8275d35d 3615 * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1)
<> 135:176b8275d35d 3616 * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2)
<> 135:176b8275d35d 3617 * @arg @ref LL_ADC_CHANNEL_VOPAMP3 (3)
<> 135:176b8275d35d 3618 * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (4)
<> 135:176b8275d35d 3619 *
<> 135:176b8275d35d 3620 * (1) On STM32F3, parameter available only on ADC instance: ADC1.\n
<> 135:176b8275d35d 3621 * (2) On STM32F3, parameter available only on ADC instance: ADC2.\n
<> 135:176b8275d35d 3622 * (3) On STM32F3, parameter available only on ADC instance: ADC3.\n
<> 135:176b8275d35d 3623 * (4) On STM32F3, parameter available only on ADC instances: ADC4.\n
<> 135:176b8275d35d 3624 * (5) On STM32F3, ADC channel available only on all ADC instances, but
<> 135:176b8275d35d 3625 * only one ADC instance is allowed to be connected to VrefInt at the same time.
<> 135:176b8275d35d 3626 * @retval None
<> 135:176b8275d35d 3627 */
<> 135:176b8275d35d 3628 __STATIC_INLINE void LL_ADC_REG_SetSequencerRanks(ADC_TypeDef *ADCx, uint32_t Rank, uint32_t Channel)
<> 135:176b8275d35d 3629 {
<> 135:176b8275d35d 3630 /* Set bits with content of parameter "Channel" with bits position */
<> 135:176b8275d35d 3631 /* in register and register position depending on parameter "Rank". */
<> 135:176b8275d35d 3632 /* Parameters "Rank" and "Channel" are used with masks because containing */
<> 135:176b8275d35d 3633 /* other bits reserved for other purpose. */
<> 135:176b8275d35d 3634 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->SQR1, __ADC_MASK_SHIFT(Rank, ADC_REG_SQRX_REGOFFSET_MASK));
<> 135:176b8275d35d 3635
<> 135:176b8275d35d 3636 MODIFY_REG(*preg,
<> 135:176b8275d35d 3637 ADC_CHANNEL_ID_NUMBER_MASK_POSBIT0 << (Rank & ADC_REG_RANK_ID_SQRX_MASK),
<> 135:176b8275d35d 3638 (Channel & ADC_CHANNEL_ID_NUMBER_MASK) >> (ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS - (Rank & ADC_REG_RANK_ID_SQRX_MASK)));
<> 135:176b8275d35d 3639 }
<> 135:176b8275d35d 3640
<> 135:176b8275d35d 3641 /**
<> 135:176b8275d35d 3642 * @brief Get ADC group regular sequence: channel on the selected
<> 135:176b8275d35d 3643 * scan sequence rank.
<> 135:176b8275d35d 3644 * @note On this STM32 serie, ADC group regular sequencer is
<> 135:176b8275d35d 3645 * fully configurable: sequencer length and each rank
<> 135:176b8275d35d 3646 * affectation to a channel are configurable.
<> 135:176b8275d35d 3647 * Refer to description of function @ref LL_ADC_REG_SetSequencerLength().
<> 135:176b8275d35d 3648 * @note Depending on devices and packages, some channels may not be available.
<> 135:176b8275d35d 3649 * Refer to device datasheet for channels availability.
<> 135:176b8275d35d 3650 * @note Usage of the returned channel number:
<> 135:176b8275d35d 3651 * - To reinject this channel into another function LL_ADC_xxx:
<> 135:176b8275d35d 3652 * the returned channel number is only partly formatted on definition
<> 135:176b8275d35d 3653 * of literals LL_ADC_CHANNEL_x. Therefore, it has to be compared
<> 135:176b8275d35d 3654 * with parts of literals LL_ADC_CHANNEL_x or using
<> 135:176b8275d35d 3655 * helper macro @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
<> 135:176b8275d35d 3656 * Then the selected literal LL_ADC_CHANNEL_x can be used
<> 135:176b8275d35d 3657 * as parameter for another function.
<> 135:176b8275d35d 3658 * - To get the channel number in decimal format:
<> 135:176b8275d35d 3659 * process the returned value with the helper macro
<> 135:176b8275d35d 3660 * @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
<> 135:176b8275d35d 3661 * @rmtoll SQR1 SQ1 LL_ADC_REG_GetSequencerRanks\n
<> 135:176b8275d35d 3662 * SQR1 SQ2 LL_ADC_REG_GetSequencerRanks\n
<> 135:176b8275d35d 3663 * SQR1 SQ3 LL_ADC_REG_GetSequencerRanks\n
<> 135:176b8275d35d 3664 * SQR1 SQ4 LL_ADC_REG_GetSequencerRanks\n
<> 135:176b8275d35d 3665 * SQR2 SQ5 LL_ADC_REG_GetSequencerRanks\n
<> 135:176b8275d35d 3666 * SQR2 SQ6 LL_ADC_REG_GetSequencerRanks\n
<> 135:176b8275d35d 3667 * SQR2 SQ7 LL_ADC_REG_GetSequencerRanks\n
<> 135:176b8275d35d 3668 * SQR2 SQ8 LL_ADC_REG_GetSequencerRanks\n
<> 135:176b8275d35d 3669 * SQR2 SQ9 LL_ADC_REG_GetSequencerRanks\n
<> 135:176b8275d35d 3670 * SQR3 SQ10 LL_ADC_REG_GetSequencerRanks\n
<> 135:176b8275d35d 3671 * SQR3 SQ11 LL_ADC_REG_GetSequencerRanks\n
<> 135:176b8275d35d 3672 * SQR3 SQ12 LL_ADC_REG_GetSequencerRanks\n
<> 135:176b8275d35d 3673 * SQR3 SQ13 LL_ADC_REG_GetSequencerRanks\n
<> 135:176b8275d35d 3674 * SQR3 SQ14 LL_ADC_REG_GetSequencerRanks\n
<> 135:176b8275d35d 3675 * SQR4 SQ15 LL_ADC_REG_GetSequencerRanks\n
<> 135:176b8275d35d 3676 * SQR4 SQ16 LL_ADC_REG_GetSequencerRanks
<> 135:176b8275d35d 3677 * @param ADCx ADC instance
<> 135:176b8275d35d 3678 * @param Rank This parameter can be one of the following values:
<> 135:176b8275d35d 3679 * @arg @ref LL_ADC_REG_RANK_1
<> 135:176b8275d35d 3680 * @arg @ref LL_ADC_REG_RANK_2
<> 135:176b8275d35d 3681 * @arg @ref LL_ADC_REG_RANK_3
<> 135:176b8275d35d 3682 * @arg @ref LL_ADC_REG_RANK_4
<> 135:176b8275d35d 3683 * @arg @ref LL_ADC_REG_RANK_5
<> 135:176b8275d35d 3684 * @arg @ref LL_ADC_REG_RANK_6
<> 135:176b8275d35d 3685 * @arg @ref LL_ADC_REG_RANK_7
<> 135:176b8275d35d 3686 * @arg @ref LL_ADC_REG_RANK_8
<> 135:176b8275d35d 3687 * @arg @ref LL_ADC_REG_RANK_9
<> 135:176b8275d35d 3688 * @arg @ref LL_ADC_REG_RANK_10
<> 135:176b8275d35d 3689 * @arg @ref LL_ADC_REG_RANK_11
<> 135:176b8275d35d 3690 * @arg @ref LL_ADC_REG_RANK_12
<> 135:176b8275d35d 3691 * @arg @ref LL_ADC_REG_RANK_13
<> 135:176b8275d35d 3692 * @arg @ref LL_ADC_REG_RANK_14
<> 135:176b8275d35d 3693 * @arg @ref LL_ADC_REG_RANK_15
<> 135:176b8275d35d 3694 * @arg @ref LL_ADC_REG_RANK_16
<> 135:176b8275d35d 3695 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 3696 * @arg @ref LL_ADC_CHANNEL_0
<> 135:176b8275d35d 3697 * @arg @ref LL_ADC_CHANNEL_1
<> 135:176b8275d35d 3698 * @arg @ref LL_ADC_CHANNEL_2
<> 135:176b8275d35d 3699 * @arg @ref LL_ADC_CHANNEL_3
<> 135:176b8275d35d 3700 * @arg @ref LL_ADC_CHANNEL_4
<> 135:176b8275d35d 3701 * @arg @ref LL_ADC_CHANNEL_5
<> 135:176b8275d35d 3702 * @arg @ref LL_ADC_CHANNEL_6
<> 135:176b8275d35d 3703 * @arg @ref LL_ADC_CHANNEL_7
<> 135:176b8275d35d 3704 * @arg @ref LL_ADC_CHANNEL_8
<> 135:176b8275d35d 3705 * @arg @ref LL_ADC_CHANNEL_9
<> 135:176b8275d35d 3706 * @arg @ref LL_ADC_CHANNEL_10
<> 135:176b8275d35d 3707 * @arg @ref LL_ADC_CHANNEL_11
<> 135:176b8275d35d 3708 * @arg @ref LL_ADC_CHANNEL_12
<> 135:176b8275d35d 3709 * @arg @ref LL_ADC_CHANNEL_13
<> 135:176b8275d35d 3710 * @arg @ref LL_ADC_CHANNEL_14
<> 135:176b8275d35d 3711 * @arg @ref LL_ADC_CHANNEL_15
<> 135:176b8275d35d 3712 * @arg @ref LL_ADC_CHANNEL_16
<> 135:176b8275d35d 3713 * @arg @ref LL_ADC_CHANNEL_17
<> 135:176b8275d35d 3714 * @arg @ref LL_ADC_CHANNEL_18
<> 135:176b8275d35d 3715 * @arg @ref LL_ADC_CHANNEL_VREFINT (5)
<> 135:176b8275d35d 3716 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (1)
<> 135:176b8275d35d 3717 * @arg @ref LL_ADC_CHANNEL_VBAT (1)
<> 135:176b8275d35d 3718 * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1)
<> 135:176b8275d35d 3719 * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2)
<> 135:176b8275d35d 3720 * @arg @ref LL_ADC_CHANNEL_VOPAMP3 (3)
<> 135:176b8275d35d 3721 * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (4)
<> 135:176b8275d35d 3722 *
<> 135:176b8275d35d 3723 * (1) On STM32F3, parameter available only on ADC instance: ADC1.\n
<> 135:176b8275d35d 3724 * (2) On STM32F3, parameter available only on ADC instance: ADC2.\n
<> 135:176b8275d35d 3725 * (3) On STM32F3, parameter available only on ADC instance: ADC3.\n
<> 135:176b8275d35d 3726 * (4) On STM32F3, parameter available only on ADC instances: ADC4.\n
<> 135:176b8275d35d 3727 * (5) On STM32F3, ADC channel available only on all ADC instances, but
<> 135:176b8275d35d 3728 * only one ADC instance is allowed to be connected to VrefInt at the same time.\n
<> 135:176b8275d35d 3729 * (1, 2, 3, 4, 5) For ADC channel read back from ADC register,
<> 135:176b8275d35d 3730 * comparison with internal channel parameter to be done
<> 135:176b8275d35d 3731 * using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL().
<> 135:176b8275d35d 3732 */
<> 135:176b8275d35d 3733 __STATIC_INLINE uint32_t LL_ADC_REG_GetSequencerRanks(ADC_TypeDef *ADCx, uint32_t Rank)
<> 135:176b8275d35d 3734 {
<> 135:176b8275d35d 3735 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->SQR1, __ADC_MASK_SHIFT(Rank, ADC_REG_SQRX_REGOFFSET_MASK));
<> 135:176b8275d35d 3736
<> 135:176b8275d35d 3737 return (uint32_t) (READ_BIT(*preg,
<> 135:176b8275d35d 3738 ADC_CHANNEL_ID_NUMBER_MASK_POSBIT0 << (Rank & ADC_REG_RANK_ID_SQRX_MASK))
<> 135:176b8275d35d 3739 << (ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS - (Rank & ADC_REG_RANK_ID_SQRX_MASK))
<> 135:176b8275d35d 3740 );
<> 135:176b8275d35d 3741 }
<> 135:176b8275d35d 3742
<> 135:176b8275d35d 3743 /**
<> 135:176b8275d35d 3744 * @brief Set ADC continuous conversion mode on ADC group regular.
<> 135:176b8275d35d 3745 * @note Description of ADC continuous conversion mode:
<> 135:176b8275d35d 3746 * - single mode: one conversion per trigger
<> 135:176b8275d35d 3747 * - continuous mode: after the first trigger, following
<> 135:176b8275d35d 3748 * conversions launched successively automatically.
<> 135:176b8275d35d 3749 * @note It is not possible to enable both ADC group regular
<> 135:176b8275d35d 3750 * continuous mode and sequencer discontinuous mode.
<> 135:176b8275d35d 3751 * @note On this STM32 serie, setting of this feature is conditioned to
<> 135:176b8275d35d 3752 * ADC state:
<> 135:176b8275d35d 3753 * ADC must be disabled or enabled without conversion on going
<> 135:176b8275d35d 3754 * on group regular.
<> 135:176b8275d35d 3755 * @rmtoll CFGR CONT LL_ADC_REG_SetContinuousMode
<> 135:176b8275d35d 3756 * @param ADCx ADC instance
<> 135:176b8275d35d 3757 * @param Continuous This parameter can be one of the following values:
<> 135:176b8275d35d 3758 * @arg @ref LL_ADC_REG_CONV_SINGLE
<> 135:176b8275d35d 3759 * @arg @ref LL_ADC_REG_CONV_CONTINUOUS
<> 135:176b8275d35d 3760 * @retval None
<> 135:176b8275d35d 3761 */
<> 135:176b8275d35d 3762 __STATIC_INLINE void LL_ADC_REG_SetContinuousMode(ADC_TypeDef *ADCx, uint32_t Continuous)
<> 135:176b8275d35d 3763 {
<> 135:176b8275d35d 3764 MODIFY_REG(ADCx->CFGR, ADC_CFGR_CONT, Continuous);
<> 135:176b8275d35d 3765 }
<> 135:176b8275d35d 3766
<> 135:176b8275d35d 3767 /**
<> 135:176b8275d35d 3768 * @brief Get ADC continuous conversion mode on ADC group regular.
<> 135:176b8275d35d 3769 * @note Description of ADC continuous conversion mode:
<> 135:176b8275d35d 3770 * - single mode: one conversion per trigger
<> 135:176b8275d35d 3771 * - continuous mode: after the first trigger, following
<> 135:176b8275d35d 3772 * conversions launched successively automatically.
<> 135:176b8275d35d 3773 * @rmtoll CFGR CONT LL_ADC_REG_GetContinuousMode
<> 135:176b8275d35d 3774 * @param ADCx ADC instance
<> 135:176b8275d35d 3775 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 3776 * @arg @ref LL_ADC_REG_CONV_SINGLE
<> 135:176b8275d35d 3777 * @arg @ref LL_ADC_REG_CONV_CONTINUOUS
<> 135:176b8275d35d 3778 */
<> 135:176b8275d35d 3779 __STATIC_INLINE uint32_t LL_ADC_REG_GetContinuousMode(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 3780 {
<> 135:176b8275d35d 3781 return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_CONT));
<> 135:176b8275d35d 3782 }
<> 135:176b8275d35d 3783
<> 135:176b8275d35d 3784 /**
<> 135:176b8275d35d 3785 * @brief Set ADC group regular conversion data transfer: no transfer or
<> 135:176b8275d35d 3786 * transfer by DMA, and DMA requests mode.
<> 135:176b8275d35d 3787 * @note If transfer by DMA selected, specifies the DMA requests
<> 135:176b8275d35d 3788 * mode:
<> 135:176b8275d35d 3789 * - Limited mode (One shot mode): DMA transfer requests are stopped
<> 135:176b8275d35d 3790 * when number of DMA data transfers (number of
<> 135:176b8275d35d 3791 * ADC conversions) is reached.
<> 135:176b8275d35d 3792 * This ADC mode is intended to be used with DMA mode non-circular.
<> 135:176b8275d35d 3793 * - Unlimited mode: DMA transfer requests are unlimited,
<> 135:176b8275d35d 3794 * whatever number of DMA data transfers (number of
<> 135:176b8275d35d 3795 * ADC conversions).
<> 135:176b8275d35d 3796 * This ADC mode is intended to be used with DMA mode circular.
<> 135:176b8275d35d 3797 * @note If ADC DMA requests mode is set to unlimited and DMA is set to
<> 135:176b8275d35d 3798 * mode non-circular:
<> 135:176b8275d35d 3799 * when DMA transfers size will be reached, DMA will stop transfers of
<> 135:176b8275d35d 3800 * ADC conversions data ADC will raise an overrun error
<> 135:176b8275d35d 3801 * (overrun flag and interruption if enabled).
<> 135:176b8275d35d 3802 * @note For devices with several ADC instances: ADC multimode DMA
<> 135:176b8275d35d 3803 * settings are available using function @ref LL_ADC_SetMultiDMATransfer().
<> 135:176b8275d35d 3804 * @note To configure DMA source address (peripheral address),
<> 135:176b8275d35d 3805 * use function @ref LL_ADC_DMA_GetRegAddr().
<> 135:176b8275d35d 3806 * @note On this STM32 serie, setting of this feature is conditioned to
<> 135:176b8275d35d 3807 * ADC state:
<> 135:176b8275d35d 3808 * ADC must be disabled or enabled without conversion on going
<> 135:176b8275d35d 3809 * on either groups regular or injected.
<> 135:176b8275d35d 3810 * @rmtoll CFGR DMAEN LL_ADC_REG_SetDMATransfer\n
<> 135:176b8275d35d 3811 * CFGR DMACFG LL_ADC_REG_SetDMATransfer
<> 135:176b8275d35d 3812 * @param ADCx ADC instance
<> 135:176b8275d35d 3813 * @param DMATransfer This parameter can be one of the following values:
<> 135:176b8275d35d 3814 * @arg @ref LL_ADC_REG_DMA_TRANSFER_NONE
<> 135:176b8275d35d 3815 * @arg @ref LL_ADC_REG_DMA_TRANSFER_LIMITED
<> 135:176b8275d35d 3816 * @arg @ref LL_ADC_REG_DMA_TRANSFER_UNLIMITED
<> 135:176b8275d35d 3817 * @retval None
<> 135:176b8275d35d 3818 */
<> 135:176b8275d35d 3819 __STATIC_INLINE void LL_ADC_REG_SetDMATransfer(ADC_TypeDef *ADCx, uint32_t DMATransfer)
<> 135:176b8275d35d 3820 {
<> 135:176b8275d35d 3821 MODIFY_REG(ADCx->CFGR, ADC_CFGR_DMAEN | ADC_CFGR_DMACFG, DMATransfer);
<> 135:176b8275d35d 3822 }
<> 135:176b8275d35d 3823
<> 135:176b8275d35d 3824 /**
<> 135:176b8275d35d 3825 * @brief Get ADC group regular conversion data transfer: no transfer or
<> 135:176b8275d35d 3826 * transfer by DMA, and DMA requests mode.
<> 135:176b8275d35d 3827 * @note If transfer by DMA selected, specifies the DMA requests
<> 135:176b8275d35d 3828 * mode:
<> 135:176b8275d35d 3829 * - Limited mode (One shot mode): DMA transfer requests are stopped
<> 135:176b8275d35d 3830 * when number of DMA data transfers (number of
<> 135:176b8275d35d 3831 * ADC conversions) is reached.
<> 135:176b8275d35d 3832 * This ADC mode is intended to be used with DMA mode non-circular.
<> 135:176b8275d35d 3833 * - Unlimited mode: DMA transfer requests are unlimited,
<> 135:176b8275d35d 3834 * whatever number of DMA data transfers (number of
<> 135:176b8275d35d 3835 * ADC conversions).
<> 135:176b8275d35d 3836 * This ADC mode is intended to be used with DMA mode circular.
<> 135:176b8275d35d 3837 * @note If ADC DMA requests mode is set to unlimited and DMA is set to
<> 135:176b8275d35d 3838 * mode non-circular:
<> 135:176b8275d35d 3839 * when DMA transfers size will be reached, DMA will stop transfers of
<> 135:176b8275d35d 3840 * ADC conversions data ADC will raise an overrun error
<> 135:176b8275d35d 3841 * (overrun flag and interruption if enabled).
<> 135:176b8275d35d 3842 * @note For devices with several ADC instances: ADC multimode DMA
<> 135:176b8275d35d 3843 * settings are available using function @ref LL_ADC_GetMultiDMATransfer().
<> 135:176b8275d35d 3844 * @note To configure DMA source address (peripheral address),
<> 135:176b8275d35d 3845 * use function @ref LL_ADC_DMA_GetRegAddr().
<> 135:176b8275d35d 3846 * @rmtoll CFGR DMAEN LL_ADC_REG_GetDMATransfer\n
<> 135:176b8275d35d 3847 * CFGR DMACFG LL_ADC_REG_GetDMATransfer
<> 135:176b8275d35d 3848 * @param ADCx ADC instance
<> 135:176b8275d35d 3849 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 3850 * @arg @ref LL_ADC_REG_DMA_TRANSFER_NONE
<> 135:176b8275d35d 3851 * @arg @ref LL_ADC_REG_DMA_TRANSFER_LIMITED
<> 135:176b8275d35d 3852 * @arg @ref LL_ADC_REG_DMA_TRANSFER_UNLIMITED
<> 135:176b8275d35d 3853 */
<> 135:176b8275d35d 3854 __STATIC_INLINE uint32_t LL_ADC_REG_GetDMATransfer(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 3855 {
<> 135:176b8275d35d 3856 return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_DMAEN | ADC_CFGR_DMACFG));
<> 135:176b8275d35d 3857 }
<> 135:176b8275d35d 3858
<> 135:176b8275d35d 3859 /**
<> 135:176b8275d35d 3860 * @brief Set ADC group regular behavior in case of overrun:
<> 135:176b8275d35d 3861 * data preserved or overwritten.
<> 135:176b8275d35d 3862 * @note Compatibility with devices without feature overrun:
<> 135:176b8275d35d 3863 * other devices without this feature have a behavior
<> 135:176b8275d35d 3864 * equivalent to data overwritten.
<> 135:176b8275d35d 3865 * The default setting of overrun is data preserved.
<> 135:176b8275d35d 3866 * Therefore, for compatibility with all devices, parameter
<> 135:176b8275d35d 3867 * overrun should be set to data overwritten.
<> 135:176b8275d35d 3868 * @note On this STM32 serie, setting of this feature is conditioned to
<> 135:176b8275d35d 3869 * ADC state:
<> 135:176b8275d35d 3870 * ADC must be disabled or enabled without conversion on going
<> 135:176b8275d35d 3871 * on group regular.
<> 135:176b8275d35d 3872 * @rmtoll CFGR OVRMOD LL_ADC_REG_SetOverrun
<> 135:176b8275d35d 3873 * @param ADCx ADC instance
<> 135:176b8275d35d 3874 * @param Overrun This parameter can be one of the following values:
<> 135:176b8275d35d 3875 * @arg @ref LL_ADC_REG_OVR_DATA_PRESERVED
<> 135:176b8275d35d 3876 * @arg @ref LL_ADC_REG_OVR_DATA_OVERWRITTEN
<> 135:176b8275d35d 3877 * @retval None
<> 135:176b8275d35d 3878 */
<> 135:176b8275d35d 3879 __STATIC_INLINE void LL_ADC_REG_SetOverrun(ADC_TypeDef *ADCx, uint32_t Overrun)
<> 135:176b8275d35d 3880 {
<> 135:176b8275d35d 3881 MODIFY_REG(ADCx->CFGR, ADC_CFGR_OVRMOD, Overrun);
<> 135:176b8275d35d 3882 }
<> 135:176b8275d35d 3883
<> 135:176b8275d35d 3884 /**
<> 135:176b8275d35d 3885 * @brief Get ADC group regular behavior in case of overrun:
<> 135:176b8275d35d 3886 * data preserved or overwritten.
<> 135:176b8275d35d 3887 * @rmtoll CFGR OVRMOD LL_ADC_REG_GetOverrun
<> 135:176b8275d35d 3888 * @param ADCx ADC instance
<> 135:176b8275d35d 3889 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 3890 * @arg @ref LL_ADC_REG_OVR_DATA_PRESERVED
<> 135:176b8275d35d 3891 * @arg @ref LL_ADC_REG_OVR_DATA_OVERWRITTEN
<> 135:176b8275d35d 3892 */
<> 135:176b8275d35d 3893 __STATIC_INLINE uint32_t LL_ADC_REG_GetOverrun(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 3894 {
<> 135:176b8275d35d 3895 return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_OVRMOD));
<> 135:176b8275d35d 3896 }
<> 135:176b8275d35d 3897
<> 135:176b8275d35d 3898 /**
<> 135:176b8275d35d 3899 * @}
<> 135:176b8275d35d 3900 */
<> 135:176b8275d35d 3901
<> 135:176b8275d35d 3902 /** @defgroup ADC_LL_EF_Configuration_ADC_Group_Injected Configuration of ADC hierarchical scope: group injected
<> 135:176b8275d35d 3903 * @{
<> 135:176b8275d35d 3904 */
<> 135:176b8275d35d 3905
<> 135:176b8275d35d 3906 /**
<> 135:176b8275d35d 3907 * @brief Set ADC group injected conversion trigger source:
<> 135:176b8275d35d 3908 * internal (SW start) or from external IP (timer event,
<> 135:176b8275d35d 3909 * external interrupt line).
<> 135:176b8275d35d 3910 * @note On this STM32 serie, setting trigger source to external trigger
<> 135:176b8275d35d 3911 * also set trigger polarity to rising edge
<> 135:176b8275d35d 3912 * (default setting for compatibility with some ADC on other
<> 135:176b8275d35d 3913 * STM32 families having this setting set by HW default value).
<> 135:176b8275d35d 3914 * In case of need to modify trigger edge, use
<> 135:176b8275d35d 3915 * function @ref LL_ADC_INJ_SetTriggerEdge().
<> 135:176b8275d35d 3916 * @note Caution to ADC group injected contexts queue: On this STM32 serie,
<> 135:176b8275d35d 3917 * using successively several times this function will appear has
<> 135:176b8275d35d 3918 * having no effect.
<> 135:176b8275d35d 3919 * This is due to ADC group injected contexts queue (this feature
<> 135:176b8275d35d 3920 * cannot be disabled on this STM32 serie).
<> 135:176b8275d35d 3921 * To set several features of ADC group injected, use
<> 135:176b8275d35d 3922 * function @ref LL_ADC_INJ_ConfigQueueContext().
<> 135:176b8275d35d 3923 * @note Availability of parameters of trigger sources from timer
<> 135:176b8275d35d 3924 * depends on timers availability on the selected device.
<> 135:176b8275d35d 3925 * @note On this STM32 serie, setting of this feature is conditioned to
<> 135:176b8275d35d 3926 * ADC state:
<> 135:176b8275d35d 3927 * ADC must not be disabled. Can be enabled with or without conversion
<> 135:176b8275d35d 3928 * on going on either groups regular or injected.
<> 135:176b8275d35d 3929 * @rmtoll JSQR JEXTSEL LL_ADC_INJ_SetTriggerSource\n
<> 135:176b8275d35d 3930 * JSQR JEXTEN LL_ADC_INJ_SetTriggerSource
<> 135:176b8275d35d 3931 * @param ADCx ADC instance
<> 135:176b8275d35d 3932 * @param TriggerSource This parameter can be one of the following values:
<> 135:176b8275d35d 3933 * @arg @ref LL_ADC_INJ_TRIG_SOFTWARE
<> 135:176b8275d35d 3934 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_TRGO
<> 135:176b8275d35d 3935 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_TRGO2
<> 135:176b8275d35d 3936 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_CH3_ADC34 (1)(2) (8)
<> 135:176b8275d35d 3937 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_CH4
<> 135:176b8275d35d 3938 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_TRGO (3)(4)(5)
<> 135:176b8275d35d 3939 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_TRGO_ADC12 (1)(2) (7)
<> 135:176b8275d35d 3940 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_TRGO__ADC34 (1)(2) (8)
<> 135:176b8275d35d 3941 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_CH1 (3)(4)(5)
<> 135:176b8275d35d 3942 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_CH1_ADC12 (1)(2) (7)
<> 135:176b8275d35d 3943 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_TRGO (1)(2)(3)(4)(5)
<> 135:176b8275d35d 3944 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH1 (3)(4)(5)
<> 135:176b8275d35d 3945 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH1_ADC12 (1)(2) (7)
<> 135:176b8275d35d 3946 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH3 (3)(4)(5)
<> 135:176b8275d35d 3947 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH3_ADC12 (1)(2) (7)
<> 135:176b8275d35d 3948 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH4 (3)(4)(5)
<> 135:176b8275d35d 3949 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH4_ADC12 (1)(2)(3)(4)(5) (7)
<> 135:176b8275d35d 3950 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_TRGO (3) (5)
<> 135:176b8275d35d 3951 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_TRGO_ADC12 (1)(2) (7)
<> 135:176b8275d35d 3952 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_TRGO__ADC34 (1)(2) (8)
<> 135:176b8275d35d 3953 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_CH3_ADC34 (1)(2) (8)
<> 135:176b8275d35d 3954 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_CH4_ADC34 (1)(2) (8)
<> 135:176b8275d35d 3955 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM6_TRGO (3)(4)(5)
<> 135:176b8275d35d 3956 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM6_TRGO_ADC12 (1)(2) (7)
<> 135:176b8275d35d 3957 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM7_TRGO_ADC34 (1)(2) (8)
<> 135:176b8275d35d 3958 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_TRGO (1)(2)
<> 135:176b8275d35d 3959 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_TRGO2 (1)(2)
<> 135:176b8275d35d 3960 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_CH2_ADC34 (1)(2) (8)
<> 135:176b8275d35d 3961 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_CH4_ADC12 (1)(2) (7)
<> 135:176b8275d35d 3962 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_CH4__ADC34 (1)(2) (8)
<> 135:176b8275d35d 3963 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM15_TRGO
<> 135:176b8275d35d 3964 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_TRGO_ADC12 (1) (7)
<> 135:176b8275d35d 3965 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_TRGO2_ADC12 (1) (7)
<> 135:176b8275d35d 3966 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_CH4_ADC12 (1) (7)
<> 135:176b8275d35d 3967 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_TRG_ADC34 (1) (8)
<> 135:176b8275d35d 3968 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_TRG2_ADC34 (1) (8)
<> 135:176b8275d35d 3969 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_CH2_ADC34 (1) (8)
<> 135:176b8275d35d 3970 * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG2 (4)
<> 135:176b8275d35d 3971 * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG4 (4)
<> 135:176b8275d35d 3972 * @arg @ref LL_ADC_INJ_TRIG_EXT_EXTI_LINE15 (3)(4)(5)(6)
<> 135:176b8275d35d 3973 * @arg @ref LL_ADC_INJ_TRIG_EXT_EXTI_LINE15_ADC12 (1)(2) (7)
<> 135:176b8275d35d 3974 *
<> 135:176b8275d35d 3975 * (1) On STM32F3, parameter not available on all devices: among others, on STM32F303xE, STM32F398xx.\n
<> 135:176b8275d35d 3976 * (2) On STM32F3, parameter not available on all devices: among others, on STM32F303xC, STM32F358xx.\n
<> 135:176b8275d35d 3977 * (3) On STM32F3, parameter not available on all devices: among others, on STM32F303x8, STM32F328xx.\n
<> 135:176b8275d35d 3978 * (4) On STM32F3, parameter not available on all devices: among others, on STM32F334x8.\n
<> 135:176b8275d35d 3979 * (5) On STM32F3, parameter not available on all devices: among others, on STM32F302xC, STM32F302xE.\n
<> 135:176b8275d35d 3980 * (6) On STM32F3, parameter not available on all devices: among others, on STM32F301x8, STM32F302x8, STM32F318xx.\n
<> 135:176b8275d35d 3981 * (7) On STM32F3, parameter not available on all ADC instances: ADC1, ADC2 (for ADC instances ADCx available on the selected device).\n
<> 135:176b8275d35d 3982 * (8) On STM32F3, parameter not available on all ADC instances: ADC3, ADC4 (for ADC instances ADCx available on the selected device).
<> 135:176b8275d35d 3983 * @retval None
<> 135:176b8275d35d 3984 */
<> 135:176b8275d35d 3985 __STATIC_INLINE void LL_ADC_INJ_SetTriggerSource(ADC_TypeDef *ADCx, uint32_t TriggerSource)
<> 135:176b8275d35d 3986 {
<> 135:176b8275d35d 3987 MODIFY_REG(ADCx->JSQR, ADC_JSQR_JEXTSEL | ADC_JSQR_JEXTEN, TriggerSource);
<> 135:176b8275d35d 3988 }
<> 135:176b8275d35d 3989
<> 135:176b8275d35d 3990 /**
<> 135:176b8275d35d 3991 * @brief Get ADC group injected conversion trigger source:
<> 135:176b8275d35d 3992 * internal (SW start) or from external IP (timer event,
<> 135:176b8275d35d 3993 * external interrupt line).
<> 135:176b8275d35d 3994 * @note To determine whether group injected trigger source is
<> 135:176b8275d35d 3995 * internal (SW start) or external, without detail
<> 135:176b8275d35d 3996 * of which peripheral is selected as external trigger,
<> 135:176b8275d35d 3997 * (equivalent to
<> 135:176b8275d35d 3998 * "if(LL_ADC_INJ_GetTriggerSource(ADC1) == LL_ADC_INJ_TRIG_SOFTWARE)")
<> 135:176b8275d35d 3999 * use function @ref LL_ADC_INJ_IsTriggerSourceSWStart.
<> 135:176b8275d35d 4000 * @note Availability of parameters of trigger sources from timer
<> 135:176b8275d35d 4001 * depends on timers availability on the selected device.
<> 135:176b8275d35d 4002 * @rmtoll JSQR JEXTSEL LL_ADC_INJ_GetTriggerSource\n
<> 135:176b8275d35d 4003 * JSQR JEXTEN LL_ADC_INJ_GetTriggerSource
<> 135:176b8275d35d 4004 * @param ADCx ADC instance
<> 135:176b8275d35d 4005 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 4006 * @arg @ref LL_ADC_INJ_TRIG_SOFTWARE
<> 135:176b8275d35d 4007 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_TRGO
<> 135:176b8275d35d 4008 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_TRGO2
<> 135:176b8275d35d 4009 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_CH3_ADC34 (1)(2) (8)
<> 135:176b8275d35d 4010 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_CH4
<> 135:176b8275d35d 4011 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_TRGO (3)(4)(5)
<> 135:176b8275d35d 4012 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_TRGO_ADC12 (1)(2) (7)
<> 135:176b8275d35d 4013 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_TRGO__ADC34 (1)(2) (8)
<> 135:176b8275d35d 4014 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_CH1 (3)(4)(5)
<> 135:176b8275d35d 4015 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_CH1_ADC12 (1)(2) (7)
<> 135:176b8275d35d 4016 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_TRGO (1)(2)(3)(4)(5)
<> 135:176b8275d35d 4017 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH1 (3)(4)(5)
<> 135:176b8275d35d 4018 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH1_ADC12 (1)(2) (7)
<> 135:176b8275d35d 4019 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH3 (3)(4)(5)
<> 135:176b8275d35d 4020 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH3_ADC12 (1)(2) (7)
<> 135:176b8275d35d 4021 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH4 (3)(4)(5)
<> 135:176b8275d35d 4022 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH4_ADC12 (1)(2)(3)(4)(5) (7)
<> 135:176b8275d35d 4023 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_TRGO (3) (5)
<> 135:176b8275d35d 4024 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_TRGO_ADC12 (1)(2) (7)
<> 135:176b8275d35d 4025 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_TRGO__ADC34 (1)(2) (8)
<> 135:176b8275d35d 4026 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_CH3_ADC34 (1)(2) (8)
<> 135:176b8275d35d 4027 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_CH4_ADC34 (1)(2) (8)
<> 135:176b8275d35d 4028 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM6_TRGO (3)(4)(5)
<> 135:176b8275d35d 4029 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM6_TRGO_ADC12 (1)(2) (7)
<> 135:176b8275d35d 4030 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM7_TRGO_ADC34 (1)(2) (8)
<> 135:176b8275d35d 4031 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_TRGO (1)(2)
<> 135:176b8275d35d 4032 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_TRGO2 (1)(2)
<> 135:176b8275d35d 4033 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_CH2_ADC34 (1)(2) (8)
<> 135:176b8275d35d 4034 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_CH4_ADC12 (1)(2) (7)
<> 135:176b8275d35d 4035 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_CH4__ADC34 (1)(2) (8)
<> 135:176b8275d35d 4036 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM15_TRGO
<> 135:176b8275d35d 4037 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_TRGO_ADC12 (1) (7)
<> 135:176b8275d35d 4038 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_TRGO2_ADC12 (1) (7)
<> 135:176b8275d35d 4039 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_CH4_ADC12 (1) (7)
<> 135:176b8275d35d 4040 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_TRG_ADC34 (1) (8)
<> 135:176b8275d35d 4041 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_TRG2_ADC34 (1) (8)
<> 135:176b8275d35d 4042 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_CH2_ADC34 (1) (8)
<> 135:176b8275d35d 4043 * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG2 (4)
<> 135:176b8275d35d 4044 * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG4 (4)
<> 135:176b8275d35d 4045 * @arg @ref LL_ADC_INJ_TRIG_EXT_EXTI_LINE15 (3)(4)(5)(6)
<> 135:176b8275d35d 4046 * @arg @ref LL_ADC_INJ_TRIG_EXT_EXTI_LINE15_ADC12 (1)(2) (7)
<> 135:176b8275d35d 4047 *
<> 135:176b8275d35d 4048 * (1) On STM32F3, parameter not available on all devices: among others, on STM32F303xE, STM32F398xx.\n
<> 135:176b8275d35d 4049 * (2) On STM32F3, parameter not available on all devices: among others, on STM32F303xC, STM32F358xx.\n
<> 135:176b8275d35d 4050 * (3) On STM32F3, parameter not available on all devices: among others, on STM32F303x8, STM32F328xx.\n
<> 135:176b8275d35d 4051 * (4) On STM32F3, parameter not available on all devices: among others, on STM32F334x8.\n
<> 135:176b8275d35d 4052 * (5) On STM32F3, parameter not available on all devices: among others, on STM32F302xC, STM32F302xE.\n
<> 135:176b8275d35d 4053 * (6) On STM32F3, parameter not available on all devices: among others, on STM32F301x8, STM32F302x8, STM32F318xx.\n
<> 135:176b8275d35d 4054 * (7) On STM32F3, parameter not available on all ADC instances: ADC1, ADC2 (for ADC instances ADCx available on the selected device).\n
<> 135:176b8275d35d 4055 * (8) On STM32F3, parameter not available on all ADC instances: ADC3, ADC4 (for ADC instances ADCx available on the selected device).
<> 135:176b8275d35d 4056 */
<> 135:176b8275d35d 4057 __STATIC_INLINE uint32_t LL_ADC_INJ_GetTriggerSource(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 4058 {
<> 135:176b8275d35d 4059 register uint32_t TriggerSource = READ_BIT(ADCx->JSQR, ADC_JSQR_JEXTSEL | ADC_JSQR_JEXTEN);
<> 135:176b8275d35d 4060
<> 135:176b8275d35d 4061 /* Value for shift of {0; 4; 8; 12} depending on value of bitfield */
<> 135:176b8275d35d 4062 /* corresponding to ADC_JSQR_JEXTEN {0; 1; 2; 3}. */
<> 135:176b8275d35d 4063 register uint32_t ShiftJexten = ((TriggerSource & ADC_JSQR_JEXTEN) >> (ADC_INJ_TRIG_EXTEN_BITOFFSET_POS - 2U));
<> 135:176b8275d35d 4064
<> 135:176b8275d35d 4065 /* Set bitfield corresponding to ADC_JSQR_JEXTEN and ADC_JSQR_JEXTSEL */
<> 135:176b8275d35d 4066 /* to match with triggers literals definition. */
<> 135:176b8275d35d 4067 return ((TriggerSource
<> 135:176b8275d35d 4068 & (ADC_INJ_TRIG_SOURCE_MASK >> ShiftJexten) & ADC_JSQR_JEXTSEL)
<> 135:176b8275d35d 4069 | ((ADC_INJ_TRIG_EDGE_MASK >> ShiftJexten) & ADC_JSQR_JEXTEN)
<> 135:176b8275d35d 4070 );
<> 135:176b8275d35d 4071 }
<> 135:176b8275d35d 4072
<> 135:176b8275d35d 4073 /**
<> 135:176b8275d35d 4074 * @brief Get ADC group injected conversion trigger source internal (SW start)
<> 135:176b8275d35d 4075 or external
<> 135:176b8275d35d 4076 * @note In case of group injected trigger source set to external trigger,
<> 135:176b8275d35d 4077 * to determine which peripheral is selected as external trigger,
<> 135:176b8275d35d 4078 * use function @ref LL_ADC_INJ_GetTriggerSource.
<> 135:176b8275d35d 4079 * @rmtoll JSQR JEXTEN LL_ADC_INJ_IsTriggerSourceSWStart
<> 135:176b8275d35d 4080 * @param ADCx ADC instance
<> 135:176b8275d35d 4081 * @retval Value "0" if trigger source external trigger
<> 135:176b8275d35d 4082 * Value "1" if trigger source SW start.
<> 135:176b8275d35d 4083 */
<> 135:176b8275d35d 4084 __STATIC_INLINE uint32_t LL_ADC_INJ_IsTriggerSourceSWStart(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 4085 {
<> 135:176b8275d35d 4086 return (READ_BIT(ADCx->JSQR, ADC_JSQR_JEXTEN) == (LL_ADC_INJ_TRIG_SOFTWARE & ADC_JSQR_JEXTEN));
<> 135:176b8275d35d 4087 }
<> 135:176b8275d35d 4088
<> 135:176b8275d35d 4089 /**
<> 135:176b8275d35d 4090 * @brief Set ADC group injected conversion trigger polarity.
<> 135:176b8275d35d 4091 * Applicable only for trigger source set to external trigger.
<> 135:176b8275d35d 4092 * @note On this STM32 serie, setting of this feature is conditioned to
<> 135:176b8275d35d 4093 * ADC state:
<> 135:176b8275d35d 4094 * ADC must not be disabled. Can be enabled with or without conversion
<> 135:176b8275d35d 4095 * on going on either groups regular or injected.
<> 135:176b8275d35d 4096 * @rmtoll JSQR JEXTEN LL_ADC_INJ_SetTriggerEdge
<> 135:176b8275d35d 4097 * @param ADCx ADC instance
<> 135:176b8275d35d 4098 * @param ExternalTriggerEdge This parameter can be one of the following values:
<> 135:176b8275d35d 4099 * @arg @ref LL_ADC_INJ_TRIG_EXT_RISING
<> 135:176b8275d35d 4100 * @arg @ref LL_ADC_INJ_TRIG_EXT_FALLING
<> 135:176b8275d35d 4101 * @arg @ref LL_ADC_INJ_TRIG_EXT_RISINGFALLING
<> 135:176b8275d35d 4102 * @retval None
<> 135:176b8275d35d 4103 */
<> 135:176b8275d35d 4104 __STATIC_INLINE void LL_ADC_INJ_SetTriggerEdge(ADC_TypeDef *ADCx, uint32_t ExternalTriggerEdge)
<> 135:176b8275d35d 4105 {
<> 135:176b8275d35d 4106 MODIFY_REG(ADCx->JSQR, ADC_JSQR_JEXTEN, ExternalTriggerEdge);
<> 135:176b8275d35d 4107 }
<> 135:176b8275d35d 4108
<> 135:176b8275d35d 4109 /**
<> 135:176b8275d35d 4110 * @brief Get ADC group injected conversion trigger polarity.
<> 135:176b8275d35d 4111 * Applicable only for trigger source set to external trigger.
<> 135:176b8275d35d 4112 * @rmtoll JSQR JEXTEN LL_ADC_INJ_GetTriggerEdge
<> 135:176b8275d35d 4113 * @param ADCx ADC instance
<> 135:176b8275d35d 4114 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 4115 * @arg @ref LL_ADC_INJ_TRIG_EXT_RISING
<> 135:176b8275d35d 4116 * @arg @ref LL_ADC_INJ_TRIG_EXT_FALLING
<> 135:176b8275d35d 4117 * @arg @ref LL_ADC_INJ_TRIG_EXT_RISINGFALLING
<> 135:176b8275d35d 4118 */
<> 135:176b8275d35d 4119 __STATIC_INLINE uint32_t LL_ADC_INJ_GetTriggerEdge(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 4120 {
<> 135:176b8275d35d 4121 return (uint32_t)(READ_BIT(ADCx->JSQR, ADC_JSQR_JEXTEN));
<> 135:176b8275d35d 4122 }
<> 135:176b8275d35d 4123
<> 135:176b8275d35d 4124 /**
<> 135:176b8275d35d 4125 * @brief Set ADC group injected sequencer length and scan direction.
<> 135:176b8275d35d 4126 * @note This function performs configuration of:
<> 135:176b8275d35d 4127 * - Sequence length: Number of ranks in the scan sequence.
<> 135:176b8275d35d 4128 * - Sequence direction: Unless specified in parameters, sequencer
<> 135:176b8275d35d 4129 * scan direction is forward (from rank 1 to rank n).
<> 135:176b8275d35d 4130 * @note Sequencer disabled is equivalent to sequencer of 1 rank:
<> 135:176b8275d35d 4131 * ADC conversion on only 1 channel.
<> 135:176b8275d35d 4132 * @note Caution to ADC group injected contexts queue: On this STM32 serie,
<> 135:176b8275d35d 4133 * using successively several times this function will appear has
<> 135:176b8275d35d 4134 * having no effect.
<> 135:176b8275d35d 4135 * This is due to ADC group injected contexts queue (this feature
<> 135:176b8275d35d 4136 * cannot be disabled on this STM32 serie).
<> 135:176b8275d35d 4137 * To set several features of ADC group injected, use
<> 135:176b8275d35d 4138 * function @ref LL_ADC_INJ_ConfigQueueContext().
<> 135:176b8275d35d 4139 * @note On this STM32 serie, setting of this feature is conditioned to
<> 135:176b8275d35d 4140 * ADC state:
<> 135:176b8275d35d 4141 * ADC must not be disabled. Can be enabled with or without conversion
<> 135:176b8275d35d 4142 * on going on either groups regular or injected.
<> 135:176b8275d35d 4143 * @rmtoll JSQR JL LL_ADC_INJ_SetSequencerLength
<> 135:176b8275d35d 4144 * @param ADCx ADC instance
<> 135:176b8275d35d 4145 * @param SequencerNbRanks This parameter can be one of the following values:
<> 135:176b8275d35d 4146 * @arg @ref LL_ADC_INJ_SEQ_SCAN_DISABLE
<> 135:176b8275d35d 4147 * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_2RANKS
<> 135:176b8275d35d 4148 * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_3RANKS
<> 135:176b8275d35d 4149 * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_4RANKS
<> 135:176b8275d35d 4150 * @retval None
<> 135:176b8275d35d 4151 */
<> 135:176b8275d35d 4152 __STATIC_INLINE void LL_ADC_INJ_SetSequencerLength(ADC_TypeDef *ADCx, uint32_t SequencerNbRanks)
<> 135:176b8275d35d 4153 {
<> 135:176b8275d35d 4154 MODIFY_REG(ADCx->JSQR, ADC_JSQR_JL, SequencerNbRanks);
<> 135:176b8275d35d 4155 }
<> 135:176b8275d35d 4156
<> 135:176b8275d35d 4157 /**
<> 135:176b8275d35d 4158 * @brief Get ADC group injected sequencer length and scan direction.
<> 135:176b8275d35d 4159 * @note This function retrieves:
<> 135:176b8275d35d 4160 * - Sequence length: Number of ranks in the scan sequence.
<> 135:176b8275d35d 4161 * - Sequence direction: Unless specified in parameters, sequencer
<> 135:176b8275d35d 4162 * scan direction is forward (from rank 1 to rank n).
<> 135:176b8275d35d 4163 * @note Sequencer disabled is equivalent to sequencer of 1 rank:
<> 135:176b8275d35d 4164 * ADC conversion on only 1 channel.
<> 135:176b8275d35d 4165 * @rmtoll JSQR JL LL_ADC_INJ_GetSequencerLength
<> 135:176b8275d35d 4166 * @param ADCx ADC instance
<> 135:176b8275d35d 4167 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 4168 * @arg @ref LL_ADC_INJ_SEQ_SCAN_DISABLE
<> 135:176b8275d35d 4169 * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_2RANKS
<> 135:176b8275d35d 4170 * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_3RANKS
<> 135:176b8275d35d 4171 * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_4RANKS
<> 135:176b8275d35d 4172 */
<> 135:176b8275d35d 4173 __STATIC_INLINE uint32_t LL_ADC_INJ_GetSequencerLength(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 4174 {
<> 135:176b8275d35d 4175 return (uint32_t)(READ_BIT(ADCx->JSQR, ADC_JSQR_JL));
<> 135:176b8275d35d 4176 }
<> 135:176b8275d35d 4177
<> 135:176b8275d35d 4178 /**
<> 135:176b8275d35d 4179 * @brief Set ADC group injected sequencer discontinuous mode:
<> 135:176b8275d35d 4180 * sequence subdivided and scan conversions interrupted every selected
<> 135:176b8275d35d 4181 * number of ranks.
<> 135:176b8275d35d 4182 * @note It is not possible to enable both ADC group injected
<> 135:176b8275d35d 4183 * auto-injected mode and sequencer discontinuous mode.
<> 135:176b8275d35d 4184 * @rmtoll CFGR JDISCEN LL_ADC_INJ_SetSequencerDiscont
<> 135:176b8275d35d 4185 * @param ADCx ADC instance
<> 135:176b8275d35d 4186 * @param SeqDiscont This parameter can be one of the following values:
<> 135:176b8275d35d 4187 * @arg @ref LL_ADC_INJ_SEQ_DISCONT_DISABLE
<> 135:176b8275d35d 4188 * @arg @ref LL_ADC_INJ_SEQ_DISCONT_1RANK
<> 135:176b8275d35d 4189 * @retval None
<> 135:176b8275d35d 4190 */
<> 135:176b8275d35d 4191 __STATIC_INLINE void LL_ADC_INJ_SetSequencerDiscont(ADC_TypeDef *ADCx, uint32_t SeqDiscont)
<> 135:176b8275d35d 4192 {
<> 135:176b8275d35d 4193 MODIFY_REG(ADCx->CFGR, ADC_CFGR_JDISCEN, SeqDiscont);
<> 135:176b8275d35d 4194 }
<> 135:176b8275d35d 4195
<> 135:176b8275d35d 4196 /**
<> 135:176b8275d35d 4197 * @brief Get ADC group injected sequencer discontinuous mode:
<> 135:176b8275d35d 4198 * sequence subdivided and scan conversions interrupted every selected
<> 135:176b8275d35d 4199 * number of ranks.
<> 135:176b8275d35d 4200 * @rmtoll CFGR JDISCEN LL_ADC_INJ_GetSequencerDiscont
<> 135:176b8275d35d 4201 * @param ADCx ADC instance
<> 135:176b8275d35d 4202 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 4203 * @arg @ref LL_ADC_INJ_SEQ_DISCONT_DISABLE
<> 135:176b8275d35d 4204 * @arg @ref LL_ADC_INJ_SEQ_DISCONT_1RANK
<> 135:176b8275d35d 4205 */
<> 135:176b8275d35d 4206 __STATIC_INLINE uint32_t LL_ADC_INJ_GetSequencerDiscont(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 4207 {
<> 135:176b8275d35d 4208 return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_JDISCEN));
<> 135:176b8275d35d 4209 }
<> 135:176b8275d35d 4210
<> 135:176b8275d35d 4211 /**
<> 135:176b8275d35d 4212 * @brief Set ADC group injected sequence: channel on the selected
<> 135:176b8275d35d 4213 * sequence rank.
<> 135:176b8275d35d 4214 * @note Depending on devices and packages, some channels may not be available.
<> 135:176b8275d35d 4215 * Refer to device datasheet for channels availability.
<> 135:176b8275d35d 4216 * @note On this STM32 serie, to measure internal channels (VrefInt,
<> 135:176b8275d35d 4217 * TempSensor, ...), measurement paths to internal channels must be
<> 135:176b8275d35d 4218 * enabled separately.
<> 135:176b8275d35d 4219 * This can be done using function @ref LL_ADC_SetCommonPathInternalCh().
<> 135:176b8275d35d 4220 * @note Caution to ADC group injected contexts queue: On this STM32 serie,
<> 135:176b8275d35d 4221 * using successively several times this function will appear has
<> 135:176b8275d35d 4222 * having no effect.
<> 135:176b8275d35d 4223 * This is due to ADC group injected contexts queue (this feature
<> 135:176b8275d35d 4224 * cannot be disabled on this STM32 serie).
<> 135:176b8275d35d 4225 * To set several features of ADC group injected, use
<> 135:176b8275d35d 4226 * function @ref LL_ADC_INJ_ConfigQueueContext().
<> 135:176b8275d35d 4227 * @note On this STM32 serie, setting of this feature is conditioned to
<> 135:176b8275d35d 4228 * ADC state:
<> 135:176b8275d35d 4229 * ADC must not be disabled. Can be enabled with or without conversion
<> 135:176b8275d35d 4230 * on going on either groups regular or injected.
<> 135:176b8275d35d 4231 * @rmtoll JSQR JSQ1 LL_ADC_INJ_SetSequencerRanks\n
<> 135:176b8275d35d 4232 * JSQR JSQ2 LL_ADC_INJ_SetSequencerRanks\n
<> 135:176b8275d35d 4233 * JSQR JSQ3 LL_ADC_INJ_SetSequencerRanks\n
<> 135:176b8275d35d 4234 * JSQR JSQ4 LL_ADC_INJ_SetSequencerRanks
<> 135:176b8275d35d 4235 * @param ADCx ADC instance
<> 135:176b8275d35d 4236 * @param Rank This parameter can be one of the following values:
<> 135:176b8275d35d 4237 * @arg @ref LL_ADC_INJ_RANK_1
<> 135:176b8275d35d 4238 * @arg @ref LL_ADC_INJ_RANK_2
<> 135:176b8275d35d 4239 * @arg @ref LL_ADC_INJ_RANK_3
<> 135:176b8275d35d 4240 * @arg @ref LL_ADC_INJ_RANK_4
<> 135:176b8275d35d 4241 * @param Channel This parameter can be one of the following values:
<> 135:176b8275d35d 4242 * @arg @ref LL_ADC_CHANNEL_0
<> 135:176b8275d35d 4243 * @arg @ref LL_ADC_CHANNEL_1
<> 135:176b8275d35d 4244 * @arg @ref LL_ADC_CHANNEL_2
<> 135:176b8275d35d 4245 * @arg @ref LL_ADC_CHANNEL_3
<> 135:176b8275d35d 4246 * @arg @ref LL_ADC_CHANNEL_4
<> 135:176b8275d35d 4247 * @arg @ref LL_ADC_CHANNEL_5
<> 135:176b8275d35d 4248 * @arg @ref LL_ADC_CHANNEL_6
<> 135:176b8275d35d 4249 * @arg @ref LL_ADC_CHANNEL_7
<> 135:176b8275d35d 4250 * @arg @ref LL_ADC_CHANNEL_8
<> 135:176b8275d35d 4251 * @arg @ref LL_ADC_CHANNEL_9
<> 135:176b8275d35d 4252 * @arg @ref LL_ADC_CHANNEL_10
<> 135:176b8275d35d 4253 * @arg @ref LL_ADC_CHANNEL_11
<> 135:176b8275d35d 4254 * @arg @ref LL_ADC_CHANNEL_12
<> 135:176b8275d35d 4255 * @arg @ref LL_ADC_CHANNEL_13
<> 135:176b8275d35d 4256 * @arg @ref LL_ADC_CHANNEL_14
<> 135:176b8275d35d 4257 * @arg @ref LL_ADC_CHANNEL_15
<> 135:176b8275d35d 4258 * @arg @ref LL_ADC_CHANNEL_16
<> 135:176b8275d35d 4259 * @arg @ref LL_ADC_CHANNEL_17
<> 135:176b8275d35d 4260 * @arg @ref LL_ADC_CHANNEL_18
<> 135:176b8275d35d 4261 * @arg @ref LL_ADC_CHANNEL_VREFINT (5)
<> 135:176b8275d35d 4262 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (1)
<> 135:176b8275d35d 4263 * @arg @ref LL_ADC_CHANNEL_VBAT (1)
<> 135:176b8275d35d 4264 * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1)
<> 135:176b8275d35d 4265 * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2)
<> 135:176b8275d35d 4266 * @arg @ref LL_ADC_CHANNEL_VOPAMP3 (3)
<> 135:176b8275d35d 4267 * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (4)
<> 135:176b8275d35d 4268 *
<> 135:176b8275d35d 4269 * (1) On STM32F3, parameter available only on ADC instance: ADC1.\n
<> 135:176b8275d35d 4270 * (2) On STM32F3, parameter available only on ADC instance: ADC2.\n
<> 135:176b8275d35d 4271 * (3) On STM32F3, parameter available only on ADC instance: ADC3.\n
<> 135:176b8275d35d 4272 * (4) On STM32F3, parameter available only on ADC instances: ADC4.\n
<> 135:176b8275d35d 4273 * (5) On STM32F3, ADC channel available only on all ADC instances, but
<> 135:176b8275d35d 4274 * only one ADC instance is allowed to be connected to VrefInt at the same time.
<> 135:176b8275d35d 4275 * @retval None
<> 135:176b8275d35d 4276 */
<> 135:176b8275d35d 4277 __STATIC_INLINE void LL_ADC_INJ_SetSequencerRanks(ADC_TypeDef *ADCx, uint32_t Rank, uint32_t Channel)
<> 135:176b8275d35d 4278 {
<> 135:176b8275d35d 4279 /* Set bits with content of parameter "Channel" with bits position */
<> 135:176b8275d35d 4280 /* in register depending on parameter "Rank". */
<> 135:176b8275d35d 4281 /* Parameters "Rank" and "Channel" are used with masks because containing */
<> 135:176b8275d35d 4282 /* other bits reserved for other purpose. */
<> 135:176b8275d35d 4283 MODIFY_REG(ADCx->JSQR,
<> 135:176b8275d35d 4284 ADC_CHANNEL_ID_NUMBER_MASK >> (ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS - (Rank & ADC_INJ_RANK_ID_JSQR_MASK)),
<> 135:176b8275d35d 4285 (Channel & ADC_CHANNEL_ID_NUMBER_MASK) >> (ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS - (Rank & ADC_INJ_RANK_ID_JSQR_MASK)));
<> 135:176b8275d35d 4286 }
<> 135:176b8275d35d 4287
<> 135:176b8275d35d 4288 /**
<> 135:176b8275d35d 4289 * @brief Get ADC group injected sequence: channel on the selected
<> 135:176b8275d35d 4290 * sequence rank.
<> 135:176b8275d35d 4291 * @note Depending on devices and packages, some channels may not be available.
<> 135:176b8275d35d 4292 * Refer to device datasheet for channels availability.
<> 135:176b8275d35d 4293 * @note Usage of the returned channel number:
<> 135:176b8275d35d 4294 * - To reinject this channel into another function LL_ADC_xxx:
<> 135:176b8275d35d 4295 * the returned channel number is only partly formatted on definition
<> 135:176b8275d35d 4296 * of literals LL_ADC_CHANNEL_x. Therefore, it has to be compared
<> 135:176b8275d35d 4297 * with parts of literals LL_ADC_CHANNEL_x or using
<> 135:176b8275d35d 4298 * helper macro @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
<> 135:176b8275d35d 4299 * Then the selected literal LL_ADC_CHANNEL_x can be used
<> 135:176b8275d35d 4300 * as parameter for another function.
<> 135:176b8275d35d 4301 * - To get the channel number in decimal format:
<> 135:176b8275d35d 4302 * process the returned value with the helper macro
<> 135:176b8275d35d 4303 * @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
<> 135:176b8275d35d 4304 * @rmtoll JSQR JSQ1 LL_ADC_INJ_GetSequencerRanks\n
<> 135:176b8275d35d 4305 * JSQR JSQ2 LL_ADC_INJ_GetSequencerRanks\n
<> 135:176b8275d35d 4306 * JSQR JSQ3 LL_ADC_INJ_GetSequencerRanks\n
<> 135:176b8275d35d 4307 * JSQR JSQ4 LL_ADC_INJ_GetSequencerRanks
<> 135:176b8275d35d 4308 * @param ADCx ADC instance
<> 135:176b8275d35d 4309 * @param Rank This parameter can be one of the following values:
<> 135:176b8275d35d 4310 * @arg @ref LL_ADC_INJ_RANK_1
<> 135:176b8275d35d 4311 * @arg @ref LL_ADC_INJ_RANK_2
<> 135:176b8275d35d 4312 * @arg @ref LL_ADC_INJ_RANK_3
<> 135:176b8275d35d 4313 * @arg @ref LL_ADC_INJ_RANK_4
<> 135:176b8275d35d 4314 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 4315 * @arg @ref LL_ADC_CHANNEL_0
<> 135:176b8275d35d 4316 * @arg @ref LL_ADC_CHANNEL_1
<> 135:176b8275d35d 4317 * @arg @ref LL_ADC_CHANNEL_2
<> 135:176b8275d35d 4318 * @arg @ref LL_ADC_CHANNEL_3
<> 135:176b8275d35d 4319 * @arg @ref LL_ADC_CHANNEL_4
<> 135:176b8275d35d 4320 * @arg @ref LL_ADC_CHANNEL_5
<> 135:176b8275d35d 4321 * @arg @ref LL_ADC_CHANNEL_6
<> 135:176b8275d35d 4322 * @arg @ref LL_ADC_CHANNEL_7
<> 135:176b8275d35d 4323 * @arg @ref LL_ADC_CHANNEL_8
<> 135:176b8275d35d 4324 * @arg @ref LL_ADC_CHANNEL_9
<> 135:176b8275d35d 4325 * @arg @ref LL_ADC_CHANNEL_10
<> 135:176b8275d35d 4326 * @arg @ref LL_ADC_CHANNEL_11
<> 135:176b8275d35d 4327 * @arg @ref LL_ADC_CHANNEL_12
<> 135:176b8275d35d 4328 * @arg @ref LL_ADC_CHANNEL_13
<> 135:176b8275d35d 4329 * @arg @ref LL_ADC_CHANNEL_14
<> 135:176b8275d35d 4330 * @arg @ref LL_ADC_CHANNEL_15
<> 135:176b8275d35d 4331 * @arg @ref LL_ADC_CHANNEL_16
<> 135:176b8275d35d 4332 * @arg @ref LL_ADC_CHANNEL_17
<> 135:176b8275d35d 4333 * @arg @ref LL_ADC_CHANNEL_18
<> 135:176b8275d35d 4334 * @arg @ref LL_ADC_CHANNEL_VREFINT (5)
<> 135:176b8275d35d 4335 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (1)
<> 135:176b8275d35d 4336 * @arg @ref LL_ADC_CHANNEL_VBAT (1)
<> 135:176b8275d35d 4337 * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1)
<> 135:176b8275d35d 4338 * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2)
<> 135:176b8275d35d 4339 * @arg @ref LL_ADC_CHANNEL_VOPAMP3 (3)
<> 135:176b8275d35d 4340 * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (4)
<> 135:176b8275d35d 4341 *
<> 135:176b8275d35d 4342 * (1) On STM32F3, parameter available only on ADC instance: ADC1.\n
<> 135:176b8275d35d 4343 * (2) On STM32F3, parameter available only on ADC instance: ADC2.\n
<> 135:176b8275d35d 4344 * (3) On STM32F3, parameter available only on ADC instance: ADC3.\n
<> 135:176b8275d35d 4345 * (4) On STM32F3, parameter available only on ADC instances: ADC4.\n
<> 135:176b8275d35d 4346 * (5) On STM32F3, ADC channel available only on all ADC instances, but
<> 135:176b8275d35d 4347 * only one ADC instance is allowed to be connected to VrefInt at the same time.\n
<> 135:176b8275d35d 4348 * (1, 2, 3, 4, 5) For ADC channel read back from ADC register,
<> 135:176b8275d35d 4349 * comparison with internal channel parameter to be done
<> 135:176b8275d35d 4350 * using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL().
<> 135:176b8275d35d 4351 */
<> 135:176b8275d35d 4352 __STATIC_INLINE uint32_t LL_ADC_INJ_GetSequencerRanks(ADC_TypeDef *ADCx, uint32_t Rank)
<> 135:176b8275d35d 4353 {
<> 135:176b8275d35d 4354 return (uint32_t)(READ_BIT(ADCx->JSQR,
<> 135:176b8275d35d 4355 ADC_CHANNEL_ID_NUMBER_MASK >> (ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS - (Rank & ADC_INJ_RANK_ID_JSQR_MASK)))
<> 135:176b8275d35d 4356 << (ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS - (Rank & ADC_INJ_RANK_ID_JSQR_MASK))
<> 135:176b8275d35d 4357 );
<> 135:176b8275d35d 4358 }
<> 135:176b8275d35d 4359
<> 135:176b8275d35d 4360 /**
<> 135:176b8275d35d 4361 * @brief Set ADC group injected conversion trigger:
<> 135:176b8275d35d 4362 * independent or from ADC group regular.
<> 135:176b8275d35d 4363 * @note This mode can be used to extend number of data registers
<> 135:176b8275d35d 4364 * updated after one ADC conversion trigger and with data
<> 135:176b8275d35d 4365 * permanently kept (not erased by successive conversions of scan of
<> 135:176b8275d35d 4366 * ADC sequencer ranks), up to 5 data registers:
<> 135:176b8275d35d 4367 * 1 data register on ADC group regular, 4 data registers
<> 135:176b8275d35d 4368 * on ADC group injected.
<> 135:176b8275d35d 4369 * @note If ADC group injected injected trigger source is set to an
<> 135:176b8275d35d 4370 * external trigger, this feature must be must be set to
<> 135:176b8275d35d 4371 * independent trigger.
<> 135:176b8275d35d 4372 * ADC group injected automatic trigger is compliant only with
<> 135:176b8275d35d 4373 * group injected trigger source set to SW start, without any
<> 135:176b8275d35d 4374 * further action on ADC group injected conversion start or stop:
<> 135:176b8275d35d 4375 * in this case, ADC group injected is controlled only
<> 135:176b8275d35d 4376 * from ADC group regular.
<> 135:176b8275d35d 4377 * @note It is not possible to enable both ADC group injected
<> 135:176b8275d35d 4378 * auto-injected mode and sequencer discontinuous mode.
<> 135:176b8275d35d 4379 * @note On this STM32 serie, setting of this feature is conditioned to
<> 135:176b8275d35d 4380 * ADC state:
<> 135:176b8275d35d 4381 * ADC must be disabled or enabled without conversion on going
<> 135:176b8275d35d 4382 * on either groups regular or injected.
<> 135:176b8275d35d 4383 * @rmtoll CFGR JAUTO LL_ADC_INJ_SetTrigAuto
<> 135:176b8275d35d 4384 * @param ADCx ADC instance
<> 135:176b8275d35d 4385 * @param TrigAuto This parameter can be one of the following values:
<> 135:176b8275d35d 4386 * @arg @ref LL_ADC_INJ_TRIG_INDEPENDENT
<> 135:176b8275d35d 4387 * @arg @ref LL_ADC_INJ_TRIG_FROM_GRP_REGULAR
<> 135:176b8275d35d 4388 * @retval None
<> 135:176b8275d35d 4389 */
<> 135:176b8275d35d 4390 __STATIC_INLINE void LL_ADC_INJ_SetTrigAuto(ADC_TypeDef *ADCx, uint32_t TrigAuto)
<> 135:176b8275d35d 4391 {
<> 135:176b8275d35d 4392 MODIFY_REG(ADCx->CFGR, ADC_CFGR_JAUTO, TrigAuto);
<> 135:176b8275d35d 4393 }
<> 135:176b8275d35d 4394
<> 135:176b8275d35d 4395 /**
<> 135:176b8275d35d 4396 * @brief Get ADC group injected conversion trigger:
<> 135:176b8275d35d 4397 * independent or from ADC group regular.
<> 135:176b8275d35d 4398 * @rmtoll CFGR JAUTO LL_ADC_INJ_GetTrigAuto
<> 135:176b8275d35d 4399 * @param ADCx ADC instance
<> 135:176b8275d35d 4400 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 4401 * @arg @ref LL_ADC_INJ_TRIG_INDEPENDENT
<> 135:176b8275d35d 4402 * @arg @ref LL_ADC_INJ_TRIG_FROM_GRP_REGULAR
<> 135:176b8275d35d 4403 */
<> 135:176b8275d35d 4404 __STATIC_INLINE uint32_t LL_ADC_INJ_GetTrigAuto(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 4405 {
<> 135:176b8275d35d 4406 return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_JAUTO));
<> 135:176b8275d35d 4407 }
<> 135:176b8275d35d 4408
<> 135:176b8275d35d 4409 /**
<> 135:176b8275d35d 4410 * @brief Set ADC group injected contexts queue mode.
<> 135:176b8275d35d 4411 * @note A context is a setting of group injected sequencer:
<> 135:176b8275d35d 4412 * - group injected trigger
<> 135:176b8275d35d 4413 * - sequencer length
<> 135:176b8275d35d 4414 * - sequencer ranks
<> 135:176b8275d35d 4415 * If contexts queue is disabled:
<> 135:176b8275d35d 4416 * - only 1 sequence can be configured
<> 135:176b8275d35d 4417 * and is active perpetually.
<> 135:176b8275d35d 4418 * If contexts queue is enabled:
<> 135:176b8275d35d 4419 * - up to 2 contexts can be queued
<> 135:176b8275d35d 4420 * and are checked in and out as a FIFO stack (first-in, first-out).
<> 135:176b8275d35d 4421 * - If a new context is set when queues is full, error is triggered
<> 135:176b8275d35d 4422 * by interruption "Injected Queue Overflow".
<> 135:176b8275d35d 4423 * - Two behaviors are possible when all contexts have been processed:
<> 135:176b8275d35d 4424 * the contexts queue can maintain the last context active perpetually
<> 135:176b8275d35d 4425 * or can be empty and injected group triggers are disabled.
<> 135:176b8275d35d 4426 * - Triggers can be only external (not internal SW start)
<> 135:176b8275d35d 4427 * - Caution: The sequence must be fully configured in one time
<> 135:176b8275d35d 4428 * (one write of register JSQR makes a check-in of a new context
<> 135:176b8275d35d 4429 * into the queue).
<> 135:176b8275d35d 4430 * Therefore functions to set separately injected trigger and
<> 135:176b8275d35d 4431 * sequencer channels cannot be used, register JSQR must be set
<> 135:176b8275d35d 4432 * using function @ref LL_ADC_INJ_ConfigQueueContext().
<> 135:176b8275d35d 4433 * @note This parameter can be modified only when no conversion is on going
<> 135:176b8275d35d 4434 * on either groups regular or injected.
<> 135:176b8275d35d 4435 * @note A modification of the context mode (bit JQDIS) causes the contexts
<> 135:176b8275d35d 4436 * queue to be flushed and the register JSQR is cleared.
<> 135:176b8275d35d 4437 * @note On this STM32 serie, setting of this feature is conditioned to
<> 135:176b8275d35d 4438 * ADC state:
<> 135:176b8275d35d 4439 * ADC must be disabled or enabled without conversion on going
<> 135:176b8275d35d 4440 * on either groups regular or injected.
<> 135:176b8275d35d 4441 * @rmtoll CFGR JQM LL_ADC_INJ_SetQueueMode
<> 135:176b8275d35d 4442 * @param ADCx ADC instance
<> 135:176b8275d35d 4443 * @param QueueMode This parameter can be one of the following values:
<> 135:176b8275d35d 4444 * @arg @ref LL_ADC_INJ_QUEUE_2CONTEXTS_LAST_ACTIVE
<> 135:176b8275d35d 4445 * @arg @ref LL_ADC_INJ_QUEUE_2CONTEXTS_END_EMPTY
<> 135:176b8275d35d 4446 * @retval None
<> 135:176b8275d35d 4447 */
<> 135:176b8275d35d 4448 __STATIC_INLINE void LL_ADC_INJ_SetQueueMode(ADC_TypeDef *ADCx, uint32_t QueueMode)
<> 135:176b8275d35d 4449 {
<> 135:176b8275d35d 4450 MODIFY_REG(ADCx->CFGR, ADC_CFGR_JQM, QueueMode);
<> 135:176b8275d35d 4451 }
<> 135:176b8275d35d 4452
<> 135:176b8275d35d 4453 /**
<> 135:176b8275d35d 4454 * @brief Get ADC group injected context queue mode.
<> 135:176b8275d35d 4455 * @rmtoll CFGR JQM LL_ADC_INJ_GetQueueMode
<> 135:176b8275d35d 4456 * @param ADCx ADC instance
<> 135:176b8275d35d 4457 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 4458 * @arg @ref LL_ADC_INJ_QUEUE_2CONTEXTS_LAST_ACTIVE
<> 135:176b8275d35d 4459 * @arg @ref LL_ADC_INJ_QUEUE_2CONTEXTS_END_EMPTY
<> 135:176b8275d35d 4460 */
<> 135:176b8275d35d 4461 __STATIC_INLINE uint32_t LL_ADC_INJ_GetQueueMode(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 4462 {
<> 135:176b8275d35d 4463 return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_JQM));
<> 135:176b8275d35d 4464 }
<> 135:176b8275d35d 4465
<> 135:176b8275d35d 4466 /**
<> 135:176b8275d35d 4467 * @brief Set one context on ADC group injected that will be checked in
<> 135:176b8275d35d 4468 * contexts queue.
<> 135:176b8275d35d 4469 * @note A context is a setting of group injected sequencer:
<> 135:176b8275d35d 4470 * - group injected trigger
<> 135:176b8275d35d 4471 * - sequencer length
<> 135:176b8275d35d 4472 * - sequencer ranks
<> 135:176b8275d35d 4473 * This function is intended to be used when contexts queue is enabled,
<> 135:176b8275d35d 4474 * because the sequence must be fully configured in one time
<> 135:176b8275d35d 4475 * (functions to set separately injected trigger and sequencer channels
<> 135:176b8275d35d 4476 * cannot be used):
<> 135:176b8275d35d 4477 * Refer to function @ref LL_ADC_INJ_SetQueueMode().
<> 135:176b8275d35d 4478 * @note In the contexts queue, only the active context can be read.
<> 135:176b8275d35d 4479 * The parameters of this function can be read using functions:
<> 135:176b8275d35d 4480 * @arg @ref LL_ADC_INJ_GetTriggerSource()
<> 135:176b8275d35d 4481 * @arg @ref LL_ADC_INJ_GetTriggerEdge()
<> 135:176b8275d35d 4482 * @arg @ref LL_ADC_INJ_GetSequencerRanks()
<> 135:176b8275d35d 4483 * @note On this STM32 serie, to measure internal channels (VrefInt,
<> 135:176b8275d35d 4484 * TempSensor, ...), measurement paths to internal channels must be
<> 135:176b8275d35d 4485 * enabled separately.
<> 135:176b8275d35d 4486 * This can be done using function @ref LL_ADC_SetCommonPathInternalCh().
<> 135:176b8275d35d 4487 * @note On this STM32 serie, setting of this feature is conditioned to
<> 135:176b8275d35d 4488 * ADC state:
<> 135:176b8275d35d 4489 * ADC must not be disabled. Can be enabled with or without conversion
<> 135:176b8275d35d 4490 * on going on either groups regular or injected.
<> 135:176b8275d35d 4491 * @rmtoll JSQR JEXTSEL LL_ADC_INJ_ConfigQueueContext\n
<> 135:176b8275d35d 4492 * JSQR JEXTEN LL_ADC_INJ_ConfigQueueContext\n
<> 135:176b8275d35d 4493 * JSQR JL LL_ADC_INJ_ConfigQueueContext\n
<> 135:176b8275d35d 4494 * JSQR JSQ1 LL_ADC_INJ_ConfigQueueContext\n
<> 135:176b8275d35d 4495 * JSQR JSQ2 LL_ADC_INJ_ConfigQueueContext\n
<> 135:176b8275d35d 4496 * JSQR JSQ3 LL_ADC_INJ_ConfigQueueContext\n
<> 135:176b8275d35d 4497 * JSQR JSQ4 LL_ADC_INJ_ConfigQueueContext
<> 135:176b8275d35d 4498 * @param ADCx ADC instance
<> 135:176b8275d35d 4499 * @param TriggerSource This parameter can be one of the following values:
<> 135:176b8275d35d 4500 * @arg @ref LL_ADC_INJ_TRIG_SOFTWARE
<> 135:176b8275d35d 4501 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_TRGO
<> 135:176b8275d35d 4502 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_TRGO2
<> 135:176b8275d35d 4503 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_CH3_ADC34 (1)(2) (8)
<> 135:176b8275d35d 4504 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_CH4
<> 135:176b8275d35d 4505 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_TRGO (3)(4)(5)
<> 135:176b8275d35d 4506 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_TRGO_ADC12 (1)(2) (7)
<> 135:176b8275d35d 4507 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_TRGO__ADC34 (1)(2) (8)
<> 135:176b8275d35d 4508 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_CH1 (3)(4)(5)
<> 135:176b8275d35d 4509 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_CH1_ADC12 (1)(2) (7)
<> 135:176b8275d35d 4510 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_TRGO (1)(2)(3)(4)(5)
<> 135:176b8275d35d 4511 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH1 (3)(4)(5)
<> 135:176b8275d35d 4512 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH1_ADC12 (1)(2) (7)
<> 135:176b8275d35d 4513 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH3 (3)(4)(5)
<> 135:176b8275d35d 4514 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH3_ADC12 (1)(2) (7)
<> 135:176b8275d35d 4515 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH4 (3)(4)(5)
<> 135:176b8275d35d 4516 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH4_ADC12 (1)(2)(3)(4)(5) (7)
<> 135:176b8275d35d 4517 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_TRGO (3) (5)
<> 135:176b8275d35d 4518 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_TRGO_ADC12 (1)(2) (7)
<> 135:176b8275d35d 4519 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_TRGO__ADC34 (1)(2) (8)
<> 135:176b8275d35d 4520 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_CH3_ADC34 (1)(2) (8)
<> 135:176b8275d35d 4521 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_CH4_ADC34 (1)(2) (8)
<> 135:176b8275d35d 4522 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM6_TRGO (3)(4)(5)
<> 135:176b8275d35d 4523 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM6_TRGO_ADC12 (1)(2) (7)
<> 135:176b8275d35d 4524 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM7_TRGO_ADC34 (1)(2) (8)
<> 135:176b8275d35d 4525 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_TRGO (1)(2)
<> 135:176b8275d35d 4526 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_TRGO2 (1)(2)
<> 135:176b8275d35d 4527 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_CH2_ADC34 (1)(2) (8)
<> 135:176b8275d35d 4528 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_CH4_ADC12 (1)(2) (7)
<> 135:176b8275d35d 4529 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_CH4__ADC34 (1)(2) (8)
<> 135:176b8275d35d 4530 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM15_TRGO
<> 135:176b8275d35d 4531 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_TRGO_ADC12 (1) (7)
<> 135:176b8275d35d 4532 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_TRGO2_ADC12 (1) (7)
<> 135:176b8275d35d 4533 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_CH4_ADC12 (1) (7)
<> 135:176b8275d35d 4534 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_TRG_ADC34 (1) (8)
<> 135:176b8275d35d 4535 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_TRG2_ADC34 (1) (8)
<> 135:176b8275d35d 4536 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM20_CH2_ADC34 (1) (8)
<> 135:176b8275d35d 4537 * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG2 (4)
<> 135:176b8275d35d 4538 * @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG4 (4)
<> 135:176b8275d35d 4539 * @arg @ref LL_ADC_INJ_TRIG_EXT_EXTI_LINE15 (3)(4)(5)(6)
<> 135:176b8275d35d 4540 * @arg @ref LL_ADC_INJ_TRIG_EXT_EXTI_LINE15_ADC12 (1)(2) (7)
<> 135:176b8275d35d 4541 *
<> 135:176b8275d35d 4542 * (1) On STM32F3, parameter not available on all devices: among others, on STM32F303xE, STM32F398xx.\n
<> 135:176b8275d35d 4543 * (2) On STM32F3, parameter not available on all devices: among others, on STM32F303xC, STM32F358xx.\n
<> 135:176b8275d35d 4544 * (3) On STM32F3, parameter not available on all devices: among others, on STM32F303x8, STM32F328xx.\n
<> 135:176b8275d35d 4545 * (4) On STM32F3, parameter not available on all devices: among others, on STM32F334x8.\n
<> 135:176b8275d35d 4546 * (5) On STM32F3, parameter not available on all devices: among others, on STM32F302xC, STM32F302xE.\n
<> 135:176b8275d35d 4547 * (6) On STM32F3, parameter not available on all devices: among others, on STM32F301x8, STM32F302x8, STM32F318xx.\n
<> 135:176b8275d35d 4548 * (7) On STM32F3, parameter not available on all ADC instances: ADC1, ADC2 (for ADC instances ADCx available on the selected device).\n
<> 135:176b8275d35d 4549 * (8) On STM32F3, parameter not available on all ADC instances: ADC3, ADC4 (for ADC instances ADCx available on the selected device).
<> 135:176b8275d35d 4550 * @param ExternalTriggerEdge This parameter can be one of the following values:
<> 135:176b8275d35d 4551 * @arg @ref LL_ADC_INJ_TRIG_EXT_RISING
<> 135:176b8275d35d 4552 * @arg @ref LL_ADC_INJ_TRIG_EXT_FALLING
<> 135:176b8275d35d 4553 * @arg @ref LL_ADC_INJ_TRIG_EXT_RISINGFALLING
<> 135:176b8275d35d 4554 *
<> 135:176b8275d35d 4555 * Note: This parameter is discarded in case of SW start:
<> 135:176b8275d35d 4556 * parameter "TriggerSource" set to "LL_ADC_INJ_TRIG_SOFTWARE".
<> 135:176b8275d35d 4557 * @param SequencerNbRanks This parameter can be one of the following values:
<> 135:176b8275d35d 4558 * @arg @ref LL_ADC_INJ_SEQ_SCAN_DISABLE
<> 135:176b8275d35d 4559 * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_2RANKS
<> 135:176b8275d35d 4560 * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_3RANKS
<> 135:176b8275d35d 4561 * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_4RANKS
<> 135:176b8275d35d 4562 * @param Rank1_Channel This parameter can be one of the following values:
<> 135:176b8275d35d 4563 * @arg @ref LL_ADC_CHANNEL_0
<> 135:176b8275d35d 4564 * @arg @ref LL_ADC_CHANNEL_1
<> 135:176b8275d35d 4565 * @arg @ref LL_ADC_CHANNEL_2
<> 135:176b8275d35d 4566 * @arg @ref LL_ADC_CHANNEL_3
<> 135:176b8275d35d 4567 * @arg @ref LL_ADC_CHANNEL_4
<> 135:176b8275d35d 4568 * @arg @ref LL_ADC_CHANNEL_5
<> 135:176b8275d35d 4569 * @arg @ref LL_ADC_CHANNEL_6
<> 135:176b8275d35d 4570 * @arg @ref LL_ADC_CHANNEL_7
<> 135:176b8275d35d 4571 * @arg @ref LL_ADC_CHANNEL_8
<> 135:176b8275d35d 4572 * @arg @ref LL_ADC_CHANNEL_9
<> 135:176b8275d35d 4573 * @arg @ref LL_ADC_CHANNEL_10
<> 135:176b8275d35d 4574 * @arg @ref LL_ADC_CHANNEL_11
<> 135:176b8275d35d 4575 * @arg @ref LL_ADC_CHANNEL_12
<> 135:176b8275d35d 4576 * @arg @ref LL_ADC_CHANNEL_13
<> 135:176b8275d35d 4577 * @arg @ref LL_ADC_CHANNEL_14
<> 135:176b8275d35d 4578 * @arg @ref LL_ADC_CHANNEL_15
<> 135:176b8275d35d 4579 * @arg @ref LL_ADC_CHANNEL_16
<> 135:176b8275d35d 4580 * @arg @ref LL_ADC_CHANNEL_17
<> 135:176b8275d35d 4581 * @arg @ref LL_ADC_CHANNEL_18
<> 135:176b8275d35d 4582 * @arg @ref LL_ADC_CHANNEL_VREFINT (5)
<> 135:176b8275d35d 4583 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (1)
<> 135:176b8275d35d 4584 * @arg @ref LL_ADC_CHANNEL_VBAT (1)
<> 135:176b8275d35d 4585 * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1)
<> 135:176b8275d35d 4586 * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2)
<> 135:176b8275d35d 4587 * @arg @ref LL_ADC_CHANNEL_VOPAMP3 (3)
<> 135:176b8275d35d 4588 * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (4)
<> 135:176b8275d35d 4589 *
<> 135:176b8275d35d 4590 * (1) On STM32F3, parameter available only on ADC instance: ADC1.\n
<> 135:176b8275d35d 4591 * (2) On STM32F3, parameter available only on ADC instance: ADC2.\n
<> 135:176b8275d35d 4592 * (3) On STM32F3, parameter available only on ADC instance: ADC3.\n
<> 135:176b8275d35d 4593 * (4) On STM32F3, parameter available only on ADC instances: ADC4.\n
<> 135:176b8275d35d 4594 * (5) On STM32F3, ADC channel available only on all ADC instances, but
<> 135:176b8275d35d 4595 * only one ADC instance is allowed to be connected to VrefInt at the same time.
<> 135:176b8275d35d 4596 * @param Rank2_Channel This parameter can be one of the following values:
<> 135:176b8275d35d 4597 * @arg @ref LL_ADC_CHANNEL_0
<> 135:176b8275d35d 4598 * @arg @ref LL_ADC_CHANNEL_1
<> 135:176b8275d35d 4599 * @arg @ref LL_ADC_CHANNEL_2
<> 135:176b8275d35d 4600 * @arg @ref LL_ADC_CHANNEL_3
<> 135:176b8275d35d 4601 * @arg @ref LL_ADC_CHANNEL_4
<> 135:176b8275d35d 4602 * @arg @ref LL_ADC_CHANNEL_5
<> 135:176b8275d35d 4603 * @arg @ref LL_ADC_CHANNEL_6
<> 135:176b8275d35d 4604 * @arg @ref LL_ADC_CHANNEL_7
<> 135:176b8275d35d 4605 * @arg @ref LL_ADC_CHANNEL_8
<> 135:176b8275d35d 4606 * @arg @ref LL_ADC_CHANNEL_9
<> 135:176b8275d35d 4607 * @arg @ref LL_ADC_CHANNEL_10
<> 135:176b8275d35d 4608 * @arg @ref LL_ADC_CHANNEL_11
<> 135:176b8275d35d 4609 * @arg @ref LL_ADC_CHANNEL_12
<> 135:176b8275d35d 4610 * @arg @ref LL_ADC_CHANNEL_13
<> 135:176b8275d35d 4611 * @arg @ref LL_ADC_CHANNEL_14
<> 135:176b8275d35d 4612 * @arg @ref LL_ADC_CHANNEL_15
<> 135:176b8275d35d 4613 * @arg @ref LL_ADC_CHANNEL_16
<> 135:176b8275d35d 4614 * @arg @ref LL_ADC_CHANNEL_17
<> 135:176b8275d35d 4615 * @arg @ref LL_ADC_CHANNEL_18
<> 135:176b8275d35d 4616 * @arg @ref LL_ADC_CHANNEL_VREFINT (5)
<> 135:176b8275d35d 4617 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (1)
<> 135:176b8275d35d 4618 * @arg @ref LL_ADC_CHANNEL_VBAT (1)
<> 135:176b8275d35d 4619 * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1)
<> 135:176b8275d35d 4620 * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2)
<> 135:176b8275d35d 4621 * @arg @ref LL_ADC_CHANNEL_VOPAMP3 (3)
<> 135:176b8275d35d 4622 * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (4)
<> 135:176b8275d35d 4623 *
<> 135:176b8275d35d 4624 * (1) On STM32F3, parameter available only on ADC instance: ADC1.\n
<> 135:176b8275d35d 4625 * (2) On STM32F3, parameter available only on ADC instance: ADC2.\n
<> 135:176b8275d35d 4626 * (3) On STM32F3, parameter available only on ADC instance: ADC3.\n
<> 135:176b8275d35d 4627 * (4) On STM32F3, parameter available only on ADC instances: ADC4.\n
<> 135:176b8275d35d 4628 * (5) On STM32F3, ADC channel available only on all ADC instances, but
<> 135:176b8275d35d 4629 * only one ADC instance is allowed to be connected to VrefInt at the same time.
<> 135:176b8275d35d 4630 * @param Rank3_Channel This parameter can be one of the following values:
<> 135:176b8275d35d 4631 * @arg @ref LL_ADC_CHANNEL_0
<> 135:176b8275d35d 4632 * @arg @ref LL_ADC_CHANNEL_1
<> 135:176b8275d35d 4633 * @arg @ref LL_ADC_CHANNEL_2
<> 135:176b8275d35d 4634 * @arg @ref LL_ADC_CHANNEL_3
<> 135:176b8275d35d 4635 * @arg @ref LL_ADC_CHANNEL_4
<> 135:176b8275d35d 4636 * @arg @ref LL_ADC_CHANNEL_5
<> 135:176b8275d35d 4637 * @arg @ref LL_ADC_CHANNEL_6
<> 135:176b8275d35d 4638 * @arg @ref LL_ADC_CHANNEL_7
<> 135:176b8275d35d 4639 * @arg @ref LL_ADC_CHANNEL_8
<> 135:176b8275d35d 4640 * @arg @ref LL_ADC_CHANNEL_9
<> 135:176b8275d35d 4641 * @arg @ref LL_ADC_CHANNEL_10
<> 135:176b8275d35d 4642 * @arg @ref LL_ADC_CHANNEL_11
<> 135:176b8275d35d 4643 * @arg @ref LL_ADC_CHANNEL_12
<> 135:176b8275d35d 4644 * @arg @ref LL_ADC_CHANNEL_13
<> 135:176b8275d35d 4645 * @arg @ref LL_ADC_CHANNEL_14
<> 135:176b8275d35d 4646 * @arg @ref LL_ADC_CHANNEL_15
<> 135:176b8275d35d 4647 * @arg @ref LL_ADC_CHANNEL_16
<> 135:176b8275d35d 4648 * @arg @ref LL_ADC_CHANNEL_17
<> 135:176b8275d35d 4649 * @arg @ref LL_ADC_CHANNEL_18
<> 135:176b8275d35d 4650 * @arg @ref LL_ADC_CHANNEL_VREFINT (5)
<> 135:176b8275d35d 4651 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (1)
<> 135:176b8275d35d 4652 * @arg @ref LL_ADC_CHANNEL_VBAT (1)
<> 135:176b8275d35d 4653 * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1)
<> 135:176b8275d35d 4654 * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2)
<> 135:176b8275d35d 4655 * @arg @ref LL_ADC_CHANNEL_VOPAMP3 (3)
<> 135:176b8275d35d 4656 * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (4)
<> 135:176b8275d35d 4657 *
<> 135:176b8275d35d 4658 * (1) On STM32F3, parameter available only on ADC instance: ADC1.\n
<> 135:176b8275d35d 4659 * (2) On STM32F3, parameter available only on ADC instance: ADC2.\n
<> 135:176b8275d35d 4660 * (3) On STM32F3, parameter available only on ADC instance: ADC3.\n
<> 135:176b8275d35d 4661 * (4) On STM32F3, parameter available only on ADC instances: ADC4.\n
<> 135:176b8275d35d 4662 * (5) On STM32F3, ADC channel available only on all ADC instances, but
<> 135:176b8275d35d 4663 * only one ADC instance is allowed to be connected to VrefInt at the same time.
<> 135:176b8275d35d 4664 * @param Rank4_Channel This parameter can be one of the following values:
<> 135:176b8275d35d 4665 * @arg @ref LL_ADC_CHANNEL_0
<> 135:176b8275d35d 4666 * @arg @ref LL_ADC_CHANNEL_1
<> 135:176b8275d35d 4667 * @arg @ref LL_ADC_CHANNEL_2
<> 135:176b8275d35d 4668 * @arg @ref LL_ADC_CHANNEL_3
<> 135:176b8275d35d 4669 * @arg @ref LL_ADC_CHANNEL_4
<> 135:176b8275d35d 4670 * @arg @ref LL_ADC_CHANNEL_5
<> 135:176b8275d35d 4671 * @arg @ref LL_ADC_CHANNEL_6
<> 135:176b8275d35d 4672 * @arg @ref LL_ADC_CHANNEL_7
<> 135:176b8275d35d 4673 * @arg @ref LL_ADC_CHANNEL_8
<> 135:176b8275d35d 4674 * @arg @ref LL_ADC_CHANNEL_9
<> 135:176b8275d35d 4675 * @arg @ref LL_ADC_CHANNEL_10
<> 135:176b8275d35d 4676 * @arg @ref LL_ADC_CHANNEL_11
<> 135:176b8275d35d 4677 * @arg @ref LL_ADC_CHANNEL_12
<> 135:176b8275d35d 4678 * @arg @ref LL_ADC_CHANNEL_13
<> 135:176b8275d35d 4679 * @arg @ref LL_ADC_CHANNEL_14
<> 135:176b8275d35d 4680 * @arg @ref LL_ADC_CHANNEL_15
<> 135:176b8275d35d 4681 * @arg @ref LL_ADC_CHANNEL_16
<> 135:176b8275d35d 4682 * @arg @ref LL_ADC_CHANNEL_17
<> 135:176b8275d35d 4683 * @arg @ref LL_ADC_CHANNEL_18
<> 135:176b8275d35d 4684 * @arg @ref LL_ADC_CHANNEL_VREFINT (5)
<> 135:176b8275d35d 4685 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (1)
<> 135:176b8275d35d 4686 * @arg @ref LL_ADC_CHANNEL_VBAT (1)
<> 135:176b8275d35d 4687 * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1)
<> 135:176b8275d35d 4688 * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2)
<> 135:176b8275d35d 4689 * @arg @ref LL_ADC_CHANNEL_VOPAMP3 (3)
<> 135:176b8275d35d 4690 * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (4)
<> 135:176b8275d35d 4691 *
<> 135:176b8275d35d 4692 * (1) On STM32F3, parameter available only on ADC instance: ADC1.\n
<> 135:176b8275d35d 4693 * (2) On STM32F3, parameter available only on ADC instance: ADC2.\n
<> 135:176b8275d35d 4694 * (3) On STM32F3, parameter available only on ADC instance: ADC3.\n
<> 135:176b8275d35d 4695 * (4) On STM32F3, parameter available only on ADC instances: ADC4.\n
<> 135:176b8275d35d 4696 * (5) On STM32F3, ADC channel available only on all ADC instances, but
<> 135:176b8275d35d 4697 * only one ADC instance is allowed to be connected to VrefInt at the same time.
<> 135:176b8275d35d 4698 * @retval None
<> 135:176b8275d35d 4699 */
<> 135:176b8275d35d 4700 __STATIC_INLINE void LL_ADC_INJ_ConfigQueueContext(ADC_TypeDef *ADCx,
<> 135:176b8275d35d 4701 uint32_t TriggerSource,
<> 135:176b8275d35d 4702 uint32_t ExternalTriggerEdge,
<> 135:176b8275d35d 4703 uint32_t SequencerNbRanks,
<> 135:176b8275d35d 4704 uint32_t Rank1_Channel,
<> 135:176b8275d35d 4705 uint32_t Rank2_Channel,
<> 135:176b8275d35d 4706 uint32_t Rank3_Channel,
<> 135:176b8275d35d 4707 uint32_t Rank4_Channel)
<> 135:176b8275d35d 4708 {
<> 135:176b8275d35d 4709 /* Set bits with content of parameter "Rankx_Channel" with bits position */
<> 135:176b8275d35d 4710 /* in register depending on literal "LL_ADC_INJ_RANK_x". */
<> 135:176b8275d35d 4711 /* Parameters "Rankx_Channel" and "LL_ADC_INJ_RANK_x" are used with masks */
<> 135:176b8275d35d 4712 /* because containing other bits reserved for other purpose. */
<> 135:176b8275d35d 4713 /* If parameter "TriggerSource" is set to SW start, then parameter */
<> 135:176b8275d35d 4714 /* "ExternalTriggerEdge" is discarded. */
<> 135:176b8275d35d 4715 MODIFY_REG(ADCx->JSQR ,
<> 135:176b8275d35d 4716 ADC_JSQR_JEXTSEL |
<> 135:176b8275d35d 4717 ADC_JSQR_JEXTEN |
<> 135:176b8275d35d 4718 ADC_JSQR_JSQ4 |
<> 135:176b8275d35d 4719 ADC_JSQR_JSQ3 |
<> 135:176b8275d35d 4720 ADC_JSQR_JSQ2 |
<> 135:176b8275d35d 4721 ADC_JSQR_JSQ1 |
<> 135:176b8275d35d 4722 ADC_JSQR_JL ,
<> 135:176b8275d35d 4723 TriggerSource |
<> 135:176b8275d35d 4724 (ExternalTriggerEdge * ((TriggerSource != LL_ADC_INJ_TRIG_SOFTWARE))) |
<> 135:176b8275d35d 4725 ((Rank4_Channel & ADC_CHANNEL_ID_NUMBER_MASK) >> (ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS - (LL_ADC_INJ_RANK_4 & ADC_INJ_RANK_ID_JSQR_MASK))) |
<> 135:176b8275d35d 4726 ((Rank3_Channel & ADC_CHANNEL_ID_NUMBER_MASK) >> (ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS - (LL_ADC_INJ_RANK_3 & ADC_INJ_RANK_ID_JSQR_MASK))) |
<> 135:176b8275d35d 4727 ((Rank2_Channel & ADC_CHANNEL_ID_NUMBER_MASK) >> (ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS - (LL_ADC_INJ_RANK_2 & ADC_INJ_RANK_ID_JSQR_MASK))) |
<> 135:176b8275d35d 4728 ((Rank1_Channel & ADC_CHANNEL_ID_NUMBER_MASK) >> (ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS - (LL_ADC_INJ_RANK_1 & ADC_INJ_RANK_ID_JSQR_MASK))) |
<> 135:176b8275d35d 4729 SequencerNbRanks
<> 135:176b8275d35d 4730 );
<> 135:176b8275d35d 4731 }
<> 135:176b8275d35d 4732
<> 135:176b8275d35d 4733 /**
<> 135:176b8275d35d 4734 * @}
<> 135:176b8275d35d 4735 */
<> 135:176b8275d35d 4736
<> 135:176b8275d35d 4737 /** @defgroup ADC_LL_EF_Configuration_Channels Configuration of ADC hierarchical scope: channels
<> 135:176b8275d35d 4738 * @{
<> 135:176b8275d35d 4739 */
<> 135:176b8275d35d 4740
<> 135:176b8275d35d 4741 /**
<> 135:176b8275d35d 4742 * @brief Set sampling time of the selected ADC channel
<> 135:176b8275d35d 4743 * Unit: ADC clock cycles.
<> 135:176b8275d35d 4744 * @note On this device, sampling time is on channel scope: independently
<> 135:176b8275d35d 4745 * of channel mapped on ADC group regular or injected.
<> 135:176b8275d35d 4746 * @note In case of internal channel (VrefInt, TempSensor, ...) to be
<> 135:176b8275d35d 4747 * converted:
<> 135:176b8275d35d 4748 * sampling time constraints must be respected (sampling time can be
<> 135:176b8275d35d 4749 * adjusted in function of ADC clock frequency and sampling time
<> 135:176b8275d35d 4750 * setting).
<> 135:176b8275d35d 4751 * Refer to device datasheet for timings values (parameters TS_vrefint,
<> 135:176b8275d35d 4752 * TS_temp, ...).
<> 135:176b8275d35d 4753 * @note Conversion time is the addition of sampling time and processing time.
<> 135:176b8275d35d 4754 * On this STM32 serie, ADC processing time is:
<> 135:176b8275d35d 4755 * - 12.5 ADC clock cycles at ADC resolution 12 bits
<> 135:176b8275d35d 4756 * - 10.5 ADC clock cycles at ADC resolution 10 bits
<> 135:176b8275d35d 4757 * - 8.5 ADC clock cycles at ADC resolution 8 bits
<> 135:176b8275d35d 4758 * - 6.5 ADC clock cycles at ADC resolution 6 bits
<> 135:176b8275d35d 4759 * @note In case of ADC conversion of internal channel (VrefInt,
<> 135:176b8275d35d 4760 * temperature sensor, ...), a sampling time minimum value
<> 135:176b8275d35d 4761 * is required.
<> 135:176b8275d35d 4762 * Refer to device datasheet.
<> 135:176b8275d35d 4763 * @note On this STM32 serie, setting of this feature is conditioned to
<> 135:176b8275d35d 4764 * ADC state:
<> 135:176b8275d35d 4765 * ADC must be disabled or enabled without conversion on going
<> 135:176b8275d35d 4766 * on either groups regular or injected.
<> 135:176b8275d35d 4767 * @rmtoll SMPR1 SMP0 LL_ADC_SetChannelSamplingTime\n
<> 135:176b8275d35d 4768 * SMPR1 SMP1 LL_ADC_SetChannelSamplingTime\n
<> 135:176b8275d35d 4769 * SMPR1 SMP2 LL_ADC_SetChannelSamplingTime\n
<> 135:176b8275d35d 4770 * SMPR1 SMP3 LL_ADC_SetChannelSamplingTime\n
<> 135:176b8275d35d 4771 * SMPR1 SMP4 LL_ADC_SetChannelSamplingTime\n
<> 135:176b8275d35d 4772 * SMPR1 SMP5 LL_ADC_SetChannelSamplingTime\n
<> 135:176b8275d35d 4773 * SMPR1 SMP6 LL_ADC_SetChannelSamplingTime\n
<> 135:176b8275d35d 4774 * SMPR1 SMP7 LL_ADC_SetChannelSamplingTime\n
<> 135:176b8275d35d 4775 * SMPR1 SMP8 LL_ADC_SetChannelSamplingTime\n
<> 135:176b8275d35d 4776 * SMPR1 SMP9 LL_ADC_SetChannelSamplingTime\n
<> 135:176b8275d35d 4777 * SMPR2 SMP10 LL_ADC_SetChannelSamplingTime\n
<> 135:176b8275d35d 4778 * SMPR2 SMP11 LL_ADC_SetChannelSamplingTime\n
<> 135:176b8275d35d 4779 * SMPR2 SMP12 LL_ADC_SetChannelSamplingTime\n
<> 135:176b8275d35d 4780 * SMPR2 SMP13 LL_ADC_SetChannelSamplingTime\n
<> 135:176b8275d35d 4781 * SMPR2 SMP14 LL_ADC_SetChannelSamplingTime\n
<> 135:176b8275d35d 4782 * SMPR2 SMP15 LL_ADC_SetChannelSamplingTime\n
<> 135:176b8275d35d 4783 * SMPR2 SMP16 LL_ADC_SetChannelSamplingTime\n
<> 135:176b8275d35d 4784 * SMPR2 SMP17 LL_ADC_SetChannelSamplingTime\n
<> 135:176b8275d35d 4785 * SMPR2 SMP18 LL_ADC_SetChannelSamplingTime
<> 135:176b8275d35d 4786 * @param ADCx ADC instance
<> 135:176b8275d35d 4787 * @param Channel This parameter can be one of the following values:
<> 135:176b8275d35d 4788 * @arg @ref LL_ADC_CHANNEL_0
<> 135:176b8275d35d 4789 * @arg @ref LL_ADC_CHANNEL_1
<> 135:176b8275d35d 4790 * @arg @ref LL_ADC_CHANNEL_2
<> 135:176b8275d35d 4791 * @arg @ref LL_ADC_CHANNEL_3
<> 135:176b8275d35d 4792 * @arg @ref LL_ADC_CHANNEL_4
<> 135:176b8275d35d 4793 * @arg @ref LL_ADC_CHANNEL_5
<> 135:176b8275d35d 4794 * @arg @ref LL_ADC_CHANNEL_6
<> 135:176b8275d35d 4795 * @arg @ref LL_ADC_CHANNEL_7
<> 135:176b8275d35d 4796 * @arg @ref LL_ADC_CHANNEL_8
<> 135:176b8275d35d 4797 * @arg @ref LL_ADC_CHANNEL_9
<> 135:176b8275d35d 4798 * @arg @ref LL_ADC_CHANNEL_10
<> 135:176b8275d35d 4799 * @arg @ref LL_ADC_CHANNEL_11
<> 135:176b8275d35d 4800 * @arg @ref LL_ADC_CHANNEL_12
<> 135:176b8275d35d 4801 * @arg @ref LL_ADC_CHANNEL_13
<> 135:176b8275d35d 4802 * @arg @ref LL_ADC_CHANNEL_14
<> 135:176b8275d35d 4803 * @arg @ref LL_ADC_CHANNEL_15
<> 135:176b8275d35d 4804 * @arg @ref LL_ADC_CHANNEL_16
<> 135:176b8275d35d 4805 * @arg @ref LL_ADC_CHANNEL_17
<> 135:176b8275d35d 4806 * @arg @ref LL_ADC_CHANNEL_18
<> 135:176b8275d35d 4807 * @arg @ref LL_ADC_CHANNEL_VREFINT (5)
<> 135:176b8275d35d 4808 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (1)
<> 135:176b8275d35d 4809 * @arg @ref LL_ADC_CHANNEL_VBAT (1)
<> 135:176b8275d35d 4810 * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1)
<> 135:176b8275d35d 4811 * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2)
<> 135:176b8275d35d 4812 * @arg @ref LL_ADC_CHANNEL_VOPAMP3 (3)
<> 135:176b8275d35d 4813 * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (4)
<> 135:176b8275d35d 4814 *
<> 135:176b8275d35d 4815 * (1) On STM32F3, parameter available only on ADC instance: ADC1.\n
<> 135:176b8275d35d 4816 * (2) On STM32F3, parameter available only on ADC instance: ADC2.\n
<> 135:176b8275d35d 4817 * (3) On STM32F3, parameter available only on ADC instance: ADC3.\n
<> 135:176b8275d35d 4818 * (4) On STM32F3, parameter available only on ADC instances: ADC4.\n
<> 135:176b8275d35d 4819 * (5) On STM32F3, ADC channel available only on all ADC instances, but
<> 135:176b8275d35d 4820 * only one ADC instance is allowed to be connected to VrefInt at the same time.
<> 135:176b8275d35d 4821 * @param SamplingTime This parameter can be one of the following values:
<> 135:176b8275d35d 4822 * @arg @ref LL_ADC_SAMPLINGTIME_1CYCLE_5
<> 135:176b8275d35d 4823 * @arg @ref LL_ADC_SAMPLINGTIME_2CYCLES_5
<> 135:176b8275d35d 4824 * @arg @ref LL_ADC_SAMPLINGTIME_4CYCLES_5
<> 135:176b8275d35d 4825 * @arg @ref LL_ADC_SAMPLINGTIME_7CYCLES_5
<> 135:176b8275d35d 4826 * @arg @ref LL_ADC_SAMPLINGTIME_19CYCLES_5
<> 135:176b8275d35d 4827 * @arg @ref LL_ADC_SAMPLINGTIME_61CYCLES_5
<> 135:176b8275d35d 4828 * @arg @ref LL_ADC_SAMPLINGTIME_181CYCLES_5
<> 135:176b8275d35d 4829 * @arg @ref LL_ADC_SAMPLINGTIME_601CYCLES_5
<> 135:176b8275d35d 4830 * @retval None
<> 135:176b8275d35d 4831 */
<> 135:176b8275d35d 4832 __STATIC_INLINE void LL_ADC_SetChannelSamplingTime(ADC_TypeDef *ADCx, uint32_t Channel, uint32_t SamplingTime)
<> 135:176b8275d35d 4833 {
<> 135:176b8275d35d 4834 /* Set bits with content of parameter "SamplingTime" with bits position */
<> 135:176b8275d35d 4835 /* in register and register position depending on parameter "Channel". */
<> 135:176b8275d35d 4836 /* Parameter "Channel" is used with masks because containing */
<> 135:176b8275d35d 4837 /* other bits reserved for other purpose. */
<> 135:176b8275d35d 4838 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->SMPR1, __ADC_MASK_SHIFT(Channel, ADC_CHANNEL_SMPRX_REGOFFSET_MASK));
<> 135:176b8275d35d 4839
<> 135:176b8275d35d 4840 MODIFY_REG(*preg,
<> 135:176b8275d35d 4841 ADC_SMPR1_SMP0 << __ADC_MASK_SHIFT(Channel, ADC_CHANNEL_SMPx_BITOFFSET_MASK),
<> 135:176b8275d35d 4842 SamplingTime << __ADC_MASK_SHIFT(Channel, ADC_CHANNEL_SMPx_BITOFFSET_MASK));
<> 135:176b8275d35d 4843 }
<> 135:176b8275d35d 4844
<> 135:176b8275d35d 4845 /**
<> 135:176b8275d35d 4846 * @brief Get sampling time of the selected ADC channel
<> 135:176b8275d35d 4847 * Unit: ADC clock cycles.
<> 135:176b8275d35d 4848 * @note On this device, sampling time is on channel scope: independently
<> 135:176b8275d35d 4849 * of channel mapped on ADC group regular or injected.
<> 135:176b8275d35d 4850 * @note Conversion time is the addition of sampling time and processing time.
<> 135:176b8275d35d 4851 * On this STM32 serie, ADC processing time is:
<> 135:176b8275d35d 4852 * - 12.5 ADC clock cycles at ADC resolution 12 bits
<> 135:176b8275d35d 4853 * - 10.5 ADC clock cycles at ADC resolution 10 bits
<> 135:176b8275d35d 4854 * - 8.5 ADC clock cycles at ADC resolution 8 bits
<> 135:176b8275d35d 4855 * - 6.5 ADC clock cycles at ADC resolution 6 bits
<> 135:176b8275d35d 4856 * @rmtoll SMPR1 SMP0 LL_ADC_GetChannelSamplingTime\n
<> 135:176b8275d35d 4857 * SMPR1 SMP1 LL_ADC_GetChannelSamplingTime\n
<> 135:176b8275d35d 4858 * SMPR1 SMP2 LL_ADC_GetChannelSamplingTime\n
<> 135:176b8275d35d 4859 * SMPR1 SMP3 LL_ADC_GetChannelSamplingTime\n
<> 135:176b8275d35d 4860 * SMPR1 SMP4 LL_ADC_GetChannelSamplingTime\n
<> 135:176b8275d35d 4861 * SMPR1 SMP5 LL_ADC_GetChannelSamplingTime\n
<> 135:176b8275d35d 4862 * SMPR1 SMP6 LL_ADC_GetChannelSamplingTime\n
<> 135:176b8275d35d 4863 * SMPR1 SMP7 LL_ADC_GetChannelSamplingTime\n
<> 135:176b8275d35d 4864 * SMPR1 SMP8 LL_ADC_GetChannelSamplingTime\n
<> 135:176b8275d35d 4865 * SMPR1 SMP9 LL_ADC_GetChannelSamplingTime\n
<> 135:176b8275d35d 4866 * SMPR2 SMP10 LL_ADC_GetChannelSamplingTime\n
<> 135:176b8275d35d 4867 * SMPR2 SMP11 LL_ADC_GetChannelSamplingTime\n
<> 135:176b8275d35d 4868 * SMPR2 SMP12 LL_ADC_GetChannelSamplingTime\n
<> 135:176b8275d35d 4869 * SMPR2 SMP13 LL_ADC_GetChannelSamplingTime\n
<> 135:176b8275d35d 4870 * SMPR2 SMP14 LL_ADC_GetChannelSamplingTime\n
<> 135:176b8275d35d 4871 * SMPR2 SMP15 LL_ADC_GetChannelSamplingTime\n
<> 135:176b8275d35d 4872 * SMPR2 SMP16 LL_ADC_GetChannelSamplingTime\n
<> 135:176b8275d35d 4873 * SMPR2 SMP17 LL_ADC_GetChannelSamplingTime\n
<> 135:176b8275d35d 4874 * SMPR2 SMP18 LL_ADC_GetChannelSamplingTime
<> 135:176b8275d35d 4875 * @param ADCx ADC instance
<> 135:176b8275d35d 4876 * @param Channel This parameter can be one of the following values:
<> 135:176b8275d35d 4877 * @arg @ref LL_ADC_CHANNEL_0
<> 135:176b8275d35d 4878 * @arg @ref LL_ADC_CHANNEL_1
<> 135:176b8275d35d 4879 * @arg @ref LL_ADC_CHANNEL_2
<> 135:176b8275d35d 4880 * @arg @ref LL_ADC_CHANNEL_3
<> 135:176b8275d35d 4881 * @arg @ref LL_ADC_CHANNEL_4
<> 135:176b8275d35d 4882 * @arg @ref LL_ADC_CHANNEL_5
<> 135:176b8275d35d 4883 * @arg @ref LL_ADC_CHANNEL_6
<> 135:176b8275d35d 4884 * @arg @ref LL_ADC_CHANNEL_7
<> 135:176b8275d35d 4885 * @arg @ref LL_ADC_CHANNEL_8
<> 135:176b8275d35d 4886 * @arg @ref LL_ADC_CHANNEL_9
<> 135:176b8275d35d 4887 * @arg @ref LL_ADC_CHANNEL_10
<> 135:176b8275d35d 4888 * @arg @ref LL_ADC_CHANNEL_11
<> 135:176b8275d35d 4889 * @arg @ref LL_ADC_CHANNEL_12
<> 135:176b8275d35d 4890 * @arg @ref LL_ADC_CHANNEL_13
<> 135:176b8275d35d 4891 * @arg @ref LL_ADC_CHANNEL_14
<> 135:176b8275d35d 4892 * @arg @ref LL_ADC_CHANNEL_15
<> 135:176b8275d35d 4893 * @arg @ref LL_ADC_CHANNEL_16
<> 135:176b8275d35d 4894 * @arg @ref LL_ADC_CHANNEL_17
<> 135:176b8275d35d 4895 * @arg @ref LL_ADC_CHANNEL_18
<> 135:176b8275d35d 4896 * @arg @ref LL_ADC_CHANNEL_VREFINT (5)
<> 135:176b8275d35d 4897 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (1)
<> 135:176b8275d35d 4898 * @arg @ref LL_ADC_CHANNEL_VBAT (1)
<> 135:176b8275d35d 4899 * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (1)
<> 135:176b8275d35d 4900 * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (2)
<> 135:176b8275d35d 4901 * @arg @ref LL_ADC_CHANNEL_VOPAMP3 (3)
<> 135:176b8275d35d 4902 * @arg @ref LL_ADC_CHANNEL_VOPAMP4 (4)
<> 135:176b8275d35d 4903 *
<> 135:176b8275d35d 4904 * (1) On STM32F3, parameter available only on ADC instance: ADC1.\n
<> 135:176b8275d35d 4905 * (2) On STM32F3, parameter available only on ADC instance: ADC2.\n
<> 135:176b8275d35d 4906 * (3) On STM32F3, parameter available only on ADC instance: ADC3.\n
<> 135:176b8275d35d 4907 * (4) On STM32F3, parameter available only on ADC instances: ADC4.\n
<> 135:176b8275d35d 4908 * (5) On STM32F3, ADC channel available only on all ADC instances, but
<> 135:176b8275d35d 4909 * only one ADC instance is allowed to be connected to VrefInt at the same time.
<> 135:176b8275d35d 4910 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 4911 * @arg @ref LL_ADC_SAMPLINGTIME_1CYCLE_5
<> 135:176b8275d35d 4912 * @arg @ref LL_ADC_SAMPLINGTIME_2CYCLES_5
<> 135:176b8275d35d 4913 * @arg @ref LL_ADC_SAMPLINGTIME_4CYCLES_5
<> 135:176b8275d35d 4914 * @arg @ref LL_ADC_SAMPLINGTIME_7CYCLES_5
<> 135:176b8275d35d 4915 * @arg @ref LL_ADC_SAMPLINGTIME_19CYCLES_5
<> 135:176b8275d35d 4916 * @arg @ref LL_ADC_SAMPLINGTIME_61CYCLES_5
<> 135:176b8275d35d 4917 * @arg @ref LL_ADC_SAMPLINGTIME_181CYCLES_5
<> 135:176b8275d35d 4918 * @arg @ref LL_ADC_SAMPLINGTIME_601CYCLES_5
<> 135:176b8275d35d 4919 */
<> 135:176b8275d35d 4920 __STATIC_INLINE uint32_t LL_ADC_GetChannelSamplingTime(ADC_TypeDef *ADCx, uint32_t Channel)
<> 135:176b8275d35d 4921 {
<> 135:176b8275d35d 4922 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->SMPR1, __ADC_MASK_SHIFT(Channel, ADC_CHANNEL_SMPRX_REGOFFSET_MASK));
<> 135:176b8275d35d 4923
<> 135:176b8275d35d 4924 return (uint32_t)(READ_BIT(*preg,
<> 135:176b8275d35d 4925 ADC_SMPR1_SMP0 << __ADC_MASK_SHIFT(Channel, ADC_CHANNEL_SMPx_BITOFFSET_MASK))
<> 135:176b8275d35d 4926 >> __ADC_MASK_SHIFT(Channel, ADC_CHANNEL_SMPx_BITOFFSET_MASK)
<> 135:176b8275d35d 4927 );
<> 135:176b8275d35d 4928 }
<> 135:176b8275d35d 4929
<> 135:176b8275d35d 4930 /**
<> 135:176b8275d35d 4931 * @brief Set mode single-ended or differential input of the selected
<> 135:176b8275d35d 4932 * ADC channel.
<> 135:176b8275d35d 4933 * @note Channel ending is on channel scope: independently of channel mapped
<> 135:176b8275d35d 4934 * on ADC group regular or injected.
<> 135:176b8275d35d 4935 * In differential mode: Differential measurement is carried out
<> 135:176b8275d35d 4936 * between the selected channel 'i' (positive input) and
<> 135:176b8275d35d 4937 * channel 'i+1' (negative input). Only channel 'i' has to be
<> 135:176b8275d35d 4938 * configured, channel 'i+1' is configured automatically.
<> 135:176b8275d35d 4939 * @note Refer to Reference Manual to ensure the selected channel is
<> 135:176b8275d35d 4940 * available in differential mode.
<> 135:176b8275d35d 4941 * For example, internal channels (VrefInt, TempSensor, ...) are
<> 135:176b8275d35d 4942 * not available in differential mode.
<> 135:176b8275d35d 4943 * @note When configuring a channel 'i' in differential mode,
<> 135:176b8275d35d 4944 * the channel 'i+1' is not usable separately.
<> 135:176b8275d35d 4945 * @note On STM32F3, channels 16, 17, 18 of ADC1,
<> 135:176b8275d35d 4946 * channels 17, 18 of ADC2, ADC3, ADC4 (if available)
<> 135:176b8275d35d 4947 * are internally fixed to single-ended inputs configuration.
<> 135:176b8275d35d 4948 * @note For ADC channels configured in differential mode, both inputs
<> 135:176b8275d35d 4949 * should be biased at (Vref+)/2 +/-200mV.
<> 135:176b8275d35d 4950 * (Vref+ is the analog voltage reference)
<> 135:176b8275d35d 4951 * @note On this STM32 serie, setting of this feature is conditioned to
<> 135:176b8275d35d 4952 * ADC state:
<> 135:176b8275d35d 4953 * ADC must be ADC disabled.
<> 135:176b8275d35d 4954 * @note One or several values can be selected.
<> 135:176b8275d35d 4955 * Example: (LL_ADC_CHANNEL_4 | LL_ADC_CHANNEL_12 | ...)
<> 135:176b8275d35d 4956 * @rmtoll DIFSEL DIFSEL LL_ADC_GetChannelSamplingTime
<> 135:176b8275d35d 4957 * @param ADCx ADC instance
<> 135:176b8275d35d 4958 * @param Channel This parameter can be one of the following values:
<> 135:176b8275d35d 4959 * @arg @ref LL_ADC_CHANNEL_1
<> 135:176b8275d35d 4960 * @arg @ref LL_ADC_CHANNEL_2
<> 135:176b8275d35d 4961 * @arg @ref LL_ADC_CHANNEL_3
<> 135:176b8275d35d 4962 * @arg @ref LL_ADC_CHANNEL_4
<> 135:176b8275d35d 4963 * @arg @ref LL_ADC_CHANNEL_5
<> 135:176b8275d35d 4964 * @arg @ref LL_ADC_CHANNEL_6
<> 135:176b8275d35d 4965 * @arg @ref LL_ADC_CHANNEL_7
<> 135:176b8275d35d 4966 * @arg @ref LL_ADC_CHANNEL_8
<> 135:176b8275d35d 4967 * @arg @ref LL_ADC_CHANNEL_9
<> 135:176b8275d35d 4968 * @arg @ref LL_ADC_CHANNEL_10
<> 135:176b8275d35d 4969 * @arg @ref LL_ADC_CHANNEL_11
<> 135:176b8275d35d 4970 * @arg @ref LL_ADC_CHANNEL_12
<> 135:176b8275d35d 4971 * @arg @ref LL_ADC_CHANNEL_13
<> 135:176b8275d35d 4972 * @arg @ref LL_ADC_CHANNEL_14
<> 135:176b8275d35d 4973 * @arg @ref LL_ADC_CHANNEL_15
<> 135:176b8275d35d 4974 * @arg @ref LL_ADC_CHANNEL_16 (1)
<> 135:176b8275d35d 4975 *
<> 135:176b8275d35d 4976 * (1) On STM32F3, parameter available only on ADC instance: ADC1.
<> 135:176b8275d35d 4977 * @param SingleDiff This parameter can be a combination of the following values:
<> 135:176b8275d35d 4978 * @arg @ref LL_ADC_SINGLE_ENDED
<> 135:176b8275d35d 4979 * @arg @ref LL_ADC_DIFFERENTIAL_ENDED
<> 135:176b8275d35d 4980 * @retval None
<> 135:176b8275d35d 4981 */
<> 135:176b8275d35d 4982 __STATIC_INLINE void LL_ADC_SetChannelSingleDiff(ADC_TypeDef *ADCx, uint32_t Channel, uint32_t SingleDiff)
<> 135:176b8275d35d 4983 {
<> 135:176b8275d35d 4984 /* Bits of channels in single or differential mode are set only for */
<> 135:176b8275d35d 4985 /* differential mode (for single mode, mask of bits allowed to be set is */
<> 135:176b8275d35d 4986 /* shifted out of range of bits of channels in single or differential mode. */
<> 135:176b8275d35d 4987 MODIFY_REG(ADCx->DIFSEL,
<> 135:176b8275d35d 4988 Channel & ADC_SINGLEDIFF_CHANNEL_MASK,
<> 135:176b8275d35d 4989 (Channel & ADC_SINGLEDIFF_CHANNEL_MASK) & (ADC_DIFSEL_DIFSEL << (SingleDiff & ADC_SINGLEDIFF_CHANNEL_SHIFT_MASK)));
<> 135:176b8275d35d 4990 }
<> 135:176b8275d35d 4991
<> 135:176b8275d35d 4992 /**
<> 135:176b8275d35d 4993 * @brief Get mode single-ended or differential input of the selected
<> 135:176b8275d35d 4994 * ADC channel.
<> 135:176b8275d35d 4995 * @note When configuring a channel 'i' in differential mode,
<> 135:176b8275d35d 4996 * the channel 'i+1' is not usable separately.
<> 135:176b8275d35d 4997 * Therefore, to ensure a channel is configured in single-ended mode,
<> 135:176b8275d35d 4998 * the configuration of channel itself and the channel 'i-1' must be
<> 135:176b8275d35d 4999 * read back (to ensure that the selected channel channel has not been
<> 135:176b8275d35d 5000 * configured in differential mode by the previous channel).
<> 135:176b8275d35d 5001 * @note Refer to Reference Manual to ensure the selected channel is
<> 135:176b8275d35d 5002 * available in differential mode.
<> 135:176b8275d35d 5003 * For example, internal channels (VrefInt, TempSensor, ...) are
<> 135:176b8275d35d 5004 * not available in differential mode.
<> 135:176b8275d35d 5005 * @note When configuring a channel 'i' in differential mode,
<> 135:176b8275d35d 5006 * the channel 'i+1' is not usable separately.
<> 135:176b8275d35d 5007 * @note On STM32F3, channels 16, 17, 18 of ADC1,
<> 135:176b8275d35d 5008 * channels 17, 18 of ADC2, ADC3, ADC4 (if available)
<> 135:176b8275d35d 5009 * are internally fixed to single-ended inputs configuration.
<> 135:176b8275d35d 5010 * @note One or several values can be selected. In this case, the value
<> 135:176b8275d35d 5011 * returned is null if all channels are in single ended-mode.
<> 135:176b8275d35d 5012 * Example: (LL_ADC_CHANNEL_4 | LL_ADC_CHANNEL_12 | ...)
<> 135:176b8275d35d 5013 * @rmtoll DIFSEL DIFSEL LL_ADC_GetChannelSamplingTime
<> 135:176b8275d35d 5014 * @param ADCx ADC instance
<> 135:176b8275d35d 5015 * @param Channel This parameter can be a combination of the following values:
<> 135:176b8275d35d 5016 * @arg @ref LL_ADC_CHANNEL_0
<> 135:176b8275d35d 5017 * @arg @ref LL_ADC_CHANNEL_1
<> 135:176b8275d35d 5018 * @arg @ref LL_ADC_CHANNEL_2
<> 135:176b8275d35d 5019 * @arg @ref LL_ADC_CHANNEL_3
<> 135:176b8275d35d 5020 * @arg @ref LL_ADC_CHANNEL_4
<> 135:176b8275d35d 5021 * @arg @ref LL_ADC_CHANNEL_5
<> 135:176b8275d35d 5022 * @arg @ref LL_ADC_CHANNEL_6
<> 135:176b8275d35d 5023 * @arg @ref LL_ADC_CHANNEL_7
<> 135:176b8275d35d 5024 * @arg @ref LL_ADC_CHANNEL_8
<> 135:176b8275d35d 5025 * @arg @ref LL_ADC_CHANNEL_9
<> 135:176b8275d35d 5026 * @arg @ref LL_ADC_CHANNEL_10
<> 135:176b8275d35d 5027 * @arg @ref LL_ADC_CHANNEL_11
<> 135:176b8275d35d 5028 * @arg @ref LL_ADC_CHANNEL_12
<> 135:176b8275d35d 5029 * @arg @ref LL_ADC_CHANNEL_13
<> 135:176b8275d35d 5030 * @arg @ref LL_ADC_CHANNEL_14
<> 135:176b8275d35d 5031 * @arg @ref LL_ADC_CHANNEL_15
<> 135:176b8275d35d 5032 * @arg @ref LL_ADC_CHANNEL_16 (1)
<> 135:176b8275d35d 5033 *
<> 135:176b8275d35d 5034 * (1) On STM32F3, parameter available only on ADC instance: ADC1.
<> 135:176b8275d35d 5035 * @retval 0: channel in single-ended mode, else: channel in differential mode
<> 135:176b8275d35d 5036 */
<> 135:176b8275d35d 5037 __STATIC_INLINE uint32_t LL_ADC_GetChannelSingleDiff(ADC_TypeDef *ADCx, uint32_t Channel)
<> 135:176b8275d35d 5038 {
<> 135:176b8275d35d 5039 return (uint32_t)(READ_BIT(ADCx->DIFSEL, (Channel & ADC_SINGLEDIFF_CHANNEL_MASK)));
<> 135:176b8275d35d 5040 }
<> 135:176b8275d35d 5041
<> 135:176b8275d35d 5042 /**
<> 135:176b8275d35d 5043 * @}
<> 135:176b8275d35d 5044 */
<> 135:176b8275d35d 5045
<> 135:176b8275d35d 5046 /** @defgroup ADC_LL_EF_Configuration_ADC_AnalogWatchdog Configuration of ADC transversal scope: analog watchdog
<> 135:176b8275d35d 5047 * @{
<> 135:176b8275d35d 5048 */
<> 135:176b8275d35d 5049
<> 135:176b8275d35d 5050 /**
<> 135:176b8275d35d 5051 * @brief Set ADC analog watchdog monitored channels:
<> 135:176b8275d35d 5052 * a single channel, multiple channels or all channels,
<> 135:176b8275d35d 5053 * on ADC groups regular and-or injected.
<> 135:176b8275d35d 5054 * @note Once monitored channels are selected, analog watchdog
<> 135:176b8275d35d 5055 * is enabled.
<> 135:176b8275d35d 5056 * @note In case of need to define a single channel to monitor
<> 135:176b8275d35d 5057 * with analog watchdog from sequencer channel definition,
<> 135:176b8275d35d 5058 * use helper macro @ref __LL_ADC_ANALOGWD_CHANNEL_GROUP().
<> 135:176b8275d35d 5059 * @note On this STM32 serie, there are 2 kinds of analog watchdog
<> 135:176b8275d35d 5060 * instance:
<> 135:176b8275d35d 5061 * - AWD standard (instance AWD1):
<> 135:176b8275d35d 5062 * - channels monitored: can monitor 1 channel or all channels.
<> 135:176b8275d35d 5063 * - groups monitored: ADC groups regular and-or injected.
<> 135:176b8275d35d 5064 * - resolution: resolution is not limited (corresponds to
<> 135:176b8275d35d 5065 * ADC resolution configured).
<> 135:176b8275d35d 5066 * - AWD flexible (instances AWD2, AWD3):
<> 135:176b8275d35d 5067 * - channels monitored: flexible on channels monitored, selection is
<> 135:176b8275d35d 5068 * channel wise, from from 1 to all channels.
<> 135:176b8275d35d 5069 * Specificity of this analog watchdog: Multiple channels can
<> 135:176b8275d35d 5070 * be selected. For example:
<> 135:176b8275d35d 5071 * (LL_ADC_AWD_CHANNEL4_REG_INJ | LL_ADC_AWD_CHANNEL5_REG_INJ | ...)
<> 135:176b8275d35d 5072 * - groups monitored: not selection possible (monitoring on both
<> 135:176b8275d35d 5073 * groups regular and injected).
<> 135:176b8275d35d 5074 * Channels selected are monitored on groups regular and injected:
<> 135:176b8275d35d 5075 * LL_ADC_AWD_CHANNELxx_REG_INJ (do not use parameters
<> 135:176b8275d35d 5076 * LL_ADC_AWD_CHANNELxx_REG and LL_ADC_AWD_CHANNELxx_INJ)
<> 135:176b8275d35d 5077 * - resolution: resolution is limited to 8 bits: if ADC resolution is
<> 135:176b8275d35d 5078 * 12 bits the 4 LSB are ignored, if ADC resolution is 10 bits
<> 135:176b8275d35d 5079 * the 2 LSB are ignored.
<> 135:176b8275d35d 5080 * @note On this STM32 serie, setting of this feature is conditioned to
<> 135:176b8275d35d 5081 * ADC state:
<> 135:176b8275d35d 5082 * ADC must be disabled or enabled without conversion on going
<> 135:176b8275d35d 5083 * on either groups regular or injected.
<> 135:176b8275d35d 5084 * @rmtoll CFGR AWD1CH LL_ADC_SetAnalogWDMonitChannels\n
<> 135:176b8275d35d 5085 * CFGR AWD1SGL LL_ADC_SetAnalogWDMonitChannels\n
<> 135:176b8275d35d 5086 * CFGR AWD1EN LL_ADC_SetAnalogWDMonitChannels\n
<> 135:176b8275d35d 5087 * CFGR JAWD1EN LL_ADC_SetAnalogWDMonitChannels\n
<> 135:176b8275d35d 5088 * AWD2CR AWD2CH LL_ADC_SetAnalogWDMonitChannels\n
<> 135:176b8275d35d 5089 * AWD3CR AWD3CH LL_ADC_SetAnalogWDMonitChannels
<> 135:176b8275d35d 5090 * @param ADCx ADC instance
<> 135:176b8275d35d 5091 * @param AWDy This parameter can be one of the following values:
<> 135:176b8275d35d 5092 * @arg @ref LL_ADC_AWD1
<> 135:176b8275d35d 5093 * @arg @ref LL_ADC_AWD2
<> 135:176b8275d35d 5094 * @arg @ref LL_ADC_AWD3
<> 135:176b8275d35d 5095 * @param AWDChannelGroup This parameter can be one of the following values:
<> 135:176b8275d35d 5096 * @arg @ref LL_ADC_AWD_DISABLE
<> 135:176b8275d35d 5097 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG (0)
<> 135:176b8275d35d 5098 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_INJ (0)
<> 135:176b8275d35d 5099 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG_INJ
<> 135:176b8275d35d 5100 * @arg @ref LL_ADC_AWD_CHANNEL_0_REG (0)
<> 135:176b8275d35d 5101 * @arg @ref LL_ADC_AWD_CHANNEL_0_INJ (0)
<> 135:176b8275d35d 5102 * @arg @ref LL_ADC_AWD_CHANNEL_0_REG_INJ
<> 135:176b8275d35d 5103 * @arg @ref LL_ADC_AWD_CHANNEL_1_REG (0)
<> 135:176b8275d35d 5104 * @arg @ref LL_ADC_AWD_CHANNEL_1_INJ (0)
<> 135:176b8275d35d 5105 * @arg @ref LL_ADC_AWD_CHANNEL_1_REG_INJ
<> 135:176b8275d35d 5106 * @arg @ref LL_ADC_AWD_CHANNEL_2_REG (0)
<> 135:176b8275d35d 5107 * @arg @ref LL_ADC_AWD_CHANNEL_2_INJ (0)
<> 135:176b8275d35d 5108 * @arg @ref LL_ADC_AWD_CHANNEL_2_REG_INJ
<> 135:176b8275d35d 5109 * @arg @ref LL_ADC_AWD_CHANNEL_3_REG (0)
<> 135:176b8275d35d 5110 * @arg @ref LL_ADC_AWD_CHANNEL_3_INJ (0)
<> 135:176b8275d35d 5111 * @arg @ref LL_ADC_AWD_CHANNEL_3_REG_INJ
<> 135:176b8275d35d 5112 * @arg @ref LL_ADC_AWD_CHANNEL_4_REG (0)
<> 135:176b8275d35d 5113 * @arg @ref LL_ADC_AWD_CHANNEL_4_INJ (0)
<> 135:176b8275d35d 5114 * @arg @ref LL_ADC_AWD_CHANNEL_4_REG_INJ
<> 135:176b8275d35d 5115 * @arg @ref LL_ADC_AWD_CHANNEL_5_REG (0)
<> 135:176b8275d35d 5116 * @arg @ref LL_ADC_AWD_CHANNEL_5_INJ (0)
<> 135:176b8275d35d 5117 * @arg @ref LL_ADC_AWD_CHANNEL_5_REG_INJ
<> 135:176b8275d35d 5118 * @arg @ref LL_ADC_AWD_CHANNEL_6_REG (0)
<> 135:176b8275d35d 5119 * @arg @ref LL_ADC_AWD_CHANNEL_6_INJ (0)
<> 135:176b8275d35d 5120 * @arg @ref LL_ADC_AWD_CHANNEL_6_REG_INJ
<> 135:176b8275d35d 5121 * @arg @ref LL_ADC_AWD_CHANNEL_7_REG (0)
<> 135:176b8275d35d 5122 * @arg @ref LL_ADC_AWD_CHANNEL_7_INJ (0)
<> 135:176b8275d35d 5123 * @arg @ref LL_ADC_AWD_CHANNEL_7_REG_INJ
<> 135:176b8275d35d 5124 * @arg @ref LL_ADC_AWD_CHANNEL_8_REG (0)
<> 135:176b8275d35d 5125 * @arg @ref LL_ADC_AWD_CHANNEL_8_INJ (0)
<> 135:176b8275d35d 5126 * @arg @ref LL_ADC_AWD_CHANNEL_8_REG_INJ
<> 135:176b8275d35d 5127 * @arg @ref LL_ADC_AWD_CHANNEL_9_REG (0)
<> 135:176b8275d35d 5128 * @arg @ref LL_ADC_AWD_CHANNEL_9_INJ (0)
<> 135:176b8275d35d 5129 * @arg @ref LL_ADC_AWD_CHANNEL_9_REG_INJ
<> 135:176b8275d35d 5130 * @arg @ref LL_ADC_AWD_CHANNEL_10_REG (0)
<> 135:176b8275d35d 5131 * @arg @ref LL_ADC_AWD_CHANNEL_10_INJ (0)
<> 135:176b8275d35d 5132 * @arg @ref LL_ADC_AWD_CHANNEL_10_REG_INJ
<> 135:176b8275d35d 5133 * @arg @ref LL_ADC_AWD_CHANNEL_11_REG (0)
<> 135:176b8275d35d 5134 * @arg @ref LL_ADC_AWD_CHANNEL_11_INJ (0)
<> 135:176b8275d35d 5135 * @arg @ref LL_ADC_AWD_CHANNEL_11_REG_INJ
<> 135:176b8275d35d 5136 * @arg @ref LL_ADC_AWD_CHANNEL_12_REG (0)
<> 135:176b8275d35d 5137 * @arg @ref LL_ADC_AWD_CHANNEL_12_INJ (0)
<> 135:176b8275d35d 5138 * @arg @ref LL_ADC_AWD_CHANNEL_12_REG_INJ
<> 135:176b8275d35d 5139 * @arg @ref LL_ADC_AWD_CHANNEL_13_REG (0)
<> 135:176b8275d35d 5140 * @arg @ref LL_ADC_AWD_CHANNEL_13_INJ (0)
<> 135:176b8275d35d 5141 * @arg @ref LL_ADC_AWD_CHANNEL_13_REG_INJ
<> 135:176b8275d35d 5142 * @arg @ref LL_ADC_AWD_CHANNEL_14_REG (0)
<> 135:176b8275d35d 5143 * @arg @ref LL_ADC_AWD_CHANNEL_14_INJ (0)
<> 135:176b8275d35d 5144 * @arg @ref LL_ADC_AWD_CHANNEL_14_REG_INJ
<> 135:176b8275d35d 5145 * @arg @ref LL_ADC_AWD_CHANNEL_15_REG (0)
<> 135:176b8275d35d 5146 * @arg @ref LL_ADC_AWD_CHANNEL_15_INJ (0)
<> 135:176b8275d35d 5147 * @arg @ref LL_ADC_AWD_CHANNEL_15_REG_INJ
<> 135:176b8275d35d 5148 * @arg @ref LL_ADC_AWD_CHANNEL_16_REG (0)
<> 135:176b8275d35d 5149 * @arg @ref LL_ADC_AWD_CHANNEL_16_INJ (0)
<> 135:176b8275d35d 5150 * @arg @ref LL_ADC_AWD_CHANNEL_16_REG_INJ
<> 135:176b8275d35d 5151 * @arg @ref LL_ADC_AWD_CHANNEL_17_REG (0)
<> 135:176b8275d35d 5152 * @arg @ref LL_ADC_AWD_CHANNEL_17_INJ (0)
<> 135:176b8275d35d 5153 * @arg @ref LL_ADC_AWD_CHANNEL_17_REG_INJ
<> 135:176b8275d35d 5154 * @arg @ref LL_ADC_AWD_CHANNEL_18_REG (0)
<> 135:176b8275d35d 5155 * @arg @ref LL_ADC_AWD_CHANNEL_18_INJ (0)
<> 135:176b8275d35d 5156 * @arg @ref LL_ADC_AWD_CHANNEL_18_REG_INJ
<> 135:176b8275d35d 5157 * @arg @ref LL_ADC_AWD_CH_VREFINT_REG (0)(5)
<> 135:176b8275d35d 5158 * @arg @ref LL_ADC_AWD_CH_VREFINT_INJ (0)(5)
<> 135:176b8275d35d 5159 * @arg @ref LL_ADC_AWD_CH_VREFINT_REG_INJ (5)
<> 135:176b8275d35d 5160 * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_REG (0)(1)
<> 135:176b8275d35d 5161 * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_INJ (0)(1)
<> 135:176b8275d35d 5162 * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_REG_INJ (1)
<> 135:176b8275d35d 5163 * @arg @ref LL_ADC_AWD_CH_VBAT_REG (0)(1)
<> 135:176b8275d35d 5164 * @arg @ref LL_ADC_AWD_CH_VBAT_INJ (0)(1)
<> 135:176b8275d35d 5165 * @arg @ref LL_ADC_AWD_CH_VBAT_REG_INJ (1)
<> 135:176b8275d35d 5166 * @arg @ref LL_ADC_AWD_CH_VOPAMP1_REG (0)(1)
<> 135:176b8275d35d 5167 * @arg @ref LL_ADC_AWD_CH_VOPAMP1_INJ (0)(1)
<> 135:176b8275d35d 5168 * @arg @ref LL_ADC_AWD_CH_VOPAMP1_REG_INJ (1)
<> 135:176b8275d35d 5169 * @arg @ref LL_ADC_AWD_CH_VOPAMP2_REG (0)(2)
<> 135:176b8275d35d 5170 * @arg @ref LL_ADC_AWD_CH_VOPAMP2_INJ (0)(2)
<> 135:176b8275d35d 5171 * @arg @ref LL_ADC_AWD_CH_VOPAMP2_REG_INJ (2)
<> 135:176b8275d35d 5172 * @arg @ref LL_ADC_AWD_CH_VOPAMP3_REG (0)(3)
<> 135:176b8275d35d 5173 * @arg @ref LL_ADC_AWD_CH_VOPAMP3_INJ (0)(3)
<> 135:176b8275d35d 5174 * @arg @ref LL_ADC_AWD_CH_VOPAMP3_REG_INJ (3)
<> 135:176b8275d35d 5175 * @arg @ref LL_ADC_AWD_CH_VOPAMP4_REG (0)(4)
<> 135:176b8275d35d 5176 * @arg @ref LL_ADC_AWD_CH_VOPAMP4_INJ (0)(4)
<> 135:176b8275d35d 5177 * @arg @ref LL_ADC_AWD_CH_VOPAMP4_REG_INJ (4)
<> 135:176b8275d35d 5178 *
<> 135:176b8275d35d 5179 * (0) On STM32F3, parameter available only on analog watchdog number: AWD1.\n
<> 135:176b8275d35d 5180 * (1) On STM32F3, parameter available only on ADC instance: ADC1.\n
<> 135:176b8275d35d 5181 * (2) On STM32F3, parameter available only on ADC instance: ADC2.\n
<> 135:176b8275d35d 5182 * (3) On STM32F3, parameter available only on ADC instance: ADC3.\n
<> 135:176b8275d35d 5183 * (4) On STM32F3, parameter available only on ADC instances: ADC4.\n
<> 135:176b8275d35d 5184 * (5) On STM32F3, ADC channel available only on all ADC instances, but
<> 135:176b8275d35d 5185 * only one ADC instance is allowed to be connected to VrefInt at the same time.
<> 135:176b8275d35d 5186 * @retval None
<> 135:176b8275d35d 5187 */
<> 135:176b8275d35d 5188 __STATIC_INLINE void LL_ADC_SetAnalogWDMonitChannels(ADC_TypeDef *ADCx, uint32_t AWDy, uint32_t AWDChannelGroup)
<> 135:176b8275d35d 5189 {
<> 135:176b8275d35d 5190 /* Set bits with content of parameter "AWDChannelGroup" with bits position */
<> 135:176b8275d35d 5191 /* in register and register position depending on parameter "AWDy". */
<> 135:176b8275d35d 5192 /* Parameters "AWDChannelGroup" and "AWDy" are used with masks because */
<> 135:176b8275d35d 5193 /* containing other bits reserved for other purpose. */
<> 135:176b8275d35d 5194 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->CFGR, __ADC_MASK_SHIFT(AWDy, ADC_AWD_CRX_REGOFFSET_MASK)
<> 135:176b8275d35d 5195 + ((AWDy & ADC_AWD_CR12_REGOFFSETGAP_MASK) * ADC_AWD_CR12_REGOFFSETGAP_VAL));
<> 135:176b8275d35d 5196
<> 135:176b8275d35d 5197 MODIFY_REG(*preg,
<> 135:176b8275d35d 5198 (AWDy & ADC_AWD_CR_ALL_CHANNEL_MASK),
<> 135:176b8275d35d 5199 AWDChannelGroup & AWDy);
<> 135:176b8275d35d 5200 }
<> 135:176b8275d35d 5201
<> 135:176b8275d35d 5202 /**
<> 135:176b8275d35d 5203 * @brief Get ADC analog watchdog monitored channel.
<> 135:176b8275d35d 5204 * @note Usage of the returned channel number:
<> 135:176b8275d35d 5205 * - To reinject this channel into another function LL_ADC_xxx:
<> 135:176b8275d35d 5206 * the returned channel number is only partly formatted on definition
<> 135:176b8275d35d 5207 * of literals LL_ADC_CHANNEL_x. Therefore, it has to be compared
<> 135:176b8275d35d 5208 * with parts of literals LL_ADC_CHANNEL_x or using
<> 135:176b8275d35d 5209 * helper macro @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
<> 135:176b8275d35d 5210 * Then the selected literal LL_ADC_CHANNEL_x can be used
<> 135:176b8275d35d 5211 * as parameter for another function.
<> 135:176b8275d35d 5212 * - To get the channel number in decimal format:
<> 135:176b8275d35d 5213 * process the returned value with the helper macro
<> 135:176b8275d35d 5214 * @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
<> 135:176b8275d35d 5215 * Applicable only when the analog watchdog is set to monitor
<> 135:176b8275d35d 5216 * one channel.
<> 135:176b8275d35d 5217 * @note On this STM32 serie, there are 2 kinds of analog watchdog
<> 135:176b8275d35d 5218 * instance:
<> 135:176b8275d35d 5219 * - AWD standard (instance AWD1):
<> 135:176b8275d35d 5220 * - channels monitored: can monitor 1 channel or all channels.
<> 135:176b8275d35d 5221 * - groups monitored: ADC groups regular and-or injected.
<> 135:176b8275d35d 5222 * - resolution: resolution is not limited (corresponds to
<> 135:176b8275d35d 5223 * ADC resolution configured).
<> 135:176b8275d35d 5224 * - AWD flexible (instances AWD2, AWD3):
<> 135:176b8275d35d 5225 * - channels monitored: flexible on channels monitored, selection is
<> 135:176b8275d35d 5226 * channel wise, from from 1 to all channels.
<> 135:176b8275d35d 5227 * Specificity of this analog watchdog: Multiple channels can
<> 135:176b8275d35d 5228 * be selected. For example:
<> 135:176b8275d35d 5229 * (LL_ADC_AWD_CHANNEL4_REG_INJ | LL_ADC_AWD_CHANNEL5_REG_INJ | ...)
<> 135:176b8275d35d 5230 * - groups monitored: not selection possible (monitoring on both
<> 135:176b8275d35d 5231 * groups regular and injected).
<> 135:176b8275d35d 5232 * Channels selected are monitored on groups regular and injected:
<> 135:176b8275d35d 5233 * LL_ADC_AWD_CHANNELxx_REG_INJ (do not use parameters
<> 135:176b8275d35d 5234 * LL_ADC_AWD_CHANNELxx_REG and LL_ADC_AWD_CHANNELxx_INJ)
<> 135:176b8275d35d 5235 * - resolution: resolution is limited to 8 bits: if ADC resolution is
<> 135:176b8275d35d 5236 * 12 bits the 4 LSB are ignored, if ADC resolution is 10 bits
<> 135:176b8275d35d 5237 * the 2 LSB are ignored.
<> 135:176b8275d35d 5238 * @note On this STM32 serie, setting of this feature is conditioned to
<> 135:176b8275d35d 5239 * ADC state:
<> 135:176b8275d35d 5240 * ADC must be disabled or enabled without conversion on going
<> 135:176b8275d35d 5241 * on either groups regular or injected.
<> 135:176b8275d35d 5242 * @rmtoll CFGR AWD1CH LL_ADC_GetAnalogWDMonitChannels\n
<> 135:176b8275d35d 5243 * CFGR AWD1SGL LL_ADC_GetAnalogWDMonitChannels\n
<> 135:176b8275d35d 5244 * CFGR AWD1EN LL_ADC_GetAnalogWDMonitChannels\n
<> 135:176b8275d35d 5245 * CFGR JAWD1EN LL_ADC_GetAnalogWDMonitChannels\n
<> 135:176b8275d35d 5246 * AWD2CR AWD2CH LL_ADC_GetAnalogWDMonitChannels\n
<> 135:176b8275d35d 5247 * AWD3CR AWD3CH LL_ADC_GetAnalogWDMonitChannels
<> 135:176b8275d35d 5248 * @param ADCx ADC instance
<> 135:176b8275d35d 5249 * @param AWDy This parameter can be one of the following values:
<> 135:176b8275d35d 5250 * @arg @ref LL_ADC_AWD1
<> 135:176b8275d35d 5251 * @arg @ref LL_ADC_AWD2 (1)
<> 135:176b8275d35d 5252 * @arg @ref LL_ADC_AWD3 (1)
<> 135:176b8275d35d 5253 *
<> 135:176b8275d35d 5254 * (1) On this AWD number, monitored channel can be retrieved
<> 135:176b8275d35d 5255 * if only 1 channel is programmed (or none or all channels).
<> 135:176b8275d35d 5256 * This function cannot retrieve monitored channel if
<> 135:176b8275d35d 5257 * multiple channels are programmed simultaneously
<> 135:176b8275d35d 5258 * by bitfield.
<> 135:176b8275d35d 5259 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 5260 * @arg @ref LL_ADC_AWD_DISABLE
<> 135:176b8275d35d 5261 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG (0)
<> 135:176b8275d35d 5262 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_INJ (0)
<> 135:176b8275d35d 5263 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG_INJ
<> 135:176b8275d35d 5264 * @arg @ref LL_ADC_AWD_CHANNEL_0_REG (0)
<> 135:176b8275d35d 5265 * @arg @ref LL_ADC_AWD_CHANNEL_0_INJ (0)
<> 135:176b8275d35d 5266 * @arg @ref LL_ADC_AWD_CHANNEL_0_REG_INJ
<> 135:176b8275d35d 5267 * @arg @ref LL_ADC_AWD_CHANNEL_1_REG (0)
<> 135:176b8275d35d 5268 * @arg @ref LL_ADC_AWD_CHANNEL_1_INJ (0)
<> 135:176b8275d35d 5269 * @arg @ref LL_ADC_AWD_CHANNEL_1_REG_INJ
<> 135:176b8275d35d 5270 * @arg @ref LL_ADC_AWD_CHANNEL_2_REG (0)
<> 135:176b8275d35d 5271 * @arg @ref LL_ADC_AWD_CHANNEL_2_INJ (0)
<> 135:176b8275d35d 5272 * @arg @ref LL_ADC_AWD_CHANNEL_2_REG_INJ
<> 135:176b8275d35d 5273 * @arg @ref LL_ADC_AWD_CHANNEL_3_REG (0)
<> 135:176b8275d35d 5274 * @arg @ref LL_ADC_AWD_CHANNEL_3_INJ (0)
<> 135:176b8275d35d 5275 * @arg @ref LL_ADC_AWD_CHANNEL_3_REG_INJ
<> 135:176b8275d35d 5276 * @arg @ref LL_ADC_AWD_CHANNEL_4_REG (0)
<> 135:176b8275d35d 5277 * @arg @ref LL_ADC_AWD_CHANNEL_4_INJ (0)
<> 135:176b8275d35d 5278 * @arg @ref LL_ADC_AWD_CHANNEL_4_REG_INJ
<> 135:176b8275d35d 5279 * @arg @ref LL_ADC_AWD_CHANNEL_5_REG (0)
<> 135:176b8275d35d 5280 * @arg @ref LL_ADC_AWD_CHANNEL_5_INJ (0)
<> 135:176b8275d35d 5281 * @arg @ref LL_ADC_AWD_CHANNEL_5_REG_INJ
<> 135:176b8275d35d 5282 * @arg @ref LL_ADC_AWD_CHANNEL_6_REG (0)
<> 135:176b8275d35d 5283 * @arg @ref LL_ADC_AWD_CHANNEL_6_INJ (0)
<> 135:176b8275d35d 5284 * @arg @ref LL_ADC_AWD_CHANNEL_6_REG_INJ
<> 135:176b8275d35d 5285 * @arg @ref LL_ADC_AWD_CHANNEL_7_REG (0)
<> 135:176b8275d35d 5286 * @arg @ref LL_ADC_AWD_CHANNEL_7_INJ (0)
<> 135:176b8275d35d 5287 * @arg @ref LL_ADC_AWD_CHANNEL_7_REG_INJ
<> 135:176b8275d35d 5288 * @arg @ref LL_ADC_AWD_CHANNEL_8_REG (0)
<> 135:176b8275d35d 5289 * @arg @ref LL_ADC_AWD_CHANNEL_8_INJ (0)
<> 135:176b8275d35d 5290 * @arg @ref LL_ADC_AWD_CHANNEL_8_REG_INJ
<> 135:176b8275d35d 5291 * @arg @ref LL_ADC_AWD_CHANNEL_9_REG (0)
<> 135:176b8275d35d 5292 * @arg @ref LL_ADC_AWD_CHANNEL_9_INJ (0)
<> 135:176b8275d35d 5293 * @arg @ref LL_ADC_AWD_CHANNEL_9_REG_INJ
<> 135:176b8275d35d 5294 * @arg @ref LL_ADC_AWD_CHANNEL_10_REG (0)
<> 135:176b8275d35d 5295 * @arg @ref LL_ADC_AWD_CHANNEL_10_INJ (0)
<> 135:176b8275d35d 5296 * @arg @ref LL_ADC_AWD_CHANNEL_10_REG_INJ
<> 135:176b8275d35d 5297 * @arg @ref LL_ADC_AWD_CHANNEL_11_REG (0)
<> 135:176b8275d35d 5298 * @arg @ref LL_ADC_AWD_CHANNEL_11_INJ (0)
<> 135:176b8275d35d 5299 * @arg @ref LL_ADC_AWD_CHANNEL_11_REG_INJ
<> 135:176b8275d35d 5300 * @arg @ref LL_ADC_AWD_CHANNEL_12_REG (0)
<> 135:176b8275d35d 5301 * @arg @ref LL_ADC_AWD_CHANNEL_12_INJ (0)
<> 135:176b8275d35d 5302 * @arg @ref LL_ADC_AWD_CHANNEL_12_REG_INJ
<> 135:176b8275d35d 5303 * @arg @ref LL_ADC_AWD_CHANNEL_13_REG (0)
<> 135:176b8275d35d 5304 * @arg @ref LL_ADC_AWD_CHANNEL_13_INJ (0)
<> 135:176b8275d35d 5305 * @arg @ref LL_ADC_AWD_CHANNEL_13_REG_INJ
<> 135:176b8275d35d 5306 * @arg @ref LL_ADC_AWD_CHANNEL_14_REG (0)
<> 135:176b8275d35d 5307 * @arg @ref LL_ADC_AWD_CHANNEL_14_INJ (0)
<> 135:176b8275d35d 5308 * @arg @ref LL_ADC_AWD_CHANNEL_14_REG_INJ
<> 135:176b8275d35d 5309 * @arg @ref LL_ADC_AWD_CHANNEL_15_REG (0)
<> 135:176b8275d35d 5310 * @arg @ref LL_ADC_AWD_CHANNEL_15_INJ (0)
<> 135:176b8275d35d 5311 * @arg @ref LL_ADC_AWD_CHANNEL_15_REG_INJ
<> 135:176b8275d35d 5312 * @arg @ref LL_ADC_AWD_CHANNEL_16_REG (0)
<> 135:176b8275d35d 5313 * @arg @ref LL_ADC_AWD_CHANNEL_16_INJ (0)
<> 135:176b8275d35d 5314 * @arg @ref LL_ADC_AWD_CHANNEL_16_REG_INJ
<> 135:176b8275d35d 5315 * @arg @ref LL_ADC_AWD_CHANNEL_17_REG (0)
<> 135:176b8275d35d 5316 * @arg @ref LL_ADC_AWD_CHANNEL_17_INJ (0)
<> 135:176b8275d35d 5317 * @arg @ref LL_ADC_AWD_CHANNEL_17_REG_INJ
<> 135:176b8275d35d 5318 * @arg @ref LL_ADC_AWD_CHANNEL_18_REG (0)
<> 135:176b8275d35d 5319 * @arg @ref LL_ADC_AWD_CHANNEL_18_INJ (0)
<> 135:176b8275d35d 5320 * @arg @ref LL_ADC_AWD_CHANNEL_18_REG_INJ
<> 135:176b8275d35d 5321 *
<> 135:176b8275d35d 5322 * (0) On STM32F3, parameter available only on analog watchdog number: AWD1.
<> 135:176b8275d35d 5323 */
<> 135:176b8275d35d 5324 __STATIC_INLINE uint32_t LL_ADC_GetAnalogWDMonitChannels(ADC_TypeDef *ADCx, uint32_t AWDy)
<> 135:176b8275d35d 5325 {
<> 135:176b8275d35d 5326 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->CFGR, __ADC_MASK_SHIFT(AWDy, ADC_AWD_CRX_REGOFFSET_MASK)
<> 135:176b8275d35d 5327 + ((AWDy & ADC_AWD_CR12_REGOFFSETGAP_MASK) * ADC_AWD_CR12_REGOFFSETGAP_VAL));
<> 135:176b8275d35d 5328
<> 135:176b8275d35d 5329 /* Variable "AWDy" used to retrieve appropriate bitfield corresponding to */
<> 135:176b8275d35d 5330 /* ADC_AWD_CR1_CHANNEL_MASK or ADC_AWD_CR23_CHANNEL_MASK. */
<> 135:176b8275d35d 5331 register uint32_t AWD123ChannelGroup = READ_BIT(*preg, (AWDy | ADC_AWD_CR_ALL_CHANNEL_MASK));
<> 135:176b8275d35d 5332
<> 135:176b8275d35d 5333 /* Set variable of AWD1 monitored channel according to AWD1 features */
<> 135:176b8275d35d 5334 /* and ADC channel definition: */
<> 135:176b8275d35d 5335 /* - channel ID with number */
<> 135:176b8275d35d 5336 /* - channel ID with bitfield */
<> 135:176b8275d35d 5337 /* - AWD1 single or all channels */
<> 135:176b8275d35d 5338 /* - AWD1 enable or disable (also used to discard AWD1 bitfield in case of */
<> 135:176b8275d35d 5339 /* AWD2 or AWD3 selected). */
<> 135:176b8275d35d 5340 register uint32_t AWD1ChannelSingle = ((AWD123ChannelGroup & ADC_CFGR_AWD1SGL) >> ADC_CFGR_AWD1SGL_BITOFFSET_POS);
<> 135:176b8275d35d 5341
<> 135:176b8275d35d 5342 register uint32_t AWD1ChannelGroup = ( ( AWD123ChannelGroup
<> 135:176b8275d35d 5343 | ((ADC_CHANNEL_0_BITFIELD << ((AWD123ChannelGroup & ADC_CHANNEL_ID_NUMBER_MASK) >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS)) * AWD1ChannelSingle)
<> 135:176b8275d35d 5344 | (ADC_CHANNEL_ID_BITFIELD_MASK * (~AWD1ChannelSingle & ((uint32_t)0x00000001U)))
<> 135:176b8275d35d 5345 )
<> 135:176b8275d35d 5346 * (((AWD123ChannelGroup & ADC_CFGR_JAWD1EN) >> ADC_CFGR_JAWD1EN_BITOFFSET_POS) | ((AWD123ChannelGroup & ADC_CFGR_AWD1EN) >> ADC_CFGR_AWD1EN_BITOFFSET_POS))
<> 135:176b8275d35d 5347 );
<> 135:176b8275d35d 5348
<> 135:176b8275d35d 5349 /* Set variable of AWD2 and AWD3 monitored channel according to AWD2-3 */
<> 135:176b8275d35d 5350 /* features and ADC channel definition: */
<> 135:176b8275d35d 5351 /* - channel ID with number */
<> 135:176b8275d35d 5352 /* - channel ID with bitfield */
<> 135:176b8275d35d 5353 /* - AWD2-3 single or all channels (shift value 32 (0x1 shift 5) used to */
<> 135:176b8275d35d 5354 /* shift AWD1 equivalent single-all channels out of register) */
<> 135:176b8275d35d 5355 /* - AWD2-3 enable or disable */
<> 135:176b8275d35d 5356 /* Note: Use modulo 3 to avoid a shift value too long. On AWD2 and AWD3, */
<> 135:176b8275d35d 5357 /* channel can be read back if only 1 channel monitoring */
<> 135:176b8275d35d 5358 /* is activated, therefore the channel monitoring value channel "3" */
<> 135:176b8275d35d 5359 /* is not not supported by this function, there is no risk of */
<> 135:176b8275d35d 5360 /* conflict. */
<> 135:176b8275d35d 5361 register uint32_t AWD23Enabled = ((((uint32_t)0x00000001U) >> (AWD123ChannelGroup % 3U)) << 6U); /* Value "0" if AWD2-3 is enabled, value "32" if AWD2-3 is disabled */
<> 135:176b8275d35d 5362
<> 135:176b8275d35d 5363 register uint32_t AWD23ChannelGroup = ((( AWD123ChannelGroup
<> 135:176b8275d35d 5364 | ((uint32_t)POSITION_VAL(AWD123ChannelGroup) << ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS)
<> 135:176b8275d35d 5365 | ((ADC_CFGR_AWD1SGL) >> ((((uint32_t)0x00000001U) >> (ADC_AWD_CR23_CHANNEL_MASK - AWD123ChannelGroup)) << 5U))
<> 135:176b8275d35d 5366 | (ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN)
<> 135:176b8275d35d 5367 ) >> AWD23Enabled
<> 135:176b8275d35d 5368 ) >> (((AWDy & ADC_CFGR_AWD1SGL) >> ADC_CFGR_AWD1SGL_BITOFFSET_POS) << 5U));
<> 135:176b8275d35d 5369
<> 135:176b8275d35d 5370 return (AWD1ChannelGroup | AWD23ChannelGroup);
<> 135:176b8275d35d 5371 }
<> 135:176b8275d35d 5372
<> 135:176b8275d35d 5373 /**
<> 135:176b8275d35d 5374 * @brief Set ADC analog watchdog thresholds value of both thresholds
<> 135:176b8275d35d 5375 * high and low.
<> 135:176b8275d35d 5376 * @note If value of only one threshold high or low must be set,
<> 135:176b8275d35d 5377 * use function @ref LL_ADC_SetAnalogWDThresholds().
<> 135:176b8275d35d 5378 * @note In case of ADC resolution different of 12 bits,
<> 135:176b8275d35d 5379 * analog watchdog thresholds data require a specific shift.
<> 135:176b8275d35d 5380 * Use helper macro @ref __LL_ADC_ANALOGWD_SET_THRESHOLD_RESOLUTION().
<> 135:176b8275d35d 5381 * @note On this STM32 serie, there are 2 kinds of analog watchdog
<> 135:176b8275d35d 5382 * instance:
<> 135:176b8275d35d 5383 * - AWD standard (instance AWD1):
<> 135:176b8275d35d 5384 * - channels monitored: can monitor 1 channel or all channels.
<> 135:176b8275d35d 5385 * - groups monitored: ADC groups regular and-or injected.
<> 135:176b8275d35d 5386 * - resolution: resolution is not limited (corresponds to
<> 135:176b8275d35d 5387 * ADC resolution configured).
<> 135:176b8275d35d 5388 * - AWD flexible (instances AWD2, AWD3):
<> 135:176b8275d35d 5389 * - channels monitored: flexible on channels monitored, selection is
<> 135:176b8275d35d 5390 * channel wise, from from 1 to all channels.
<> 135:176b8275d35d 5391 * Specificity of this analog watchdog: Multiple channels can
<> 135:176b8275d35d 5392 * be selected. For example:
<> 135:176b8275d35d 5393 * (LL_ADC_AWD_CHANNEL4_REG_INJ | LL_ADC_AWD_CHANNEL5_REG_INJ | ...)
<> 135:176b8275d35d 5394 * - groups monitored: not selection possible (monitoring on both
<> 135:176b8275d35d 5395 * groups regular and injected).
<> 135:176b8275d35d 5396 * Channels selected are monitored on groups regular and injected:
<> 135:176b8275d35d 5397 * LL_ADC_AWD_CHANNELxx_REG_INJ (do not use parameters
<> 135:176b8275d35d 5398 * LL_ADC_AWD_CHANNELxx_REG and LL_ADC_AWD_CHANNELxx_INJ)
<> 135:176b8275d35d 5399 * - resolution: resolution is limited to 8 bits: if ADC resolution is
<> 135:176b8275d35d 5400 * 12 bits the 4 LSB are ignored, if ADC resolution is 10 bits
<> 135:176b8275d35d 5401 * the 2 LSB are ignored.
<> 135:176b8275d35d 5402 * @note On this STM32 serie, setting of this feature is conditioned to
<> 135:176b8275d35d 5403 * ADC state:
<> 135:176b8275d35d 5404 * ADC must be disabled or enabled without conversion on going
<> 135:176b8275d35d 5405 * on either groups regular or injected.
<> 135:176b8275d35d 5406 * @rmtoll TR1 HT1 LL_ADC_ConfigAnalogWDThresholds\n
<> 135:176b8275d35d 5407 * TR2 HT2 LL_ADC_ConfigAnalogWDThresholds\n
<> 135:176b8275d35d 5408 * TR3 HT3 LL_ADC_ConfigAnalogWDThresholds\n
<> 135:176b8275d35d 5409 * TR1 LT1 LL_ADC_ConfigAnalogWDThresholds\n
<> 135:176b8275d35d 5410 * TR2 LT2 LL_ADC_ConfigAnalogWDThresholds\n
<> 135:176b8275d35d 5411 * TR3 LT3 LL_ADC_ConfigAnalogWDThresholds
<> 135:176b8275d35d 5412 * @param ADCx ADC instance
<> 135:176b8275d35d 5413 * @param AWDy This parameter can be one of the following values:
<> 135:176b8275d35d 5414 * @arg @ref LL_ADC_AWD1
<> 135:176b8275d35d 5415 * @arg @ref LL_ADC_AWD2
<> 135:176b8275d35d 5416 * @arg @ref LL_ADC_AWD3
<> 135:176b8275d35d 5417 * @param AWDThresholdHighValue Value between Min_Data=0x000 and Max_Data=0xFFF
<> 135:176b8275d35d 5418 * @param AWDThresholdLowValue Value between Min_Data=0x000 and Max_Data=0xFFF
<> 135:176b8275d35d 5419 * @retval None
<> 135:176b8275d35d 5420 */
<> 135:176b8275d35d 5421 __STATIC_INLINE void LL_ADC_ConfigAnalogWDThresholds(ADC_TypeDef *ADCx, uint32_t AWDy, uint32_t AWDThresholdHighValue, uint32_t AWDThresholdLowValue)
<> 135:176b8275d35d 5422 {
<> 135:176b8275d35d 5423 /* Set bits with content of parameter "AWDThresholdxxxValue" with bits */
<> 135:176b8275d35d 5424 /* position in register and register position depending on parameter */
<> 135:176b8275d35d 5425 /* "AWDy". */
<> 135:176b8275d35d 5426 /* Parameters "AWDy" and "AWDThresholdxxxValue" are used with masks because */
<> 135:176b8275d35d 5427 /* containing other bits reserved for other purpose. */
<> 135:176b8275d35d 5428 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->TR1, __ADC_MASK_SHIFT(AWDy, ADC_AWD_TRX_REGOFFSET_MASK));
<> 135:176b8275d35d 5429
<> 135:176b8275d35d 5430 MODIFY_REG(*preg,
<> 135:176b8275d35d 5431 ADC_TR1_HT1 | ADC_TR1_LT1,
<> 135:176b8275d35d 5432 (AWDThresholdHighValue << ADC_TR1_HT1_BITOFFSET_POS) | AWDThresholdLowValue);
<> 135:176b8275d35d 5433 }
<> 135:176b8275d35d 5434
<> 135:176b8275d35d 5435 /**
<> 135:176b8275d35d 5436 * @brief Set ADC analog watchdog threshold value of threshold
<> 135:176b8275d35d 5437 * high or low.
<> 135:176b8275d35d 5438 * @note If values of both thresholds high or low must be set,
<> 135:176b8275d35d 5439 * use function @ref LL_ADC_ConfigAnalogWDThresholds().
<> 135:176b8275d35d 5440 * @note In case of ADC resolution different of 12 bits,
<> 135:176b8275d35d 5441 * analog watchdog thresholds data require a specific shift.
<> 135:176b8275d35d 5442 * Use helper macro @ref __LL_ADC_ANALOGWD_SET_THRESHOLD_RESOLUTION().
<> 135:176b8275d35d 5443 * @note On this STM32 serie, there are 2 kinds of analog watchdog
<> 135:176b8275d35d 5444 * instance:
<> 135:176b8275d35d 5445 * - AWD standard (instance AWD1):
<> 135:176b8275d35d 5446 * - channels monitored: can monitor 1 channel or all channels.
<> 135:176b8275d35d 5447 * - groups monitored: ADC groups regular and-or injected.
<> 135:176b8275d35d 5448 * - resolution: resolution is not limited (corresponds to
<> 135:176b8275d35d 5449 * ADC resolution configured).
<> 135:176b8275d35d 5450 * - AWD flexible (instances AWD2, AWD3):
<> 135:176b8275d35d 5451 * - channels monitored: flexible on channels monitored, selection is
<> 135:176b8275d35d 5452 * channel wise, from from 1 to all channels.
<> 135:176b8275d35d 5453 * Specificity of this analog watchdog: Multiple channels can
<> 135:176b8275d35d 5454 * be selected. For example:
<> 135:176b8275d35d 5455 * (LL_ADC_AWD_CHANNEL4_REG_INJ | LL_ADC_AWD_CHANNEL5_REG_INJ | ...)
<> 135:176b8275d35d 5456 * - groups monitored: not selection possible (monitoring on both
<> 135:176b8275d35d 5457 * groups regular and injected).
<> 135:176b8275d35d 5458 * Channels selected are monitored on groups regular and injected:
<> 135:176b8275d35d 5459 * LL_ADC_AWD_CHANNELxx_REG_INJ (do not use parameters
<> 135:176b8275d35d 5460 * LL_ADC_AWD_CHANNELxx_REG and LL_ADC_AWD_CHANNELxx_INJ)
<> 135:176b8275d35d 5461 * - resolution: resolution is limited to 8 bits: if ADC resolution is
<> 135:176b8275d35d 5462 * 12 bits the 4 LSB are ignored, if ADC resolution is 10 bits
<> 135:176b8275d35d 5463 * the 2 LSB are ignored.
<> 135:176b8275d35d 5464 * @note On this STM32 serie, setting of this feature is conditioned to
<> 135:176b8275d35d 5465 * ADC state:
<> 135:176b8275d35d 5466 * ADC must be disabled or enabled without conversion on going
<> 135:176b8275d35d 5467 * on either groups regular or injected.
<> 135:176b8275d35d 5468 * @rmtoll TR1 HT1 LL_ADC_SetAnalogWDThresholds\n
<> 135:176b8275d35d 5469 * TR2 HT2 LL_ADC_SetAnalogWDThresholds\n
<> 135:176b8275d35d 5470 * TR3 HT3 LL_ADC_SetAnalogWDThresholds\n
<> 135:176b8275d35d 5471 * TR1 LT1 LL_ADC_SetAnalogWDThresholds\n
<> 135:176b8275d35d 5472 * TR2 LT2 LL_ADC_SetAnalogWDThresholds\n
<> 135:176b8275d35d 5473 * TR3 LT3 LL_ADC_SetAnalogWDThresholds
<> 135:176b8275d35d 5474 * @param ADCx ADC instance
<> 135:176b8275d35d 5475 * @param AWDy This parameter can be one of the following values:
<> 135:176b8275d35d 5476 * @arg @ref LL_ADC_AWD1
<> 135:176b8275d35d 5477 * @arg @ref LL_ADC_AWD2
<> 135:176b8275d35d 5478 * @arg @ref LL_ADC_AWD3
<> 135:176b8275d35d 5479 * @param AWDThresholdsHighLow This parameter can be one of the following values:
<> 135:176b8275d35d 5480 * @arg @ref LL_ADC_AWD_THRESHOLD_HIGH
<> 135:176b8275d35d 5481 * @arg @ref LL_ADC_AWD_THRESHOLD_LOW
<> 135:176b8275d35d 5482 * @param AWDThresholdValue: Value between Min_Data=0x000 and Max_Data=0xFFF
<> 135:176b8275d35d 5483 * @retval None
<> 135:176b8275d35d 5484 */
<> 135:176b8275d35d 5485 __STATIC_INLINE void LL_ADC_SetAnalogWDThresholds(ADC_TypeDef *ADCx, uint32_t AWDy, uint32_t AWDThresholdsHighLow, uint32_t AWDThresholdValue)
<> 135:176b8275d35d 5486 {
<> 135:176b8275d35d 5487 /* Set bits with content of parameter "AWDThresholdValue" with bits */
<> 135:176b8275d35d 5488 /* position in register and register position depending on parameters */
<> 135:176b8275d35d 5489 /* "AWDThresholdsHighLow" and "AWDy". */
<> 135:176b8275d35d 5490 /* Parameters "AWDy" and "AWDThresholdValue" are used with masks because */
<> 135:176b8275d35d 5491 /* containing other bits reserved for other purpose. */
<> 135:176b8275d35d 5492 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->TR1, __ADC_MASK_SHIFT(AWDy, ADC_AWD_TRX_REGOFFSET_MASK));
<> 135:176b8275d35d 5493
<> 135:176b8275d35d 5494 MODIFY_REG(*preg,
<> 135:176b8275d35d 5495 AWDThresholdsHighLow,
<> 135:176b8275d35d 5496 AWDThresholdValue << POSITION_VAL(AWDThresholdsHighLow));
<> 135:176b8275d35d 5497 }
<> 135:176b8275d35d 5498
<> 135:176b8275d35d 5499 /**
<> 135:176b8275d35d 5500 * @brief Get ADC analog watchdog threshold value of threshold high,
<> 135:176b8275d35d 5501 * threshold low or raw data with ADC thresholds high and low
<> 135:176b8275d35d 5502 * concatenated.
<> 135:176b8275d35d 5503 * @note If raw data with ADC thresholds high and low is retrieved,
<> 135:176b8275d35d 5504 * the data of each threshold high or low can be isolated
<> 135:176b8275d35d 5505 * using helper macro:
<> 135:176b8275d35d 5506 * @ref __LL_ADC_ANALOGWD_THRESHOLDS_HIGH_LOW().
<> 135:176b8275d35d 5507 * @note In case of ADC resolution different of 12 bits,
<> 135:176b8275d35d 5508 * analog watchdog thresholds data require a specific shift.
<> 135:176b8275d35d 5509 * Use helper macro @ref __LL_ADC_ANALOGWD_GET_THRESHOLD_RESOLUTION().
<> 135:176b8275d35d 5510 * @rmtoll TR1 HT1 LL_ADC_GetAnalogWDThresholds\n
<> 135:176b8275d35d 5511 * TR2 HT2 LL_ADC_GetAnalogWDThresholds\n
<> 135:176b8275d35d 5512 * TR3 HT3 LL_ADC_GetAnalogWDThresholds\n
<> 135:176b8275d35d 5513 * TR1 LT1 LL_ADC_GetAnalogWDThresholds\n
<> 135:176b8275d35d 5514 * TR2 LT2 LL_ADC_GetAnalogWDThresholds\n
<> 135:176b8275d35d 5515 * TR3 LT3 LL_ADC_GetAnalogWDThresholds
<> 135:176b8275d35d 5516 * @param ADCx ADC instance
<> 135:176b8275d35d 5517 * @param AWDy This parameter can be one of the following values:
<> 135:176b8275d35d 5518 * @arg @ref LL_ADC_AWD1
<> 135:176b8275d35d 5519 * @arg @ref LL_ADC_AWD2
<> 135:176b8275d35d 5520 * @arg @ref LL_ADC_AWD3
<> 135:176b8275d35d 5521 * @param AWDThresholdsHighLow This parameter can be one of the following values:
<> 135:176b8275d35d 5522 * @arg @ref LL_ADC_AWD_THRESHOLD_HIGH
<> 135:176b8275d35d 5523 * @arg @ref LL_ADC_AWD_THRESHOLD_LOW
<> 135:176b8275d35d 5524 * @arg @ref LL_ADC_AWD_THRESHOLDS_HIGH_LOW
<> 135:176b8275d35d 5525 * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
<> 135:176b8275d35d 5526 */
<> 135:176b8275d35d 5527 __STATIC_INLINE uint32_t LL_ADC_GetAnalogWDThresholds(ADC_TypeDef *ADCx, uint32_t AWDy, uint32_t AWDThresholdsHighLow)
<> 135:176b8275d35d 5528 {
<> 135:176b8275d35d 5529 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->TR1, __ADC_MASK_SHIFT(AWDy, ADC_AWD_TRX_REGOFFSET_MASK));
<> 135:176b8275d35d 5530
<> 135:176b8275d35d 5531 return (uint32_t)(READ_BIT(*preg,
<> 135:176b8275d35d 5532 (AWDThresholdsHighLow | ADC_TR1_LT1))
<> 135:176b8275d35d 5533 >> POSITION_VAL(AWDThresholdsHighLow)
<> 135:176b8275d35d 5534 );
<> 135:176b8275d35d 5535 }
<> 135:176b8275d35d 5536
<> 135:176b8275d35d 5537 /**
<> 135:176b8275d35d 5538 * @}
<> 135:176b8275d35d 5539 */
<> 135:176b8275d35d 5540
<> 135:176b8275d35d 5541 /** @defgroup ADC_LL_EF_Configuration_ADC_Multimode Configuration of ADC hierarchical scope: multimode
<> 135:176b8275d35d 5542 * @{
<> 135:176b8275d35d 5543 */
<> 135:176b8275d35d 5544
<> 135:176b8275d35d 5545 #if defined(ADC_MULTIMODE_SUPPORT)
<> 135:176b8275d35d 5546 /**
<> 135:176b8275d35d 5547 * @brief Set ADC multimode configuration to operate in independent mode
<> 135:176b8275d35d 5548 * or multimode (for devices with several ADC instances).
<> 135:176b8275d35d 5549 * @note If multimode configuration: the selected ADC instance is
<> 135:176b8275d35d 5550 * either master or slave depending on hardware.
<> 135:176b8275d35d 5551 * Refer to reference manual.
<> 135:176b8275d35d 5552 * @note On this STM32 serie, setting of this feature is conditioned to
<> 135:176b8275d35d 5553 * ADC state:
<> 135:176b8275d35d 5554 * All ADC instances of the ADC common group must be disabled.
<> 135:176b8275d35d 5555 * This check can be done with function @ref LL_ADC_IsEnabled() for each
<> 135:176b8275d35d 5556 * ADC instance or by using helper macro
<> 135:176b8275d35d 5557 * @ref __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE().
<> 135:176b8275d35d 5558 * @rmtoll CCR DUAL LL_ADC_SetMultimode
<> 135:176b8275d35d 5559 * @param ADCxy_COMMON ADC common instance
<> 135:176b8275d35d 5560 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
<> 135:176b8275d35d 5561 * @param Multimode This parameter can be one of the following values:
<> 135:176b8275d35d 5562 * @arg @ref LL_ADC_MULTI_INDEPENDENT
<> 135:176b8275d35d 5563 * @arg @ref LL_ADC_MULTI_DUAL_REG_SIMULT
<> 135:176b8275d35d 5564 * @arg @ref LL_ADC_MULTI_DUAL_REG_INTERL
<> 135:176b8275d35d 5565 * @arg @ref LL_ADC_MULTI_DUAL_INJ_SIMULT
<> 135:176b8275d35d 5566 * @arg @ref LL_ADC_MULTI_DUAL_INJ_ALTERN
<> 135:176b8275d35d 5567 * @arg @ref LL_ADC_MULTI_DUAL_REG_SIM_INJ_SIM
<> 135:176b8275d35d 5568 * @arg @ref LL_ADC_MULTI_DUAL_REG_SIM_INJ_ALT
<> 135:176b8275d35d 5569 * @arg @ref LL_ADC_MULTI_DUAL_REG_INT_INJ_SIM
<> 135:176b8275d35d 5570 * @retval None
<> 135:176b8275d35d 5571 */
<> 135:176b8275d35d 5572 __STATIC_INLINE void LL_ADC_SetMultimode(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t Multimode)
<> 135:176b8275d35d 5573 {
<> 135:176b8275d35d 5574 MODIFY_REG(ADCxy_COMMON->CCR, ADC_CCR_DUAL, Multimode);
<> 135:176b8275d35d 5575 }
<> 135:176b8275d35d 5576
<> 135:176b8275d35d 5577 /**
<> 135:176b8275d35d 5578 * @brief Get ADC multimode configuration to operate in independent mode
<> 135:176b8275d35d 5579 * or multimode (for devices with several ADC instances).
<> 135:176b8275d35d 5580 * @note If multimode configuration: the selected ADC instance is
<> 135:176b8275d35d 5581 * either master or slave depending on hardware.
<> 135:176b8275d35d 5582 * Refer to reference manual.
<> 135:176b8275d35d 5583 * @rmtoll CCR DUAL LL_ADC_GetMultimode
<> 135:176b8275d35d 5584 * @param ADCxy_COMMON ADC common instance
<> 135:176b8275d35d 5585 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
<> 135:176b8275d35d 5586 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 5587 * @arg @ref LL_ADC_MULTI_INDEPENDENT
<> 135:176b8275d35d 5588 * @arg @ref LL_ADC_MULTI_DUAL_REG_SIMULT
<> 135:176b8275d35d 5589 * @arg @ref LL_ADC_MULTI_DUAL_REG_INTERL
<> 135:176b8275d35d 5590 * @arg @ref LL_ADC_MULTI_DUAL_INJ_SIMULT
<> 135:176b8275d35d 5591 * @arg @ref LL_ADC_MULTI_DUAL_INJ_ALTERN
<> 135:176b8275d35d 5592 * @arg @ref LL_ADC_MULTI_DUAL_REG_SIM_INJ_SIM
<> 135:176b8275d35d 5593 * @arg @ref LL_ADC_MULTI_DUAL_REG_SIM_INJ_ALT
<> 135:176b8275d35d 5594 * @arg @ref LL_ADC_MULTI_DUAL_REG_INT_INJ_SIM
<> 135:176b8275d35d 5595 */
<> 135:176b8275d35d 5596 __STATIC_INLINE uint32_t LL_ADC_GetMultimode(ADC_Common_TypeDef *ADCxy_COMMON)
<> 135:176b8275d35d 5597 {
<> 135:176b8275d35d 5598 return (uint32_t)(READ_BIT(ADCxy_COMMON->CCR, ADC_CCR_DUAL));
<> 135:176b8275d35d 5599 }
<> 135:176b8275d35d 5600
<> 135:176b8275d35d 5601 /**
<> 135:176b8275d35d 5602 * @brief Set ADC multimode conversion data transfer: no transfer
<> 135:176b8275d35d 5603 * or transfer by DMA.
<> 135:176b8275d35d 5604 * @note If ADC multimode transfer by DMA is not selected:
<> 135:176b8275d35d 5605 * each ADC uses its own DMA channel, with its individual
<> 135:176b8275d35d 5606 * DMA transfer settings.
<> 135:176b8275d35d 5607 * If ADC multimode transfer by DMA is selected:
<> 135:176b8275d35d 5608 * One DMA channel is used for both ADC (DMA of ADC master)
<> 135:176b8275d35d 5609 * Specifies the DMA requests mode:
<> 135:176b8275d35d 5610 * - Limited mode (One shot mode): DMA transfer requests are stopped
<> 135:176b8275d35d 5611 * when number of DMA data transfers (number of
<> 135:176b8275d35d 5612 * ADC conversions) is reached.
<> 135:176b8275d35d 5613 * This ADC mode is intended to be used with DMA mode non-circular.
<> 135:176b8275d35d 5614 * - Unlimited mode: DMA transfer requests are unlimited,
<> 135:176b8275d35d 5615 * whatever number of DMA data transfers (number of
<> 135:176b8275d35d 5616 * ADC conversions).
<> 135:176b8275d35d 5617 * This ADC mode is intended to be used with DMA mode circular.
<> 135:176b8275d35d 5618 * @note If ADC DMA requests mode is set to unlimited and DMA is set to
<> 135:176b8275d35d 5619 * mode non-circular:
<> 135:176b8275d35d 5620 * when DMA transfers size will be reached, DMA will stop transfers of
<> 135:176b8275d35d 5621 * ADC conversions data ADC will raise an overrun error
<> 135:176b8275d35d 5622 * (overrun flag and interruption if enabled).
<> 135:176b8275d35d 5623 * @note How to retrieve multimode conversion data:
<> 135:176b8275d35d 5624 * Whatever multimode transfer by DMA setting: using function
<> 135:176b8275d35d 5625 * @ref LL_ADC_REG_ReadMultiConversionData32().
<> 135:176b8275d35d 5626 * If ADC multimode transfer by DMA is selected: conversion data
<> 135:176b8275d35d 5627 * is a raw data with ADC master and slave concatenated.
<> 135:176b8275d35d 5628 * A macro is available to get the conversion data of
<> 135:176b8275d35d 5629 * ADC master or ADC slave: see helper macro
<> 135:176b8275d35d 5630 * @ref __LL_ADC_MULTI_CONV_DATA_MASTER_SLAVE().
<> 135:176b8275d35d 5631 * @note On this STM32 serie, setting of this feature is conditioned to
<> 135:176b8275d35d 5632 * ADC state:
<> 135:176b8275d35d 5633 * All ADC instances of the ADC common group must be disabled
<> 135:176b8275d35d 5634 * or enabled without conversion on going on group regular.
<> 135:176b8275d35d 5635 * @rmtoll CCR MDMA LL_ADC_SetMultiDMATransfer\n
<> 135:176b8275d35d 5636 * CCR DMACFG LL_ADC_SetMultiDMATransfer
<> 135:176b8275d35d 5637 * @param ADCxy_COMMON ADC common instance
<> 135:176b8275d35d 5638 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
<> 135:176b8275d35d 5639 * @param MultiDMATransfer This parameter can be one of the following values:
<> 135:176b8275d35d 5640 * @arg @ref LL_ADC_MULTI_REG_DMA_EACH_ADC
<> 135:176b8275d35d 5641 * @arg @ref LL_ADC_MULTI_REG_DMA_LIMIT_RES12_10B
<> 135:176b8275d35d 5642 * @arg @ref LL_ADC_MULTI_REG_DMA_LIMIT_RES8_6B
<> 135:176b8275d35d 5643 * @arg @ref LL_ADC_MULTI_REG_DMA_UNLMT_RES12_10B
<> 135:176b8275d35d 5644 * @arg @ref LL_ADC_MULTI_REG_DMA_UNLMT_RES8_6B
<> 135:176b8275d35d 5645 * @retval None
<> 135:176b8275d35d 5646 */
<> 135:176b8275d35d 5647 __STATIC_INLINE void LL_ADC_SetMultiDMATransfer(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t MultiDMATransfer)
<> 135:176b8275d35d 5648 {
<> 135:176b8275d35d 5649 MODIFY_REG(ADCxy_COMMON->CCR, ADC_CCR_MDMA | ADC_CCR_DMACFG, MultiDMATransfer);
<> 135:176b8275d35d 5650 }
<> 135:176b8275d35d 5651
<> 135:176b8275d35d 5652 /**
<> 135:176b8275d35d 5653 * @brief Get ADC multimode conversion data transfer: no transfer
<> 135:176b8275d35d 5654 * or transfer by DMA.
<> 135:176b8275d35d 5655 * @note If ADC multimode transfer by DMA is not selected:
<> 135:176b8275d35d 5656 * each ADC uses its own DMA channel, with its individual
<> 135:176b8275d35d 5657 * DMA transfer settings.
<> 135:176b8275d35d 5658 * If ADC multimode transfer by DMA is selected:
<> 135:176b8275d35d 5659 * One DMA channel is used for both ADC (DMA of ADC master)
<> 135:176b8275d35d 5660 * Specifies the DMA requests mode:
<> 135:176b8275d35d 5661 * - Limited mode (One shot mode): DMA transfer requests are stopped
<> 135:176b8275d35d 5662 * when number of DMA data transfers (number of
<> 135:176b8275d35d 5663 * ADC conversions) is reached.
<> 135:176b8275d35d 5664 * This ADC mode is intended to be used with DMA mode non-circular.
<> 135:176b8275d35d 5665 * - Unlimited mode: DMA transfer requests are unlimited,
<> 135:176b8275d35d 5666 * whatever number of DMA data transfers (number of
<> 135:176b8275d35d 5667 * ADC conversions).
<> 135:176b8275d35d 5668 * This ADC mode is intended to be used with DMA mode circular.
<> 135:176b8275d35d 5669 * @note If ADC DMA requests mode is set to unlimited and DMA is set to
<> 135:176b8275d35d 5670 * mode non-circular:
<> 135:176b8275d35d 5671 * when DMA transfers size will be reached, DMA will stop transfers of
<> 135:176b8275d35d 5672 * ADC conversions data ADC will raise an overrun error
<> 135:176b8275d35d 5673 * (overrun flag and interruption if enabled).
<> 135:176b8275d35d 5674 * @note How to retrieve multimode conversion data:
<> 135:176b8275d35d 5675 * Whatever multimode transfer by DMA setting: using function
<> 135:176b8275d35d 5676 * @ref LL_ADC_REG_ReadMultiConversionData32().
<> 135:176b8275d35d 5677 * If ADC multimode transfer by DMA is selected: conversion data
<> 135:176b8275d35d 5678 * is a raw data with ADC master and slave concatenated.
<> 135:176b8275d35d 5679 * A macro is available to get the conversion data of
<> 135:176b8275d35d 5680 * ADC master or ADC slave: see helper macro
<> 135:176b8275d35d 5681 * @ref __LL_ADC_MULTI_CONV_DATA_MASTER_SLAVE().
<> 135:176b8275d35d 5682 * @rmtoll CCR MDMA LL_ADC_GetMultiDMATransfer\n
<> 135:176b8275d35d 5683 * CCR DMACFG LL_ADC_GetMultiDMATransfer
<> 135:176b8275d35d 5684 * @param ADCxy_COMMON ADC common instance
<> 135:176b8275d35d 5685 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
<> 135:176b8275d35d 5686 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 5687 * @arg @ref LL_ADC_MULTI_REG_DMA_EACH_ADC
<> 135:176b8275d35d 5688 * @arg @ref LL_ADC_MULTI_REG_DMA_LIMIT_RES12_10B
<> 135:176b8275d35d 5689 * @arg @ref LL_ADC_MULTI_REG_DMA_LIMIT_RES8_6B
<> 135:176b8275d35d 5690 * @arg @ref LL_ADC_MULTI_REG_DMA_UNLMT_RES12_10B
<> 135:176b8275d35d 5691 * @arg @ref LL_ADC_MULTI_REG_DMA_UNLMT_RES8_6B
<> 135:176b8275d35d 5692 */
<> 135:176b8275d35d 5693 __STATIC_INLINE uint32_t LL_ADC_GetMultiDMATransfer(ADC_Common_TypeDef *ADCxy_COMMON)
<> 135:176b8275d35d 5694 {
<> 135:176b8275d35d 5695 return (uint32_t)(READ_BIT(ADCxy_COMMON->CCR, ADC_CCR_MDMA | ADC_CCR_DMACFG));
<> 135:176b8275d35d 5696 }
<> 135:176b8275d35d 5697
<> 135:176b8275d35d 5698 /**
<> 135:176b8275d35d 5699 * @brief Set ADC multimode delay between 2 sampling phases.
<> 135:176b8275d35d 5700 * @note The sampling delay range depends on ADC resolution:
<> 135:176b8275d35d 5701 * - ADC resolution 12 bits can have maximum delay of 12 cycles.
<> 135:176b8275d35d 5702 * - ADC resolution 10 bits can have maximum delay of 10 cycles.
<> 135:176b8275d35d 5703 * - ADC resolution 8 bits can have maximum delay of 8 cycles.
<> 135:176b8275d35d 5704 * - ADC resolution 6 bits can have maximum delay of 6 cycles.
<> 135:176b8275d35d 5705 * @note On this STM32 serie, setting of this feature is conditioned to
<> 135:176b8275d35d 5706 * ADC state:
<> 135:176b8275d35d 5707 * All ADC instances of the ADC common group must be disabled.
<> 135:176b8275d35d 5708 * This check can be done with function @ref LL_ADC_IsEnabled() for each
<> 135:176b8275d35d 5709 * ADC instance or by using helper macro helper macro
<> 135:176b8275d35d 5710 * @ref __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE().
<> 135:176b8275d35d 5711 * @rmtoll CCR DELAY LL_ADC_SetMultiTwoSamplingDelay
<> 135:176b8275d35d 5712 * @param ADCxy_COMMON ADC common instance
<> 135:176b8275d35d 5713 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
<> 135:176b8275d35d 5714 * @param MultiTwoSamplingDelay This parameter can be one of the following values:
<> 135:176b8275d35d 5715 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_1CYCLE
<> 135:176b8275d35d 5716 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_2CYCLES
<> 135:176b8275d35d 5717 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_3CYCLES
<> 135:176b8275d35d 5718 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_4CYCLES
<> 135:176b8275d35d 5719 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_5CYCLES
<> 135:176b8275d35d 5720 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_6CYCLES (1)
<> 135:176b8275d35d 5721 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_7CYCLES (1)
<> 135:176b8275d35d 5722 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_8CYCLES (2)
<> 135:176b8275d35d 5723 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_9CYCLES (2)
<> 135:176b8275d35d 5724 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_10CYCLES (2)
<> 135:176b8275d35d 5725 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_11CYCLES (3)
<> 135:176b8275d35d 5726 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_12CYCLES (3)
<> 135:176b8275d35d 5727 *
<> 135:176b8275d35d 5728 * (1) Parameter available only if ADC resolution is 12, 10 or 8 bits.\n
<> 135:176b8275d35d 5729 * (2) Parameter available only if ADC resolution is 12 or 10 bits.\n
<> 135:176b8275d35d 5730 * (3) Parameter available only if ADC resolution is 12 bits.
<> 135:176b8275d35d 5731 * @retval None
<> 135:176b8275d35d 5732 */
<> 135:176b8275d35d 5733 __STATIC_INLINE void LL_ADC_SetMultiTwoSamplingDelay(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t MultiTwoSamplingDelay)
<> 135:176b8275d35d 5734 {
<> 135:176b8275d35d 5735 MODIFY_REG(ADCxy_COMMON->CCR, ADC_CCR_DELAY, MultiTwoSamplingDelay);
<> 135:176b8275d35d 5736 }
<> 135:176b8275d35d 5737
<> 135:176b8275d35d 5738 /**
<> 135:176b8275d35d 5739 * @brief Get ADC multimode delay between 2 sampling phases.
<> 135:176b8275d35d 5740 * @rmtoll CCR DELAY LL_ADC_GetMultiTwoSamplingDelay
<> 135:176b8275d35d 5741 * @param ADCxy_COMMON ADC common instance
<> 135:176b8275d35d 5742 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
<> 135:176b8275d35d 5743 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 5744 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_1CYCLE
<> 135:176b8275d35d 5745 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_2CYCLES
<> 135:176b8275d35d 5746 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_3CYCLES
<> 135:176b8275d35d 5747 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_4CYCLES
<> 135:176b8275d35d 5748 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_5CYCLES
<> 135:176b8275d35d 5749 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_6CYCLES (1)
<> 135:176b8275d35d 5750 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_7CYCLES (1)
<> 135:176b8275d35d 5751 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_8CYCLES (2)
<> 135:176b8275d35d 5752 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_9CYCLES (2)
<> 135:176b8275d35d 5753 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_10CYCLES (2)
<> 135:176b8275d35d 5754 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_11CYCLES (3)
<> 135:176b8275d35d 5755 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_12CYCLES (3)
<> 135:176b8275d35d 5756 *
<> 135:176b8275d35d 5757 * (1) Parameter available only if ADC resolution is 12, 10 or 8 bits.\n
<> 135:176b8275d35d 5758 * (2) Parameter available only if ADC resolution is 12 or 10 bits.\n
<> 135:176b8275d35d 5759 * (3) Parameter available only if ADC resolution is 12 bits.
<> 135:176b8275d35d 5760 */
<> 135:176b8275d35d 5761 __STATIC_INLINE uint32_t LL_ADC_GetMultiTwoSamplingDelay(ADC_Common_TypeDef *ADCxy_COMMON)
<> 135:176b8275d35d 5762 {
<> 135:176b8275d35d 5763 return (uint32_t)(READ_BIT(ADCxy_COMMON->CCR, ADC_CCR_DELAY));
<> 135:176b8275d35d 5764 }
<> 135:176b8275d35d 5765 #endif /* ADC_MULTIMODE_SUPPORT */
<> 135:176b8275d35d 5766
<> 135:176b8275d35d 5767 /**
<> 135:176b8275d35d 5768 * @}
<> 135:176b8275d35d 5769 */
<> 135:176b8275d35d 5770 /** @defgroup ADC_LL_EF_Operation_ADC_Instance Operation on ADC hierarchical scope: ADC instance
<> 135:176b8275d35d 5771 * @{
<> 135:176b8275d35d 5772 */
<> 135:176b8275d35d 5773
<> 135:176b8275d35d 5774 /**
<> 135:176b8275d35d 5775 * @brief Enable ADC instance internal voltage regulator.
<> 135:176b8275d35d 5776 * @note On this STM32 serie, after ADC internal voltage regulator enable,
<> 135:176b8275d35d 5777 * a delay for ADC internal voltage regulator stabilization
<> 135:176b8275d35d 5778 * is required before performing a ADC calibration or ADC enable.
<> 135:176b8275d35d 5779 * Refer to device datasheet, parameter tADCVREG_STUP.
<> 135:176b8275d35d 5780 * Refer to literal @ref LL_ADC_DELAY_INTERNAL_REGUL_STAB_US.
<> 135:176b8275d35d 5781 * @note On this STM32 serie, setting of this feature is conditioned to
<> 135:176b8275d35d 5782 * ADC state:
<> 135:176b8275d35d 5783 * ADC must be ADC disabled.
<> 135:176b8275d35d 5784 * @rmtoll CR ADVREGEN LL_ADC_EnableInternalRegulator
<> 135:176b8275d35d 5785 * @param ADCx ADC instance
<> 135:176b8275d35d 5786 * @retval None
<> 135:176b8275d35d 5787 */
<> 135:176b8275d35d 5788 __STATIC_INLINE void LL_ADC_EnableInternalRegulator(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 5789 {
<> 135:176b8275d35d 5790 /* 1. Set the intermediate state before moving the ADC voltage regulator */
<> 135:176b8275d35d 5791 /* to state enable. */
<> 135:176b8275d35d 5792 CLEAR_BIT(ADCx->CR, (ADC_CR_ADVREGEN_1 | ADC_CR_ADVREGEN_0));
<> 135:176b8275d35d 5793 /* 2. Set the final state of ADC voltage regulator enable */
<> 135:176b8275d35d 5794 /* (ADVREGEN bits set to 0x01). */
<> 135:176b8275d35d 5795 /* Note: Write register with some additional bits forced to state reset */
<> 135:176b8275d35d 5796 /* instead of modifying only the selected bit for this function, */
<> 135:176b8275d35d 5797 /* to not interfere with bits with HW property "rs". */
<> 135:176b8275d35d 5798 MODIFY_REG(ADCx->CR,
<> 135:176b8275d35d 5799 ADC_CR_BITS_PROPERTY_RS,
<> 135:176b8275d35d 5800 ADC_CR_ADVREGEN_0);
<> 135:176b8275d35d 5801 }
<> 135:176b8275d35d 5802
<> 135:176b8275d35d 5803 /**
<> 135:176b8275d35d 5804 * @brief Disable ADC internal voltage regulator.
<> 135:176b8275d35d 5805 * @note On this STM32 serie, setting of this feature is conditioned to
<> 135:176b8275d35d 5806 * ADC state:
<> 135:176b8275d35d 5807 * ADC must be ADC disabled.
<> 135:176b8275d35d 5808 * @rmtoll CR ADVREGEN LL_ADC_DisableInternalRegulator
<> 135:176b8275d35d 5809 * @param ADCx ADC instance
<> 135:176b8275d35d 5810 * @retval None
<> 135:176b8275d35d 5811 */
<> 135:176b8275d35d 5812 __STATIC_INLINE void LL_ADC_DisableInternalRegulator(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 5813 {
<> 135:176b8275d35d 5814 CLEAR_BIT(ADCx->CR, (ADC_CR_ADVREGEN | ADC_CR_BITS_PROPERTY_RS));
<> 135:176b8275d35d 5815 }
<> 135:176b8275d35d 5816
<> 135:176b8275d35d 5817 /**
<> 135:176b8275d35d 5818 * @brief Get the selected ADC instance internal voltage regulator state.
<> 135:176b8275d35d 5819 * @rmtoll CR ADVREGEN LL_ADC_IsInternalRegulatorEnabled
<> 135:176b8275d35d 5820 * @param ADCx ADC instance
<> 135:176b8275d35d 5821 * @retval 0: internal regulator is disabled, 1: internal regulator is enabled.
<> 135:176b8275d35d 5822 */
<> 135:176b8275d35d 5823 __STATIC_INLINE uint32_t LL_ADC_IsInternalRegulatorEnabled(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 5824 {
<> 135:176b8275d35d 5825 return (READ_BIT(ADCx->CR, (ADC_CR_ADVREGEN_1 | ADC_CR_ADVREGEN_0)) == (ADC_CR_ADVREGEN_0));
<> 135:176b8275d35d 5826 }
<> 135:176b8275d35d 5827
<> 135:176b8275d35d 5828 /**
<> 135:176b8275d35d 5829 * @brief Enable the selected ADC instance.
<> 135:176b8275d35d 5830 * @note On this STM32 serie, after ADC enable, a delay for
<> 135:176b8275d35d 5831 * ADC internal analog stabilization is required before performing a
<> 135:176b8275d35d 5832 * ADC conversion start.
<> 135:176b8275d35d 5833 * Refer to device datasheet, parameter tSTAB.
<> 135:176b8275d35d 5834 * @note On this STM32 serie, flag LL_ADC_FLAG_ADRDY is raised when the ADC
<> 135:176b8275d35d 5835 * is enabled and when conversion clock is active.
<> 135:176b8275d35d 5836 * (not only core clock: this ADC has a dual clock domain)
<> 135:176b8275d35d 5837 * @note On this STM32 serie, setting of this feature is conditioned to
<> 135:176b8275d35d 5838 * ADC state:
<> 135:176b8275d35d 5839 * ADC must be ADC disabled and ADC internal voltage regulator enabled.
<> 135:176b8275d35d 5840 * @rmtoll CR ADEN LL_ADC_Enable
<> 135:176b8275d35d 5841 * @param ADCx ADC instance
<> 135:176b8275d35d 5842 * @retval None
<> 135:176b8275d35d 5843 */
<> 135:176b8275d35d 5844 __STATIC_INLINE void LL_ADC_Enable(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 5845 {
<> 135:176b8275d35d 5846 /* Note: Write register with some additional bits forced to state reset */
<> 135:176b8275d35d 5847 /* instead of modifying only the selected bit for this function, */
<> 135:176b8275d35d 5848 /* to not interfere with bits with HW property "rs". */
<> 135:176b8275d35d 5849 MODIFY_REG(ADCx->CR,
<> 135:176b8275d35d 5850 ADC_CR_BITS_PROPERTY_RS,
<> 135:176b8275d35d 5851 ADC_CR_ADEN);
<> 135:176b8275d35d 5852 }
<> 135:176b8275d35d 5853
<> 135:176b8275d35d 5854 /**
<> 135:176b8275d35d 5855 * @brief Disable the selected ADC instance.
<> 135:176b8275d35d 5856 * @note On this STM32 serie, setting of this feature is conditioned to
<> 135:176b8275d35d 5857 * ADC state:
<> 135:176b8275d35d 5858 * ADC must be not disabled. Must be enabled without conversion on going
<> 135:176b8275d35d 5859 * on either groups regular or injected.
<> 135:176b8275d35d 5860 * @rmtoll CR ADDIS LL_ADC_Disable
<> 135:176b8275d35d 5861 * @param ADCx ADC instance
<> 135:176b8275d35d 5862 * @retval None
<> 135:176b8275d35d 5863 */
<> 135:176b8275d35d 5864 __STATIC_INLINE void LL_ADC_Disable(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 5865 {
<> 135:176b8275d35d 5866 /* Note: Write register with some additional bits forced to state reset */
<> 135:176b8275d35d 5867 /* instead of modifying only the selected bit for this function, */
<> 135:176b8275d35d 5868 /* to not interfere with bits with HW property "rs". */
<> 135:176b8275d35d 5869 MODIFY_REG(ADCx->CR,
<> 135:176b8275d35d 5870 ADC_CR_BITS_PROPERTY_RS,
<> 135:176b8275d35d 5871 ADC_CR_ADDIS);
<> 135:176b8275d35d 5872 }
<> 135:176b8275d35d 5873
<> 135:176b8275d35d 5874 /**
<> 135:176b8275d35d 5875 * @brief Get the selected ADC instance enable state.
<> 135:176b8275d35d 5876 * @note On this STM32 serie, flag LL_ADC_FLAG_ADRDY is raised when the ADC
<> 135:176b8275d35d 5877 * is enabled and when conversion clock is active.
<> 135:176b8275d35d 5878 * (not only core clock: this ADC has a dual clock domain)
<> 135:176b8275d35d 5879 * @rmtoll CR ADEN LL_ADC_IsEnabled
<> 135:176b8275d35d 5880 * @param ADCx ADC instance
<> 135:176b8275d35d 5881 * @retval 0: ADC is disabled, 1: ADC is enabled.
<> 135:176b8275d35d 5882 */
<> 135:176b8275d35d 5883 __STATIC_INLINE uint32_t LL_ADC_IsEnabled(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 5884 {
<> 135:176b8275d35d 5885 return (READ_BIT(ADCx->CR, ADC_CR_ADEN) == (ADC_CR_ADEN));
<> 135:176b8275d35d 5886 }
<> 135:176b8275d35d 5887
<> 135:176b8275d35d 5888 /**
<> 135:176b8275d35d 5889 * @brief Get the selected ADC instance disable state.
<> 135:176b8275d35d 5890 * @rmtoll CR ADDIS LL_ADC_IsDisableOngoing
<> 135:176b8275d35d 5891 * @param ADCx ADC instance
<> 135:176b8275d35d 5892 * @retval 0: no ADC disable command on going.
<> 135:176b8275d35d 5893 */
<> 135:176b8275d35d 5894 __STATIC_INLINE uint32_t LL_ADC_IsDisableOngoing(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 5895 {
<> 135:176b8275d35d 5896 return (READ_BIT(ADCx->CR, ADC_CR_ADDIS) == (ADC_CR_ADDIS));
<> 135:176b8275d35d 5897 }
<> 135:176b8275d35d 5898
<> 135:176b8275d35d 5899 /**
<> 135:176b8275d35d 5900 * @brief Start ADC calibration in the mode single-ended
<> 135:176b8275d35d 5901 * or differential (for devices with differential mode available).
<> 135:176b8275d35d 5902 * @note On this STM32 serie, a minimum number of ADC clock cycles
<> 135:176b8275d35d 5903 * are required between ADC end of calibration and ADC enable.
<> 135:176b8275d35d 5904 * Refer to literal @ref LL_ADC_DELAY_CALIB_ENABLE_ADC_CYCLES.
<> 135:176b8275d35d 5905 * @note For devices with differential mode available:
<> 135:176b8275d35d 5906 * Calibration of offset is specific to each of
<> 135:176b8275d35d 5907 * single-ended and differential modes
<> 135:176b8275d35d 5908 * (calibration run must be performed for each of these
<> 135:176b8275d35d 5909 * differential modes, if used afterwards and if the application
<> 135:176b8275d35d 5910 * requires their calibration).
<> 135:176b8275d35d 5911 * @note On this STM32 serie, setting of this feature is conditioned to
<> 135:176b8275d35d 5912 * ADC state:
<> 135:176b8275d35d 5913 * ADC must be ADC disabled.
<> 135:176b8275d35d 5914 * @rmtoll CR ADCAL LL_ADC_StartCalibration\n
<> 135:176b8275d35d 5915 * CR ADCALDIF LL_ADC_StartCalibration
<> 135:176b8275d35d 5916 * @param ADCx ADC instance
<> 135:176b8275d35d 5917 * @param SingleDiff This parameter can be one of the following values:
<> 135:176b8275d35d 5918 * @arg @ref LL_ADC_SINGLE_ENDED
<> 135:176b8275d35d 5919 * @arg @ref LL_ADC_DIFFERENTIAL_ENDED
<> 135:176b8275d35d 5920 * @retval None
<> 135:176b8275d35d 5921 */
<> 135:176b8275d35d 5922 __STATIC_INLINE void LL_ADC_StartCalibration(ADC_TypeDef *ADCx, uint32_t SingleDiff)
<> 135:176b8275d35d 5923 {
<> 135:176b8275d35d 5924 /* Note: Write register with some additional bits forced to state reset */
<> 135:176b8275d35d 5925 /* instead of modifying only the selected bit for this function, */
<> 135:176b8275d35d 5926 /* to not interfere with bits with HW property "rs". */
<> 135:176b8275d35d 5927 MODIFY_REG(ADCx->CR,
<> 135:176b8275d35d 5928 ADC_CR_ADCALDIF | ADC_CR_BITS_PROPERTY_RS,
<> 135:176b8275d35d 5929 ADC_CR_ADCAL | (SingleDiff & ADC_SINGLEDIFF_CALIB_START_MASK));
<> 135:176b8275d35d 5930 }
<> 135:176b8275d35d 5931
<> 135:176b8275d35d 5932 /**
<> 135:176b8275d35d 5933 * @brief Get ADC calibration state.
<> 135:176b8275d35d 5934 * @rmtoll CR ADCAL LL_ADC_IsCalibrationOnGoing
<> 135:176b8275d35d 5935 * @param ADCx ADC instance
<> 135:176b8275d35d 5936 * @retval 0: calibration complete, 1: calibration in progress.
<> 135:176b8275d35d 5937 */
<> 135:176b8275d35d 5938 __STATIC_INLINE uint32_t LL_ADC_IsCalibrationOnGoing(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 5939 {
<> 135:176b8275d35d 5940 return (READ_BIT(ADCx->CR, ADC_CR_ADCAL) == (ADC_CR_ADCAL));
<> 135:176b8275d35d 5941 }
<> 135:176b8275d35d 5942
<> 135:176b8275d35d 5943 /**
<> 135:176b8275d35d 5944 * @}
<> 135:176b8275d35d 5945 */
<> 135:176b8275d35d 5946
<> 135:176b8275d35d 5947 /** @defgroup ADC_LL_EF_Operation_ADC_Group_Regular Operation on ADC hierarchical scope: group regular
<> 135:176b8275d35d 5948 * @{
<> 135:176b8275d35d 5949 */
<> 135:176b8275d35d 5950
<> 135:176b8275d35d 5951 /**
<> 135:176b8275d35d 5952 * @brief Start ADC group regular conversion.
<> 135:176b8275d35d 5953 * @note On this STM32 serie, this function is relevant for both
<> 135:176b8275d35d 5954 * internal trigger (SW start) and external trigger:
<> 135:176b8275d35d 5955 * - If ADC trigger has been set to software start, ADC conversion
<> 135:176b8275d35d 5956 * starts immediately.
<> 135:176b8275d35d 5957 * - If ADC trigger has been set to external trigger, ADC conversion
<> 135:176b8275d35d 5958 * will start at next trigger event (on the selected trigger edge)
<> 135:176b8275d35d 5959 * following the ADC start conversion command.
<> 135:176b8275d35d 5960 * @note On this STM32 serie, setting of this feature is conditioned to
<> 135:176b8275d35d 5961 * ADC state:
<> 135:176b8275d35d 5962 * ADC must be enabled without conversion on going on group regular,
<> 135:176b8275d35d 5963 * without conversion stop command on going on group regular,
<> 135:176b8275d35d 5964 * without ADC disable command on going.
<> 135:176b8275d35d 5965 * @rmtoll CR ADSTART LL_ADC_REG_StartConversion
<> 135:176b8275d35d 5966 * @param ADCx ADC instance
<> 135:176b8275d35d 5967 * @retval None
<> 135:176b8275d35d 5968 */
<> 135:176b8275d35d 5969 __STATIC_INLINE void LL_ADC_REG_StartConversion(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 5970 {
<> 135:176b8275d35d 5971 /* Note: Write register with some additional bits forced to state reset */
<> 135:176b8275d35d 5972 /* instead of modifying only the selected bit for this function, */
<> 135:176b8275d35d 5973 /* to not interfere with bits with HW property "rs". */
<> 135:176b8275d35d 5974 MODIFY_REG(ADCx->CR,
<> 135:176b8275d35d 5975 ADC_CR_BITS_PROPERTY_RS,
<> 135:176b8275d35d 5976 ADC_CR_ADSTART);
<> 135:176b8275d35d 5977 }
<> 135:176b8275d35d 5978
<> 135:176b8275d35d 5979 /**
<> 135:176b8275d35d 5980 * @brief Stop ADC group regular conversion.
<> 135:176b8275d35d 5981 * @note On this STM32 serie, setting of this feature is conditioned to
<> 135:176b8275d35d 5982 * ADC state:
<> 135:176b8275d35d 5983 * ADC must be enabled with conversion on going on group regular,
<> 135:176b8275d35d 5984 * without ADC disable command on going.
<> 135:176b8275d35d 5985 * @rmtoll CR ADSTP LL_ADC_REG_StopConversion
<> 135:176b8275d35d 5986 * @param ADCx ADC instance
<> 135:176b8275d35d 5987 * @retval None
<> 135:176b8275d35d 5988 */
<> 135:176b8275d35d 5989 __STATIC_INLINE void LL_ADC_REG_StopConversion(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 5990 {
<> 135:176b8275d35d 5991 /* Note: Write register with some additional bits forced to state reset */
<> 135:176b8275d35d 5992 /* instead of modifying only the selected bit for this function, */
<> 135:176b8275d35d 5993 /* to not interfere with bits with HW property "rs". */
<> 135:176b8275d35d 5994 MODIFY_REG(ADCx->CR,
<> 135:176b8275d35d 5995 ADC_CR_BITS_PROPERTY_RS,
<> 135:176b8275d35d 5996 ADC_CR_ADSTP);
<> 135:176b8275d35d 5997 }
<> 135:176b8275d35d 5998
<> 135:176b8275d35d 5999 /**
<> 135:176b8275d35d 6000 * @brief Get ADC group regular conversion state.
<> 135:176b8275d35d 6001 * @rmtoll CR ADSTART LL_ADC_REG_IsConversionOngoing
<> 135:176b8275d35d 6002 * @param ADCx ADC instance
<> 135:176b8275d35d 6003 * @retval 0: no conversion is on going on ADC group regular.
<> 135:176b8275d35d 6004 */
<> 135:176b8275d35d 6005 __STATIC_INLINE uint32_t LL_ADC_REG_IsConversionOngoing(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6006 {
<> 135:176b8275d35d 6007 return (READ_BIT(ADCx->CR, ADC_CR_ADSTART) == (ADC_CR_ADSTART));
<> 135:176b8275d35d 6008 }
<> 135:176b8275d35d 6009
<> 135:176b8275d35d 6010 /**
<> 135:176b8275d35d 6011 * @brief Get ADC group regular command of conversion stop state
<> 135:176b8275d35d 6012 * @rmtoll CR ADSTP LL_ADC_REG_IsStopConversionOngoing
<> 135:176b8275d35d 6013 * @param ADCx ADC instance
<> 135:176b8275d35d 6014 * @retval 0: no command of conversion stop is on going on ADC group regular.
<> 135:176b8275d35d 6015 */
<> 135:176b8275d35d 6016 __STATIC_INLINE uint32_t LL_ADC_REG_IsStopConversionOngoing(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6017 {
<> 135:176b8275d35d 6018 return (READ_BIT(ADCx->CR, ADC_CR_ADSTP) == (ADC_CR_ADSTP));
<> 135:176b8275d35d 6019 }
<> 135:176b8275d35d 6020
<> 135:176b8275d35d 6021 /**
<> 135:176b8275d35d 6022 * @brief Get ADC group regular conversion data, range fit for
<> 135:176b8275d35d 6023 * all ADC configurations: all ADC resolutions and
<> 135:176b8275d35d 6024 * all oversampling increased data width (for devices
<> 135:176b8275d35d 6025 * with feature oversampling).
<> 135:176b8275d35d 6026 * @rmtoll DR RDATA LL_ADC_REG_ReadConversionData32
<> 135:176b8275d35d 6027 * @param ADCx ADC instance
<> 135:176b8275d35d 6028 * @retval Value between Min_Data=0x00000000 and Max_Data=0xFFFFFFFF
<> 135:176b8275d35d 6029 */
<> 135:176b8275d35d 6030 __STATIC_INLINE uint32_t LL_ADC_REG_ReadConversionData32(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6031 {
<> 135:176b8275d35d 6032 return (uint32_t)(READ_BIT(ADCx->DR, ADC_DR_RDATA));
<> 135:176b8275d35d 6033 }
<> 135:176b8275d35d 6034
<> 135:176b8275d35d 6035 /**
<> 135:176b8275d35d 6036 * @brief Get ADC group regular conversion data, range fit for
<> 135:176b8275d35d 6037 * ADC resolution 12 bits.
<> 135:176b8275d35d 6038 * @note For devices with feature oversampling: Oversampling
<> 135:176b8275d35d 6039 * can increase data width, function for extended range
<> 135:176b8275d35d 6040 * may be needed: @ref LL_ADC_REG_ReadConversionData32.
<> 135:176b8275d35d 6041 * @rmtoll DR RDATA LL_ADC_REG_ReadConversionData12
<> 135:176b8275d35d 6042 * @param ADCx ADC instance
<> 135:176b8275d35d 6043 * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
<> 135:176b8275d35d 6044 */
<> 135:176b8275d35d 6045 __STATIC_INLINE uint16_t LL_ADC_REG_ReadConversionData12(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6046 {
<> 135:176b8275d35d 6047 return (uint16_t)(READ_BIT(ADCx->DR, ADC_DR_RDATA));
<> 135:176b8275d35d 6048 }
<> 135:176b8275d35d 6049
<> 135:176b8275d35d 6050 /**
<> 135:176b8275d35d 6051 * @brief Get ADC group regular conversion data, range fit for
<> 135:176b8275d35d 6052 * ADC resolution 10 bits.
<> 135:176b8275d35d 6053 * @note For devices with feature oversampling: Oversampling
<> 135:176b8275d35d 6054 * can increase data width, function for extended range
<> 135:176b8275d35d 6055 * may be needed: @ref LL_ADC_REG_ReadConversionData32.
<> 135:176b8275d35d 6056 * @rmtoll DR RDATA LL_ADC_REG_ReadConversionData10
<> 135:176b8275d35d 6057 * @param ADCx ADC instance
<> 135:176b8275d35d 6058 * @retval Value between Min_Data=0x000 and Max_Data=0x3FF
<> 135:176b8275d35d 6059 */
<> 135:176b8275d35d 6060 __STATIC_INLINE uint16_t LL_ADC_REG_ReadConversionData10(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6061 {
<> 135:176b8275d35d 6062 return (uint16_t)(READ_BIT(ADCx->DR, ADC_DR_RDATA));
<> 135:176b8275d35d 6063 }
<> 135:176b8275d35d 6064
<> 135:176b8275d35d 6065 /**
<> 135:176b8275d35d 6066 * @brief Get ADC group regular conversion data, range fit for
<> 135:176b8275d35d 6067 * ADC resolution 8 bits.
<> 135:176b8275d35d 6068 * @note For devices with feature oversampling: Oversampling
<> 135:176b8275d35d 6069 * can increase data width, function for extended range
<> 135:176b8275d35d 6070 * may be needed: @ref LL_ADC_REG_ReadConversionData32.
<> 135:176b8275d35d 6071 * @rmtoll DR RDATA LL_ADC_REG_ReadConversionData8
<> 135:176b8275d35d 6072 * @param ADCx ADC instance
<> 135:176b8275d35d 6073 * @retval Value between Min_Data=0x00 and Max_Data=0xFF
<> 135:176b8275d35d 6074 */
<> 135:176b8275d35d 6075 __STATIC_INLINE uint8_t LL_ADC_REG_ReadConversionData8(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6076 {
<> 135:176b8275d35d 6077 return (uint8_t)(READ_BIT(ADCx->DR, ADC_DR_RDATA));
<> 135:176b8275d35d 6078 }
<> 135:176b8275d35d 6079
<> 135:176b8275d35d 6080 /**
<> 135:176b8275d35d 6081 * @brief Get ADC group regular conversion data, range fit for
<> 135:176b8275d35d 6082 * ADC resolution 6 bits.
<> 135:176b8275d35d 6083 * @note For devices with feature oversampling: Oversampling
<> 135:176b8275d35d 6084 * can increase data width, function for extended range
<> 135:176b8275d35d 6085 * may be needed: @ref LL_ADC_REG_ReadConversionData32.
<> 135:176b8275d35d 6086 * @rmtoll DR RDATA LL_ADC_REG_ReadConversionData6
<> 135:176b8275d35d 6087 * @param ADCx ADC instance
<> 135:176b8275d35d 6088 * @retval Value between Min_Data=0x00 and Max_Data=0x3F
<> 135:176b8275d35d 6089 */
<> 135:176b8275d35d 6090 __STATIC_INLINE uint8_t LL_ADC_REG_ReadConversionData6(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6091 {
<> 135:176b8275d35d 6092 return (uint8_t)(READ_BIT(ADCx->DR, ADC_DR_RDATA));
<> 135:176b8275d35d 6093 }
<> 135:176b8275d35d 6094
<> 135:176b8275d35d 6095 #if defined(ADC_MULTIMODE_SUPPORT)
<> 135:176b8275d35d 6096 /**
<> 135:176b8275d35d 6097 * @brief Get ADC multimode conversion data of ADC master, ADC slave
<> 135:176b8275d35d 6098 * or raw data with ADC master and slave concatenated.
<> 135:176b8275d35d 6099 * @note If raw data with ADC master and slave concatenated is retrieved,
<> 135:176b8275d35d 6100 * a macro is available to get the conversion data of
<> 135:176b8275d35d 6101 * ADC master or ADC slave: see helper macro
<> 135:176b8275d35d 6102 * @ref __LL_ADC_MULTI_CONV_DATA_MASTER_SLAVE().
<> 135:176b8275d35d 6103 * (however this macro is mainly intended for multimode
<> 135:176b8275d35d 6104 * transfer by DMA, because this function can do the same
<> 135:176b8275d35d 6105 * by getting multimode conversion data of ADC master or ADC slave
<> 135:176b8275d35d 6106 * separately).
<> 135:176b8275d35d 6107 * @rmtoll CDR RDATA_MST LL_ADC_REG_ReadMultiConversionData32\n
<> 135:176b8275d35d 6108 * CDR RDATA_SLV LL_ADC_REG_ReadMultiConversionData32
<> 135:176b8275d35d 6109 * @param ADCxy_COMMON ADC common instance
<> 135:176b8275d35d 6110 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
<> 135:176b8275d35d 6111 * @param ConversionData This parameter can be one of the following values:
<> 135:176b8275d35d 6112 * @arg @ref LL_ADC_MULTI_MASTER
<> 135:176b8275d35d 6113 * @arg @ref LL_ADC_MULTI_SLAVE
<> 135:176b8275d35d 6114 * @arg @ref LL_ADC_MULTI_MASTER_SLAVE
<> 135:176b8275d35d 6115 * @retval Value between Min_Data=0x00000000 and Max_Data=0xFFFFFFFF
<> 135:176b8275d35d 6116 */
<> 135:176b8275d35d 6117 __STATIC_INLINE uint32_t LL_ADC_REG_ReadMultiConversionData32(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t ConversionData)
<> 135:176b8275d35d 6118 {
<> 135:176b8275d35d 6119 return (uint32_t)(READ_BIT(ADCxy_COMMON->CDR,
<> 135:176b8275d35d 6120 ConversionData)
<> 135:176b8275d35d 6121 >> POSITION_VAL(ConversionData)
<> 135:176b8275d35d 6122 );
<> 135:176b8275d35d 6123 }
<> 135:176b8275d35d 6124 #endif /* ADC_MULTIMODE_SUPPORT */
<> 135:176b8275d35d 6125
<> 135:176b8275d35d 6126 /**
<> 135:176b8275d35d 6127 * @}
<> 135:176b8275d35d 6128 */
<> 135:176b8275d35d 6129
<> 135:176b8275d35d 6130 /** @defgroup ADC_LL_EF_Operation_ADC_Group_Injected Operation on ADC hierarchical scope: group injected
<> 135:176b8275d35d 6131 * @{
<> 135:176b8275d35d 6132 */
<> 135:176b8275d35d 6133
<> 135:176b8275d35d 6134 /**
<> 135:176b8275d35d 6135 * @brief Start ADC group injected conversion.
<> 135:176b8275d35d 6136 * @note On this STM32 serie, this function is relevant for both
<> 135:176b8275d35d 6137 * internal trigger (SW start) and external trigger:
<> 135:176b8275d35d 6138 * - If ADC trigger has been set to software start, ADC conversion
<> 135:176b8275d35d 6139 * starts immediately.
<> 135:176b8275d35d 6140 * - If ADC trigger has been set to external trigger, ADC conversion
<> 135:176b8275d35d 6141 * will start at next trigger event (on the selected trigger edge)
<> 135:176b8275d35d 6142 * following the ADC start conversion command.
<> 135:176b8275d35d 6143 * @note On this STM32 serie, setting of this feature is conditioned to
<> 135:176b8275d35d 6144 * ADC state:
<> 135:176b8275d35d 6145 * ADC must be enabled without conversion on going on group injected,
<> 135:176b8275d35d 6146 * without conversion stop command on going on group injected,
<> 135:176b8275d35d 6147 * without ADC disable command on going.
<> 135:176b8275d35d 6148 * @rmtoll CR JADSTART LL_ADC_INJ_StartConversion
<> 135:176b8275d35d 6149 * @param ADCx ADC instance
<> 135:176b8275d35d 6150 * @retval None
<> 135:176b8275d35d 6151 */
<> 135:176b8275d35d 6152 __STATIC_INLINE void LL_ADC_INJ_StartConversion(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6153 {
<> 135:176b8275d35d 6154 /* Note: Write register with some additional bits forced to state reset */
<> 135:176b8275d35d 6155 /* instead of modifying only the selected bit for this function, */
<> 135:176b8275d35d 6156 /* to not interfere with bits with HW property "rs". */
<> 135:176b8275d35d 6157 MODIFY_REG(ADCx->CR,
<> 135:176b8275d35d 6158 ADC_CR_BITS_PROPERTY_RS,
<> 135:176b8275d35d 6159 ADC_CR_JADSTART);
<> 135:176b8275d35d 6160 }
<> 135:176b8275d35d 6161
<> 135:176b8275d35d 6162 /**
<> 135:176b8275d35d 6163 * @brief Stop ADC group injected conversion.
<> 135:176b8275d35d 6164 * @note On this STM32 serie, setting of this feature is conditioned to
<> 135:176b8275d35d 6165 * ADC state:
<> 135:176b8275d35d 6166 * ADC must be enabled with conversion on going on group injected,
<> 135:176b8275d35d 6167 * without ADC disable command on going.
<> 135:176b8275d35d 6168 * @rmtoll CR JADSTP LL_ADC_INJ_StopConversion
<> 135:176b8275d35d 6169 * @param ADCx ADC instance
<> 135:176b8275d35d 6170 * @retval None
<> 135:176b8275d35d 6171 */
<> 135:176b8275d35d 6172 __STATIC_INLINE void LL_ADC_INJ_StopConversion(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6173 {
<> 135:176b8275d35d 6174 /* Note: Write register with some additional bits forced to state reset */
<> 135:176b8275d35d 6175 /* instead of modifying only the selected bit for this function, */
<> 135:176b8275d35d 6176 /* to not interfere with bits with HW property "rs". */
<> 135:176b8275d35d 6177 MODIFY_REG(ADCx->CR,
<> 135:176b8275d35d 6178 ADC_CR_BITS_PROPERTY_RS,
<> 135:176b8275d35d 6179 ADC_CR_JADSTP);
<> 135:176b8275d35d 6180 }
<> 135:176b8275d35d 6181
<> 135:176b8275d35d 6182 /**
<> 135:176b8275d35d 6183 * @brief Get ADC group injected conversion state.
<> 135:176b8275d35d 6184 * @rmtoll CR JADSTART LL_ADC_INJ_IsConversionOngoing
<> 135:176b8275d35d 6185 * @param ADCx ADC instance
<> 135:176b8275d35d 6186 * @retval 0: no conversion is on going on ADC group injected.
<> 135:176b8275d35d 6187 */
<> 135:176b8275d35d 6188 __STATIC_INLINE uint32_t LL_ADC_INJ_IsConversionOngoing(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6189 {
<> 135:176b8275d35d 6190 return (READ_BIT(ADCx->CR, ADC_CR_JADSTART) == (ADC_CR_JADSTART));
<> 135:176b8275d35d 6191 }
<> 135:176b8275d35d 6192
<> 135:176b8275d35d 6193 /**
<> 135:176b8275d35d 6194 * @brief Get ADC group injected command of conversion stop state
<> 135:176b8275d35d 6195 * @rmtoll CR JADSTP LL_ADC_INJ_IsStopConversionOngoing
<> 135:176b8275d35d 6196 * @param ADCx ADC instance
<> 135:176b8275d35d 6197 * @retval 0: no command of conversion stop is on going on ADC group injected.
<> 135:176b8275d35d 6198 */
<> 135:176b8275d35d 6199 __STATIC_INLINE uint32_t LL_ADC_INJ_IsStopConversionOngoing(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6200 {
<> 135:176b8275d35d 6201 return (READ_BIT(ADCx->CR, ADC_CR_JADSTP) == (ADC_CR_JADSTP));
<> 135:176b8275d35d 6202 }
<> 135:176b8275d35d 6203
<> 135:176b8275d35d 6204 /**
<> 135:176b8275d35d 6205 * @brief Get ADC group regular conversion data, range fit for
<> 135:176b8275d35d 6206 * all ADC configurations: all ADC resolutions and
<> 135:176b8275d35d 6207 * all oversampling increased data width (for devices
<> 135:176b8275d35d 6208 * with feature oversampling).
<> 135:176b8275d35d 6209 * @rmtoll JDR1 JDATA LL_ADC_INJ_ReadConversionData32\n
<> 135:176b8275d35d 6210 * JDR2 JDATA LL_ADC_INJ_ReadConversionData32\n
<> 135:176b8275d35d 6211 * JDR3 JDATA LL_ADC_INJ_ReadConversionData32\n
<> 135:176b8275d35d 6212 * JDR4 JDATA LL_ADC_INJ_ReadConversionData32
<> 135:176b8275d35d 6213 * @param ADCx ADC instance
<> 135:176b8275d35d 6214 * @param Rank This parameter can be one of the following values:
<> 135:176b8275d35d 6215 * @arg @ref LL_ADC_INJ_RANK_1
<> 135:176b8275d35d 6216 * @arg @ref LL_ADC_INJ_RANK_2
<> 135:176b8275d35d 6217 * @arg @ref LL_ADC_INJ_RANK_3
<> 135:176b8275d35d 6218 * @arg @ref LL_ADC_INJ_RANK_4
<> 135:176b8275d35d 6219 * @retval Value between Min_Data=0x00000000 and Max_Data=0xFFFFFFFF
<> 135:176b8275d35d 6220 */
<> 135:176b8275d35d 6221 __STATIC_INLINE uint32_t LL_ADC_INJ_ReadConversionData32(ADC_TypeDef *ADCx, uint32_t Rank)
<> 135:176b8275d35d 6222 {
<> 135:176b8275d35d 6223 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JDR1, __ADC_MASK_SHIFT(Rank, ADC_INJ_JDRX_REGOFFSET_MASK));
<> 135:176b8275d35d 6224
<> 135:176b8275d35d 6225 return (uint32_t)(READ_BIT(*preg,
<> 135:176b8275d35d 6226 ADC_JDR1_JDATA)
<> 135:176b8275d35d 6227 );
<> 135:176b8275d35d 6228 }
<> 135:176b8275d35d 6229
<> 135:176b8275d35d 6230 /**
<> 135:176b8275d35d 6231 * @brief Get ADC group injected conversion data, range fit for
<> 135:176b8275d35d 6232 * ADC resolution 12 bits.
<> 135:176b8275d35d 6233 * @note For devices with feature oversampling: Oversampling
<> 135:176b8275d35d 6234 * can increase data width, function for extended range
<> 135:176b8275d35d 6235 * may be needed: @ref LL_ADC_INJ_ReadConversionData32.
<> 135:176b8275d35d 6236 * @rmtoll JDR1 JDATA LL_ADC_INJ_ReadConversionData12\n
<> 135:176b8275d35d 6237 * JDR2 JDATA LL_ADC_INJ_ReadConversionData12\n
<> 135:176b8275d35d 6238 * JDR3 JDATA LL_ADC_INJ_ReadConversionData12\n
<> 135:176b8275d35d 6239 * JDR4 JDATA LL_ADC_INJ_ReadConversionData12
<> 135:176b8275d35d 6240 * @param ADCx ADC instance
<> 135:176b8275d35d 6241 * @param Rank This parameter can be one of the following values:
<> 135:176b8275d35d 6242 * @arg @ref LL_ADC_INJ_RANK_1
<> 135:176b8275d35d 6243 * @arg @ref LL_ADC_INJ_RANK_2
<> 135:176b8275d35d 6244 * @arg @ref LL_ADC_INJ_RANK_3
<> 135:176b8275d35d 6245 * @arg @ref LL_ADC_INJ_RANK_4
<> 135:176b8275d35d 6246 * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
<> 135:176b8275d35d 6247 */
<> 135:176b8275d35d 6248 __STATIC_INLINE uint16_t LL_ADC_INJ_ReadConversionData12(ADC_TypeDef *ADCx, uint32_t Rank)
<> 135:176b8275d35d 6249 {
<> 135:176b8275d35d 6250 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JDR1, __ADC_MASK_SHIFT(Rank, ADC_INJ_JDRX_REGOFFSET_MASK));
<> 135:176b8275d35d 6251
<> 135:176b8275d35d 6252 return (uint16_t)(READ_BIT(*preg,
<> 135:176b8275d35d 6253 ADC_JDR1_JDATA)
<> 135:176b8275d35d 6254 );
<> 135:176b8275d35d 6255 }
<> 135:176b8275d35d 6256
<> 135:176b8275d35d 6257 /**
<> 135:176b8275d35d 6258 * @brief Get ADC group injected conversion data, range fit for
<> 135:176b8275d35d 6259 * ADC resolution 10 bits.
<> 135:176b8275d35d 6260 * @note For devices with feature oversampling: Oversampling
<> 135:176b8275d35d 6261 * can increase data width, function for extended range
<> 135:176b8275d35d 6262 * may be needed: @ref LL_ADC_INJ_ReadConversionData32.
<> 135:176b8275d35d 6263 * @rmtoll JDR1 JDATA LL_ADC_INJ_ReadConversionData10\n
<> 135:176b8275d35d 6264 * JDR2 JDATA LL_ADC_INJ_ReadConversionData10\n
<> 135:176b8275d35d 6265 * JDR3 JDATA LL_ADC_INJ_ReadConversionData10\n
<> 135:176b8275d35d 6266 * JDR4 JDATA LL_ADC_INJ_ReadConversionData10
<> 135:176b8275d35d 6267 * @param ADCx ADC instance
<> 135:176b8275d35d 6268 * @param Rank This parameter can be one of the following values:
<> 135:176b8275d35d 6269 * @arg @ref LL_ADC_INJ_RANK_1
<> 135:176b8275d35d 6270 * @arg @ref LL_ADC_INJ_RANK_2
<> 135:176b8275d35d 6271 * @arg @ref LL_ADC_INJ_RANK_3
<> 135:176b8275d35d 6272 * @arg @ref LL_ADC_INJ_RANK_4
<> 135:176b8275d35d 6273 * @retval Value between Min_Data=0x000 and Max_Data=0x3FF
<> 135:176b8275d35d 6274 */
<> 135:176b8275d35d 6275 __STATIC_INLINE uint16_t LL_ADC_INJ_ReadConversionData10(ADC_TypeDef *ADCx, uint32_t Rank)
<> 135:176b8275d35d 6276 {
<> 135:176b8275d35d 6277 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JDR1, __ADC_MASK_SHIFT(Rank, ADC_INJ_JDRX_REGOFFSET_MASK));
<> 135:176b8275d35d 6278
<> 135:176b8275d35d 6279 return (uint16_t)(READ_BIT(*preg,
<> 135:176b8275d35d 6280 ADC_JDR1_JDATA)
<> 135:176b8275d35d 6281 );
<> 135:176b8275d35d 6282 }
<> 135:176b8275d35d 6283
<> 135:176b8275d35d 6284 /**
<> 135:176b8275d35d 6285 * @brief Get ADC group injected conversion data, range fit for
<> 135:176b8275d35d 6286 * ADC resolution 8 bits.
<> 135:176b8275d35d 6287 * @note For devices with feature oversampling: Oversampling
<> 135:176b8275d35d 6288 * can increase data width, function for extended range
<> 135:176b8275d35d 6289 * may be needed: @ref LL_ADC_INJ_ReadConversionData32.
<> 135:176b8275d35d 6290 * @rmtoll JDR1 JDATA LL_ADC_INJ_ReadConversionData8\n
<> 135:176b8275d35d 6291 * JDR2 JDATA LL_ADC_INJ_ReadConversionData8\n
<> 135:176b8275d35d 6292 * JDR3 JDATA LL_ADC_INJ_ReadConversionData8\n
<> 135:176b8275d35d 6293 * JDR4 JDATA LL_ADC_INJ_ReadConversionData8
<> 135:176b8275d35d 6294 * @param ADCx ADC instance
<> 135:176b8275d35d 6295 * @param Rank This parameter can be one of the following values:
<> 135:176b8275d35d 6296 * @arg @ref LL_ADC_INJ_RANK_1
<> 135:176b8275d35d 6297 * @arg @ref LL_ADC_INJ_RANK_2
<> 135:176b8275d35d 6298 * @arg @ref LL_ADC_INJ_RANK_3
<> 135:176b8275d35d 6299 * @arg @ref LL_ADC_INJ_RANK_4
<> 135:176b8275d35d 6300 * @retval Value between Min_Data=0x00 and Max_Data=0xFF
<> 135:176b8275d35d 6301 */
<> 135:176b8275d35d 6302 __STATIC_INLINE uint8_t LL_ADC_INJ_ReadConversionData8(ADC_TypeDef *ADCx, uint32_t Rank)
<> 135:176b8275d35d 6303 {
<> 135:176b8275d35d 6304 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JDR1, __ADC_MASK_SHIFT(Rank, ADC_INJ_JDRX_REGOFFSET_MASK));
<> 135:176b8275d35d 6305
<> 135:176b8275d35d 6306 return (uint8_t)(READ_BIT(*preg,
<> 135:176b8275d35d 6307 ADC_JDR1_JDATA)
<> 135:176b8275d35d 6308 );
<> 135:176b8275d35d 6309 }
<> 135:176b8275d35d 6310
<> 135:176b8275d35d 6311 /**
<> 135:176b8275d35d 6312 * @brief Get ADC group injected conversion data, range fit for
<> 135:176b8275d35d 6313 * ADC resolution 6 bits.
<> 135:176b8275d35d 6314 * @note For devices with feature oversampling: Oversampling
<> 135:176b8275d35d 6315 * can increase data width, function for extended range
<> 135:176b8275d35d 6316 * may be needed: @ref LL_ADC_INJ_ReadConversionData32.
<> 135:176b8275d35d 6317 * @rmtoll JDR1 JDATA LL_ADC_INJ_ReadConversionData6\n
<> 135:176b8275d35d 6318 * JDR2 JDATA LL_ADC_INJ_ReadConversionData6\n
<> 135:176b8275d35d 6319 * JDR3 JDATA LL_ADC_INJ_ReadConversionData6\n
<> 135:176b8275d35d 6320 * JDR4 JDATA LL_ADC_INJ_ReadConversionData6
<> 135:176b8275d35d 6321 * @param ADCx ADC instance
<> 135:176b8275d35d 6322 * @param Rank This parameter can be one of the following values:
<> 135:176b8275d35d 6323 * @arg @ref LL_ADC_INJ_RANK_1
<> 135:176b8275d35d 6324 * @arg @ref LL_ADC_INJ_RANK_2
<> 135:176b8275d35d 6325 * @arg @ref LL_ADC_INJ_RANK_3
<> 135:176b8275d35d 6326 * @arg @ref LL_ADC_INJ_RANK_4
<> 135:176b8275d35d 6327 * @retval Value between Min_Data=0x00 and Max_Data=0x3F
<> 135:176b8275d35d 6328 */
<> 135:176b8275d35d 6329 __STATIC_INLINE uint8_t LL_ADC_INJ_ReadConversionData6(ADC_TypeDef *ADCx, uint32_t Rank)
<> 135:176b8275d35d 6330 {
<> 135:176b8275d35d 6331 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JDR1, __ADC_MASK_SHIFT(Rank, ADC_INJ_JDRX_REGOFFSET_MASK));
<> 135:176b8275d35d 6332
<> 135:176b8275d35d 6333 return (uint8_t)(READ_BIT(*preg,
<> 135:176b8275d35d 6334 ADC_JDR1_JDATA)
<> 135:176b8275d35d 6335 );
<> 135:176b8275d35d 6336 }
<> 135:176b8275d35d 6337
<> 135:176b8275d35d 6338 /**
<> 135:176b8275d35d 6339 * @}
<> 135:176b8275d35d 6340 */
<> 135:176b8275d35d 6341
<> 135:176b8275d35d 6342 /** @defgroup ADC_LL_EF_FLAG_Management ADC flag management
<> 135:176b8275d35d 6343 * @{
<> 135:176b8275d35d 6344 */
<> 135:176b8275d35d 6345
<> 135:176b8275d35d 6346 /**
<> 135:176b8275d35d 6347 * @brief Get flag ADC ready.
<> 135:176b8275d35d 6348 * @note On this STM32 serie, flag LL_ADC_FLAG_ADRDY is raised when the ADC
<> 135:176b8275d35d 6349 * is enabled and when conversion clock is active.
<> 135:176b8275d35d 6350 * (not only core clock: this ADC has a dual clock domain)
<> 135:176b8275d35d 6351 * @rmtoll ISR ADRDY LL_ADC_IsActiveFlag_ADRDY
<> 135:176b8275d35d 6352 * @param ADCx ADC instance
<> 135:176b8275d35d 6353 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 6354 */
<> 135:176b8275d35d 6355 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_ADRDY(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6356 {
<> 135:176b8275d35d 6357 return (READ_BIT(ADCx->ISR, LL_ADC_FLAG_ADRDY) == (LL_ADC_FLAG_ADRDY));
<> 135:176b8275d35d 6358 }
<> 135:176b8275d35d 6359
<> 135:176b8275d35d 6360 /**
<> 135:176b8275d35d 6361 * @brief Get flag ADC group regular end of unitary conversion.
<> 135:176b8275d35d 6362 * @rmtoll ISR EOC LL_ADC_IsActiveFlag_EOC
<> 135:176b8275d35d 6363 * @param ADCx ADC instance
<> 135:176b8275d35d 6364 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 6365 */
<> 135:176b8275d35d 6366 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_EOC(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6367 {
<> 135:176b8275d35d 6368 return (READ_BIT(ADCx->ISR, ADC_ISR_EOC) == (ADC_ISR_EOC));
<> 135:176b8275d35d 6369 }
<> 135:176b8275d35d 6370
<> 135:176b8275d35d 6371 /**
<> 135:176b8275d35d 6372 * @brief Get flag ADC group regular end of sequence conversions.
<> 135:176b8275d35d 6373 * @rmtoll ISR EOS LL_ADC_IsActiveFlag_EOS
<> 135:176b8275d35d 6374 * @param ADCx ADC instance
<> 135:176b8275d35d 6375 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 6376 */
<> 135:176b8275d35d 6377 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_EOS(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6378 {
<> 135:176b8275d35d 6379 return (READ_BIT(ADCx->ISR, LL_ADC_FLAG_EOS) == (LL_ADC_FLAG_EOS));
<> 135:176b8275d35d 6380 }
<> 135:176b8275d35d 6381
<> 135:176b8275d35d 6382 /**
<> 135:176b8275d35d 6383 * @brief Get flag ADC group regular overrun.
<> 135:176b8275d35d 6384 * @rmtoll ISR OVR LL_ADC_IsActiveFlag_OVR
<> 135:176b8275d35d 6385 * @param ADCx ADC instance
<> 135:176b8275d35d 6386 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 6387 */
<> 135:176b8275d35d 6388 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_OVR(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6389 {
<> 135:176b8275d35d 6390 return (READ_BIT(ADCx->ISR, LL_ADC_FLAG_OVR) == (LL_ADC_FLAG_OVR));
<> 135:176b8275d35d 6391 }
<> 135:176b8275d35d 6392
<> 135:176b8275d35d 6393 /**
<> 135:176b8275d35d 6394 * @brief Get flag ADC group regular end of sampling phase.
<> 135:176b8275d35d 6395 * @rmtoll ISR EOSMP LL_ADC_IsActiveFlag_EOSMP
<> 135:176b8275d35d 6396 * @param ADCx ADC instance
<> 135:176b8275d35d 6397 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 6398 */
<> 135:176b8275d35d 6399 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_EOSMP(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6400 {
<> 135:176b8275d35d 6401 return (READ_BIT(ADCx->ISR, LL_ADC_FLAG_EOSMP) == (LL_ADC_FLAG_EOSMP));
<> 135:176b8275d35d 6402 }
<> 135:176b8275d35d 6403
<> 135:176b8275d35d 6404 /**
<> 135:176b8275d35d 6405 * @brief Get flag ADC group injected end of unitary conversion.
<> 135:176b8275d35d 6406 * @rmtoll ISR JEOC LL_ADC_IsActiveFlag_JEOC
<> 135:176b8275d35d 6407 * @param ADCx ADC instance
<> 135:176b8275d35d 6408 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 6409 */
<> 135:176b8275d35d 6410 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_JEOC(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6411 {
<> 135:176b8275d35d 6412 return (READ_BIT(ADCx->ISR, LL_ADC_FLAG_JEOC) == (LL_ADC_FLAG_JEOC));
<> 135:176b8275d35d 6413 }
<> 135:176b8275d35d 6414
<> 135:176b8275d35d 6415 /**
<> 135:176b8275d35d 6416 * @brief Get flag ADC group injected end of sequence conversions.
<> 135:176b8275d35d 6417 * @rmtoll ISR JEOS LL_ADC_IsActiveFlag_JEOS
<> 135:176b8275d35d 6418 * @param ADCx ADC instance
<> 135:176b8275d35d 6419 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 6420 */
<> 135:176b8275d35d 6421 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_JEOS(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6422 {
<> 135:176b8275d35d 6423 return (READ_BIT(ADCx->ISR, LL_ADC_FLAG_JEOS) == (LL_ADC_FLAG_JEOS));
<> 135:176b8275d35d 6424 }
<> 135:176b8275d35d 6425
<> 135:176b8275d35d 6426 /**
<> 135:176b8275d35d 6427 * @brief Get flag ADC group injected contexts queue overflow.
<> 135:176b8275d35d 6428 * @rmtoll ISR JQOVF LL_ADC_IsActiveFlag_JQOVF
<> 135:176b8275d35d 6429 * @param ADCx ADC instance
<> 135:176b8275d35d 6430 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 6431 */
<> 135:176b8275d35d 6432 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_JQOVF(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6433 {
<> 135:176b8275d35d 6434 return (READ_BIT(ADCx->ISR, LL_ADC_FLAG_JQOVF) == (LL_ADC_FLAG_JQOVF));
<> 135:176b8275d35d 6435 }
<> 135:176b8275d35d 6436
<> 135:176b8275d35d 6437 /**
<> 135:176b8275d35d 6438 * @brief Get flag ADC analog watchdog 1 flag
<> 135:176b8275d35d 6439 * @rmtoll ISR AWD1 LL_ADC_IsActiveFlag_AWD1
<> 135:176b8275d35d 6440 * @param ADCx ADC instance
<> 135:176b8275d35d 6441 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 6442 */
<> 135:176b8275d35d 6443 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_AWD1(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6444 {
<> 135:176b8275d35d 6445 return (READ_BIT(ADCx->ISR, LL_ADC_FLAG_AWD1) == (LL_ADC_FLAG_AWD1));
<> 135:176b8275d35d 6446 }
<> 135:176b8275d35d 6447
<> 135:176b8275d35d 6448 /**
<> 135:176b8275d35d 6449 * @brief Get flag ADC analog watchdog 2.
<> 135:176b8275d35d 6450 * @rmtoll ISR AWD2 LL_ADC_IsActiveFlag_AWD2
<> 135:176b8275d35d 6451 * @param ADCx ADC instance
<> 135:176b8275d35d 6452 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 6453 */
<> 135:176b8275d35d 6454 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_AWD2(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6455 {
<> 135:176b8275d35d 6456 return (READ_BIT(ADCx->ISR, LL_ADC_FLAG_AWD2) == (LL_ADC_FLAG_AWD2));
<> 135:176b8275d35d 6457 }
<> 135:176b8275d35d 6458
<> 135:176b8275d35d 6459 /**
<> 135:176b8275d35d 6460 * @brief Get flag ADC analog watchdog 3.
<> 135:176b8275d35d 6461 * @rmtoll ISR AWD3 LL_ADC_IsActiveFlag_AWD3
<> 135:176b8275d35d 6462 * @param ADCx ADC instance
<> 135:176b8275d35d 6463 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 6464 */
<> 135:176b8275d35d 6465 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_AWD3(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6466 {
<> 135:176b8275d35d 6467 return (READ_BIT(ADCx->ISR, LL_ADC_FLAG_AWD3) == (LL_ADC_FLAG_AWD3));
<> 135:176b8275d35d 6468 }
<> 135:176b8275d35d 6469
<> 135:176b8275d35d 6470 /**
<> 135:176b8275d35d 6471 * @brief Clear flag ADC ready.
<> 135:176b8275d35d 6472 * @note On this STM32 serie, flag LL_ADC_FLAG_ADRDY is raised when the ADC
<> 135:176b8275d35d 6473 * is enabled and when conversion clock is active.
<> 135:176b8275d35d 6474 * (not only core clock: this ADC has a dual clock domain)
<> 135:176b8275d35d 6475 * @rmtoll ISR ADRDY LL_ADC_ClearFlag_ADRDY
<> 135:176b8275d35d 6476 * @param ADCx ADC instance
<> 135:176b8275d35d 6477 * @retval None
<> 135:176b8275d35d 6478 */
<> 135:176b8275d35d 6479 __STATIC_INLINE void LL_ADC_ClearFlag_ADRDY(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6480 {
<> 135:176b8275d35d 6481 WRITE_REG(ADCx->ISR, LL_ADC_FLAG_ADRDY);
<> 135:176b8275d35d 6482 }
<> 135:176b8275d35d 6483
<> 135:176b8275d35d 6484 /**
<> 135:176b8275d35d 6485 * @brief Clear flag ADC group regular end of unitary conversion.
<> 135:176b8275d35d 6486 * @rmtoll ISR EOC LL_ADC_ClearFlag_EOC
<> 135:176b8275d35d 6487 * @param ADCx ADC instance
<> 135:176b8275d35d 6488 * @retval None
<> 135:176b8275d35d 6489 */
<> 135:176b8275d35d 6490 __STATIC_INLINE void LL_ADC_ClearFlag_EOC(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6491 {
<> 135:176b8275d35d 6492 WRITE_REG(ADCx->ISR, LL_ADC_FLAG_EOC);
<> 135:176b8275d35d 6493 }
<> 135:176b8275d35d 6494
<> 135:176b8275d35d 6495 /**
<> 135:176b8275d35d 6496 * @brief Clear flag ADC group regular end of sequence conversions.
<> 135:176b8275d35d 6497 * @rmtoll ISR EOS LL_ADC_ClearFlag_EOS
<> 135:176b8275d35d 6498 * @param ADCx ADC instance
<> 135:176b8275d35d 6499 * @retval None
<> 135:176b8275d35d 6500 */
<> 135:176b8275d35d 6501 __STATIC_INLINE void LL_ADC_ClearFlag_EOS(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6502 {
<> 135:176b8275d35d 6503 WRITE_REG(ADCx->ISR, LL_ADC_FLAG_EOS);
<> 135:176b8275d35d 6504 }
<> 135:176b8275d35d 6505
<> 135:176b8275d35d 6506 /**
<> 135:176b8275d35d 6507 * @brief Clear flag ADC group regular overrun.
<> 135:176b8275d35d 6508 * @rmtoll ISR OVR LL_ADC_ClearFlag_OVR
<> 135:176b8275d35d 6509 * @param ADCx ADC instance
<> 135:176b8275d35d 6510 * @retval None
<> 135:176b8275d35d 6511 */
<> 135:176b8275d35d 6512 __STATIC_INLINE void LL_ADC_ClearFlag_OVR(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6513 {
<> 135:176b8275d35d 6514 WRITE_REG(ADCx->ISR, LL_ADC_FLAG_OVR);
<> 135:176b8275d35d 6515 }
<> 135:176b8275d35d 6516
<> 135:176b8275d35d 6517 /**
<> 135:176b8275d35d 6518 * @brief Clear flag ADC group regular end of sampling phase.
<> 135:176b8275d35d 6519 * @rmtoll ISR EOSMP LL_ADC_ClearFlag_EOSMP
<> 135:176b8275d35d 6520 * @param ADCx ADC instance
<> 135:176b8275d35d 6521 * @retval None
<> 135:176b8275d35d 6522 */
<> 135:176b8275d35d 6523 __STATIC_INLINE void LL_ADC_ClearFlag_EOSMP(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6524 {
<> 135:176b8275d35d 6525 WRITE_REG(ADCx->ISR, LL_ADC_FLAG_EOSMP);
<> 135:176b8275d35d 6526 }
<> 135:176b8275d35d 6527
<> 135:176b8275d35d 6528 /**
<> 135:176b8275d35d 6529 * @brief Clear flag ADC group injected end of unitary conversion.
<> 135:176b8275d35d 6530 * @rmtoll ISR JEOC LL_ADC_ClearFlag_JEOC
<> 135:176b8275d35d 6531 * @param ADCx ADC instance
<> 135:176b8275d35d 6532 * @retval None
<> 135:176b8275d35d 6533 */
<> 135:176b8275d35d 6534 __STATIC_INLINE void LL_ADC_ClearFlag_JEOC(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6535 {
<> 135:176b8275d35d 6536 WRITE_REG(ADCx->ISR, LL_ADC_FLAG_JEOC);
<> 135:176b8275d35d 6537 }
<> 135:176b8275d35d 6538
<> 135:176b8275d35d 6539 /**
<> 135:176b8275d35d 6540 * @brief Clear flag ADC group injected end of sequence conversions.
<> 135:176b8275d35d 6541 * @rmtoll ISR JEOS LL_ADC_ClearFlag_JEOS
<> 135:176b8275d35d 6542 * @param ADCx ADC instance
<> 135:176b8275d35d 6543 * @retval None
<> 135:176b8275d35d 6544 */
<> 135:176b8275d35d 6545 __STATIC_INLINE void LL_ADC_ClearFlag_JEOS(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6546 {
<> 135:176b8275d35d 6547 WRITE_REG(ADCx->ISR, LL_ADC_FLAG_JEOS);
<> 135:176b8275d35d 6548 }
<> 135:176b8275d35d 6549
<> 135:176b8275d35d 6550 /**
<> 135:176b8275d35d 6551 * @brief Clear flag ADC group injected contexts queue overflow.
<> 135:176b8275d35d 6552 * @rmtoll ISR JQOVF LL_ADC_ClearFlag_JQOVF
<> 135:176b8275d35d 6553 * @param ADCx ADC instance
<> 135:176b8275d35d 6554 * @retval None
<> 135:176b8275d35d 6555 */
<> 135:176b8275d35d 6556 __STATIC_INLINE void LL_ADC_ClearFlag_JQOVF(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6557 {
<> 135:176b8275d35d 6558 WRITE_REG(ADCx->ISR, LL_ADC_FLAG_JQOVF);
<> 135:176b8275d35d 6559 }
<> 135:176b8275d35d 6560
<> 135:176b8275d35d 6561 /**
<> 135:176b8275d35d 6562 * @brief Clear flag ADC analog watchdog 1.
<> 135:176b8275d35d 6563 * @rmtoll ISR AWD1 LL_ADC_ClearFlag_AWD1
<> 135:176b8275d35d 6564 * @param ADCx ADC instance
<> 135:176b8275d35d 6565 * @retval None
<> 135:176b8275d35d 6566 */
<> 135:176b8275d35d 6567 __STATIC_INLINE void LL_ADC_ClearFlag_AWD1(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6568 {
<> 135:176b8275d35d 6569 WRITE_REG(ADCx->ISR, LL_ADC_FLAG_AWD1);
<> 135:176b8275d35d 6570 }
<> 135:176b8275d35d 6571
<> 135:176b8275d35d 6572 /**
<> 135:176b8275d35d 6573 * @brief Clear flag ADC analog watchdog 2.
<> 135:176b8275d35d 6574 * @rmtoll ISR AWD2 LL_ADC_ClearFlag_AWD2
<> 135:176b8275d35d 6575 * @param ADCx ADC instance
<> 135:176b8275d35d 6576 * @retval None
<> 135:176b8275d35d 6577 */
<> 135:176b8275d35d 6578 __STATIC_INLINE void LL_ADC_ClearFlag_AWD2(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6579 {
<> 135:176b8275d35d 6580 WRITE_REG(ADCx->ISR, LL_ADC_FLAG_AWD2);
<> 135:176b8275d35d 6581 }
<> 135:176b8275d35d 6582
<> 135:176b8275d35d 6583 /**
<> 135:176b8275d35d 6584 * @brief Clear flag ADC analog watchdog 3.
<> 135:176b8275d35d 6585 * @rmtoll ISR AWD3 LL_ADC_ClearFlag_AWD3
<> 135:176b8275d35d 6586 * @param ADCx ADC instance
<> 135:176b8275d35d 6587 * @retval None
<> 135:176b8275d35d 6588 */
<> 135:176b8275d35d 6589 __STATIC_INLINE void LL_ADC_ClearFlag_AWD3(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6590 {
<> 135:176b8275d35d 6591 WRITE_REG(ADCx->ISR, LL_ADC_FLAG_AWD3);
<> 135:176b8275d35d 6592 }
<> 135:176b8275d35d 6593
<> 135:176b8275d35d 6594 #if defined(ADC_MULTIMODE_SUPPORT)
<> 135:176b8275d35d 6595 /**
<> 135:176b8275d35d 6596 * @brief Get flag multimode ADC ready of the ADC master.
<> 135:176b8275d35d 6597 * @rmtoll CSR ADRDY_MST LL_ADC_IsActiveFlag_MST_ADRDY
<> 135:176b8275d35d 6598 * @param ADCxy_COMMON ADC common instance
<> 135:176b8275d35d 6599 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
<> 135:176b8275d35d 6600 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 6601 */
<> 135:176b8275d35d 6602 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_ADRDY(ADC_Common_TypeDef *ADCxy_COMMON)
<> 135:176b8275d35d 6603 {
<> 135:176b8275d35d 6604 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_ADRDY_MST) == (LL_ADC_FLAG_ADRDY_MST));
<> 135:176b8275d35d 6605 }
<> 135:176b8275d35d 6606
<> 135:176b8275d35d 6607 /**
<> 135:176b8275d35d 6608 * @brief Get flag multimode ADC ready of the ADC slave.
<> 135:176b8275d35d 6609 * @rmtoll CSR ADRDY_SLV LL_ADC_IsActiveFlag_SLV_ADRDY
<> 135:176b8275d35d 6610 * @param ADCxy_COMMON ADC common instance
<> 135:176b8275d35d 6611 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
<> 135:176b8275d35d 6612 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 6613 */
<> 135:176b8275d35d 6614 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV_ADRDY(ADC_Common_TypeDef *ADCxy_COMMON)
<> 135:176b8275d35d 6615 {
<> 135:176b8275d35d 6616 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_ADRDY_SLV) == (LL_ADC_FLAG_ADRDY_SLV));
<> 135:176b8275d35d 6617 }
<> 135:176b8275d35d 6618
<> 135:176b8275d35d 6619 /**
<> 135:176b8275d35d 6620 * @brief Get flag multimode ADC group regular end of unitary conversion of the ADC master.
<> 135:176b8275d35d 6621 * @rmtoll CSR EOC_MST LL_ADC_IsActiveFlag_MST_EOC
<> 135:176b8275d35d 6622 * @param ADCxy_COMMON ADC common instance
<> 135:176b8275d35d 6623 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
<> 135:176b8275d35d 6624 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 6625 */
<> 135:176b8275d35d 6626 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_EOC(ADC_Common_TypeDef *ADCxy_COMMON)
<> 135:176b8275d35d 6627 {
<> 135:176b8275d35d 6628 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_EOC_SLV) == (LL_ADC_FLAG_EOC_SLV));
<> 135:176b8275d35d 6629 }
<> 135:176b8275d35d 6630
<> 135:176b8275d35d 6631 /**
<> 135:176b8275d35d 6632 * @brief Get flag multimode ADC group regular end of unitary conversion of the ADC slave.
<> 135:176b8275d35d 6633 * @rmtoll CSR EOC_SLV LL_ADC_IsActiveFlag_SLV_EOC
<> 135:176b8275d35d 6634 * @param ADCxy_COMMON ADC common instance
<> 135:176b8275d35d 6635 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
<> 135:176b8275d35d 6636 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 6637 */
<> 135:176b8275d35d 6638 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV_EOC(ADC_Common_TypeDef *ADCxy_COMMON)
<> 135:176b8275d35d 6639 {
<> 135:176b8275d35d 6640 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_EOC_SLV) == (LL_ADC_FLAG_EOC_SLV));
<> 135:176b8275d35d 6641 }
<> 135:176b8275d35d 6642
<> 135:176b8275d35d 6643 /**
<> 135:176b8275d35d 6644 * @brief Get flag multimode ADC group regular end of sequence conversions of the ADC master.
<> 135:176b8275d35d 6645 * @rmtoll CSR EOS_MST LL_ADC_IsActiveFlag_MST_EOS
<> 135:176b8275d35d 6646 * @param ADCxy_COMMON ADC common instance
<> 135:176b8275d35d 6647 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
<> 135:176b8275d35d 6648 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 6649 */
<> 135:176b8275d35d 6650 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_EOS(ADC_Common_TypeDef *ADCxy_COMMON)
<> 135:176b8275d35d 6651 {
<> 135:176b8275d35d 6652 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_EOS_MST) == (LL_ADC_FLAG_EOS_MST));
<> 135:176b8275d35d 6653 }
<> 135:176b8275d35d 6654
<> 135:176b8275d35d 6655 /**
<> 135:176b8275d35d 6656 * @brief Get flag multimode ADC group regular end of sequence conversions of the ADC slave.
<> 135:176b8275d35d 6657 * @rmtoll CSR EOS_SLV LL_ADC_IsActiveFlag_SLV_EOS
<> 135:176b8275d35d 6658 * @param ADCxy_COMMON ADC common instance
<> 135:176b8275d35d 6659 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
<> 135:176b8275d35d 6660 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 6661 */
<> 135:176b8275d35d 6662 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV_EOS(ADC_Common_TypeDef *ADCxy_COMMON)
<> 135:176b8275d35d 6663 {
<> 135:176b8275d35d 6664 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_EOS_SLV) == (LL_ADC_FLAG_EOS_SLV));
<> 135:176b8275d35d 6665 }
<> 135:176b8275d35d 6666
<> 135:176b8275d35d 6667 /**
<> 135:176b8275d35d 6668 * @brief Get flag multimode ADC group regular overrun of the ADC master.
<> 135:176b8275d35d 6669 * @rmtoll CSR OVR_MST LL_ADC_IsActiveFlag_MST_OVR
<> 135:176b8275d35d 6670 * @param ADCxy_COMMON ADC common instance
<> 135:176b8275d35d 6671 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
<> 135:176b8275d35d 6672 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 6673 */
<> 135:176b8275d35d 6674 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_OVR(ADC_Common_TypeDef *ADCxy_COMMON)
<> 135:176b8275d35d 6675 {
<> 135:176b8275d35d 6676 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_OVR_MST) == (LL_ADC_FLAG_OVR_MST));
<> 135:176b8275d35d 6677 }
<> 135:176b8275d35d 6678
<> 135:176b8275d35d 6679 /**
<> 135:176b8275d35d 6680 * @brief Get flag multimode ADC group regular overrun of the ADC slave.
<> 135:176b8275d35d 6681 * @rmtoll CSR OVR_SLV LL_ADC_IsActiveFlag_SLV_OVR
<> 135:176b8275d35d 6682 * @param ADCxy_COMMON ADC common instance
<> 135:176b8275d35d 6683 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
<> 135:176b8275d35d 6684 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 6685 */
<> 135:176b8275d35d 6686 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV_OVR(ADC_Common_TypeDef *ADCxy_COMMON)
<> 135:176b8275d35d 6687 {
<> 135:176b8275d35d 6688 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_OVR_SLV) == (LL_ADC_FLAG_OVR_SLV));
<> 135:176b8275d35d 6689 }
<> 135:176b8275d35d 6690
<> 135:176b8275d35d 6691 /**
<> 135:176b8275d35d 6692 * @brief Get flag multimode ADC group regular end of sampling of the ADC master.
<> 135:176b8275d35d 6693 * @rmtoll CSR EOSMP_MST LL_ADC_IsActiveFlag_MST_EOSMP
<> 135:176b8275d35d 6694 * @param ADCxy_COMMON ADC common instance
<> 135:176b8275d35d 6695 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
<> 135:176b8275d35d 6696 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 6697 */
<> 135:176b8275d35d 6698 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_EOSMP(ADC_Common_TypeDef *ADCxy_COMMON)
<> 135:176b8275d35d 6699 {
<> 135:176b8275d35d 6700 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_EOSMP_MST) == (LL_ADC_FLAG_EOSMP_MST));
<> 135:176b8275d35d 6701 }
<> 135:176b8275d35d 6702
<> 135:176b8275d35d 6703 /**
<> 135:176b8275d35d 6704 * @brief Get flag multimode ADC group regular end of sampling of the ADC slave.
<> 135:176b8275d35d 6705 * @rmtoll CSR EOSMP_SLV LL_ADC_IsActiveFlag_SLV_EOSMP
<> 135:176b8275d35d 6706 * @param ADCxy_COMMON ADC common instance
<> 135:176b8275d35d 6707 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
<> 135:176b8275d35d 6708 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 6709 */
<> 135:176b8275d35d 6710 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV_EOSMP(ADC_Common_TypeDef *ADCxy_COMMON)
<> 135:176b8275d35d 6711 {
<> 135:176b8275d35d 6712 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_EOSMP_SLV) == (LL_ADC_FLAG_EOSMP_SLV));
<> 135:176b8275d35d 6713 }
<> 135:176b8275d35d 6714
<> 135:176b8275d35d 6715 /**
<> 135:176b8275d35d 6716 * @brief Get flag multimode ADC group injected end of unitary conversion of the ADC master.
<> 135:176b8275d35d 6717 * @rmtoll CSR JEOC_MST LL_ADC_IsActiveFlag_MST_JEOC
<> 135:176b8275d35d 6718 * @param ADCxy_COMMON ADC common instance
<> 135:176b8275d35d 6719 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
<> 135:176b8275d35d 6720 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 6721 */
<> 135:176b8275d35d 6722 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_JEOC(ADC_Common_TypeDef *ADCxy_COMMON)
<> 135:176b8275d35d 6723 {
<> 135:176b8275d35d 6724 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_JEOC_MST) == (LL_ADC_FLAG_JEOC_MST));
<> 135:176b8275d35d 6725 }
<> 135:176b8275d35d 6726
<> 135:176b8275d35d 6727 /**
<> 135:176b8275d35d 6728 * @brief Get flag multimode ADC group injected end of unitary conversion of the ADC slave.
<> 135:176b8275d35d 6729 * @rmtoll CSR JEOC_SLV LL_ADC_IsActiveFlag_SLV_JEOC
<> 135:176b8275d35d 6730 * @param ADCxy_COMMON ADC common instance
<> 135:176b8275d35d 6731 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
<> 135:176b8275d35d 6732 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 6733 */
<> 135:176b8275d35d 6734 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV_JEOC(ADC_Common_TypeDef *ADCxy_COMMON)
<> 135:176b8275d35d 6735 {
<> 135:176b8275d35d 6736 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_JEOC_SLV) == (LL_ADC_FLAG_JEOC_SLV));
<> 135:176b8275d35d 6737 }
<> 135:176b8275d35d 6738
<> 135:176b8275d35d 6739 /**
<> 135:176b8275d35d 6740 * @brief Get flag multimode ADC group injected end of sequence conversions of the ADC master.
<> 135:176b8275d35d 6741 * @rmtoll CSR JEOS_MST LL_ADC_IsActiveFlag_MST_JEOS
<> 135:176b8275d35d 6742 * @param ADCxy_COMMON ADC common instance
<> 135:176b8275d35d 6743 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
<> 135:176b8275d35d 6744 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 6745 */
<> 135:176b8275d35d 6746 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_JEOS(ADC_Common_TypeDef *ADCxy_COMMON)
<> 135:176b8275d35d 6747 {
<> 135:176b8275d35d 6748 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_JEOS_MST) == (LL_ADC_FLAG_JEOS_MST));
<> 135:176b8275d35d 6749 }
<> 135:176b8275d35d 6750
<> 135:176b8275d35d 6751 /**
<> 135:176b8275d35d 6752 * @brief Get flag multimode ADC group injected end of sequence conversions of the ADC slave.
<> 135:176b8275d35d 6753 * @rmtoll CSR JEOS_SLV LL_ADC_IsActiveFlag_SLV_JEOS
<> 135:176b8275d35d 6754 * @param ADCxy_COMMON ADC common instance
<> 135:176b8275d35d 6755 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
<> 135:176b8275d35d 6756 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 6757 */
<> 135:176b8275d35d 6758 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV_JEOS(ADC_Common_TypeDef *ADCxy_COMMON)
<> 135:176b8275d35d 6759 {
<> 135:176b8275d35d 6760 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_JEOS_SLV) == (LL_ADC_FLAG_JEOS_SLV));
<> 135:176b8275d35d 6761 }
<> 135:176b8275d35d 6762
<> 135:176b8275d35d 6763 /**
<> 135:176b8275d35d 6764 * @brief Get flag multimode ADC group injected context queue overflow of the ADC master.
<> 135:176b8275d35d 6765 * @rmtoll CSR JQOVF_MST LL_ADC_IsActiveFlag_MST_JQOVF
<> 135:176b8275d35d 6766 * @param ADCxy_COMMON ADC common instance
<> 135:176b8275d35d 6767 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
<> 135:176b8275d35d 6768 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 6769 */
<> 135:176b8275d35d 6770 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_JQOVF(ADC_Common_TypeDef *ADCxy_COMMON)
<> 135:176b8275d35d 6771 {
<> 135:176b8275d35d 6772 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_JQOVF_MST) == (LL_ADC_FLAG_JQOVF_MST));
<> 135:176b8275d35d 6773 }
<> 135:176b8275d35d 6774
<> 135:176b8275d35d 6775 /**
<> 135:176b8275d35d 6776 * @brief Get flag multimode ADC group injected context queue overflow of the ADC slave.
<> 135:176b8275d35d 6777 * @rmtoll CSR JQOVF_SLV LL_ADC_IsActiveFlag_SLV_JQOVF
<> 135:176b8275d35d 6778 * @param ADCxy_COMMON ADC common instance
<> 135:176b8275d35d 6779 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
<> 135:176b8275d35d 6780 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 6781 */
<> 135:176b8275d35d 6782 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV_JQOVF(ADC_Common_TypeDef *ADCxy_COMMON)
<> 135:176b8275d35d 6783 {
<> 135:176b8275d35d 6784 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_JQOVF_SLV) == (LL_ADC_FLAG_JQOVF_SLV));
<> 135:176b8275d35d 6785 }
<> 135:176b8275d35d 6786
<> 135:176b8275d35d 6787 /**
<> 135:176b8275d35d 6788 * @brief Get flag multimode ADC analog watchdog 1 of the ADC master.
<> 135:176b8275d35d 6789 * @rmtoll CSR AWD1_MST LL_ADC_IsActiveFlag_MST_AWD1
<> 135:176b8275d35d 6790 * @param ADCxy_COMMON ADC common instance
<> 135:176b8275d35d 6791 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
<> 135:176b8275d35d 6792 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 6793 */
<> 135:176b8275d35d 6794 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_AWD1(ADC_Common_TypeDef *ADCxy_COMMON)
<> 135:176b8275d35d 6795 {
<> 135:176b8275d35d 6796 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_AWD1_MST) == (LL_ADC_FLAG_AWD1_MST));
<> 135:176b8275d35d 6797 }
<> 135:176b8275d35d 6798
<> 135:176b8275d35d 6799 /**
<> 135:176b8275d35d 6800 * @brief Get flag multimode analog watchdog 1 of the ADC slave.
<> 135:176b8275d35d 6801 * @rmtoll CSR AWD1_SLV LL_ADC_IsActiveFlag_SLV_AWD1
<> 135:176b8275d35d 6802 * @param ADCxy_COMMON ADC common instance
<> 135:176b8275d35d 6803 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
<> 135:176b8275d35d 6804 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 6805 */
<> 135:176b8275d35d 6806 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV_AWD1(ADC_Common_TypeDef *ADCxy_COMMON)
<> 135:176b8275d35d 6807 {
<> 135:176b8275d35d 6808 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_AWD1_SLV) == (LL_ADC_FLAG_AWD1_SLV));
<> 135:176b8275d35d 6809 }
<> 135:176b8275d35d 6810
<> 135:176b8275d35d 6811 /**
<> 135:176b8275d35d 6812 * @brief Get flag multimode ADC analog watchdog 2 of the ADC master.
<> 135:176b8275d35d 6813 * @rmtoll CSR AWD2_MST LL_ADC_IsActiveFlag_MST_AWD2
<> 135:176b8275d35d 6814 * @param ADCxy_COMMON ADC common instance
<> 135:176b8275d35d 6815 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
<> 135:176b8275d35d 6816 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 6817 */
<> 135:176b8275d35d 6818 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_AWD2(ADC_Common_TypeDef *ADCxy_COMMON)
<> 135:176b8275d35d 6819 {
<> 135:176b8275d35d 6820 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_AWD2_MST) == (LL_ADC_FLAG_AWD2_MST));
<> 135:176b8275d35d 6821 }
<> 135:176b8275d35d 6822
<> 135:176b8275d35d 6823 /**
<> 135:176b8275d35d 6824 * @brief Get flag multimode ADC analog watchdog 2 of the ADC slave.
<> 135:176b8275d35d 6825 * @rmtoll CSR AWD2_SLV LL_ADC_IsActiveFlag_SLV_AWD2
<> 135:176b8275d35d 6826 * @param ADCxy_COMMON ADC common instance
<> 135:176b8275d35d 6827 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
<> 135:176b8275d35d 6828 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 6829 */
<> 135:176b8275d35d 6830 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV_AWD2(ADC_Common_TypeDef *ADCxy_COMMON)
<> 135:176b8275d35d 6831 {
<> 135:176b8275d35d 6832 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_AWD2_SLV) == (LL_ADC_FLAG_AWD2_SLV));
<> 135:176b8275d35d 6833 }
<> 135:176b8275d35d 6834
<> 135:176b8275d35d 6835 /**
<> 135:176b8275d35d 6836 * @brief Get flag multimode ADC analog watchdog 3 of the ADC master.
<> 135:176b8275d35d 6837 * @rmtoll CSR AWD3_MST LL_ADC_IsActiveFlag_MST_AWD3
<> 135:176b8275d35d 6838 * @param ADCxy_COMMON ADC common instance
<> 135:176b8275d35d 6839 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
<> 135:176b8275d35d 6840 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 6841 */
<> 135:176b8275d35d 6842 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_AWD3(ADC_Common_TypeDef *ADCxy_COMMON)
<> 135:176b8275d35d 6843 {
<> 135:176b8275d35d 6844 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_AWD3_MST) == (LL_ADC_FLAG_AWD3_MST));
<> 135:176b8275d35d 6845 }
<> 135:176b8275d35d 6846
<> 135:176b8275d35d 6847 /**
<> 135:176b8275d35d 6848 * @brief Get flag multimode ADC analog watchdog 3 of the ADC slave.
<> 135:176b8275d35d 6849 * @rmtoll CSR AWD3_SLV LL_ADC_IsActiveFlag_SLV_AWD3
<> 135:176b8275d35d 6850 * @param ADCxy_COMMON ADC common instance
<> 135:176b8275d35d 6851 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
<> 135:176b8275d35d 6852 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 6853 */
<> 135:176b8275d35d 6854 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV_AWD3(ADC_Common_TypeDef *ADCxy_COMMON)
<> 135:176b8275d35d 6855 {
<> 135:176b8275d35d 6856 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_AWD3_SLV) == (LL_ADC_FLAG_AWD3_SLV));
<> 135:176b8275d35d 6857 }
<> 135:176b8275d35d 6858 #endif /* ADC_MULTIMODE_SUPPORT */
<> 135:176b8275d35d 6859
<> 135:176b8275d35d 6860 /**
<> 135:176b8275d35d 6861 * @}
<> 135:176b8275d35d 6862 */
<> 135:176b8275d35d 6863
<> 135:176b8275d35d 6864 /** @defgroup ADC_LL_EF_IT_Management ADC IT management
<> 135:176b8275d35d 6865 * @{
<> 135:176b8275d35d 6866 */
<> 135:176b8275d35d 6867
<> 135:176b8275d35d 6868 /**
<> 135:176b8275d35d 6869 * @brief Enable ADC ready.
<> 135:176b8275d35d 6870 * @rmtoll IER ADRDYIE LL_ADC_EnableIT_ADRDY
<> 135:176b8275d35d 6871 * @param ADCx ADC instance
<> 135:176b8275d35d 6872 * @retval None
<> 135:176b8275d35d 6873 */
<> 135:176b8275d35d 6874 __STATIC_INLINE void LL_ADC_EnableIT_ADRDY(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6875 {
<> 135:176b8275d35d 6876 SET_BIT(ADCx->IER, LL_ADC_IT_ADRDY);
<> 135:176b8275d35d 6877 }
<> 135:176b8275d35d 6878
<> 135:176b8275d35d 6879 /**
<> 135:176b8275d35d 6880 * @brief Enable interruption ADC group regular end of unitary conversion.
<> 135:176b8275d35d 6881 * @rmtoll IER EOCIE LL_ADC_EnableIT_EOC
<> 135:176b8275d35d 6882 * @param ADCx ADC instance
<> 135:176b8275d35d 6883 * @retval None
<> 135:176b8275d35d 6884 */
<> 135:176b8275d35d 6885 __STATIC_INLINE void LL_ADC_EnableIT_EOC(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6886 {
<> 135:176b8275d35d 6887 SET_BIT(ADCx->IER, LL_ADC_IT_EOC);
<> 135:176b8275d35d 6888 }
<> 135:176b8275d35d 6889
<> 135:176b8275d35d 6890 /**
<> 135:176b8275d35d 6891 * @brief Enable interruption ADC group regular end of sequence conversions.
<> 135:176b8275d35d 6892 * @rmtoll IER EOSIE LL_ADC_EnableIT_EOS
<> 135:176b8275d35d 6893 * @param ADCx ADC instance
<> 135:176b8275d35d 6894 * @retval None
<> 135:176b8275d35d 6895 */
<> 135:176b8275d35d 6896 __STATIC_INLINE void LL_ADC_EnableIT_EOS(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6897 {
<> 135:176b8275d35d 6898 SET_BIT(ADCx->IER, LL_ADC_IT_EOS);
<> 135:176b8275d35d 6899 }
<> 135:176b8275d35d 6900
<> 135:176b8275d35d 6901 /**
<> 135:176b8275d35d 6902 * @brief Enable ADC group regular interruption overrun.
<> 135:176b8275d35d 6903 * @rmtoll IER OVRIE LL_ADC_EnableIT_OVR
<> 135:176b8275d35d 6904 * @param ADCx ADC instance
<> 135:176b8275d35d 6905 * @retval None
<> 135:176b8275d35d 6906 */
<> 135:176b8275d35d 6907 __STATIC_INLINE void LL_ADC_EnableIT_OVR(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6908 {
<> 135:176b8275d35d 6909 SET_BIT(ADCx->IER, LL_ADC_IT_OVR);
<> 135:176b8275d35d 6910 }
<> 135:176b8275d35d 6911
<> 135:176b8275d35d 6912 /**
<> 135:176b8275d35d 6913 * @brief Enable interruption ADC group regular end of sampling.
<> 135:176b8275d35d 6914 * @rmtoll IER EOSMPIE LL_ADC_EnableIT_EOSMP
<> 135:176b8275d35d 6915 * @param ADCx ADC instance
<> 135:176b8275d35d 6916 * @retval None
<> 135:176b8275d35d 6917 */
<> 135:176b8275d35d 6918 __STATIC_INLINE void LL_ADC_EnableIT_EOSMP(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6919 {
<> 135:176b8275d35d 6920 SET_BIT(ADCx->IER, LL_ADC_IT_EOSMP);
<> 135:176b8275d35d 6921 }
<> 135:176b8275d35d 6922
<> 135:176b8275d35d 6923 /**
<> 135:176b8275d35d 6924 * @brief Enable interruption ADC group injected end of unitary conversion.
<> 135:176b8275d35d 6925 * @rmtoll IER JEOCIE LL_ADC_EnableIT_JEOC
<> 135:176b8275d35d 6926 * @param ADCx ADC instance
<> 135:176b8275d35d 6927 * @retval None
<> 135:176b8275d35d 6928 */
<> 135:176b8275d35d 6929 __STATIC_INLINE void LL_ADC_EnableIT_JEOC(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6930 {
<> 135:176b8275d35d 6931 SET_BIT(ADCx->IER, LL_ADC_IT_JEOC);
<> 135:176b8275d35d 6932 }
<> 135:176b8275d35d 6933
<> 135:176b8275d35d 6934 /**
<> 135:176b8275d35d 6935 * @brief Enable interruption ADC group injected end of sequence conversions.
<> 135:176b8275d35d 6936 * @rmtoll IER JEOSIE LL_ADC_EnableIT_JEOS
<> 135:176b8275d35d 6937 * @param ADCx ADC instance
<> 135:176b8275d35d 6938 * @retval None
<> 135:176b8275d35d 6939 */
<> 135:176b8275d35d 6940 __STATIC_INLINE void LL_ADC_EnableIT_JEOS(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6941 {
<> 135:176b8275d35d 6942 SET_BIT(ADCx->IER, LL_ADC_IT_JEOS);
<> 135:176b8275d35d 6943 }
<> 135:176b8275d35d 6944
<> 135:176b8275d35d 6945 /**
<> 135:176b8275d35d 6946 * @brief Enable interruption ADC group injected context queue overflow.
<> 135:176b8275d35d 6947 * @rmtoll IER JQOVFIE LL_ADC_EnableIT_JQOVF
<> 135:176b8275d35d 6948 * @param ADCx ADC instance
<> 135:176b8275d35d 6949 * @retval None
<> 135:176b8275d35d 6950 */
<> 135:176b8275d35d 6951 __STATIC_INLINE void LL_ADC_EnableIT_JQOVF(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6952 {
<> 135:176b8275d35d 6953 SET_BIT(ADCx->IER, LL_ADC_IT_JQOVF);
<> 135:176b8275d35d 6954 }
<> 135:176b8275d35d 6955
<> 135:176b8275d35d 6956 /**
<> 135:176b8275d35d 6957 * @brief Enable interruption ADC analog watchdog 1.
<> 135:176b8275d35d 6958 * @rmtoll IER AWD1IE LL_ADC_EnableIT_AWD1
<> 135:176b8275d35d 6959 * @param ADCx ADC instance
<> 135:176b8275d35d 6960 * @retval None
<> 135:176b8275d35d 6961 */
<> 135:176b8275d35d 6962 __STATIC_INLINE void LL_ADC_EnableIT_AWD1(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6963 {
<> 135:176b8275d35d 6964 SET_BIT(ADCx->IER, LL_ADC_IT_AWD1);
<> 135:176b8275d35d 6965 }
<> 135:176b8275d35d 6966
<> 135:176b8275d35d 6967 /**
<> 135:176b8275d35d 6968 * @brief Enable interruption ADC analog watchdog 2.
<> 135:176b8275d35d 6969 * @rmtoll IER AWD2IE LL_ADC_EnableIT_AWD2
<> 135:176b8275d35d 6970 * @param ADCx ADC instance
<> 135:176b8275d35d 6971 * @retval None
<> 135:176b8275d35d 6972 */
<> 135:176b8275d35d 6973 __STATIC_INLINE void LL_ADC_EnableIT_AWD2(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6974 {
<> 135:176b8275d35d 6975 SET_BIT(ADCx->IER, LL_ADC_IT_AWD2);
<> 135:176b8275d35d 6976 }
<> 135:176b8275d35d 6977
<> 135:176b8275d35d 6978 /**
<> 135:176b8275d35d 6979 * @brief Enable interruption ADC analog watchdog 3.
<> 135:176b8275d35d 6980 * @rmtoll IER AWD3IE LL_ADC_EnableIT_AWD3
<> 135:176b8275d35d 6981 * @param ADCx ADC instance
<> 135:176b8275d35d 6982 * @retval None
<> 135:176b8275d35d 6983 */
<> 135:176b8275d35d 6984 __STATIC_INLINE void LL_ADC_EnableIT_AWD3(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6985 {
<> 135:176b8275d35d 6986 SET_BIT(ADCx->IER, LL_ADC_IT_AWD3);
<> 135:176b8275d35d 6987 }
<> 135:176b8275d35d 6988
<> 135:176b8275d35d 6989 /**
<> 135:176b8275d35d 6990 * @brief Disable interruption ADC ready.
<> 135:176b8275d35d 6991 * @rmtoll IER ADRDYIE LL_ADC_DisableIT_ADRDY
<> 135:176b8275d35d 6992 * @param ADCx ADC instance
<> 135:176b8275d35d 6993 * @retval None
<> 135:176b8275d35d 6994 */
<> 135:176b8275d35d 6995 __STATIC_INLINE void LL_ADC_DisableIT_ADRDY(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 6996 {
<> 135:176b8275d35d 6997 CLEAR_BIT(ADCx->IER, LL_ADC_IT_ADRDY);
<> 135:176b8275d35d 6998 }
<> 135:176b8275d35d 6999
<> 135:176b8275d35d 7000 /**
<> 135:176b8275d35d 7001 * @brief Disable interruption ADC group regular end of unitary conversion.
<> 135:176b8275d35d 7002 * @rmtoll IER EOCIE LL_ADC_DisableIT_EOC
<> 135:176b8275d35d 7003 * @param ADCx ADC instance
<> 135:176b8275d35d 7004 * @retval None
<> 135:176b8275d35d 7005 */
<> 135:176b8275d35d 7006 __STATIC_INLINE void LL_ADC_DisableIT_EOC(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 7007 {
<> 135:176b8275d35d 7008 CLEAR_BIT(ADCx->IER, LL_ADC_IT_EOC);
<> 135:176b8275d35d 7009 }
<> 135:176b8275d35d 7010
<> 135:176b8275d35d 7011 /**
<> 135:176b8275d35d 7012 * @brief Disable interruption ADC group regular end of sequence conversions.
<> 135:176b8275d35d 7013 * @rmtoll IER EOSIE LL_ADC_DisableIT_EOS
<> 135:176b8275d35d 7014 * @param ADCx ADC instance
<> 135:176b8275d35d 7015 * @retval None
<> 135:176b8275d35d 7016 */
<> 135:176b8275d35d 7017 __STATIC_INLINE void LL_ADC_DisableIT_EOS(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 7018 {
<> 135:176b8275d35d 7019 CLEAR_BIT(ADCx->IER, LL_ADC_IT_EOS);
<> 135:176b8275d35d 7020 }
<> 135:176b8275d35d 7021
<> 135:176b8275d35d 7022 /**
<> 135:176b8275d35d 7023 * @brief Disable interruption ADC group regular overrun.
<> 135:176b8275d35d 7024 * @rmtoll IER OVRIE LL_ADC_DisableIT_OVR
<> 135:176b8275d35d 7025 * @param ADCx ADC instance
<> 135:176b8275d35d 7026 * @retval None
<> 135:176b8275d35d 7027 */
<> 135:176b8275d35d 7028 __STATIC_INLINE void LL_ADC_DisableIT_OVR(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 7029 {
<> 135:176b8275d35d 7030 CLEAR_BIT(ADCx->IER, LL_ADC_IT_OVR);
<> 135:176b8275d35d 7031 }
<> 135:176b8275d35d 7032
<> 135:176b8275d35d 7033 /**
<> 135:176b8275d35d 7034 * @brief Disable interruption ADC group regular end of sampling.
<> 135:176b8275d35d 7035 * @rmtoll IER EOSMPIE LL_ADC_DisableIT_EOSMP
<> 135:176b8275d35d 7036 * @param ADCx ADC instance
<> 135:176b8275d35d 7037 * @retval None
<> 135:176b8275d35d 7038 */
<> 135:176b8275d35d 7039 __STATIC_INLINE void LL_ADC_DisableIT_EOSMP(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 7040 {
<> 135:176b8275d35d 7041 CLEAR_BIT(ADCx->IER, LL_ADC_IT_EOSMP);
<> 135:176b8275d35d 7042 }
<> 135:176b8275d35d 7043
<> 135:176b8275d35d 7044 /**
<> 135:176b8275d35d 7045 * @brief Disable interruption ADC group regular end of unitary conversion.
<> 135:176b8275d35d 7046 * @rmtoll IER JEOCIE LL_ADC_DisableIT_JEOC
<> 135:176b8275d35d 7047 * @param ADCx ADC instance
<> 135:176b8275d35d 7048 * @retval None
<> 135:176b8275d35d 7049 */
<> 135:176b8275d35d 7050 __STATIC_INLINE void LL_ADC_DisableIT_JEOC(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 7051 {
<> 135:176b8275d35d 7052 CLEAR_BIT(ADCx->IER, LL_ADC_IT_JEOC);
<> 135:176b8275d35d 7053 }
<> 135:176b8275d35d 7054
<> 135:176b8275d35d 7055 /**
<> 135:176b8275d35d 7056 * @brief Disable interruption ADC group injected end of sequence conversions.
<> 135:176b8275d35d 7057 * @rmtoll IER JEOSIE LL_ADC_DisableIT_JEOS
<> 135:176b8275d35d 7058 * @param ADCx ADC instance
<> 135:176b8275d35d 7059 * @retval None
<> 135:176b8275d35d 7060 */
<> 135:176b8275d35d 7061 __STATIC_INLINE void LL_ADC_DisableIT_JEOS(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 7062 {
<> 135:176b8275d35d 7063 CLEAR_BIT(ADCx->IER, LL_ADC_IT_JEOS);
<> 135:176b8275d35d 7064 }
<> 135:176b8275d35d 7065
<> 135:176b8275d35d 7066 /**
<> 135:176b8275d35d 7067 * @brief Disable interruption ADC group injected context queue overflow.
<> 135:176b8275d35d 7068 * @rmtoll IER JQOVFIE LL_ADC_DisableIT_JQOVF
<> 135:176b8275d35d 7069 * @param ADCx ADC instance
<> 135:176b8275d35d 7070 * @retval None
<> 135:176b8275d35d 7071 */
<> 135:176b8275d35d 7072 __STATIC_INLINE void LL_ADC_DisableIT_JQOVF(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 7073 {
<> 135:176b8275d35d 7074 CLEAR_BIT(ADCx->IER, LL_ADC_IT_JQOVF);
<> 135:176b8275d35d 7075 }
<> 135:176b8275d35d 7076
<> 135:176b8275d35d 7077 /**
<> 135:176b8275d35d 7078 * @brief Disable interruption ADC analog watchdog 1.
<> 135:176b8275d35d 7079 * @rmtoll IER AWD1IE LL_ADC_DisableIT_AWD1
<> 135:176b8275d35d 7080 * @param ADCx ADC instance
<> 135:176b8275d35d 7081 * @retval None
<> 135:176b8275d35d 7082 */
<> 135:176b8275d35d 7083 __STATIC_INLINE void LL_ADC_DisableIT_AWD1(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 7084 {
<> 135:176b8275d35d 7085 CLEAR_BIT(ADCx->IER, LL_ADC_IT_AWD1);
<> 135:176b8275d35d 7086 }
<> 135:176b8275d35d 7087
<> 135:176b8275d35d 7088 /**
<> 135:176b8275d35d 7089 * @brief Disable interruption ADC analog watchdog 2.
<> 135:176b8275d35d 7090 * @rmtoll IER AWD2IE LL_ADC_DisableIT_AWD2
<> 135:176b8275d35d 7091 * @param ADCx ADC instance
<> 135:176b8275d35d 7092 * @retval None
<> 135:176b8275d35d 7093 */
<> 135:176b8275d35d 7094 __STATIC_INLINE void LL_ADC_DisableIT_AWD2(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 7095 {
<> 135:176b8275d35d 7096 CLEAR_BIT(ADCx->IER, LL_ADC_IT_AWD2);
<> 135:176b8275d35d 7097 }
<> 135:176b8275d35d 7098
<> 135:176b8275d35d 7099 /**
<> 135:176b8275d35d 7100 * @brief Disable interruption ADC analog watchdog 3.
<> 135:176b8275d35d 7101 * @rmtoll IER AWD3IE LL_ADC_DisableIT_AWD3
<> 135:176b8275d35d 7102 * @param ADCx ADC instance
<> 135:176b8275d35d 7103 * @retval None
<> 135:176b8275d35d 7104 */
<> 135:176b8275d35d 7105 __STATIC_INLINE void LL_ADC_DisableIT_AWD3(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 7106 {
<> 135:176b8275d35d 7107 CLEAR_BIT(ADCx->IER, LL_ADC_IT_AWD3);
<> 135:176b8275d35d 7108 }
<> 135:176b8275d35d 7109
<> 135:176b8275d35d 7110 /**
<> 135:176b8275d35d 7111 * @brief Get state of interruption ADC ready
<> 135:176b8275d35d 7112 * (0: interrupt disabled, 1: interrupt enabled).
<> 135:176b8275d35d 7113 * @rmtoll IER ADRDYIE LL_ADC_IsEnabledIT_ADRDY
<> 135:176b8275d35d 7114 * @param ADCx ADC instance
<> 135:176b8275d35d 7115 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 7116 */
<> 135:176b8275d35d 7117 __STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_ADRDY(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 7118 {
<> 135:176b8275d35d 7119 return (READ_BIT(ADCx->IER, LL_ADC_IT_ADRDY) == (LL_ADC_IT_ADRDY));
<> 135:176b8275d35d 7120 }
<> 135:176b8275d35d 7121
<> 135:176b8275d35d 7122 /**
<> 135:176b8275d35d 7123 * @brief Get state of interruption ADC group regular end of unitary conversion
<> 135:176b8275d35d 7124 * (0: interrupt disabled, 1: interrupt enabled).
<> 135:176b8275d35d 7125 * @rmtoll IER EOCIE LL_ADC_IsEnabledIT_EOC
<> 135:176b8275d35d 7126 * @param ADCx ADC instance
<> 135:176b8275d35d 7127 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 7128 */
<> 135:176b8275d35d 7129 __STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_EOC(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 7130 {
<> 135:176b8275d35d 7131 return (READ_BIT(ADCx->IER, LL_ADC_IT_EOC) == (LL_ADC_IT_EOC));
<> 135:176b8275d35d 7132 }
<> 135:176b8275d35d 7133
<> 135:176b8275d35d 7134 /**
<> 135:176b8275d35d 7135 * @brief Get state of interruption ADC group regular end of sequence conversions
<> 135:176b8275d35d 7136 * (0: interrupt disabled, 1: interrupt enabled).
<> 135:176b8275d35d 7137 * @rmtoll IER EOSIE LL_ADC_IsEnabledIT_EOS
<> 135:176b8275d35d 7138 * @param ADCx ADC instance
<> 135:176b8275d35d 7139 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 7140 */
<> 135:176b8275d35d 7141 __STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_EOS(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 7142 {
<> 135:176b8275d35d 7143 return (READ_BIT(ADCx->IER, LL_ADC_IT_EOS) == (LL_ADC_IT_EOS));
<> 135:176b8275d35d 7144 }
<> 135:176b8275d35d 7145
<> 135:176b8275d35d 7146 /**
<> 135:176b8275d35d 7147 * @brief Get state of interruption ADC group regular overrun
<> 135:176b8275d35d 7148 * (0: interrupt disabled, 1: interrupt enabled).
<> 135:176b8275d35d 7149 * @rmtoll IER OVRIE LL_ADC_IsEnabledIT_OVR
<> 135:176b8275d35d 7150 * @param ADCx ADC instance
<> 135:176b8275d35d 7151 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 7152 */
<> 135:176b8275d35d 7153 __STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_OVR(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 7154 {
<> 135:176b8275d35d 7155 return (READ_BIT(ADCx->IER, LL_ADC_IT_OVR) == (LL_ADC_IT_OVR));
<> 135:176b8275d35d 7156 }
<> 135:176b8275d35d 7157
<> 135:176b8275d35d 7158 /**
<> 135:176b8275d35d 7159 * @brief Get state of interruption ADC group regular end of sampling
<> 135:176b8275d35d 7160 * (0: interrupt disabled, 1: interrupt enabled).
<> 135:176b8275d35d 7161 * @rmtoll IER EOSMPIE LL_ADC_IsEnabledIT_EOSMP
<> 135:176b8275d35d 7162 * @param ADCx ADC instance
<> 135:176b8275d35d 7163 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 7164 */
<> 135:176b8275d35d 7165 __STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_EOSMP(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 7166 {
<> 135:176b8275d35d 7167 return (READ_BIT(ADCx->IER, LL_ADC_IT_EOSMP) == (LL_ADC_IT_EOSMP));
<> 135:176b8275d35d 7168 }
<> 135:176b8275d35d 7169
<> 135:176b8275d35d 7170 /**
<> 135:176b8275d35d 7171 * @brief Get state of interruption ADC group injected end of unitary conversion
<> 135:176b8275d35d 7172 * (0: interrupt disabled, 1: interrupt enabled).
<> 135:176b8275d35d 7173 * @rmtoll IER JEOCIE LL_ADC_IsEnabledIT_JEOC
<> 135:176b8275d35d 7174 * @param ADCx ADC instance
<> 135:176b8275d35d 7175 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 7176 */
<> 135:176b8275d35d 7177 __STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_JEOC(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 7178 {
<> 135:176b8275d35d 7179 return (READ_BIT(ADCx->IER, LL_ADC_IT_JEOC) == (LL_ADC_IT_JEOC));
<> 135:176b8275d35d 7180 }
<> 135:176b8275d35d 7181
<> 135:176b8275d35d 7182 /**
<> 135:176b8275d35d 7183 * @brief Get state of interruption ADC group injected end of sequence conversions
<> 135:176b8275d35d 7184 * (0: interrupt disabled, 1: interrupt enabled).
<> 135:176b8275d35d 7185 * @rmtoll IER JEOSIE LL_ADC_IsEnabledIT_JEOS
<> 135:176b8275d35d 7186 * @param ADCx ADC instance
<> 135:176b8275d35d 7187 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 7188 */
<> 135:176b8275d35d 7189 __STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_JEOS(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 7190 {
<> 135:176b8275d35d 7191 return (READ_BIT(ADCx->IER, LL_ADC_IT_JEOS) == (LL_ADC_IT_JEOS));
<> 135:176b8275d35d 7192 }
<> 135:176b8275d35d 7193
<> 135:176b8275d35d 7194 /**
<> 135:176b8275d35d 7195 * @brief Get state of interruption ADC group injected context queue overflow interrupt state
<> 135:176b8275d35d 7196 * (0: interrupt disabled, 1: interrupt enabled).
<> 135:176b8275d35d 7197 * @rmtoll IER JQOVFIE LL_ADC_IsEnabledIT_JQOVF
<> 135:176b8275d35d 7198 * @param ADCx ADC instance
<> 135:176b8275d35d 7199 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 7200 */
<> 135:176b8275d35d 7201 __STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_JQOVF(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 7202 {
<> 135:176b8275d35d 7203 return (READ_BIT(ADCx->IER, LL_ADC_IT_JQOVF) == (LL_ADC_IT_JQOVF));
<> 135:176b8275d35d 7204 }
<> 135:176b8275d35d 7205
<> 135:176b8275d35d 7206 /**
<> 135:176b8275d35d 7207 * @brief Get state of interruption ADC analog watchdog 1
<> 135:176b8275d35d 7208 * (0: interrupt disabled, 1: interrupt enabled).
<> 135:176b8275d35d 7209 * @rmtoll IER AWD1IE LL_ADC_IsEnabledIT_AWD1
<> 135:176b8275d35d 7210 * @param ADCx ADC instance
<> 135:176b8275d35d 7211 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 7212 */
<> 135:176b8275d35d 7213 __STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_AWD1(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 7214 {
<> 135:176b8275d35d 7215 return (READ_BIT(ADCx->IER, LL_ADC_IT_AWD1) == (LL_ADC_IT_AWD1));
<> 135:176b8275d35d 7216 }
<> 135:176b8275d35d 7217
<> 135:176b8275d35d 7218 /**
<> 135:176b8275d35d 7219 * @brief Get state of interruption Get ADC analog watchdog 2
<> 135:176b8275d35d 7220 * (0: interrupt disabled, 1: interrupt enabled).
<> 135:176b8275d35d 7221 * @rmtoll IER AWD2IE LL_ADC_IsEnabledIT_AWD2
<> 135:176b8275d35d 7222 * @param ADCx ADC instance
<> 135:176b8275d35d 7223 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 7224 */
<> 135:176b8275d35d 7225 __STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_AWD2(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 7226 {
<> 135:176b8275d35d 7227 return (READ_BIT(ADCx->IER, LL_ADC_IT_AWD2) == (LL_ADC_IT_AWD2));
<> 135:176b8275d35d 7228 }
<> 135:176b8275d35d 7229
<> 135:176b8275d35d 7230 /**
<> 135:176b8275d35d 7231 * @brief Get state of interruption Get ADC analog watchdog 3
<> 135:176b8275d35d 7232 * (0: interrupt disabled, 1: interrupt enabled).
<> 135:176b8275d35d 7233 * @rmtoll IER AWD3IE LL_ADC_IsEnabledIT_AWD3
<> 135:176b8275d35d 7234 * @param ADCx ADC instance
<> 135:176b8275d35d 7235 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 7236 */
<> 135:176b8275d35d 7237 __STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_AWD3(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 7238 {
<> 135:176b8275d35d 7239 return (READ_BIT(ADCx->IER, LL_ADC_IT_AWD3) == (LL_ADC_IT_AWD3));
<> 135:176b8275d35d 7240 }
<> 135:176b8275d35d 7241
<> 135:176b8275d35d 7242 /**
<> 135:176b8275d35d 7243 * @}
<> 135:176b8275d35d 7244 */
<> 135:176b8275d35d 7245
<> 135:176b8275d35d 7246 #if defined(USE_FULL_LL_DRIVER)
<> 135:176b8275d35d 7247 /** @defgroup ADC_LL_EF_Init Initialization and de-initialization functions
<> 135:176b8275d35d 7248 * @{
<> 135:176b8275d35d 7249 */
<> 135:176b8275d35d 7250
<> 135:176b8275d35d 7251 /* Initialization of some features of ADC common parameters and multimode */
<> 135:176b8275d35d 7252 ErrorStatus LL_ADC_CommonDeInit(ADC_Common_TypeDef *ADCxy_COMMON);
<> 135:176b8275d35d 7253 ErrorStatus LL_ADC_CommonInit(ADC_Common_TypeDef *ADCxy_COMMON, LL_ADC_CommonInitTypeDef *ADC_CommonInitStruct);
<> 135:176b8275d35d 7254 void LL_ADC_CommonStructInit(LL_ADC_CommonInitTypeDef *ADC_CommonInitStruct);
<> 135:176b8275d35d 7255
<> 135:176b8275d35d 7256 /* De-initialization of ADC instance, ADC group regular and ADC group injected */
<> 135:176b8275d35d 7257 /* (availability of ADC group injected depends on STM32 families) */
<> 135:176b8275d35d 7258 ErrorStatus LL_ADC_DeInit(ADC_TypeDef *ADCx);
<> 135:176b8275d35d 7259
<> 135:176b8275d35d 7260 /* Initialization of some features of ADC instance */
<> 135:176b8275d35d 7261 ErrorStatus LL_ADC_Init(ADC_TypeDef *ADCx, LL_ADC_InitTypeDef *ADC_InitStruct);
<> 135:176b8275d35d 7262 void LL_ADC_StructInit(LL_ADC_InitTypeDef *ADC_InitStruct);
<> 135:176b8275d35d 7263
<> 135:176b8275d35d 7264 /* Initialization of some features of ADC instance and ADC group regular */
<> 135:176b8275d35d 7265 ErrorStatus LL_ADC_REG_Init(ADC_TypeDef *ADCx, LL_ADC_REG_InitTypeDef *ADC_REG_InitStruct);
<> 135:176b8275d35d 7266 void LL_ADC_REG_StructInit(LL_ADC_REG_InitTypeDef *ADC_REG_InitStruct);
<> 135:176b8275d35d 7267
<> 135:176b8275d35d 7268 /* Initialization of some features of ADC instance and ADC group injected */
<> 135:176b8275d35d 7269 ErrorStatus LL_ADC_INJ_Init(ADC_TypeDef *ADCx, LL_ADC_INJ_InitTypeDef *ADC_INJ_InitStruct);
<> 135:176b8275d35d 7270 void LL_ADC_INJ_StructInit(LL_ADC_INJ_InitTypeDef *ADC_INJ_InitStruct);
<> 135:176b8275d35d 7271
<> 135:176b8275d35d 7272 /**
<> 135:176b8275d35d 7273 * @}
<> 135:176b8275d35d 7274 */
<> 135:176b8275d35d 7275 #endif /* USE_FULL_LL_DRIVER */
<> 135:176b8275d35d 7276
<> 135:176b8275d35d 7277 /**
<> 135:176b8275d35d 7278 * @}
<> 135:176b8275d35d 7279 */
<> 135:176b8275d35d 7280
<> 135:176b8275d35d 7281 /**
<> 135:176b8275d35d 7282 * @}
<> 135:176b8275d35d 7283 */
<> 135:176b8275d35d 7284
<> 135:176b8275d35d 7285 #endif /* ADC1 || ADC2 || ADC3 || ADC4 */
<> 135:176b8275d35d 7286
<> 135:176b8275d35d 7287
<> 135:176b8275d35d 7288 #endif /* STM32F301x8 || STM32F302x8 || STM32F302xC || STM32F302xE || STM32F303x8 || STM32F303xC || STM32F303xE || STM32F318xx || STM32F328xx || STM32F334x8 || STM32F358xx || STM32F398xx */
<> 135:176b8275d35d 7289
<> 135:176b8275d35d 7290 #if defined (ADC1_V2_5)
<> 135:176b8275d35d 7291
<> 135:176b8275d35d 7292 #if defined (ADC1)
<> 135:176b8275d35d 7293
<> 135:176b8275d35d 7294 /** @defgroup ADC_LL ADC
<> 135:176b8275d35d 7295 * @{
<> 135:176b8275d35d 7296 */
<> 135:176b8275d35d 7297
<> 135:176b8275d35d 7298 /* Private types -------------------------------------------------------------*/
<> 135:176b8275d35d 7299 /* Private variables ---------------------------------------------------------*/
<> 135:176b8275d35d 7300
<> 135:176b8275d35d 7301 /* Private constants ---------------------------------------------------------*/
<> 135:176b8275d35d 7302 /** @defgroup ADC_LL_Private_Constants ADC Private Constants
<> 135:176b8275d35d 7303 * @{
<> 135:176b8275d35d 7304 */
<> 135:176b8275d35d 7305
<> 135:176b8275d35d 7306 /* Internal mask for ADC group regular sequencer: */
<> 135:176b8275d35d 7307 /* To select into literal LL_ADC_REG_RANK_x the relevant bits for: */
<> 135:176b8275d35d 7308 /* - sequencer register offset */
<> 135:176b8275d35d 7309 /* - sequencer rank bits position into the selected register */
<> 135:176b8275d35d 7310
<> 135:176b8275d35d 7311 /* Internal register offset for ADC group regular sequencer configuration */
<> 135:176b8275d35d 7312 /* (offset placed into a spare area of literal definition) */
<> 135:176b8275d35d 7313 #define ADC_SQR1_REGOFFSET ((uint32_t)0x00000000U)
<> 135:176b8275d35d 7314 #define ADC_SQR2_REGOFFSET ((uint32_t)0x00000100U)
<> 135:176b8275d35d 7315 #define ADC_SQR3_REGOFFSET ((uint32_t)0x00000200U)
<> 135:176b8275d35d 7316 #define ADC_SQR4_REGOFFSET ((uint32_t)0x00000300U)
<> 135:176b8275d35d 7317
<> 135:176b8275d35d 7318 #define ADC_REG_SQRX_REGOFFSET_MASK (ADC_SQR1_REGOFFSET | ADC_SQR2_REGOFFSET | ADC_SQR3_REGOFFSET | ADC_SQR4_REGOFFSET)
<> 135:176b8275d35d 7319 #define ADC_REG_RANK_ID_SQRX_MASK (ADC_CHANNEL_ID_NUMBER_MASK_POSBIT0)
<> 135:176b8275d35d 7320
<> 135:176b8275d35d 7321 /* Definition of ADC group regular sequencer bits information to be inserted */
<> 135:176b8275d35d 7322 /* into ADC group regular sequencer ranks literals definition. */
<> 135:176b8275d35d 7323 #define ADC_REG_RANK_1_SQRX_BITOFFSET_POS ((uint32_t) 0U) /* Value equivalent to POSITION_VAL(ADC_SQR3_SQ1) */
<> 135:176b8275d35d 7324 #define ADC_REG_RANK_2_SQRX_BITOFFSET_POS ((uint32_t) 5U) /* Value equivalent to POSITION_VAL(ADC_SQR3_SQ2) */
<> 135:176b8275d35d 7325 #define ADC_REG_RANK_3_SQRX_BITOFFSET_POS ((uint32_t)10U) /* Value equivalent to POSITION_VAL(ADC_SQR3_SQ3) */
<> 135:176b8275d35d 7326 #define ADC_REG_RANK_4_SQRX_BITOFFSET_POS ((uint32_t)15U) /* Value equivalent to POSITION_VAL(ADC_SQR3_SQ4) */
<> 135:176b8275d35d 7327 #define ADC_REG_RANK_5_SQRX_BITOFFSET_POS ((uint32_t)20U) /* Value equivalent to POSITION_VAL(ADC_SQR3_SQ5) */
<> 135:176b8275d35d 7328 #define ADC_REG_RANK_6_SQRX_BITOFFSET_POS ((uint32_t)25U) /* Value equivalent to POSITION_VAL(ADC_SQR3_SQ6) */
<> 135:176b8275d35d 7329 #define ADC_REG_RANK_7_SQRX_BITOFFSET_POS ((uint32_t) 0U) /* Value equivalent to POSITION_VAL(ADC_SQR2_SQ7) */
<> 135:176b8275d35d 7330 #define ADC_REG_RANK_8_SQRX_BITOFFSET_POS ((uint32_t) 5U) /* Value equivalent to POSITION_VAL(ADC_SQR2_SQ8) */
<> 135:176b8275d35d 7331 #define ADC_REG_RANK_9_SQRX_BITOFFSET_POS ((uint32_t)10U) /* Value equivalent to POSITION_VAL(ADC_SQR2_SQ9) */
<> 135:176b8275d35d 7332 #define ADC_REG_RANK_10_SQRX_BITOFFSET_POS ((uint32_t)15U) /* Value equivalent to POSITION_VAL(ADC_SQR2_SQ10) */
<> 135:176b8275d35d 7333 #define ADC_REG_RANK_11_SQRX_BITOFFSET_POS ((uint32_t)20U) /* Value equivalent to POSITION_VAL(ADC_SQR2_SQ11) */
<> 135:176b8275d35d 7334 #define ADC_REG_RANK_12_SQRX_BITOFFSET_POS ((uint32_t)25U) /* Value equivalent to POSITION_VAL(ADC_SQR2_SQ12) */
<> 135:176b8275d35d 7335 #define ADC_REG_RANK_13_SQRX_BITOFFSET_POS ((uint32_t) 0U) /* Value equivalent to POSITION_VAL(ADC_SQR1_SQ13) */
<> 135:176b8275d35d 7336 #define ADC_REG_RANK_14_SQRX_BITOFFSET_POS ((uint32_t) 5U) /* Value equivalent to POSITION_VAL(ADC_SQR1_SQ14) */
<> 135:176b8275d35d 7337 #define ADC_REG_RANK_15_SQRX_BITOFFSET_POS ((uint32_t)10U) /* Value equivalent to POSITION_VAL(ADC_SQR1_SQ15) */
<> 135:176b8275d35d 7338 #define ADC_REG_RANK_16_SQRX_BITOFFSET_POS ((uint32_t)15U) /* Value equivalent to POSITION_VAL(ADC_SQR1_SQ16) */
<> 135:176b8275d35d 7339
<> 135:176b8275d35d 7340
<> 135:176b8275d35d 7341
<> 135:176b8275d35d 7342 /* Internal mask for ADC group injected sequencer: */
<> 135:176b8275d35d 7343 /* To select into literal LL_ADC_INJ_RANK_x the relevant bits for: */
<> 135:176b8275d35d 7344 /* - data register offset */
<> 135:176b8275d35d 7345 /* - offset register offset */
<> 135:176b8275d35d 7346 /* - sequencer rank bits position into the selected register */
<> 135:176b8275d35d 7347
<> 135:176b8275d35d 7348 /* Internal register offset for ADC group injected data register */
<> 135:176b8275d35d 7349 /* (offset placed into a spare area of literal definition) */
<> 135:176b8275d35d 7350 #define ADC_JDR1_REGOFFSET ((uint32_t)0x00000000U)
<> 135:176b8275d35d 7351 #define ADC_JDR2_REGOFFSET ((uint32_t)0x00000100U)
<> 135:176b8275d35d 7352 #define ADC_JDR3_REGOFFSET ((uint32_t)0x00000200U)
<> 135:176b8275d35d 7353 #define ADC_JDR4_REGOFFSET ((uint32_t)0x00000300U)
<> 135:176b8275d35d 7354
<> 135:176b8275d35d 7355 /* Internal register offset for ADC group injected offset configuration */
<> 135:176b8275d35d 7356 /* (offset placed into a spare area of literal definition) */
<> 135:176b8275d35d 7357 #define ADC_JOFR1_REGOFFSET ((uint32_t)0x00000000U)
<> 135:176b8275d35d 7358 #define ADC_JOFR2_REGOFFSET ((uint32_t)0x00001000U)
<> 135:176b8275d35d 7359 #define ADC_JOFR3_REGOFFSET ((uint32_t)0x00002000U)
<> 135:176b8275d35d 7360 #define ADC_JOFR4_REGOFFSET ((uint32_t)0x00003000U)
<> 135:176b8275d35d 7361
<> 135:176b8275d35d 7362 #define ADC_INJ_JDRX_REGOFFSET_MASK (ADC_JDR1_REGOFFSET | ADC_JDR2_REGOFFSET | ADC_JDR3_REGOFFSET | ADC_JDR4_REGOFFSET)
<> 135:176b8275d35d 7363 #define ADC_INJ_JOFRX_REGOFFSET_MASK (ADC_JOFR1_REGOFFSET | ADC_JOFR2_REGOFFSET | ADC_JOFR3_REGOFFSET | ADC_JOFR4_REGOFFSET)
<> 135:176b8275d35d 7364 #define ADC_INJ_RANK_ID_JSQR_MASK (ADC_CHANNEL_ID_NUMBER_MASK_POSBIT0)
<> 135:176b8275d35d 7365
<> 135:176b8275d35d 7366 /* Definition of ADC group injected sequencer bits information to be inserted */
<> 135:176b8275d35d 7367 /* into ADC group injected sequencer ranks literals definition. */
<> 135:176b8275d35d 7368 #define ADC_INJ_RANK_1_JSQR_BITOFFSET_POS ((uint32_t) 0U) /* Value equivalent to POSITION_VAL(ADC_JSQR_JSQ1) */
<> 135:176b8275d35d 7369 #define ADC_INJ_RANK_2_JSQR_BITOFFSET_POS ((uint32_t) 5U) /* Value equivalent to POSITION_VAL(ADC_JSQR_JSQ2) */
<> 135:176b8275d35d 7370 #define ADC_INJ_RANK_3_JSQR_BITOFFSET_POS ((uint32_t)10U) /* Value equivalent to POSITION_VAL(ADC_JSQR_JSQ3) */
<> 135:176b8275d35d 7371 #define ADC_INJ_RANK_4_JSQR_BITOFFSET_POS ((uint32_t)15U) /* Value equivalent to POSITION_VAL(ADC_JSQR_JSQ4) */
<> 135:176b8275d35d 7372
<> 135:176b8275d35d 7373
<> 135:176b8275d35d 7374
<> 135:176b8275d35d 7375 /* Internal mask for ADC channel: */
<> 135:176b8275d35d 7376 /* To select into literal LL_ADC_CHANNEL_x the relevant bits for: */
<> 135:176b8275d35d 7377 /* - channel identifier defined by number */
<> 135:176b8275d35d 7378 /* - channel differentiation between external channels (connected to */
<> 135:176b8275d35d 7379 /* GPIO pins) and internal channels (connected to internal paths) */
<> 135:176b8275d35d 7380 /* - channel sampling time defined by SMPRx register offset */
<> 135:176b8275d35d 7381 /* and SMPx bits positions into SMPRx register */
<> 135:176b8275d35d 7382 #define ADC_CHANNEL_ID_NUMBER_MASK (ADC_CR1_AWDCH)
<> 135:176b8275d35d 7383 #define ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS ((uint32_t) 0U)/* Value equivalent to POSITION_VAL(ADC_CHANNEL_ID_NUMBER_MASK) */
<> 135:176b8275d35d 7384 #define ADC_CHANNEL_ID_MASK (ADC_CHANNEL_ID_NUMBER_MASK | ADC_CHANNEL_ID_INTERNAL_CH_MASK)
<> 135:176b8275d35d 7385 /* Equivalent mask of ADC_CHANNEL_NUMBER_MASK aligned on register LSB (bit 0) */
<> 135:176b8275d35d 7386 #define ADC_CHANNEL_ID_NUMBER_MASK_POSBIT0 ((uint32_t)0x0000001FU) /* Equivalent to shift: (ADC_CHANNEL_NUMBER_MASK >> POSITION_VAL(ADC_CHANNEL_NUMBER_MASK)) */
<> 135:176b8275d35d 7387
<> 135:176b8275d35d 7388 /* Channel differentiation between external and internal channels */
<> 135:176b8275d35d 7389 #define ADC_CHANNEL_ID_INTERNAL_CH ((uint32_t)0x80000000U) /* Marker of internal channel */
<> 135:176b8275d35d 7390 #define ADC_CHANNEL_ID_INTERNAL_CH_2 ((uint32_t)0x40000000U) /* Marker of internal channel for other ADC instances, in case of different ADC internal channels mapped on same channel number on different ADC instances */
<> 135:176b8275d35d 7391 #define ADC_CHANNEL_ID_INTERNAL_CH_MASK (ADC_CHANNEL_ID_INTERNAL_CH | ADC_CHANNEL_ID_INTERNAL_CH_2)
<> 135:176b8275d35d 7392
<> 135:176b8275d35d 7393 /* Internal register offset for ADC channel sampling time configuration */
<> 135:176b8275d35d 7394 /* (offset placed into a spare area of literal definition) */
<> 135:176b8275d35d 7395 #define ADC_SMPR1_REGOFFSET ((uint32_t)0x00000000U)
<> 135:176b8275d35d 7396 #define ADC_SMPR2_REGOFFSET ((uint32_t)0x02000000U)
<> 135:176b8275d35d 7397 #define ADC_CHANNEL_SMPRX_REGOFFSET_MASK (ADC_SMPR1_REGOFFSET | ADC_SMPR2_REGOFFSET)
<> 135:176b8275d35d 7398
<> 135:176b8275d35d 7399 #define ADC_CHANNEL_SMPx_BITOFFSET_MASK ((uint32_t)0x01F00000U)
<> 135:176b8275d35d 7400 #define ADC_CHANNEL_SMPx_BITOFFSET_POS ((uint32_t)20U) /* Value equivalent to POSITION_VAL(ADC_CHANNEL_SMPx_BITOFFSET_MASK) */
<> 135:176b8275d35d 7401
<> 135:176b8275d35d 7402 /* Definition of channels ID number information to be inserted into */
<> 135:176b8275d35d 7403 /* channels literals definition. */
<> 135:176b8275d35d 7404 #define ADC_CHANNEL_0_NUMBER ((uint32_t)0x00000000U)
<> 135:176b8275d35d 7405 #define ADC_CHANNEL_1_NUMBER ( ADC_CR1_AWDCH_0)
<> 135:176b8275d35d 7406 #define ADC_CHANNEL_2_NUMBER ( ADC_CR1_AWDCH_1 )
<> 135:176b8275d35d 7407 #define ADC_CHANNEL_3_NUMBER ( ADC_CR1_AWDCH_1 | ADC_CR1_AWDCH_0)
<> 135:176b8275d35d 7408 #define ADC_CHANNEL_4_NUMBER ( ADC_CR1_AWDCH_2 )
<> 135:176b8275d35d 7409 #define ADC_CHANNEL_5_NUMBER ( ADC_CR1_AWDCH_2 | ADC_CR1_AWDCH_0)
<> 135:176b8275d35d 7410 #define ADC_CHANNEL_6_NUMBER ( ADC_CR1_AWDCH_2 | ADC_CR1_AWDCH_1 )
<> 135:176b8275d35d 7411 #define ADC_CHANNEL_7_NUMBER ( ADC_CR1_AWDCH_2 | ADC_CR1_AWDCH_1 | ADC_CR1_AWDCH_0)
<> 135:176b8275d35d 7412 #define ADC_CHANNEL_8_NUMBER ( ADC_CR1_AWDCH_3 )
<> 135:176b8275d35d 7413 #define ADC_CHANNEL_9_NUMBER ( ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_0)
<> 135:176b8275d35d 7414 #define ADC_CHANNEL_10_NUMBER ( ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_1 )
<> 135:176b8275d35d 7415 #define ADC_CHANNEL_11_NUMBER ( ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_1 | ADC_CR1_AWDCH_0)
<> 135:176b8275d35d 7416 #define ADC_CHANNEL_12_NUMBER ( ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_2 )
<> 135:176b8275d35d 7417 #define ADC_CHANNEL_13_NUMBER ( ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_2 | ADC_CR1_AWDCH_0)
<> 135:176b8275d35d 7418 #define ADC_CHANNEL_14_NUMBER ( ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_2 | ADC_CR1_AWDCH_1 )
<> 135:176b8275d35d 7419 #define ADC_CHANNEL_15_NUMBER ( ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_2 | ADC_CR1_AWDCH_1 | ADC_CR1_AWDCH_0)
<> 135:176b8275d35d 7420 #define ADC_CHANNEL_16_NUMBER (ADC_CR1_AWDCH_4 )
<> 135:176b8275d35d 7421 #define ADC_CHANNEL_17_NUMBER (ADC_CR1_AWDCH_4 | ADC_CR1_AWDCH_0)
<> 135:176b8275d35d 7422
<> 135:176b8275d35d 7423 /* Definition of channels sampling time information to be inserted into */
<> 135:176b8275d35d 7424 /* channels literals definition. */
<> 135:176b8275d35d 7425 #define ADC_CHANNEL_0_SMP (ADC_SMPR2_REGOFFSET | (((uint32_t) 0U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP0) */
<> 135:176b8275d35d 7426 #define ADC_CHANNEL_1_SMP (ADC_SMPR2_REGOFFSET | (((uint32_t) 3U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP1) */
<> 135:176b8275d35d 7427 #define ADC_CHANNEL_2_SMP (ADC_SMPR2_REGOFFSET | (((uint32_t) 6U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP2) */
<> 135:176b8275d35d 7428 #define ADC_CHANNEL_3_SMP (ADC_SMPR2_REGOFFSET | (((uint32_t) 9U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP3) */
<> 135:176b8275d35d 7429 #define ADC_CHANNEL_4_SMP (ADC_SMPR2_REGOFFSET | (((uint32_t)12U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP4) */
<> 135:176b8275d35d 7430 #define ADC_CHANNEL_5_SMP (ADC_SMPR2_REGOFFSET | (((uint32_t)15U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP5) */
<> 135:176b8275d35d 7431 #define ADC_CHANNEL_6_SMP (ADC_SMPR2_REGOFFSET | (((uint32_t)18U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP6) */
<> 135:176b8275d35d 7432 #define ADC_CHANNEL_7_SMP (ADC_SMPR2_REGOFFSET | (((uint32_t)21U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP7) */
<> 135:176b8275d35d 7433 #define ADC_CHANNEL_8_SMP (ADC_SMPR2_REGOFFSET | (((uint32_t)24U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP8) */
<> 135:176b8275d35d 7434 #define ADC_CHANNEL_9_SMP (ADC_SMPR2_REGOFFSET | (((uint32_t)27U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP9) */
<> 135:176b8275d35d 7435 #define ADC_CHANNEL_10_SMP (ADC_SMPR1_REGOFFSET | (((uint32_t) 0U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP10) */
<> 135:176b8275d35d 7436 #define ADC_CHANNEL_11_SMP (ADC_SMPR1_REGOFFSET | (((uint32_t) 3U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP11) */
<> 135:176b8275d35d 7437 #define ADC_CHANNEL_12_SMP (ADC_SMPR1_REGOFFSET | (((uint32_t) 6U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP12) */
<> 135:176b8275d35d 7438 #define ADC_CHANNEL_13_SMP (ADC_SMPR1_REGOFFSET | (((uint32_t) 9U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP13) */
<> 135:176b8275d35d 7439 #define ADC_CHANNEL_14_SMP (ADC_SMPR1_REGOFFSET | (((uint32_t)12U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP14) */
<> 135:176b8275d35d 7440 #define ADC_CHANNEL_15_SMP (ADC_SMPR1_REGOFFSET | (((uint32_t)15U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP15) */
<> 135:176b8275d35d 7441 #define ADC_CHANNEL_16_SMP (ADC_SMPR1_REGOFFSET | (((uint32_t)18U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP16) */
<> 135:176b8275d35d 7442 #define ADC_CHANNEL_17_SMP (ADC_SMPR1_REGOFFSET | (((uint32_t)21U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP17) */
<> 135:176b8275d35d 7443
<> 135:176b8275d35d 7444
<> 135:176b8275d35d 7445 /* Internal mask for ADC analog watchdog: */
<> 135:176b8275d35d 7446 /* To select into literals LL_ADC_AWD_CHANNELx_xxx the relevant bits for: */
<> 135:176b8275d35d 7447 /* (concatenation of multiple bits used in different analog watchdogs, */
<> 135:176b8275d35d 7448 /* (feature of several watchdogs not available on all STM32 families)). */
<> 135:176b8275d35d 7449 /* - analog watchdog 1: monitored channel defined by number, */
<> 135:176b8275d35d 7450 /* selection of ADC group (ADC groups regular and-or injected). */
<> 135:176b8275d35d 7451
<> 135:176b8275d35d 7452 /* Internal register offset for ADC analog watchdog channel configuration */
<> 135:176b8275d35d 7453 #define ADC_AWD_CR1_REGOFFSET ((uint32_t)0x00000000U)
<> 135:176b8275d35d 7454
<> 135:176b8275d35d 7455 #define ADC_AWD_CRX_REGOFFSET_MASK (ADC_AWD_CR1_REGOFFSET)
<> 135:176b8275d35d 7456
<> 135:176b8275d35d 7457 #define ADC_AWD_CR1_CHANNEL_MASK (ADC_CR1_AWDCH | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL)
<> 135:176b8275d35d 7458 #define ADC_AWD_CR_ALL_CHANNEL_MASK (ADC_AWD_CR1_CHANNEL_MASK)
<> 135:176b8275d35d 7459
<> 135:176b8275d35d 7460 /* Internal register offset for ADC analog watchdog threshold configuration */
<> 135:176b8275d35d 7461 #define ADC_AWD_TR1_HIGH_REGOFFSET ((uint32_t)0x00000000U)
<> 135:176b8275d35d 7462 #define ADC_AWD_TR1_LOW_REGOFFSET ((uint32_t)0x00000001U)
<> 135:176b8275d35d 7463 #define ADC_AWD_TRX_REGOFFSET_MASK (ADC_AWD_TR1_HIGH_REGOFFSET | ADC_AWD_TR1_LOW_REGOFFSET)
<> 135:176b8275d35d 7464
<> 135:176b8275d35d 7465
<> 135:176b8275d35d 7466 /* ADC registers bits positions */
<> 135:176b8275d35d 7467 #define ADC_CR1_DUALMOD_BITOFFSET_POS ((uint32_t)16U) /* Value equivalent to POSITION_VAL(ADC_CR1_DUALMOD) */
<> 135:176b8275d35d 7468
<> 135:176b8275d35d 7469
<> 135:176b8275d35d 7470 /* ADC internal channels related definitions */
<> 135:176b8275d35d 7471 /* Internal voltage reference VrefInt */
<> 135:176b8275d35d 7472 #define VREFINT_CAL_ADDR ((uint16_t*) ((uint32_t)0x1FFFF7BAU)) /* Internal voltage reference, address of parameter VREFINT_CAL: VrefInt ADC raw data acquired at temperature 30 DegC (tolerance: +-5 DegC), Vref+ = 3.3 V (tolerance: +-10 mV). */
<> 135:176b8275d35d 7473 #define VREFINT_CAL_VREF ((uint32_t) 3300U) /* Analog voltage reference (Vref+) value with which temperature sensor has been calibrated in production (tolerance: +-10 mV) (unit: mV). */
<> 135:176b8275d35d 7474 /* Temperature sensor */
<> 135:176b8275d35d 7475 #define TEMPSENSOR_CAL1_ADDR ((uint16_t*) ((uint32_t)0x1FFFF7B8U)) /* Internal temperature sensor, address of parameter TS_CAL1: On STM32F37x, temperature sensor ADC raw data acquired at temperature 25 DegC (tolerance: +-5 DegC), Vref+ = 3.3 V (tolerance: +-10 mV). */
<> 135:176b8275d35d 7476 #define TEMPSENSOR_CAL2_ADDR ((uint16_t*) ((uint32_t)0x1FFFF7C2U)) /* Internal temperature sensor, address of parameter TS_CAL2: On STM32F37x, temperature sensor ADC raw data acquired at temperature 110 DegC (tolerance: +-5 DegC), Vref+ = 3.3 V (tolerance: +-10 mV). */
<> 135:176b8275d35d 7477 #define TEMPSENSOR_CAL1_TEMP (( int32_t) 25) /* Internal temperature sensor, temperature at which temperature sensor has been calibrated in production for data into TEMPSENSOR_CAL1_ADDR (tolerance: +-5 DegC) (unit: DegC). */
<> 135:176b8275d35d 7478 #define TEMPSENSOR_CAL2_TEMP (( int32_t) 110) /* Internal temperature sensor, temperature at which temperature sensor has been calibrated in production for data into TEMPSENSOR_CAL2_ADDR (tolerance: +-5 DegC) (unit: DegC). */
<> 135:176b8275d35d 7479 #define TEMPSENSOR_CAL_VREFANALOG ((uint32_t) 3300U) /* Analog voltage reference (Vref+) voltage with which temperature sensor has been calibrated in production (+-10 mV) (unit: mV). */
<> 135:176b8275d35d 7480
<> 135:176b8275d35d 7481
<> 135:176b8275d35d 7482 /**
<> 135:176b8275d35d 7483 * @}
<> 135:176b8275d35d 7484 */
<> 135:176b8275d35d 7485
<> 135:176b8275d35d 7486
<> 135:176b8275d35d 7487 /* Private macros ------------------------------------------------------------*/
<> 135:176b8275d35d 7488 /** @defgroup ADC_LL_Private_Macros ADC Private Macros
<> 135:176b8275d35d 7489 * @{
<> 135:176b8275d35d 7490 */
<> 135:176b8275d35d 7491
<> 135:176b8275d35d 7492 /**
<> 135:176b8275d35d 7493 * @brief Driver macro reserved for internal use: isolate bits with the
<> 135:176b8275d35d 7494 * selected mask and shift them to the register LSB
<> 135:176b8275d35d 7495 * (shift mask on register position bit 0).
<> 135:176b8275d35d 7496 * @param __BITS__ Bits in register 32 bits
<> 135:176b8275d35d 7497 * @param __MASK__ Mask in register 32 bits
<> 135:176b8275d35d 7498 * @retval Bits in register 32 bits
<> 135:176b8275d35d 7499 */
<> 135:176b8275d35d 7500 #define __ADC_MASK_SHIFT(__BITS__, __MASK__) \
<> 135:176b8275d35d 7501 (((__BITS__) & (__MASK__)) >> POSITION_VAL((__MASK__)))
<> 135:176b8275d35d 7502
<> 135:176b8275d35d 7503 /**
<> 135:176b8275d35d 7504 * @brief Driver macro reserved for internal use: set a pointer to
<> 135:176b8275d35d 7505 * a register from a register basis from which an offset
<> 135:176b8275d35d 7506 * is applied.
<> 135:176b8275d35d 7507 * @param __REG__ Register basis from which the offset is applied.
<> 135:176b8275d35d 7508 * @param __REG_OFFFSET__ Offset to be applied (unit: number of registers).
<> 135:176b8275d35d 7509 * @retval Pointer to register address
<> 135:176b8275d35d 7510 */
<> 135:176b8275d35d 7511 #define __ADC_PTR_REG_OFFSET(__REG__, __REG_OFFFSET__) \
<> 135:176b8275d35d 7512 ((uint32_t *)((uint32_t) ((uint32_t)(&(__REG__)) + ((__REG_OFFFSET__) << 2U))))
<> 135:176b8275d35d 7513
<> 135:176b8275d35d 7514 /**
<> 135:176b8275d35d 7515 * @}
<> 135:176b8275d35d 7516 */
<> 135:176b8275d35d 7517
<> 135:176b8275d35d 7518
<> 135:176b8275d35d 7519 /* Exported types ------------------------------------------------------------*/
<> 135:176b8275d35d 7520 #if defined(USE_FULL_LL_DRIVER)
<> 135:176b8275d35d 7521 /** @defgroup ADC_LL_ES_INIT ADC Exported Init structure
<> 135:176b8275d35d 7522 * @{
<> 135:176b8275d35d 7523 */
<> 135:176b8275d35d 7524
<> 135:176b8275d35d 7525 /**
<> 135:176b8275d35d 7526 * @brief Structure definition of some features of ADC instance.
<> 135:176b8275d35d 7527 * @note These parameters have an impact on ADC scope: ADC instance.
<> 135:176b8275d35d 7528 * Affects both group regular and group injected (availability
<> 135:176b8275d35d 7529 * of ADC group injected depends on STM32 families).
<> 135:176b8275d35d 7530 * Refer to corresponding unitary functions into
<> 135:176b8275d35d 7531 * @ref ADC_LL_EF_Configuration_ADC_Instance .
<> 135:176b8275d35d 7532 * @note The setting of these parameters by function @ref LL_ADC_Init()
<> 135:176b8275d35d 7533 * is conditioned to ADC state:
<> 135:176b8275d35d 7534 * ADC instance must be disabled.
<> 135:176b8275d35d 7535 * This condition is applied to all ADC features, for efficiency
<> 135:176b8275d35d 7536 * and compatibility over all STM32 families. However, the different
<> 135:176b8275d35d 7537 * features can be set under different ADC state conditions
<> 135:176b8275d35d 7538 * (setting possible with ADC enabled without conversion on going,
<> 135:176b8275d35d 7539 * ADC enabled with conversion on going, ...)
<> 135:176b8275d35d 7540 * Each feature can be updated afterwards with a unitary function
<> 135:176b8275d35d 7541 * and potentially with ADC in a different state than disabled,
<> 135:176b8275d35d 7542 * refer to description of each function for setting
<> 135:176b8275d35d 7543 * conditioned to ADC state.
<> 135:176b8275d35d 7544 */
<> 135:176b8275d35d 7545 typedef struct
<> 135:176b8275d35d 7546 {
<> 135:176b8275d35d 7547 uint32_t DataAlignment; /*!< Set ADC conversion data alignment.
<> 135:176b8275d35d 7548 This parameter can be a value of @ref ADC_LL_EC_DATA_ALIGN
<> 135:176b8275d35d 7549
<> 135:176b8275d35d 7550 This feature can be modified afterwards using unitary function @ref LL_ADC_SetDataAlignment(). */
<> 135:176b8275d35d 7551
<> 135:176b8275d35d 7552 uint32_t SequencersScanMode; /*!< Set ADC scan selection.
<> 135:176b8275d35d 7553 This parameter can be a value of @ref ADC_LL_EC_SCAN_SELECTION
<> 135:176b8275d35d 7554
<> 135:176b8275d35d 7555 This feature can be modified afterwards using unitary function @ref LL_ADC_SetSequencersScanMode(). */
<> 135:176b8275d35d 7556
<> 135:176b8275d35d 7557 } LL_ADC_InitTypeDef;
<> 135:176b8275d35d 7558
<> 135:176b8275d35d 7559 /**
<> 135:176b8275d35d 7560 * @brief Structure definition of some features of ADC group regular.
<> 135:176b8275d35d 7561 * @note These parameters have an impact on ADC scope: ADC group regular.
<> 135:176b8275d35d 7562 * Refer to corresponding unitary functions into
<> 135:176b8275d35d 7563 * @ref ADC_LL_EF_Configuration_ADC_Group_Regular
<> 135:176b8275d35d 7564 * (functions with prefix "REG").
<> 135:176b8275d35d 7565 * @note The setting of these parameters by function @ref LL_ADC_REG_Init()
<> 135:176b8275d35d 7566 * is conditioned to ADC state:
<> 135:176b8275d35d 7567 * ADC instance must be disabled.
<> 135:176b8275d35d 7568 * This condition is applied to all ADC features, for efficiency
<> 135:176b8275d35d 7569 * and compatibility over all STM32 families. However, the different
<> 135:176b8275d35d 7570 * features can be set under different ADC state conditions
<> 135:176b8275d35d 7571 * (setting possible with ADC enabled without conversion on going,
<> 135:176b8275d35d 7572 * ADC enabled with conversion on going, ...)
<> 135:176b8275d35d 7573 * Each feature can be updated afterwards with a unitary function
<> 135:176b8275d35d 7574 * and potentially with ADC in a different state than disabled,
<> 135:176b8275d35d 7575 * refer to description of each function for setting
<> 135:176b8275d35d 7576 * conditioned to ADC state.
<> 135:176b8275d35d 7577 */
<> 135:176b8275d35d 7578 typedef struct
<> 135:176b8275d35d 7579 {
<> 135:176b8275d35d 7580 uint32_t TriggerSource; /*!< Set ADC group regular conversion trigger source: internal (SW start) or external from timer or external interrupt.
<> 135:176b8275d35d 7581 This parameter can be a value of @ref ADC_LL_EC_REG_TRIGGER_SOURCE
<> 135:176b8275d35d 7582 @note On this STM32 serie, external trigger is set with trigger polarity: rising edge
<> 135:176b8275d35d 7583 (only trigger polarity available on this STM32 serie).
<> 135:176b8275d35d 7584
<> 135:176b8275d35d 7585 This feature can be modified afterwards using unitary function @ref LL_ADC_REG_SetTriggerSource(). */
<> 135:176b8275d35d 7586
<> 135:176b8275d35d 7587 uint32_t SequencerLength; /*!< Set ADC group regular sequencer length.
<> 135:176b8275d35d 7588 This parameter can be a value of @ref ADC_LL_EC_REG_SEQ_SCAN_LENGTH
<> 135:176b8275d35d 7589 @note This parameter is discarded if scan mode is disabled (refer to parameter 'ADC_SequencersScanMode').
<> 135:176b8275d35d 7590
<> 135:176b8275d35d 7591 This feature can be modified afterwards using unitary function @ref LL_ADC_REG_SetSequencerLength(). */
<> 135:176b8275d35d 7592
<> 135:176b8275d35d 7593 uint32_t SequencerDiscont; /*!< Set ADC group regular sequencer discontinuous mode: sequence subdivided and scan conversions interrupted every selected number of ranks.
<> 135:176b8275d35d 7594 This parameter can be a value of @ref ADC_LL_EC_REG_SEQ_DISCONT_MODE
<> 135:176b8275d35d 7595 @note This parameter has an effect only if group regular sequencer is enabled
<> 135:176b8275d35d 7596 (scan length of 2 ranks or more).
<> 135:176b8275d35d 7597
<> 135:176b8275d35d 7598 This feature can be modified afterwards using unitary function @ref LL_ADC_REG_SetSequencerDiscont(). */
<> 135:176b8275d35d 7599
<> 135:176b8275d35d 7600 uint32_t ContinuousMode; /*!< Set ADC continuous conversion mode on ADC group regular, whether ADC conversions are performed in single mode (one conversion per trigger) or in continuous mode (after the first trigger, following conversions launched successively automatically).
<> 135:176b8275d35d 7601 This parameter can be a value of @ref ADC_LL_EC_REG_CONTINUOUS_MODE
<> 135:176b8275d35d 7602 Note: It is not possible to enable both ADC group regular continuous mode and discontinuous mode.
<> 135:176b8275d35d 7603
<> 135:176b8275d35d 7604 This feature can be modified afterwards using unitary function @ref LL_ADC_REG_SetContinuousMode(). */
<> 135:176b8275d35d 7605
<> 135:176b8275d35d 7606 uint32_t DMATransfer; /*!< Set ADC group regular conversion data transfer: no transfer or transfer by DMA, and DMA requests mode.
<> 135:176b8275d35d 7607 This parameter can be a value of @ref ADC_LL_EC_REG_DMA_TRANSFER
<> 135:176b8275d35d 7608
<> 135:176b8275d35d 7609 This feature can be modified afterwards using unitary function @ref LL_ADC_REG_SetDMATransfer(). */
<> 135:176b8275d35d 7610
<> 135:176b8275d35d 7611 } LL_ADC_REG_InitTypeDef;
<> 135:176b8275d35d 7612
<> 135:176b8275d35d 7613 /**
<> 135:176b8275d35d 7614 * @brief Structure definition of some features of ADC group injected.
<> 135:176b8275d35d 7615 * @note These parameters have an impact on ADC scope: ADC group injected.
<> 135:176b8275d35d 7616 * Refer to corresponding unitary functions into
<> 135:176b8275d35d 7617 * @ref ADC_LL_EF_Configuration_ADC_Group_Regular
<> 135:176b8275d35d 7618 * (functions with prefix "INJ").
<> 135:176b8275d35d 7619 * @note The setting of these parameters by function @ref LL_ADC_INJ_Init()
<> 135:176b8275d35d 7620 * is conditioned to ADC state:
<> 135:176b8275d35d 7621 * ADC instance must be disabled.
<> 135:176b8275d35d 7622 * This condition is applied to all ADC features, for efficiency
<> 135:176b8275d35d 7623 * and compatibility over all STM32 families. However, the different
<> 135:176b8275d35d 7624 * features can be set under different ADC state conditions
<> 135:176b8275d35d 7625 * (setting possible with ADC enabled without conversion on going,
<> 135:176b8275d35d 7626 * ADC enabled with conversion on going, ...)
<> 135:176b8275d35d 7627 * Each feature can be updated afterwards with a unitary function
<> 135:176b8275d35d 7628 * and potentially with ADC in a different state than disabled,
<> 135:176b8275d35d 7629 * refer to description of each function for setting
<> 135:176b8275d35d 7630 * conditioned to ADC state.
<> 135:176b8275d35d 7631 */
<> 135:176b8275d35d 7632 typedef struct
<> 135:176b8275d35d 7633 {
<> 135:176b8275d35d 7634 uint32_t TriggerSource; /*!< Set ADC group injected conversion trigger source: internal (SW start) or external from timer or external interrupt.
<> 135:176b8275d35d 7635 This parameter can be a value of @ref ADC_LL_EC_INJ_TRIGGER_SOURCE
<> 135:176b8275d35d 7636 @note On this STM32 serie, external trigger is set with trigger polarity: rising edge
<> 135:176b8275d35d 7637 (only trigger polarity available on this STM32 serie).
<> 135:176b8275d35d 7638
<> 135:176b8275d35d 7639 This feature can be modified afterwards using unitary function @ref LL_ADC_INJ_SetTriggerSource(). */
<> 135:176b8275d35d 7640
<> 135:176b8275d35d 7641 uint32_t SequencerLength; /*!< Set ADC group injected sequencer length.
<> 135:176b8275d35d 7642 This parameter can be a value of @ref ADC_LL_EC_INJ_SEQ_SCAN_LENGTH
<> 135:176b8275d35d 7643 @note This parameter is discarded if scan mode is disabled (refer to parameter 'ADC_SequencersScanMode').
<> 135:176b8275d35d 7644
<> 135:176b8275d35d 7645 This feature can be modified afterwards using unitary function @ref LL_ADC_INJ_SetSequencerLength(). */
<> 135:176b8275d35d 7646
<> 135:176b8275d35d 7647 uint32_t SequencerDiscont; /*!< Set ADC group injected sequencer discontinuous mode: sequence subdivided and scan conversions interrupted every selected number of ranks.
<> 135:176b8275d35d 7648 This parameter can be a value of @ref ADC_LL_EC_INJ_SEQ_DISCONT_MODE
<> 135:176b8275d35d 7649 @note This parameter has an effect only if group injected sequencer is enabled
<> 135:176b8275d35d 7650 (scan length of 2 ranks or more).
<> 135:176b8275d35d 7651
<> 135:176b8275d35d 7652 This feature can be modified afterwards using unitary function @ref LL_ADC_INJ_SetSequencerDiscont(). */
<> 135:176b8275d35d 7653
<> 135:176b8275d35d 7654 uint32_t TrigAuto; /*!< Set ADC group injected conversion trigger: independent or from ADC group regular.
<> 135:176b8275d35d 7655 This parameter can be a value of @ref ADC_LL_EC_INJ_TRIG_AUTO
<> 135:176b8275d35d 7656 Note: This parameter must be set to set to independent trigger if injected trigger source is set to an external trigger.
<> 135:176b8275d35d 7657
<> 135:176b8275d35d 7658 This feature can be modified afterwards using unitary function @ref LL_ADC_INJ_SetTrigAuto(). */
<> 135:176b8275d35d 7659
<> 135:176b8275d35d 7660 } LL_ADC_INJ_InitTypeDef;
<> 135:176b8275d35d 7661
<> 135:176b8275d35d 7662 /**
<> 135:176b8275d35d 7663 * @}
<> 135:176b8275d35d 7664 */
<> 135:176b8275d35d 7665 #endif /* USE_FULL_LL_DRIVER */
<> 135:176b8275d35d 7666
<> 135:176b8275d35d 7667 /* Exported constants --------------------------------------------------------*/
<> 135:176b8275d35d 7668 /** @defgroup ADC_LL_Exported_Constants ADC Exported Constants
<> 135:176b8275d35d 7669 * @{
<> 135:176b8275d35d 7670 */
<> 135:176b8275d35d 7671
<> 135:176b8275d35d 7672 /** @defgroup ADC_LL_EC_FLAG ADC flags
<> 135:176b8275d35d 7673 * @brief Flags defines which can be used with LL_ADC_ReadReg function
<> 135:176b8275d35d 7674 * @{
<> 135:176b8275d35d 7675 */
<> 135:176b8275d35d 7676 #define LL_ADC_FLAG_STRT ADC_SR_STRT /*!< ADC flag ADC group regular conversion start */
<> 135:176b8275d35d 7677 #define LL_ADC_FLAG_EOS ADC_SR_EOC /*!< ADC flag ADC group regular end of sequence conversions (Note: on this STM32 serie, there is no flag ADC group regular end of unitary conversion. Flag noted as "EOC" is corresponding to flag "EOS" in other STM32 families) */
<> 135:176b8275d35d 7678 #define LL_ADC_FLAG_JSTRT ADC_SR_JSTRT /*!< ADC flag ADC group injected conversion start */
<> 135:176b8275d35d 7679 #define LL_ADC_FLAG_JEOS ADC_SR_JEOC /*!< ADC flag ADC group injected end of sequence conversions (Note: on this STM32 serie, there is no flag ADC group injected end of unitary conversion. Flag noted as "JEOC" is corresponding to flag "JEOS" in other STM32 families) */
<> 135:176b8275d35d 7680 #define LL_ADC_FLAG_AWD1 ADC_SR_AWD /*!< ADC flag ADC analog watchdog 1 */
<> 135:176b8275d35d 7681 /**
<> 135:176b8275d35d 7682 * @}
<> 135:176b8275d35d 7683 */
<> 135:176b8275d35d 7684
<> 135:176b8275d35d 7685 /** @defgroup ADC_LL_EC_IT ADC interruptions for configuration (interruption enable or disable)
<> 135:176b8275d35d 7686 * @brief IT defines which can be used with LL_ADC_ReadReg and LL_ADC_WriteReg functions
<> 135:176b8275d35d 7687 * @{
<> 135:176b8275d35d 7688 */
<> 135:176b8275d35d 7689 #define LL_ADC_IT_EOS ADC_CR1_EOCIE /*!< ADC interruption ADC group regular end of sequence conversions (Note: on this STM32 serie, there is no flag ADC group regular end of unitary conversion. Flag noted as "EOC" is corresponding to flag "EOS" in other STM32 families) */
<> 135:176b8275d35d 7690 #define LL_ADC_IT_JEOS ADC_CR1_JEOCIE /*!< ADC interruption ADC group injected end of sequence conversions (Note: on this STM32 serie, there is no flag ADC group injected end of unitary conversion. Flag noted as "JEOC" is corresponding to flag "JEOS" in other STM32 families) */
<> 135:176b8275d35d 7691 #define LL_ADC_IT_AWD1 ADC_CR1_AWDIE /*!< ADC interruption ADC analog watchdog 1 */
<> 135:176b8275d35d 7692 /**
<> 135:176b8275d35d 7693 * @}
<> 135:176b8275d35d 7694 */
<> 135:176b8275d35d 7695
<> 135:176b8275d35d 7696 /** @defgroup ADC_LL_EC_REGISTERS ADC registers compliant with specific purpose
<> 135:176b8275d35d 7697 * @{
<> 135:176b8275d35d 7698 */
<> 135:176b8275d35d 7699 /* List of ADC registers intended to be used (most commonly) with */
<> 135:176b8275d35d 7700 /* DMA transfer. */
<> 135:176b8275d35d 7701 /* Refer to function @ref LL_ADC_DMA_GetRegAddr(). */
<> 135:176b8275d35d 7702 #define LL_ADC_DMA_REG_REGULAR_DATA ((uint32_t)0x00000000U) /* ADC group regular conversion data register (corresponding to register DR) to be used with ADC configured in independent mode. Without DMA transfer, register accessed by LL function @ref LL_ADC_REG_ReadConversionData32() and other functions @ref LL_ADC_REG_ReadConversionDatax() */
<> 135:176b8275d35d 7703 /**
<> 135:176b8275d35d 7704 * @}
<> 135:176b8275d35d 7705 */
<> 135:176b8275d35d 7706
<> 135:176b8275d35d 7707 /** @defgroup ADC_LL_EC_COMMON_PATH_INTERNAL ADC common - Measurement path to internal channels
<> 135:176b8275d35d 7708 * @{
<> 135:176b8275d35d 7709 */
<> 135:176b8275d35d 7710 /* Note: Other measurement paths to internal channels may be available */
<> 135:176b8275d35d 7711 /* (connections to other peripherals). */
<> 135:176b8275d35d 7712 /* If they are not listed below, they do not require any specific */
<> 135:176b8275d35d 7713 /* path enable. In this case, Access to measurement path is done */
<> 135:176b8275d35d 7714 /* only by selecting the corresponding ADC internal channel. */
<> 135:176b8275d35d 7715 #define LL_ADC_PATH_INTERNAL_NONE ((uint32_t)0x00000000U)/*!< ADC measurement pathes all disabled */
<> 135:176b8275d35d 7716 #define LL_ADC_PATH_INTERNAL_VREFINT (ADC_CR2_TSVREFE) /*!< ADC measurement path to internal channel VrefInt */
<> 135:176b8275d35d 7717 #define LL_ADC_PATH_INTERNAL_TEMPSENSOR (ADC_CR2_TSVREFE) /*!< ADC measurement path to internal channel temperature sensor */
<> 135:176b8275d35d 7718 /**
<> 135:176b8275d35d 7719 * @}
<> 135:176b8275d35d 7720 */
<> 135:176b8275d35d 7721
<> 135:176b8275d35d 7722 /** @defgroup ADC_LL_EC_RESOLUTION ADC instance - Resolution
<> 135:176b8275d35d 7723 * @{
<> 135:176b8275d35d 7724 */
<> 135:176b8275d35d 7725 #define LL_ADC_RESOLUTION_12B ((uint32_t)0x00000000U) /*!< ADC resolution 12 bits */
<> 135:176b8275d35d 7726 /**
<> 135:176b8275d35d 7727 * @}
<> 135:176b8275d35d 7728 */
<> 135:176b8275d35d 7729
<> 135:176b8275d35d 7730 /** @defgroup ADC_LL_EC_DATA_ALIGN ADC instance - Data alignment
<> 135:176b8275d35d 7731 * @{
<> 135:176b8275d35d 7732 */
<> 135:176b8275d35d 7733 #define LL_ADC_DATA_ALIGN_RIGHT ((uint32_t)0x00000000U)/*!< ADC conversion data alignment: right aligned (alignment on data register LSB bit 0)*/
<> 135:176b8275d35d 7734 #define LL_ADC_DATA_ALIGN_LEFT (ADC_CR2_ALIGN) /*!< ADC conversion data alignment: left aligned (aligment on data register MSB bit 15)*/
<> 135:176b8275d35d 7735 /**
<> 135:176b8275d35d 7736 * @}
<> 135:176b8275d35d 7737 */
<> 135:176b8275d35d 7738
<> 135:176b8275d35d 7739 /** @defgroup ADC_LL_EC_SCAN_SELECTION ADC instance - Scan selection
<> 135:176b8275d35d 7740 * @{
<> 135:176b8275d35d 7741 */
<> 135:176b8275d35d 7742 #define LL_ADC_SEQ_SCAN_DISABLE ((uint32_t)0x00000000U) /*!< ADC conversion is performed in unitary conversion mode (one channel converted, that defined in rank 1). Configuration of both groups regular and injected sequencers (sequence length, ...) is discarded: equivalent to length of 1 rank.*/
<> 135:176b8275d35d 7743 #define LL_ADC_SEQ_SCAN_ENABLE ((uint32_t)ADC_CR1_SCAN) /*!< ADC conversions are performed in sequence conversions mode, according to configuration of both groups regular and injected sequencers (sequence length, ...). */
<> 135:176b8275d35d 7744 /**
<> 135:176b8275d35d 7745 * @}
<> 135:176b8275d35d 7746 */
<> 135:176b8275d35d 7747
<> 135:176b8275d35d 7748 /** @defgroup ADC_LL_EC_GROUPS ADC instance - Groups
<> 135:176b8275d35d 7749 * @{
<> 135:176b8275d35d 7750 */
<> 135:176b8275d35d 7751 #define LL_ADC_GROUP_REGULAR ((uint32_t)0x00000001U) /*!< ADC group regular (available on all STM32 devices) */
<> 135:176b8275d35d 7752 #define LL_ADC_GROUP_INJECTED ((uint32_t)0x00000002U) /*!< ADC group injected (not available on all STM32 devices)*/
<> 135:176b8275d35d 7753 #define LL_ADC_GROUP_REGULAR_INJECTED ((uint32_t)0x00000003U) /*!< ADC both groups regular and injected */
<> 135:176b8275d35d 7754 /**
<> 135:176b8275d35d 7755 * @}
<> 135:176b8275d35d 7756 */
<> 135:176b8275d35d 7757
<> 135:176b8275d35d 7758 /** @defgroup ADC_LL_EC_CHANNEL ADC instance - Channel number
<> 135:176b8275d35d 7759 * @{
<> 135:176b8275d35d 7760 */
<> 135:176b8275d35d 7761 #define LL_ADC_CHANNEL_0 (ADC_CHANNEL_0_NUMBER | ADC_CHANNEL_0_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN0 */
<> 135:176b8275d35d 7762 #define LL_ADC_CHANNEL_1 (ADC_CHANNEL_1_NUMBER | ADC_CHANNEL_1_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN1 */
<> 135:176b8275d35d 7763 #define LL_ADC_CHANNEL_2 (ADC_CHANNEL_2_NUMBER | ADC_CHANNEL_2_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN2 */
<> 135:176b8275d35d 7764 #define LL_ADC_CHANNEL_3 (ADC_CHANNEL_3_NUMBER | ADC_CHANNEL_3_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN3 */
<> 135:176b8275d35d 7765 #define LL_ADC_CHANNEL_4 (ADC_CHANNEL_4_NUMBER | ADC_CHANNEL_4_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN4 */
<> 135:176b8275d35d 7766 #define LL_ADC_CHANNEL_5 (ADC_CHANNEL_5_NUMBER | ADC_CHANNEL_5_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN5 */
<> 135:176b8275d35d 7767 #define LL_ADC_CHANNEL_6 (ADC_CHANNEL_6_NUMBER | ADC_CHANNEL_6_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN6 */
<> 135:176b8275d35d 7768 #define LL_ADC_CHANNEL_7 (ADC_CHANNEL_7_NUMBER | ADC_CHANNEL_7_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN7 */
<> 135:176b8275d35d 7769 #define LL_ADC_CHANNEL_8 (ADC_CHANNEL_8_NUMBER | ADC_CHANNEL_8_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN8 */
<> 135:176b8275d35d 7770 #define LL_ADC_CHANNEL_9 (ADC_CHANNEL_9_NUMBER | ADC_CHANNEL_9_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN9 */
<> 135:176b8275d35d 7771 #define LL_ADC_CHANNEL_10 (ADC_CHANNEL_10_NUMBER | ADC_CHANNEL_10_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN10 */
<> 135:176b8275d35d 7772 #define LL_ADC_CHANNEL_11 (ADC_CHANNEL_11_NUMBER | ADC_CHANNEL_11_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN11 */
<> 135:176b8275d35d 7773 #define LL_ADC_CHANNEL_12 (ADC_CHANNEL_12_NUMBER | ADC_CHANNEL_12_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN12 */
<> 135:176b8275d35d 7774 #define LL_ADC_CHANNEL_13 (ADC_CHANNEL_13_NUMBER | ADC_CHANNEL_13_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN13 */
<> 135:176b8275d35d 7775 #define LL_ADC_CHANNEL_14 (ADC_CHANNEL_14_NUMBER | ADC_CHANNEL_14_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN14 */
<> 135:176b8275d35d 7776 #define LL_ADC_CHANNEL_15 (ADC_CHANNEL_15_NUMBER | ADC_CHANNEL_15_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN15 */
<> 135:176b8275d35d 7777 #define LL_ADC_CHANNEL_16 (ADC_CHANNEL_16_NUMBER | ADC_CHANNEL_16_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN16 */
<> 135:176b8275d35d 7778 #define LL_ADC_CHANNEL_17 (ADC_CHANNEL_17_NUMBER | ADC_CHANNEL_17_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN17 */
<> 135:176b8275d35d 7779 #define LL_ADC_CHANNEL_VREFINT (LL_ADC_CHANNEL_17 | ADC_CHANNEL_ID_INTERNAL_CH) /*!< ADC internal channel connected to VrefInt: Internal voltage reference. On STM32F37x, ADC channel available only on ADC instance: ADC1. */
<> 135:176b8275d35d 7780 #define LL_ADC_CHANNEL_TEMPSENSOR (LL_ADC_CHANNEL_16 | ADC_CHANNEL_ID_INTERNAL_CH) /*!< ADC internal channel connected to Temperature sensor. */
<> 135:176b8275d35d 7781 /**
<> 135:176b8275d35d 7782 * @}
<> 135:176b8275d35d 7783 */
<> 135:176b8275d35d 7784
<> 135:176b8275d35d 7785 /** @defgroup ADC_LL_EC_REG_TRIGGER_SOURCE ADC group regular - Trigger source
<> 135:176b8275d35d 7786 * @{
<> 135:176b8275d35d 7787 */
<> 135:176b8275d35d 7788 #define LL_ADC_REG_TRIG_SOFTWARE (ADC_CR2_EXTSEL_2 | ADC_CR2_EXTSEL_1 | ADC_CR2_EXTSEL_0) /*!< ADC group regular conversion trigger internal (SW start) */
<> 135:176b8275d35d 7789 #define LL_ADC_REG_TRIG_EXT_TIM2_CH2 (ADC_CR2_EXTSEL_1 | ADC_CR2_EXTSEL_0) /*!< ADC group regular conversion trigger external from TIM2 CC2. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 7790 #define LL_ADC_REG_TRIG_EXT_TIM3_TRGO (ADC_CR2_EXTSEL_2) /*!< ADC group regular conversion trigger external from TIM3 TRGO. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 7791 #define LL_ADC_REG_TRIG_EXT_TIM4_CH2 (ADC_CR2_EXTSEL_2 | ADC_CR2_EXTSEL_0) /*!< ADC group regular conversion trigger external from TIM4 CC4. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 7792 #define LL_ADC_REG_TRIG_EXT_TIM19_TRGO ((uint32_t)0x00000000U) /*!< ADC group regular conversion trigger external from TIM19 TRGO. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 7793 #define LL_ADC_REG_TRIG_EXT_TIM19_CH3 (ADC_CR2_EXTSEL_0) /*!< ADC group regular conversion trigger external from TIM19 CC3. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 7794 #define LL_ADC_REG_TRIG_EXT_TIM19_CH4 (ADC_CR2_EXTSEL_1) /*!< ADC group regular conversion trigger external from TIM19 CC4. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 7795 #define LL_ADC_REG_TRIG_EXT_EXTI_LINE11 (ADC_CR2_EXTSEL_2 | ADC_CR2_EXTSEL_1) /*!< ADC group regular conversion trigger external interrupt line 11. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 7796 /**
<> 135:176b8275d35d 7797 * @}
<> 135:176b8275d35d 7798 */
<> 135:176b8275d35d 7799
<> 135:176b8275d35d 7800 /** @defgroup ADC_LL_EC_REG_TRIGGER_EDGE ADC group regular - Trigger edge
<> 135:176b8275d35d 7801 * @{
<> 135:176b8275d35d 7802 */
<> 135:176b8275d35d 7803 #define LL_ADC_REG_TRIG_EXT_RISING ((uint32_t)0x00000000U) /*!< ADC group regular conversion trigger polarity set to rising edge */
<> 135:176b8275d35d 7804 /**
<> 135:176b8275d35d 7805 * @}
<> 135:176b8275d35d 7806 */
<> 135:176b8275d35d 7807
<> 135:176b8275d35d 7808 /** @defgroup ADC_LL_EC_REG_CONTINUOUS_MODE ADC group regular - Continuous mode
<> 135:176b8275d35d 7809 * @{
<> 135:176b8275d35d 7810 */
<> 135:176b8275d35d 7811 #define LL_ADC_REG_CONV_SINGLE ((uint32_t)0x00000000U)/*!< ADC conversions are performed in single mode: one conversion per trigger */
<> 135:176b8275d35d 7812 #define LL_ADC_REG_CONV_CONTINUOUS (ADC_CR2_CONT) /*!< ADC conversions are performed in continuous mode: after the first trigger, following conversions launched successively automatically */
<> 135:176b8275d35d 7813 /**
<> 135:176b8275d35d 7814 * @}
<> 135:176b8275d35d 7815 */
<> 135:176b8275d35d 7816
<> 135:176b8275d35d 7817 /** @defgroup ADC_LL_EC_REG_DMA_TRANSFER ADC group regular - DMA transfer
<> 135:176b8275d35d 7818 * @{
<> 135:176b8275d35d 7819 */
<> 135:176b8275d35d 7820 #define LL_ADC_REG_DMA_TRANSFER_NONE ((uint32_t)0x00000000U) /*!< ADC conversions are not transferred by DMA */
<> 135:176b8275d35d 7821 #define LL_ADC_REG_DMA_TRANSFER_UNLIMITED (ADC_CR2_DMA) /*!< ADC conversions are transferred by DMA, in unlimited mode: DMA transfer requests are unlimited, whatever number of DMA data transferred (number of ADC conversions). This ADC mode is intended to be used with DMA mode circular. */
<> 135:176b8275d35d 7822 /**
<> 135:176b8275d35d 7823 * @}
<> 135:176b8275d35d 7824 */
<> 135:176b8275d35d 7825
<> 135:176b8275d35d 7826 /** @defgroup ADC_LL_EC_REG_SEQ_SCAN_LENGTH ADC group regular - Sequencer scan length
<> 135:176b8275d35d 7827 * @{
<> 135:176b8275d35d 7828 */
<> 135:176b8275d35d 7829 #define LL_ADC_REG_SEQ_SCAN_DISABLE ((uint32_t)0x00000000U) /*!< ADC group regular sequencer disable (equivalent to sequencer of 1 rank: ADC conversion on only 1 channel) */
<> 135:176b8275d35d 7830 #define LL_ADC_REG_SEQ_SCAN_ENABLE_2RANKS ( ADC_SQR1_L_0) /*!< ADC group regular sequencer enable with 2 ranks in the sequence */
<> 135:176b8275d35d 7831 #define LL_ADC_REG_SEQ_SCAN_ENABLE_3RANKS ( ADC_SQR1_L_1 ) /*!< ADC group regular sequencer enable with 3 ranks in the sequence */
<> 135:176b8275d35d 7832 #define LL_ADC_REG_SEQ_SCAN_ENABLE_4RANKS ( ADC_SQR1_L_1 | ADC_SQR1_L_0) /*!< ADC group regular sequencer enable with 4 ranks in the sequence */
<> 135:176b8275d35d 7833 #define LL_ADC_REG_SEQ_SCAN_ENABLE_5RANKS ( ADC_SQR1_L_2 ) /*!< ADC group regular sequencer enable with 5 ranks in the sequence */
<> 135:176b8275d35d 7834 #define LL_ADC_REG_SEQ_SCAN_ENABLE_6RANKS ( ADC_SQR1_L_2 | ADC_SQR1_L_0) /*!< ADC group regular sequencer enable with 6 ranks in the sequence */
<> 135:176b8275d35d 7835 #define LL_ADC_REG_SEQ_SCAN_ENABLE_7RANKS ( ADC_SQR1_L_2 | ADC_SQR1_L_1 ) /*!< ADC group regular sequencer enable with 7 ranks in the sequence */
<> 135:176b8275d35d 7836 #define LL_ADC_REG_SEQ_SCAN_ENABLE_8RANKS ( ADC_SQR1_L_2 | ADC_SQR1_L_1 | ADC_SQR1_L_0) /*!< ADC group regular sequencer enable with 8 ranks in the sequence */
<> 135:176b8275d35d 7837 #define LL_ADC_REG_SEQ_SCAN_ENABLE_9RANKS (ADC_SQR1_L_3 ) /*!< ADC group regular sequencer enable with 9 ranks in the sequence */
<> 135:176b8275d35d 7838 #define LL_ADC_REG_SEQ_SCAN_ENABLE_10RANKS (ADC_SQR1_L_3 | ADC_SQR1_L_0) /*!< ADC group regular sequencer enable with 10 ranks in the sequence */
<> 135:176b8275d35d 7839 #define LL_ADC_REG_SEQ_SCAN_ENABLE_11RANKS (ADC_SQR1_L_3 | ADC_SQR1_L_1 ) /*!< ADC group regular sequencer enable with 11 ranks in the sequence */
<> 135:176b8275d35d 7840 #define LL_ADC_REG_SEQ_SCAN_ENABLE_12RANKS (ADC_SQR1_L_3 | ADC_SQR1_L_1 | ADC_SQR1_L_0) /*!< ADC group regular sequencer enable with 12 ranks in the sequence */
<> 135:176b8275d35d 7841 #define LL_ADC_REG_SEQ_SCAN_ENABLE_13RANKS (ADC_SQR1_L_3 | ADC_SQR1_L_2 ) /*!< ADC group regular sequencer enable with 13 ranks in the sequence */
<> 135:176b8275d35d 7842 #define LL_ADC_REG_SEQ_SCAN_ENABLE_14RANKS (ADC_SQR1_L_3 | ADC_SQR1_L_2 | ADC_SQR1_L_0) /*!< ADC group regular sequencer enable with 14 ranks in the sequence */
<> 135:176b8275d35d 7843 #define LL_ADC_REG_SEQ_SCAN_ENABLE_15RANKS (ADC_SQR1_L_3 | ADC_SQR1_L_2 | ADC_SQR1_L_1 ) /*!< ADC group regular sequencer enable with 15 ranks in the sequence */
<> 135:176b8275d35d 7844 #define LL_ADC_REG_SEQ_SCAN_ENABLE_16RANKS (ADC_SQR1_L_3 | ADC_SQR1_L_2 | ADC_SQR1_L_1 | ADC_SQR1_L_0) /*!< ADC group regular sequencer enable with 16 ranks in the sequence */
<> 135:176b8275d35d 7845 /**
<> 135:176b8275d35d 7846 * @}
<> 135:176b8275d35d 7847 */
<> 135:176b8275d35d 7848
<> 135:176b8275d35d 7849 /** @defgroup ADC_LL_EC_REG_SEQ_DISCONT_MODE ADC group regular - Sequencer discontinuous mode
<> 135:176b8275d35d 7850 * @{
<> 135:176b8275d35d 7851 */
<> 135:176b8275d35d 7852 #define LL_ADC_REG_SEQ_DISCONT_DISABLE ((uint32_t)0x00000000U) /*!< ADC group regular sequencer discontinuous mode disable */
<> 135:176b8275d35d 7853 #define LL_ADC_REG_SEQ_DISCONT_1RANK ( ADC_CR1_DISCEN) /*!< ADC group regular sequencer discontinuous mode enable with sequence interruption every rank */
<> 135:176b8275d35d 7854 #define LL_ADC_REG_SEQ_DISCONT_2RANKS ( ADC_CR1_DISCNUM_0 | ADC_CR1_DISCEN) /*!< ADC group regular sequencer discontinuous mode enabled with sequence interruption every 2 ranks */
<> 135:176b8275d35d 7855 #define LL_ADC_REG_SEQ_DISCONT_3RANKS ( ADC_CR1_DISCNUM_1 | ADC_CR1_DISCEN) /*!< ADC group regular sequencer discontinuous mode enable with sequence interruption every 3 ranks */
<> 135:176b8275d35d 7856 #define LL_ADC_REG_SEQ_DISCONT_4RANKS ( ADC_CR1_DISCNUM_1 | ADC_CR1_DISCNUM_0 | ADC_CR1_DISCEN) /*!< ADC group regular sequencer discontinuous mode enable with sequence interruption every 4 ranks */
<> 135:176b8275d35d 7857 #define LL_ADC_REG_SEQ_DISCONT_5RANKS (ADC_CR1_DISCNUM_2 | ADC_CR1_DISCEN) /*!< ADC group regular sequencer discontinuous mode enable with sequence interruption every 5 ranks */
<> 135:176b8275d35d 7858 #define LL_ADC_REG_SEQ_DISCONT_6RANKS (ADC_CR1_DISCNUM_2 | ADC_CR1_DISCNUM_0 | ADC_CR1_DISCEN) /*!< ADC group regular sequencer discontinuous mode enable with sequence interruption every 6 ranks */
<> 135:176b8275d35d 7859 #define LL_ADC_REG_SEQ_DISCONT_7RANKS (ADC_CR1_DISCNUM_2 | ADC_CR1_DISCNUM_1 | ADC_CR1_DISCEN) /*!< ADC group regular sequencer discontinuous mode enable with sequence interruption every 7 ranks */
<> 135:176b8275d35d 7860 #define LL_ADC_REG_SEQ_DISCONT_8RANKS (ADC_CR1_DISCNUM_2 | ADC_CR1_DISCNUM_1 | ADC_CR1_DISCNUM_0 | ADC_CR1_DISCEN) /*!< ADC group regular sequencer discontinuous mode enable with sequence interruption every 8 ranks */
<> 135:176b8275d35d 7861 /**
<> 135:176b8275d35d 7862 * @}
<> 135:176b8275d35d 7863 */
<> 135:176b8275d35d 7864
<> 135:176b8275d35d 7865 /** @defgroup ADC_LL_EC_REG_RANKS ADC group regular - Sequencer ranks
<> 135:176b8275d35d 7866 * @{
<> 135:176b8275d35d 7867 */
<> 135:176b8275d35d 7868 #define LL_ADC_REG_RANK_1 (ADC_SQR3_REGOFFSET | ADC_REG_RANK_1_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 1 */
<> 135:176b8275d35d 7869 #define LL_ADC_REG_RANK_2 (ADC_SQR3_REGOFFSET | ADC_REG_RANK_2_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 2 */
<> 135:176b8275d35d 7870 #define LL_ADC_REG_RANK_3 (ADC_SQR3_REGOFFSET | ADC_REG_RANK_3_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 3 */
<> 135:176b8275d35d 7871 #define LL_ADC_REG_RANK_4 (ADC_SQR3_REGOFFSET | ADC_REG_RANK_4_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 4 */
<> 135:176b8275d35d 7872 #define LL_ADC_REG_RANK_5 (ADC_SQR3_REGOFFSET | ADC_REG_RANK_5_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 5 */
<> 135:176b8275d35d 7873 #define LL_ADC_REG_RANK_6 (ADC_SQR3_REGOFFSET | ADC_REG_RANK_6_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 6 */
<> 135:176b8275d35d 7874 #define LL_ADC_REG_RANK_7 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_7_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 7 */
<> 135:176b8275d35d 7875 #define LL_ADC_REG_RANK_8 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_8_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 8 */
<> 135:176b8275d35d 7876 #define LL_ADC_REG_RANK_9 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_9_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 9 */
<> 135:176b8275d35d 7877 #define LL_ADC_REG_RANK_10 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_10_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 10 */
<> 135:176b8275d35d 7878 #define LL_ADC_REG_RANK_11 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_11_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 11 */
<> 135:176b8275d35d 7879 #define LL_ADC_REG_RANK_12 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_12_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 12 */
<> 135:176b8275d35d 7880 #define LL_ADC_REG_RANK_13 (ADC_SQR1_REGOFFSET | ADC_REG_RANK_13_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 13 */
<> 135:176b8275d35d 7881 #define LL_ADC_REG_RANK_14 (ADC_SQR1_REGOFFSET | ADC_REG_RANK_14_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 14 */
<> 135:176b8275d35d 7882 #define LL_ADC_REG_RANK_15 (ADC_SQR1_REGOFFSET | ADC_REG_RANK_15_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 15 */
<> 135:176b8275d35d 7883 #define LL_ADC_REG_RANK_16 (ADC_SQR1_REGOFFSET | ADC_REG_RANK_16_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 16 */
<> 135:176b8275d35d 7884 /**
<> 135:176b8275d35d 7885 * @}
<> 135:176b8275d35d 7886 */
<> 135:176b8275d35d 7887
<> 135:176b8275d35d 7888 /** @defgroup ADC_LL_EC_INJ_TRIGGER_SOURCE ADC group injected - Trigger source
<> 135:176b8275d35d 7889 * @{
<> 135:176b8275d35d 7890 */
<> 135:176b8275d35d 7891 #define LL_ADC_INJ_TRIG_SOFTWARE (ADC_CR2_JEXTSEL_2 | ADC_CR2_JEXTSEL_1 | ADC_CR2_JEXTSEL_0) /*!< ADC group injected conversion trigger internal (SW start) */
<> 135:176b8275d35d 7892 #define LL_ADC_INJ_TRIG_EXT_TIM2_TRGO (ADC_CR2_JEXTSEL_1) /*!< ADC group injected conversion trigger external from TIM2 TRGO. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 7893 #define LL_ADC_INJ_TRIG_EXT_TIM2_CH1 (ADC_CR2_JEXTSEL_1 | ADC_CR2_JEXTSEL_0) /*!< ADC group injected conversion trigger external from TIM2 CC1. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 7894 #define LL_ADC_INJ_TRIG_EXT_TIM3_CH4 (ADC_CR2_JEXTSEL_2) /*!< ADC group injected conversion trigger external from TIM3 CC4. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 7895 #define LL_ADC_INJ_TRIG_EXT_TIM4_TRGO (ADC_CR2_JEXTSEL_2 | ADC_CR2_JEXTSEL_0) /*!< ADC group injected conversion trigger external from TIM4 TRGO. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 7896 #define LL_ADC_INJ_TRIG_EXT_TIM19_CH1 ((uint32_t)0x00000000U) /*!< ADC group injected conversion trigger external from TIM19 CC1. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 7897 #define LL_ADC_INJ_TRIG_EXT_TIM19_CH2 (ADC_CR2_JEXTSEL_0) /*!< ADC group injected conversion trigger external from TIM19 CC2. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 7898 #define LL_ADC_INJ_TRIG_EXT_EXTI_LINE15 (ADC_CR2_JEXTSEL_2 | ADC_CR2_JEXTSEL_1) /*!< ADC group injected conversion trigger external interrupt line 15. Trigger edge set to rising edge (default setting). */
<> 135:176b8275d35d 7899 /**
<> 135:176b8275d35d 7900 * @}
<> 135:176b8275d35d 7901 */
<> 135:176b8275d35d 7902
<> 135:176b8275d35d 7903 /** @defgroup ADC_LL_EC_INJ_TRIGGER_EDGE ADC group injected - Trigger edge
<> 135:176b8275d35d 7904 * @{
<> 135:176b8275d35d 7905 */
<> 135:176b8275d35d 7906 #define LL_ADC_INJ_TRIG_EXT_RISING ((uint32_t)0x00000000U) /*!< ADC group injected conversion trigger polarity set to rising edge */
<> 135:176b8275d35d 7907 /**
<> 135:176b8275d35d 7908 * @}
<> 135:176b8275d35d 7909 */
<> 135:176b8275d35d 7910
<> 135:176b8275d35d 7911 /** @defgroup ADC_LL_EC_INJ_TRIG_AUTO ADC group injected - Automatic trigger mode
<> 135:176b8275d35d 7912 * @{
<> 135:176b8275d35d 7913 */
<> 135:176b8275d35d 7914 #define LL_ADC_INJ_TRIG_INDEPENDENT ((uint32_t)0x00000000U)/*!< ADC group injected conversion trigger independent. Setting mandatory if ADC group injected injected trigger source is set to an external trigger. */
<> 135:176b8275d35d 7915 #define LL_ADC_INJ_TRIG_FROM_GRP_REGULAR (ADC_CR1_JAUTO) /*!< ADC group injected conversion trigger from ADC group regular. Setting compliant only with group injected trigger source set to SW start, without any further action on ADC group injected conversion start or stop: in this case, ADC group injected is controlled only from ADC group regular. */
<> 135:176b8275d35d 7916 /**
<> 135:176b8275d35d 7917 * @}
<> 135:176b8275d35d 7918 */
<> 135:176b8275d35d 7919
<> 135:176b8275d35d 7920
<> 135:176b8275d35d 7921 /** @defgroup ADC_LL_EC_INJ_SEQ_SCAN_LENGTH ADC group injected - Sequencer scan length
<> 135:176b8275d35d 7922 * @{
<> 135:176b8275d35d 7923 */
<> 135:176b8275d35d 7924 #define LL_ADC_INJ_SEQ_SCAN_DISABLE ((uint32_t)0x00000000U) /*!< ADC group injected sequencer disable (equivalent to sequencer of 1 rank: ADC conversion on only 1 channel) */
<> 135:176b8275d35d 7925 #define LL_ADC_INJ_SEQ_SCAN_ENABLE_2RANKS ( ADC_JSQR_JL_0) /*!< ADC group injected sequencer enable with 2 ranks in the sequence */
<> 135:176b8275d35d 7926 #define LL_ADC_INJ_SEQ_SCAN_ENABLE_3RANKS (ADC_JSQR_JL_1 ) /*!< ADC group injected sequencer enable with 3 ranks in the sequence */
<> 135:176b8275d35d 7927 #define LL_ADC_INJ_SEQ_SCAN_ENABLE_4RANKS (ADC_JSQR_JL_1 | ADC_JSQR_JL_0) /*!< ADC group injected sequencer enable with 4 ranks in the sequence */
<> 135:176b8275d35d 7928 /**
<> 135:176b8275d35d 7929 * @}
<> 135:176b8275d35d 7930 */
<> 135:176b8275d35d 7931
<> 135:176b8275d35d 7932 /** @defgroup ADC_LL_EC_INJ_SEQ_DISCONT_MODE ADC group injected - Sequencer discontinuous mode
<> 135:176b8275d35d 7933 * @{
<> 135:176b8275d35d 7934 */
<> 135:176b8275d35d 7935 #define LL_ADC_INJ_SEQ_DISCONT_DISABLE ((uint32_t)0x00000000U)/*!< ADC group injected sequencer discontinuous mode disable */
<> 135:176b8275d35d 7936 #define LL_ADC_INJ_SEQ_DISCONT_1RANK (ADC_CR1_JDISCEN) /*!< ADC group injected sequencer discontinuous mode enable with sequence interruption every rank */
<> 135:176b8275d35d 7937 /**
<> 135:176b8275d35d 7938 * @}
<> 135:176b8275d35d 7939 */
<> 135:176b8275d35d 7940
<> 135:176b8275d35d 7941 /** @defgroup ADC_LL_EC_INJ_RANKS ADC group injected - Sequencer ranks
<> 135:176b8275d35d 7942 * @{
<> 135:176b8275d35d 7943 */
<> 135:176b8275d35d 7944 #define LL_ADC_INJ_RANK_1 (ADC_JDR1_REGOFFSET | ADC_JOFR1_REGOFFSET | ADC_INJ_RANK_1_JSQR_BITOFFSET_POS) /*!< ADC group injected sequencer rank 1 */
<> 135:176b8275d35d 7945 #define LL_ADC_INJ_RANK_2 (ADC_JDR2_REGOFFSET | ADC_JOFR2_REGOFFSET | ADC_INJ_RANK_2_JSQR_BITOFFSET_POS) /*!< ADC group injected sequencer rank 2 */
<> 135:176b8275d35d 7946 #define LL_ADC_INJ_RANK_3 (ADC_JDR3_REGOFFSET | ADC_JOFR3_REGOFFSET | ADC_INJ_RANK_3_JSQR_BITOFFSET_POS) /*!< ADC group injected sequencer rank 3 */
<> 135:176b8275d35d 7947 #define LL_ADC_INJ_RANK_4 (ADC_JDR4_REGOFFSET | ADC_JOFR4_REGOFFSET | ADC_INJ_RANK_4_JSQR_BITOFFSET_POS) /*!< ADC group injected sequencer rank 4 */
<> 135:176b8275d35d 7948 /**
<> 135:176b8275d35d 7949 * @}
<> 135:176b8275d35d 7950 */
<> 135:176b8275d35d 7951
<> 135:176b8275d35d 7952 /** @defgroup ADC_LL_EC_SAMPLINGTIME Channel - Sampling time
<> 135:176b8275d35d 7953 * @{
<> 135:176b8275d35d 7954 */
<> 135:176b8275d35d 7955 #define LL_ADC_SAMPLINGTIME_1CYCLE_5 ((uint32_t)0x00000000U) /*!< Sampling time 1.5 ADC clock cycle */
<> 135:176b8275d35d 7956 #define LL_ADC_SAMPLINGTIME_7CYCLES_5 (ADC_SMPR2_SMP0_0) /*!< Sampling time 7.5 ADC clock cycles */
<> 135:176b8275d35d 7957 #define LL_ADC_SAMPLINGTIME_13CYCLES_5 (ADC_SMPR2_SMP0_1) /*!< Sampling time 13.5 ADC clock cycles */
<> 135:176b8275d35d 7958 #define LL_ADC_SAMPLINGTIME_28CYCLES_5 (ADC_SMPR2_SMP0_1 | ADC_SMPR2_SMP0_0) /*!< Sampling time 28.5 ADC clock cycles */
<> 135:176b8275d35d 7959 #define LL_ADC_SAMPLINGTIME_41CYCLES_5 (ADC_SMPR2_SMP0_2) /*!< Sampling time 41.5 ADC clock cycles */
<> 135:176b8275d35d 7960 #define LL_ADC_SAMPLINGTIME_55CYCLES_5 (ADC_SMPR2_SMP0_2 | ADC_SMPR2_SMP0_0) /*!< Sampling time 55.5 ADC clock cycles */
<> 135:176b8275d35d 7961 #define LL_ADC_SAMPLINGTIME_71CYCLES_5 (ADC_SMPR2_SMP0_2 | ADC_SMPR2_SMP0_1) /*!< Sampling time 71.5 ADC clock cycles */
<> 135:176b8275d35d 7962 #define LL_ADC_SAMPLINGTIME_239CYCLES_5 (ADC_SMPR2_SMP0_2 | ADC_SMPR2_SMP0_1 | ADC_SMPR2_SMP0_0) /*!< Sampling time 239.5 ADC clock cycles */
<> 135:176b8275d35d 7963 /**
<> 135:176b8275d35d 7964 * @}
<> 135:176b8275d35d 7965 */
<> 135:176b8275d35d 7966
<> 135:176b8275d35d 7967 /** @defgroup ADC_LL_EC_AWD_NUMBER Analog watchdog - Analog watchdog number
<> 135:176b8275d35d 7968 * @{
<> 135:176b8275d35d 7969 */
<> 135:176b8275d35d 7970 #define LL_ADC_AWD1 (ADC_AWD_CR1_CHANNEL_MASK | ADC_AWD_CR1_REGOFFSET) /*!< ADC analog watchdog number 1 */
<> 135:176b8275d35d 7971 /**
<> 135:176b8275d35d 7972 * @}
<> 135:176b8275d35d 7973 */
<> 135:176b8275d35d 7974
<> 135:176b8275d35d 7975 /** @defgroup ADC_LL_EC_AWD_CHANNELS Analog watchdog - Monitored channels
<> 135:176b8275d35d 7976 * @{
<> 135:176b8275d35d 7977 */
<> 135:176b8275d35d 7978 #define LL_ADC_AWD_DISABLE ((uint32_t)0x00000000U) /*!< ADC analog watchdog monitoring disabled */
<> 135:176b8275d35d 7979 #define LL_ADC_AWD_ALL_CHANNELS_REG ( ADC_CR1_AWDEN ) /*!< ADC analog watchdog monitoring of all channels, converted by group regular only */
<> 135:176b8275d35d 7980 #define LL_ADC_AWD_ALL_CHANNELS_INJ ( ADC_CR1_JAWDEN ) /*!< ADC analog watchdog monitoring of all channels, converted by group injected only */
<> 135:176b8275d35d 7981 #define LL_ADC_AWD_ALL_CHANNELS_REG_INJ ( ADC_CR1_JAWDEN | ADC_CR1_AWDEN ) /*!< ADC analog watchdog monitoring of all channels, converted by either group regular or injected */
<> 135:176b8275d35d 7982 #define LL_ADC_AWD_CHANNEL_0_REG ((LL_ADC_CHANNEL_0 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN0, converted by group regular only */
<> 135:176b8275d35d 7983 #define LL_ADC_AWD_CHANNEL_0_INJ ((LL_ADC_CHANNEL_0 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN0, converted by group injected only */
<> 135:176b8275d35d 7984 #define LL_ADC_AWD_CHANNEL_0_REG_INJ ((LL_ADC_CHANNEL_0 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN0, converted by either group regular or injected */
<> 135:176b8275d35d 7985 #define LL_ADC_AWD_CHANNEL_1_REG ((LL_ADC_CHANNEL_1 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN1, converted by group regular only */
<> 135:176b8275d35d 7986 #define LL_ADC_AWD_CHANNEL_1_INJ ((LL_ADC_CHANNEL_1 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN1, converted by group injected only */
<> 135:176b8275d35d 7987 #define LL_ADC_AWD_CHANNEL_1_REG_INJ ((LL_ADC_CHANNEL_1 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN1, converted by either group regular or injected */
<> 135:176b8275d35d 7988 #define LL_ADC_AWD_CHANNEL_2_REG ((LL_ADC_CHANNEL_2 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN2, converted by group regular only */
<> 135:176b8275d35d 7989 #define LL_ADC_AWD_CHANNEL_2_INJ ((LL_ADC_CHANNEL_2 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN2, converted by group injected only */
<> 135:176b8275d35d 7990 #define LL_ADC_AWD_CHANNEL_2_REG_INJ ((LL_ADC_CHANNEL_2 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN2, converted by either group regular or injected */
<> 135:176b8275d35d 7991 #define LL_ADC_AWD_CHANNEL_3_REG ((LL_ADC_CHANNEL_3 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN3, converted by group regular only */
<> 135:176b8275d35d 7992 #define LL_ADC_AWD_CHANNEL_3_INJ ((LL_ADC_CHANNEL_3 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN3, converted by group injected only */
<> 135:176b8275d35d 7993 #define LL_ADC_AWD_CHANNEL_3_REG_INJ ((LL_ADC_CHANNEL_3 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN3, converted by either group regular or injected */
<> 135:176b8275d35d 7994 #define LL_ADC_AWD_CHANNEL_4_REG ((LL_ADC_CHANNEL_4 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN4, converted by group regular only */
<> 135:176b8275d35d 7995 #define LL_ADC_AWD_CHANNEL_4_INJ ((LL_ADC_CHANNEL_4 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN4, converted by group injected only */
<> 135:176b8275d35d 7996 #define LL_ADC_AWD_CHANNEL_4_REG_INJ ((LL_ADC_CHANNEL_4 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN4, converted by either group regular or injected */
<> 135:176b8275d35d 7997 #define LL_ADC_AWD_CHANNEL_5_REG ((LL_ADC_CHANNEL_5 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN5, converted by group regular only */
<> 135:176b8275d35d 7998 #define LL_ADC_AWD_CHANNEL_5_INJ ((LL_ADC_CHANNEL_5 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN5, converted by group injected only */
<> 135:176b8275d35d 7999 #define LL_ADC_AWD_CHANNEL_5_REG_INJ ((LL_ADC_CHANNEL_5 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN5, converted by either group regular or injected */
<> 135:176b8275d35d 8000 #define LL_ADC_AWD_CHANNEL_6_REG ((LL_ADC_CHANNEL_6 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN6, converted by group regular only */
<> 135:176b8275d35d 8001 #define LL_ADC_AWD_CHANNEL_6_INJ ((LL_ADC_CHANNEL_6 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN6, converted by group injected only */
<> 135:176b8275d35d 8002 #define LL_ADC_AWD_CHANNEL_6_REG_INJ ((LL_ADC_CHANNEL_6 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN6, converted by either group regular or injected */
<> 135:176b8275d35d 8003 #define LL_ADC_AWD_CHANNEL_7_REG ((LL_ADC_CHANNEL_7 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN7, converted by group regular only */
<> 135:176b8275d35d 8004 #define LL_ADC_AWD_CHANNEL_7_INJ ((LL_ADC_CHANNEL_7 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN7, converted by group injected only */
<> 135:176b8275d35d 8005 #define LL_ADC_AWD_CHANNEL_7_REG_INJ ((LL_ADC_CHANNEL_7 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN7, converted by either group regular or injected */
<> 135:176b8275d35d 8006 #define LL_ADC_AWD_CHANNEL_8_REG ((LL_ADC_CHANNEL_8 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN8, converted by group regular only */
<> 135:176b8275d35d 8007 #define LL_ADC_AWD_CHANNEL_8_INJ ((LL_ADC_CHANNEL_8 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN8, converted by group injected only */
<> 135:176b8275d35d 8008 #define LL_ADC_AWD_CHANNEL_8_REG_INJ ((LL_ADC_CHANNEL_8 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN8, converted by either group regular or injected */
<> 135:176b8275d35d 8009 #define LL_ADC_AWD_CHANNEL_9_REG ((LL_ADC_CHANNEL_9 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN9, converted by group regular only */
<> 135:176b8275d35d 8010 #define LL_ADC_AWD_CHANNEL_9_INJ ((LL_ADC_CHANNEL_9 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN9, converted by group injected only */
<> 135:176b8275d35d 8011 #define LL_ADC_AWD_CHANNEL_9_REG_INJ ((LL_ADC_CHANNEL_9 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN9, converted by either group regular or injected */
<> 135:176b8275d35d 8012 #define LL_ADC_AWD_CHANNEL_10_REG ((LL_ADC_CHANNEL_10 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN10, converted by group regular only */
<> 135:176b8275d35d 8013 #define LL_ADC_AWD_CHANNEL_10_INJ ((LL_ADC_CHANNEL_10 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN10, converted by group injected only */
<> 135:176b8275d35d 8014 #define LL_ADC_AWD_CHANNEL_10_REG_INJ ((LL_ADC_CHANNEL_10 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN10, converted by either group regular or injected */
<> 135:176b8275d35d 8015 #define LL_ADC_AWD_CHANNEL_11_REG ((LL_ADC_CHANNEL_11 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN11, converted by group regular only */
<> 135:176b8275d35d 8016 #define LL_ADC_AWD_CHANNEL_11_INJ ((LL_ADC_CHANNEL_11 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN11, converted by group injected only */
<> 135:176b8275d35d 8017 #define LL_ADC_AWD_CHANNEL_11_REG_INJ ((LL_ADC_CHANNEL_11 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN11, converted by either group regular or injected */
<> 135:176b8275d35d 8018 #define LL_ADC_AWD_CHANNEL_12_REG ((LL_ADC_CHANNEL_12 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN12, converted by group regular only */
<> 135:176b8275d35d 8019 #define LL_ADC_AWD_CHANNEL_12_INJ ((LL_ADC_CHANNEL_12 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN12, converted by group injected only */
<> 135:176b8275d35d 8020 #define LL_ADC_AWD_CHANNEL_12_REG_INJ ((LL_ADC_CHANNEL_12 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN12, converted by either group regular or injected */
<> 135:176b8275d35d 8021 #define LL_ADC_AWD_CHANNEL_13_REG ((LL_ADC_CHANNEL_13 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN13, converted by group regular only */
<> 135:176b8275d35d 8022 #define LL_ADC_AWD_CHANNEL_13_INJ ((LL_ADC_CHANNEL_13 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN13, converted by group injected only */
<> 135:176b8275d35d 8023 #define LL_ADC_AWD_CHANNEL_13_REG_INJ ((LL_ADC_CHANNEL_13 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN13, converted by either group regular or injected */
<> 135:176b8275d35d 8024 #define LL_ADC_AWD_CHANNEL_14_REG ((LL_ADC_CHANNEL_14 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN14, converted by group regular only */
<> 135:176b8275d35d 8025 #define LL_ADC_AWD_CHANNEL_14_INJ ((LL_ADC_CHANNEL_14 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN14, converted by group injected only */
<> 135:176b8275d35d 8026 #define LL_ADC_AWD_CHANNEL_14_REG_INJ ((LL_ADC_CHANNEL_14 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN14, converted by either group regular or injected */
<> 135:176b8275d35d 8027 #define LL_ADC_AWD_CHANNEL_15_REG ((LL_ADC_CHANNEL_15 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN15, converted by group regular only */
<> 135:176b8275d35d 8028 #define LL_ADC_AWD_CHANNEL_15_INJ ((LL_ADC_CHANNEL_15 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN15, converted by group injected only */
<> 135:176b8275d35d 8029 #define LL_ADC_AWD_CHANNEL_15_REG_INJ ((LL_ADC_CHANNEL_15 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN15, converted by either group regular or injected */
<> 135:176b8275d35d 8030 #define LL_ADC_AWD_CHANNEL_16_REG ((LL_ADC_CHANNEL_16 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN16, converted by group regular only */
<> 135:176b8275d35d 8031 #define LL_ADC_AWD_CHANNEL_16_INJ ((LL_ADC_CHANNEL_16 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN16, converted by group injected only */
<> 135:176b8275d35d 8032 #define LL_ADC_AWD_CHANNEL_16_REG_INJ ((LL_ADC_CHANNEL_16 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN16, converted by either group regular or injected */
<> 135:176b8275d35d 8033 #define LL_ADC_AWD_CHANNEL_17_REG ((LL_ADC_CHANNEL_17 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN17, converted by group regular only */
<> 135:176b8275d35d 8034 #define LL_ADC_AWD_CHANNEL_17_INJ ((LL_ADC_CHANNEL_17 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN17, converted by group injected only */
<> 135:176b8275d35d 8035 #define LL_ADC_AWD_CHANNEL_17_REG_INJ ((LL_ADC_CHANNEL_17 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN17, converted by either group regular or injected */
<> 135:176b8275d35d 8036 #define LL_ADC_AWD_CH_VREFINT_REG ((LL_ADC_CHANNEL_VREFINT & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to VrefInt: Internal voltage reference, converted by group regular only */
<> 135:176b8275d35d 8037 #define LL_ADC_AWD_CH_VREFINT_INJ ((LL_ADC_CHANNEL_VREFINT & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to VrefInt: Internal voltage reference, converted by group injected only */
<> 135:176b8275d35d 8038 #define LL_ADC_AWD_CH_VREFINT_REG_INJ ((LL_ADC_CHANNEL_VREFINT & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to VrefInt: Internal voltage reference, converted by either group regular or injected */
<> 135:176b8275d35d 8039 #define LL_ADC_AWD_CH_TEMPSENSOR_REG ((LL_ADC_CHANNEL_TEMPSENSOR & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to Temperature sensor, converted by group regular only */
<> 135:176b8275d35d 8040 #define LL_ADC_AWD_CH_TEMPSENSOR_INJ ((LL_ADC_CHANNEL_TEMPSENSOR & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to Temperature sensor, converted by group injected only */
<> 135:176b8275d35d 8041 #define LL_ADC_AWD_CH_TEMPSENSOR_REG_INJ ((LL_ADC_CHANNEL_TEMPSENSOR & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to Temperature sensor, converted by either group regular or injected */
<> 135:176b8275d35d 8042 /**
<> 135:176b8275d35d 8043 * @}
<> 135:176b8275d35d 8044 */
<> 135:176b8275d35d 8045
<> 135:176b8275d35d 8046 /** @defgroup ADC_LL_EC_AWD_THRESHOLDS Analog watchdog - Thresholds
<> 135:176b8275d35d 8047 * @{
<> 135:176b8275d35d 8048 */
<> 135:176b8275d35d 8049 #define LL_ADC_AWD_THRESHOLD_HIGH (ADC_AWD_TR1_HIGH_REGOFFSET) /*!< ADC analog watchdog threshold high */
<> 135:176b8275d35d 8050 #define LL_ADC_AWD_THRESHOLD_LOW (ADC_AWD_TR1_LOW_REGOFFSET) /*!< ADC analog watchdog threshold low */
<> 135:176b8275d35d 8051 /**
<> 135:176b8275d35d 8052 * @}
<> 135:176b8275d35d 8053 */
<> 135:176b8275d35d 8054
<> 135:176b8275d35d 8055
<> 135:176b8275d35d 8056 /** @defgroup ADC_LL_EC_HW_DELAYS Definitions of ADC hardware constraints delays
<> 135:176b8275d35d 8057 * @note Only ADC IP HW delays are defined in ADC LL driver driver,
<> 135:176b8275d35d 8058 * not timeout values.
<> 135:176b8275d35d 8059 * For details on delays values, refer to descriptions in source code
<> 135:176b8275d35d 8060 * above each literal definition.
<> 135:176b8275d35d 8061 * @{
<> 135:176b8275d35d 8062 */
<> 135:176b8275d35d 8063
<> 135:176b8275d35d 8064 /* Note: Only ADC IP HW delays are defined in ADC LL driver driver, */
<> 135:176b8275d35d 8065 /* not timeout values. */
<> 135:176b8275d35d 8066 /* Timeout values for ADC operations are dependent to device clock */
<> 135:176b8275d35d 8067 /* configuration (system clock versus ADC clock), */
<> 135:176b8275d35d 8068 /* and therefore must be defined in user application. */
<> 135:176b8275d35d 8069 /* Indications for estimation of ADC timeout delays, for this */
<> 135:176b8275d35d 8070 /* STM32 serie: */
<> 135:176b8275d35d 8071 /* - ADC enable time: maximum delay is 1us */
<> 135:176b8275d35d 8072 /* (refer to device datasheet, parameter "tSTAB") */
<> 135:176b8275d35d 8073 /* - ADC conversion time: duration depending on ADC clock and ADC */
<> 135:176b8275d35d 8074 /* configuration. */
<> 135:176b8275d35d 8075 /* (refer to device reference manual, section "Timing") */
<> 135:176b8275d35d 8076
<> 135:176b8275d35d 8077 /* Delay for temperature sensor stabilization time. */
<> 135:176b8275d35d 8078 /* Literal set to maximum value (refer to device datasheet, */
<> 135:176b8275d35d 8079 /* parameter "tSTART"). */
<> 135:176b8275d35d 8080 /* Unit: us */
<> 135:176b8275d35d 8081 #define LL_ADC_DELAY_TEMPSENSOR_STAB_US ((uint32_t) 10U) /*!< Delay for internal voltage reference stabilization time */
<> 135:176b8275d35d 8082
<> 135:176b8275d35d 8083 /* Delay required between ADC disable and ADC calibration start. */
<> 135:176b8275d35d 8084 /* Note: On this STM32 serie, before starting a calibration, */
<> 135:176b8275d35d 8085 /* ADC must be disabled. */
<> 135:176b8275d35d 8086 /* A minimum number of ADC clock cycles are required */
<> 135:176b8275d35d 8087 /* between ADC disable state and calibration start. */
<> 135:176b8275d35d 8088 /* Refer to literal @ref LL_ADC_DELAY_CALIB_ENABLE_ADC_CYCLES. */
<> 135:176b8275d35d 8089 /* Wait time can be computed in user application by waiting for the */
<> 135:176b8275d35d 8090 /* equivalent number of CPU cycles, by taking into account */
<> 135:176b8275d35d 8091 /* ratio of CPU clock versus ADC clock prescalers. */
<> 135:176b8275d35d 8092 /* Unit: ADC clock cycles. */
<> 135:176b8275d35d 8093 #define LL_ADC_DELAY_DISABLE_CALIB_ADC_CYCLES ((uint32_t) 2U) /*!< Delay required between ADC disable and ADC calibration start */
<> 135:176b8275d35d 8094
<> 135:176b8275d35d 8095 /**
<> 135:176b8275d35d 8096 * @}
<> 135:176b8275d35d 8097 */
<> 135:176b8275d35d 8098
<> 135:176b8275d35d 8099 /**
<> 135:176b8275d35d 8100 * @}
<> 135:176b8275d35d 8101 */
<> 135:176b8275d35d 8102
<> 135:176b8275d35d 8103
<> 135:176b8275d35d 8104 /* Exported macro ------------------------------------------------------------*/
<> 135:176b8275d35d 8105 /** @defgroup ADC_LL_Exported_Macros ADC Exported Macros
<> 135:176b8275d35d 8106 * @{
<> 135:176b8275d35d 8107 */
<> 135:176b8275d35d 8108
<> 135:176b8275d35d 8109 /** @defgroup ADC_LL_EM_WRITE_READ Common write and read registers Macros
<> 135:176b8275d35d 8110 * @{
<> 135:176b8275d35d 8111 */
<> 135:176b8275d35d 8112
<> 135:176b8275d35d 8113 /**
<> 135:176b8275d35d 8114 * @brief Write a value in ADC register
<> 135:176b8275d35d 8115 * @param __INSTANCE__ ADC Instance
<> 135:176b8275d35d 8116 * @param __REG__ Register to be written
<> 135:176b8275d35d 8117 * @param __VALUE__ Value to be written in the register
<> 135:176b8275d35d 8118 * @retval None
<> 135:176b8275d35d 8119 */
<> 135:176b8275d35d 8120 #define LL_ADC_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__))
<> 135:176b8275d35d 8121
<> 135:176b8275d35d 8122 /**
<> 135:176b8275d35d 8123 * @brief Read a value in ADC register
<> 135:176b8275d35d 8124 * @param __INSTANCE__ ADC Instance
<> 135:176b8275d35d 8125 * @param __REG__ Register to be read
<> 135:176b8275d35d 8126 * @retval Register value
<> 135:176b8275d35d 8127 */
<> 135:176b8275d35d 8128 #define LL_ADC_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__)
<> 135:176b8275d35d 8129 /**
<> 135:176b8275d35d 8130 * @}
<> 135:176b8275d35d 8131 */
<> 135:176b8275d35d 8132
<> 135:176b8275d35d 8133 /** @defgroup ADC_LL_EM_HELPER_MACRO ADC helper macro
<> 135:176b8275d35d 8134 * @{
<> 135:176b8275d35d 8135 */
<> 135:176b8275d35d 8136
<> 135:176b8275d35d 8137 /**
<> 135:176b8275d35d 8138 * @brief Helper macro to get ADC channel number in decimal format
<> 135:176b8275d35d 8139 * from literals LL_ADC_CHANNEL_x.
<> 135:176b8275d35d 8140 * @note Example:
<> 135:176b8275d35d 8141 * __LL_ADC_CHANNEL_TO_DECIMAL_NB(LL_ADC_CHANNEL_4)
<> 135:176b8275d35d 8142 * will return decimal number "4".
<> 135:176b8275d35d 8143 * @note The input can be a value from functions where a channel
<> 135:176b8275d35d 8144 * number is returned, either defined with number
<> 135:176b8275d35d 8145 * or with bitfield (only one bit must be set).
<> 135:176b8275d35d 8146 * @param __CHANNEL__ This parameter can be one of the following values:
<> 135:176b8275d35d 8147 * @arg @ref LL_ADC_CHANNEL_0
<> 135:176b8275d35d 8148 * @arg @ref LL_ADC_CHANNEL_1
<> 135:176b8275d35d 8149 * @arg @ref LL_ADC_CHANNEL_2
<> 135:176b8275d35d 8150 * @arg @ref LL_ADC_CHANNEL_3
<> 135:176b8275d35d 8151 * @arg @ref LL_ADC_CHANNEL_4
<> 135:176b8275d35d 8152 * @arg @ref LL_ADC_CHANNEL_5
<> 135:176b8275d35d 8153 * @arg @ref LL_ADC_CHANNEL_6
<> 135:176b8275d35d 8154 * @arg @ref LL_ADC_CHANNEL_7
<> 135:176b8275d35d 8155 * @arg @ref LL_ADC_CHANNEL_8
<> 135:176b8275d35d 8156 * @arg @ref LL_ADC_CHANNEL_9
<> 135:176b8275d35d 8157 * @arg @ref LL_ADC_CHANNEL_10
<> 135:176b8275d35d 8158 * @arg @ref LL_ADC_CHANNEL_11
<> 135:176b8275d35d 8159 * @arg @ref LL_ADC_CHANNEL_12
<> 135:176b8275d35d 8160 * @arg @ref LL_ADC_CHANNEL_13
<> 135:176b8275d35d 8161 * @arg @ref LL_ADC_CHANNEL_14
<> 135:176b8275d35d 8162 * @arg @ref LL_ADC_CHANNEL_15
<> 135:176b8275d35d 8163 * @arg @ref LL_ADC_CHANNEL_16
<> 135:176b8275d35d 8164 * @arg @ref LL_ADC_CHANNEL_17
<> 135:176b8275d35d 8165 * @arg @ref LL_ADC_CHANNEL_VREFINT (1)
<> 135:176b8275d35d 8166 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (1)
<> 135:176b8275d35d 8167 *
<> 135:176b8275d35d 8168 * (1) On STM32F37x, parameter available only on ADC instance: ADC1.
<> 135:176b8275d35d 8169 * @retval Value between Min_Data=0 and Max_Data=18
<> 135:176b8275d35d 8170 */
<> 135:176b8275d35d 8171 #define __LL_ADC_CHANNEL_TO_DECIMAL_NB(__CHANNEL__) \
<> 135:176b8275d35d 8172 (((__CHANNEL__) & ADC_CHANNEL_ID_NUMBER_MASK) >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS)
<> 135:176b8275d35d 8173
<> 135:176b8275d35d 8174 /**
<> 135:176b8275d35d 8175 * @brief Helper macro to get ADC channel in literal format LL_ADC_CHANNEL_x
<> 135:176b8275d35d 8176 * from number in decimal format.
<> 135:176b8275d35d 8177 * @note Example:
<> 135:176b8275d35d 8178 * __LL_ADC_DECIMAL_NB_TO_CHANNEL(4)
<> 135:176b8275d35d 8179 * will return a data equivalent to "LL_ADC_CHANNEL_4".
<> 135:176b8275d35d 8180 * @param __DECIMAL_NB__: Value between Min_Data=0 and Max_Data=18
<> 135:176b8275d35d 8181 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 8182 * @arg @ref LL_ADC_CHANNEL_0
<> 135:176b8275d35d 8183 * @arg @ref LL_ADC_CHANNEL_1
<> 135:176b8275d35d 8184 * @arg @ref LL_ADC_CHANNEL_2
<> 135:176b8275d35d 8185 * @arg @ref LL_ADC_CHANNEL_3
<> 135:176b8275d35d 8186 * @arg @ref LL_ADC_CHANNEL_4
<> 135:176b8275d35d 8187 * @arg @ref LL_ADC_CHANNEL_5
<> 135:176b8275d35d 8188 * @arg @ref LL_ADC_CHANNEL_6
<> 135:176b8275d35d 8189 * @arg @ref LL_ADC_CHANNEL_7
<> 135:176b8275d35d 8190 * @arg @ref LL_ADC_CHANNEL_8
<> 135:176b8275d35d 8191 * @arg @ref LL_ADC_CHANNEL_9
<> 135:176b8275d35d 8192 * @arg @ref LL_ADC_CHANNEL_10
<> 135:176b8275d35d 8193 * @arg @ref LL_ADC_CHANNEL_11
<> 135:176b8275d35d 8194 * @arg @ref LL_ADC_CHANNEL_12
<> 135:176b8275d35d 8195 * @arg @ref LL_ADC_CHANNEL_13
<> 135:176b8275d35d 8196 * @arg @ref LL_ADC_CHANNEL_14
<> 135:176b8275d35d 8197 * @arg @ref LL_ADC_CHANNEL_15
<> 135:176b8275d35d 8198 * @arg @ref LL_ADC_CHANNEL_16
<> 135:176b8275d35d 8199 * @arg @ref LL_ADC_CHANNEL_17
<> 135:176b8275d35d 8200 * @arg @ref LL_ADC_CHANNEL_VREFINT (1)
<> 135:176b8275d35d 8201 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (1)
<> 135:176b8275d35d 8202 *
<> 135:176b8275d35d 8203 * (1) On STM32F37x, parameter available only on ADC instance: ADC1.\n
<> 135:176b8275d35d 8204 * (1) For ADC channel read back from ADC register,
<> 135:176b8275d35d 8205 * comparison with internal channel parameter to be done
<> 135:176b8275d35d 8206 * using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL().
<> 135:176b8275d35d 8207 */
<> 135:176b8275d35d 8208 #define __LL_ADC_DECIMAL_NB_TO_CHANNEL(__DECIMAL_NB__) \
<> 135:176b8275d35d 8209 (((__DECIMAL_NB__) <= 9U) \
<> 135:176b8275d35d 8210 ? ( \
<> 135:176b8275d35d 8211 ((__DECIMAL_NB__) << ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) | \
<> 135:176b8275d35d 8212 (ADC_SMPR2_REGOFFSET | (((uint32_t) (3U * (__DECIMAL_NB__))) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) \
<> 135:176b8275d35d 8213 ) \
<> 135:176b8275d35d 8214 : \
<> 135:176b8275d35d 8215 ( \
<> 135:176b8275d35d 8216 ((__DECIMAL_NB__) << ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) | \
<> 135:176b8275d35d 8217 (ADC_SMPR1_REGOFFSET | (((uint32_t) (3U * ((__DECIMAL_NB__) - 10U))) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) \
<> 135:176b8275d35d 8218 ) \
<> 135:176b8275d35d 8219 )
<> 135:176b8275d35d 8220
<> 135:176b8275d35d 8221 /**
<> 135:176b8275d35d 8222 * @brief Helper macro to determine whether the selected channel
<> 135:176b8275d35d 8223 * corresponds to literal definitions of driver.
<> 135:176b8275d35d 8224 * @note The different literal definitions of ADC channels are:
<> 135:176b8275d35d 8225 * - ADC internal channel:
<> 135:176b8275d35d 8226 * LL_ADC_CHANNEL_VREFINT, LL_ADC_CHANNEL_TEMPSENSOR, ...
<> 135:176b8275d35d 8227 * - ADC external channel (channel connected to a GPIO pin):
<> 135:176b8275d35d 8228 * LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...
<> 135:176b8275d35d 8229 * @note The channel parameter must be a value defined from literal
<> 135:176b8275d35d 8230 * definition of a ADC internal channel (LL_ADC_CHANNEL_VREFINT,
<> 135:176b8275d35d 8231 * LL_ADC_CHANNEL_TEMPSENSOR, ...),
<> 135:176b8275d35d 8232 * ADC external channel (LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...),
<> 135:176b8275d35d 8233 * must not be a value from functions where a channel number is
<> 135:176b8275d35d 8234 * returned from ADC registers,
<> 135:176b8275d35d 8235 * because internal and external channels share the same channel
<> 135:176b8275d35d 8236 * number in ADC registers. The differentiation is made only with
<> 135:176b8275d35d 8237 * parameters definitions of driver.
<> 135:176b8275d35d 8238 * @param __CHANNEL__ This parameter can be one of the following values:
<> 135:176b8275d35d 8239 * @arg @ref LL_ADC_CHANNEL_0
<> 135:176b8275d35d 8240 * @arg @ref LL_ADC_CHANNEL_1
<> 135:176b8275d35d 8241 * @arg @ref LL_ADC_CHANNEL_2
<> 135:176b8275d35d 8242 * @arg @ref LL_ADC_CHANNEL_3
<> 135:176b8275d35d 8243 * @arg @ref LL_ADC_CHANNEL_4
<> 135:176b8275d35d 8244 * @arg @ref LL_ADC_CHANNEL_5
<> 135:176b8275d35d 8245 * @arg @ref LL_ADC_CHANNEL_6
<> 135:176b8275d35d 8246 * @arg @ref LL_ADC_CHANNEL_7
<> 135:176b8275d35d 8247 * @arg @ref LL_ADC_CHANNEL_8
<> 135:176b8275d35d 8248 * @arg @ref LL_ADC_CHANNEL_9
<> 135:176b8275d35d 8249 * @arg @ref LL_ADC_CHANNEL_10
<> 135:176b8275d35d 8250 * @arg @ref LL_ADC_CHANNEL_11
<> 135:176b8275d35d 8251 * @arg @ref LL_ADC_CHANNEL_12
<> 135:176b8275d35d 8252 * @arg @ref LL_ADC_CHANNEL_13
<> 135:176b8275d35d 8253 * @arg @ref LL_ADC_CHANNEL_14
<> 135:176b8275d35d 8254 * @arg @ref LL_ADC_CHANNEL_15
<> 135:176b8275d35d 8255 * @arg @ref LL_ADC_CHANNEL_16
<> 135:176b8275d35d 8256 * @arg @ref LL_ADC_CHANNEL_17
<> 135:176b8275d35d 8257 * @arg @ref LL_ADC_CHANNEL_VREFINT (1)
<> 135:176b8275d35d 8258 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (1)
<> 135:176b8275d35d 8259 *
<> 135:176b8275d35d 8260 * (1) On STM32F37x, parameter available only on ADC instance: ADC1.
<> 135:176b8275d35d 8261 * @retval Value "0" if the channel corresponds to a parameter definition of a ADC external channel (channel connected to a GPIO pin)
<> 135:176b8275d35d 8262 * Value "1" if the channel corresponds to a parameter definition of a ADC internal channel
<> 135:176b8275d35d 8263 */
<> 135:176b8275d35d 8264 #define __LL_ADC_IS_CHANNEL_INTERNAL(__CHANNEL__) \
<> 135:176b8275d35d 8265 (((__CHANNEL__) & ADC_CHANNEL_ID_INTERNAL_CH_MASK) != 0U)
<> 135:176b8275d35d 8266
<> 135:176b8275d35d 8267 /**
<> 135:176b8275d35d 8268 * @brief Helper macro to convert a channel defined from parameter
<> 135:176b8275d35d 8269 * definition of a ADC internal channel (LL_ADC_CHANNEL_VREFINT,
<> 135:176b8275d35d 8270 * LL_ADC_CHANNEL_TEMPSENSOR, ...),
<> 135:176b8275d35d 8271 * to its equivalent parameter definition of a ADC external channel
<> 135:176b8275d35d 8272 * (LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...).
<> 135:176b8275d35d 8273 * @note The channel parameter can be, additionally to a value
<> 135:176b8275d35d 8274 * defined from parameter definition of a ADC internal channel
<> 135:176b8275d35d 8275 * (LL_ADC_CHANNEL_VREFINT, LL_ADC_CHANNEL_TEMPSENSOR, ...),
<> 135:176b8275d35d 8276 * a value defined from parameter definition of
<> 135:176b8275d35d 8277 * ADC external channel (LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...)
<> 135:176b8275d35d 8278 * or a value from functions where a channel number is returned
<> 135:176b8275d35d 8279 * from ADC registers.
<> 135:176b8275d35d 8280 * @param __CHANNEL__ This parameter can be one of the following values:
<> 135:176b8275d35d 8281 * @arg @ref LL_ADC_CHANNEL_0
<> 135:176b8275d35d 8282 * @arg @ref LL_ADC_CHANNEL_1
<> 135:176b8275d35d 8283 * @arg @ref LL_ADC_CHANNEL_2
<> 135:176b8275d35d 8284 * @arg @ref LL_ADC_CHANNEL_3
<> 135:176b8275d35d 8285 * @arg @ref LL_ADC_CHANNEL_4
<> 135:176b8275d35d 8286 * @arg @ref LL_ADC_CHANNEL_5
<> 135:176b8275d35d 8287 * @arg @ref LL_ADC_CHANNEL_6
<> 135:176b8275d35d 8288 * @arg @ref LL_ADC_CHANNEL_7
<> 135:176b8275d35d 8289 * @arg @ref LL_ADC_CHANNEL_8
<> 135:176b8275d35d 8290 * @arg @ref LL_ADC_CHANNEL_9
<> 135:176b8275d35d 8291 * @arg @ref LL_ADC_CHANNEL_10
<> 135:176b8275d35d 8292 * @arg @ref LL_ADC_CHANNEL_11
<> 135:176b8275d35d 8293 * @arg @ref LL_ADC_CHANNEL_12
<> 135:176b8275d35d 8294 * @arg @ref LL_ADC_CHANNEL_13
<> 135:176b8275d35d 8295 * @arg @ref LL_ADC_CHANNEL_14
<> 135:176b8275d35d 8296 * @arg @ref LL_ADC_CHANNEL_15
<> 135:176b8275d35d 8297 * @arg @ref LL_ADC_CHANNEL_16
<> 135:176b8275d35d 8298 * @arg @ref LL_ADC_CHANNEL_17
<> 135:176b8275d35d 8299 * @arg @ref LL_ADC_CHANNEL_VREFINT (1)
<> 135:176b8275d35d 8300 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (1)
<> 135:176b8275d35d 8301 *
<> 135:176b8275d35d 8302 * (1) On STM32F37x, parameter available only on ADC instance: ADC1.
<> 135:176b8275d35d 8303 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 8304 * @arg @ref LL_ADC_CHANNEL_0
<> 135:176b8275d35d 8305 * @arg @ref LL_ADC_CHANNEL_1
<> 135:176b8275d35d 8306 * @arg @ref LL_ADC_CHANNEL_2
<> 135:176b8275d35d 8307 * @arg @ref LL_ADC_CHANNEL_3
<> 135:176b8275d35d 8308 * @arg @ref LL_ADC_CHANNEL_4
<> 135:176b8275d35d 8309 * @arg @ref LL_ADC_CHANNEL_5
<> 135:176b8275d35d 8310 * @arg @ref LL_ADC_CHANNEL_6
<> 135:176b8275d35d 8311 * @arg @ref LL_ADC_CHANNEL_7
<> 135:176b8275d35d 8312 * @arg @ref LL_ADC_CHANNEL_8
<> 135:176b8275d35d 8313 * @arg @ref LL_ADC_CHANNEL_9
<> 135:176b8275d35d 8314 * @arg @ref LL_ADC_CHANNEL_10
<> 135:176b8275d35d 8315 * @arg @ref LL_ADC_CHANNEL_11
<> 135:176b8275d35d 8316 * @arg @ref LL_ADC_CHANNEL_12
<> 135:176b8275d35d 8317 * @arg @ref LL_ADC_CHANNEL_13
<> 135:176b8275d35d 8318 * @arg @ref LL_ADC_CHANNEL_14
<> 135:176b8275d35d 8319 * @arg @ref LL_ADC_CHANNEL_15
<> 135:176b8275d35d 8320 * @arg @ref LL_ADC_CHANNEL_16
<> 135:176b8275d35d 8321 * @arg @ref LL_ADC_CHANNEL_17
<> 135:176b8275d35d 8322 */
<> 135:176b8275d35d 8323 #define __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL(__CHANNEL__) \
<> 135:176b8275d35d 8324 ((__CHANNEL__) & ~ADC_CHANNEL_ID_INTERNAL_CH_MASK)
<> 135:176b8275d35d 8325
<> 135:176b8275d35d 8326 /**
<> 135:176b8275d35d 8327 * @brief Helper macro to determine whether the internal channel
<> 135:176b8275d35d 8328 * selected is available on the ADC instance selected.
<> 135:176b8275d35d 8329 * @note The channel parameter must be a value defined from parameter
<> 135:176b8275d35d 8330 * definition of a ADC internal channel (LL_ADC_CHANNEL_VREFINT,
<> 135:176b8275d35d 8331 * LL_ADC_CHANNEL_TEMPSENSOR, ...),
<> 135:176b8275d35d 8332 * must not be a value defined from parameter definition of
<> 135:176b8275d35d 8333 * ADC external channel (LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...)
<> 135:176b8275d35d 8334 * or a value from functions where a channel number is
<> 135:176b8275d35d 8335 * returned from ADC registers,
<> 135:176b8275d35d 8336 * because internal and external channels share the same channel
<> 135:176b8275d35d 8337 * number in ADC registers. The differentiation is made only with
<> 135:176b8275d35d 8338 * parameters definitions of driver.
<> 135:176b8275d35d 8339 * @param __ADC_INSTANCE__ ADC instance
<> 135:176b8275d35d 8340 * @param __CHANNEL__ This parameter can be one of the following values:
<> 135:176b8275d35d 8341 * @arg @ref LL_ADC_CHANNEL_VREFINT (1)
<> 135:176b8275d35d 8342 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (1)
<> 135:176b8275d35d 8343 *
<> 135:176b8275d35d 8344 * (1) On STM32F37x, parameter available only on ADC instance: ADC1.
<> 135:176b8275d35d 8345 * @retval Value "0" if the internal channel selected is not available on the ADC instance selected.
<> 135:176b8275d35d 8346 * Value "1" if the internal channel selected is available on the ADC instance selected.
<> 135:176b8275d35d 8347 */
<> 135:176b8275d35d 8348 #define __LL_ADC_IS_CHANNEL_INTERNAL_AVAILABLE(__ADC_INSTANCE__, __CHANNEL__) \
<> 135:176b8275d35d 8349 (((__ADC_INSTANCE__) == ADC1) \
<> 135:176b8275d35d 8350 ? ( \
<> 135:176b8275d35d 8351 ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) || \
<> 135:176b8275d35d 8352 ((__CHANNEL__) == LL_ADC_CHANNEL_TEMPSENSOR) \
<> 135:176b8275d35d 8353 ) \
<> 135:176b8275d35d 8354 : \
<> 135:176b8275d35d 8355 (0U) \
<> 135:176b8275d35d 8356 )
<> 135:176b8275d35d 8357
<> 135:176b8275d35d 8358 /**
<> 135:176b8275d35d 8359 * @brief Helper macro to define ADC analog watchdog parameter:
<> 135:176b8275d35d 8360 * define a single channel to monitor with analog watchdog
<> 135:176b8275d35d 8361 * from sequencer channel and groups definition.
<> 135:176b8275d35d 8362 * @note To be used with function @ref LL_ADC_SetAnalogWDMonitChannels().
<> 135:176b8275d35d 8363 * Example:
<> 135:176b8275d35d 8364 * LL_ADC_SetAnalogWDMonitChannels(
<> 135:176b8275d35d 8365 * ADC1, LL_ADC_AWD1,
<> 135:176b8275d35d 8366 * __LL_ADC_ANALOGWD_CHANNEL_GROUP(LL_ADC_CHANNEL4, LL_ADC_GROUP_REGULAR))
<> 135:176b8275d35d 8367 * @param __CHANNEL__ This parameter can be one of the following values:
<> 135:176b8275d35d 8368 * @arg @ref LL_ADC_CHANNEL_0
<> 135:176b8275d35d 8369 * @arg @ref LL_ADC_CHANNEL_1
<> 135:176b8275d35d 8370 * @arg @ref LL_ADC_CHANNEL_2
<> 135:176b8275d35d 8371 * @arg @ref LL_ADC_CHANNEL_3
<> 135:176b8275d35d 8372 * @arg @ref LL_ADC_CHANNEL_4
<> 135:176b8275d35d 8373 * @arg @ref LL_ADC_CHANNEL_5
<> 135:176b8275d35d 8374 * @arg @ref LL_ADC_CHANNEL_6
<> 135:176b8275d35d 8375 * @arg @ref LL_ADC_CHANNEL_7
<> 135:176b8275d35d 8376 * @arg @ref LL_ADC_CHANNEL_8
<> 135:176b8275d35d 8377 * @arg @ref LL_ADC_CHANNEL_9
<> 135:176b8275d35d 8378 * @arg @ref LL_ADC_CHANNEL_10
<> 135:176b8275d35d 8379 * @arg @ref LL_ADC_CHANNEL_11
<> 135:176b8275d35d 8380 * @arg @ref LL_ADC_CHANNEL_12
<> 135:176b8275d35d 8381 * @arg @ref LL_ADC_CHANNEL_13
<> 135:176b8275d35d 8382 * @arg @ref LL_ADC_CHANNEL_14
<> 135:176b8275d35d 8383 * @arg @ref LL_ADC_CHANNEL_15
<> 135:176b8275d35d 8384 * @arg @ref LL_ADC_CHANNEL_16
<> 135:176b8275d35d 8385 * @arg @ref LL_ADC_CHANNEL_17
<> 135:176b8275d35d 8386 * @arg @ref LL_ADC_CHANNEL_VREFINT (1)
<> 135:176b8275d35d 8387 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (1)
<> 135:176b8275d35d 8388 *
<> 135:176b8275d35d 8389 * (1) On STM32F37x, parameter available only on ADC instance: ADC1.\n
<> 135:176b8275d35d 8390 * (1) For ADC channel read back from ADC register,
<> 135:176b8275d35d 8391 * comparison with internal channel parameter to be done
<> 135:176b8275d35d 8392 * using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL().
<> 135:176b8275d35d 8393 * @param __GROUP__ This parameter can be one of the following values:
<> 135:176b8275d35d 8394 * @arg @ref LL_ADC_GROUP_REGULAR
<> 135:176b8275d35d 8395 * @arg @ref LL_ADC_GROUP_INJECTED
<> 135:176b8275d35d 8396 * @arg @ref LL_ADC_GROUP_REGULAR_INJECTED
<> 135:176b8275d35d 8397 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 8398 * @arg @ref LL_ADC_AWD_DISABLE
<> 135:176b8275d35d 8399 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG
<> 135:176b8275d35d 8400 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_INJ
<> 135:176b8275d35d 8401 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG_INJ
<> 135:176b8275d35d 8402 * @arg @ref LL_ADC_AWD_CHANNEL_0_REG
<> 135:176b8275d35d 8403 * @arg @ref LL_ADC_AWD_CHANNEL_0_INJ
<> 135:176b8275d35d 8404 * @arg @ref LL_ADC_AWD_CHANNEL_0_REG_INJ
<> 135:176b8275d35d 8405 * @arg @ref LL_ADC_AWD_CHANNEL_1_REG
<> 135:176b8275d35d 8406 * @arg @ref LL_ADC_AWD_CHANNEL_1_INJ
<> 135:176b8275d35d 8407 * @arg @ref LL_ADC_AWD_CHANNEL_1_REG_INJ
<> 135:176b8275d35d 8408 * @arg @ref LL_ADC_AWD_CHANNEL_2_REG
<> 135:176b8275d35d 8409 * @arg @ref LL_ADC_AWD_CHANNEL_2_INJ
<> 135:176b8275d35d 8410 * @arg @ref LL_ADC_AWD_CHANNEL_2_REG_INJ
<> 135:176b8275d35d 8411 * @arg @ref LL_ADC_AWD_CHANNEL_3_REG
<> 135:176b8275d35d 8412 * @arg @ref LL_ADC_AWD_CHANNEL_3_INJ
<> 135:176b8275d35d 8413 * @arg @ref LL_ADC_AWD_CHANNEL_3_REG_INJ
<> 135:176b8275d35d 8414 * @arg @ref LL_ADC_AWD_CHANNEL_4_REG
<> 135:176b8275d35d 8415 * @arg @ref LL_ADC_AWD_CHANNEL_4_INJ
<> 135:176b8275d35d 8416 * @arg @ref LL_ADC_AWD_CHANNEL_4_REG_INJ
<> 135:176b8275d35d 8417 * @arg @ref LL_ADC_AWD_CHANNEL_5_REG
<> 135:176b8275d35d 8418 * @arg @ref LL_ADC_AWD_CHANNEL_5_INJ
<> 135:176b8275d35d 8419 * @arg @ref LL_ADC_AWD_CHANNEL_5_REG_INJ
<> 135:176b8275d35d 8420 * @arg @ref LL_ADC_AWD_CHANNEL_6_REG
<> 135:176b8275d35d 8421 * @arg @ref LL_ADC_AWD_CHANNEL_6_INJ
<> 135:176b8275d35d 8422 * @arg @ref LL_ADC_AWD_CHANNEL_6_REG_INJ
<> 135:176b8275d35d 8423 * @arg @ref LL_ADC_AWD_CHANNEL_7_REG
<> 135:176b8275d35d 8424 * @arg @ref LL_ADC_AWD_CHANNEL_7_INJ
<> 135:176b8275d35d 8425 * @arg @ref LL_ADC_AWD_CHANNEL_7_REG_INJ
<> 135:176b8275d35d 8426 * @arg @ref LL_ADC_AWD_CHANNEL_8_REG
<> 135:176b8275d35d 8427 * @arg @ref LL_ADC_AWD_CHANNEL_8_INJ
<> 135:176b8275d35d 8428 * @arg @ref LL_ADC_AWD_CHANNEL_8_REG_INJ
<> 135:176b8275d35d 8429 * @arg @ref LL_ADC_AWD_CHANNEL_9_REG
<> 135:176b8275d35d 8430 * @arg @ref LL_ADC_AWD_CHANNEL_9_INJ
<> 135:176b8275d35d 8431 * @arg @ref LL_ADC_AWD_CHANNEL_9_REG_INJ
<> 135:176b8275d35d 8432 * @arg @ref LL_ADC_AWD_CHANNEL_10_REG
<> 135:176b8275d35d 8433 * @arg @ref LL_ADC_AWD_CHANNEL_10_INJ
<> 135:176b8275d35d 8434 * @arg @ref LL_ADC_AWD_CHANNEL_10_REG_INJ
<> 135:176b8275d35d 8435 * @arg @ref LL_ADC_AWD_CHANNEL_11_REG
<> 135:176b8275d35d 8436 * @arg @ref LL_ADC_AWD_CHANNEL_11_INJ
<> 135:176b8275d35d 8437 * @arg @ref LL_ADC_AWD_CHANNEL_11_REG_INJ
<> 135:176b8275d35d 8438 * @arg @ref LL_ADC_AWD_CHANNEL_12_REG
<> 135:176b8275d35d 8439 * @arg @ref LL_ADC_AWD_CHANNEL_12_INJ
<> 135:176b8275d35d 8440 * @arg @ref LL_ADC_AWD_CHANNEL_12_REG_INJ
<> 135:176b8275d35d 8441 * @arg @ref LL_ADC_AWD_CHANNEL_13_REG
<> 135:176b8275d35d 8442 * @arg @ref LL_ADC_AWD_CHANNEL_13_INJ
<> 135:176b8275d35d 8443 * @arg @ref LL_ADC_AWD_CHANNEL_13_REG_INJ
<> 135:176b8275d35d 8444 * @arg @ref LL_ADC_AWD_CHANNEL_14_REG
<> 135:176b8275d35d 8445 * @arg @ref LL_ADC_AWD_CHANNEL_14_INJ
<> 135:176b8275d35d 8446 * @arg @ref LL_ADC_AWD_CHANNEL_14_REG_INJ
<> 135:176b8275d35d 8447 * @arg @ref LL_ADC_AWD_CHANNEL_15_REG
<> 135:176b8275d35d 8448 * @arg @ref LL_ADC_AWD_CHANNEL_15_INJ
<> 135:176b8275d35d 8449 * @arg @ref LL_ADC_AWD_CHANNEL_15_REG_INJ
<> 135:176b8275d35d 8450 * @arg @ref LL_ADC_AWD_CHANNEL_16_REG
<> 135:176b8275d35d 8451 * @arg @ref LL_ADC_AWD_CHANNEL_16_INJ
<> 135:176b8275d35d 8452 * @arg @ref LL_ADC_AWD_CHANNEL_16_REG_INJ
<> 135:176b8275d35d 8453 * @arg @ref LL_ADC_AWD_CHANNEL_17_REG
<> 135:176b8275d35d 8454 * @arg @ref LL_ADC_AWD_CHANNEL_17_INJ
<> 135:176b8275d35d 8455 * @arg @ref LL_ADC_AWD_CHANNEL_17_REG_INJ
<> 135:176b8275d35d 8456 * @arg @ref LL_ADC_AWD_CH_VREFINT_REG (1)
<> 135:176b8275d35d 8457 * @arg @ref LL_ADC_AWD_CH_VREFINT_INJ (1)
<> 135:176b8275d35d 8458 * @arg @ref LL_ADC_AWD_CH_VREFINT_REG_INJ (1)
<> 135:176b8275d35d 8459 * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_REG (1)
<> 135:176b8275d35d 8460 * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_INJ (1)
<> 135:176b8275d35d 8461 * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_REG_INJ (1)
<> 135:176b8275d35d 8462 *
<> 135:176b8275d35d 8463 * (1) On STM32F37x, parameter available only on ADC instance: ADC1.
<> 135:176b8275d35d 8464 */
<> 135:176b8275d35d 8465 #define __LL_ADC_ANALOGWD_CHANNEL_GROUP(__CHANNEL__, __GROUP__) \
<> 135:176b8275d35d 8466 (((__GROUP__) == LL_ADC_GROUP_REGULAR) \
<> 135:176b8275d35d 8467 ? (((__CHANNEL__) & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) \
<> 135:176b8275d35d 8468 : \
<> 135:176b8275d35d 8469 ((__GROUP__) == LL_ADC_GROUP_INJECTED) \
<> 135:176b8275d35d 8470 ? (((__CHANNEL__) & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) \
<> 135:176b8275d35d 8471 : \
<> 135:176b8275d35d 8472 (((__CHANNEL__) & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) \
<> 135:176b8275d35d 8473 )
<> 135:176b8275d35d 8474
<> 135:176b8275d35d 8475 /**
<> 135:176b8275d35d 8476 * @brief Helper macro to set the value of ADC analog watchdog threshold high
<> 135:176b8275d35d 8477 * or low in function of ADC resolution, when ADC resolution is
<> 135:176b8275d35d 8478 * different of 12 bits.
<> 135:176b8275d35d 8479 * @note To be used with function @ref LL_ADC_SetAnalogWDThresholds().
<> 135:176b8275d35d 8480 * Example, with a ADC resolution of 8 bits, to set the value of
<> 135:176b8275d35d 8481 * analog watchdog threshold high (on 8 bits):
<> 135:176b8275d35d 8482 * LL_ADC_SetAnalogWDThresholds
<> 135:176b8275d35d 8483 * (< ADCx param >,
<> 135:176b8275d35d 8484 * __LL_ADC_ANALOGWD_SET_THRESHOLD_RESOLUTION(LL_ADC_RESOLUTION_8B, <threshold_value_8_bits>)
<> 135:176b8275d35d 8485 * );
<> 135:176b8275d35d 8486 * @param __ADC_RESOLUTION__ This parameter can be one of the following values:
<> 135:176b8275d35d 8487 * @arg @ref LL_ADC_RESOLUTION_12B
<> 135:176b8275d35d 8488 * @param __AWD_THRESHOLD__ Value between Min_Data=0x000 and Max_Data=0xFFF
<> 135:176b8275d35d 8489 * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
<> 135:176b8275d35d 8490 */
<> 135:176b8275d35d 8491 /* Note: On this STM32 serie, ADC is fixed to resolution 12 bits. */
<> 135:176b8275d35d 8492 /* This macro has been kept anyway for compatibility with other */
<> 135:176b8275d35d 8493 /* STM32 families featuring different ADC resolutions. */
<> 135:176b8275d35d 8494 #define __LL_ADC_ANALOGWD_SET_THRESHOLD_RESOLUTION(__ADC_RESOLUTION__, __AWD_THRESHOLD__) \
<> 135:176b8275d35d 8495 ((__AWD_THRESHOLD__) << (0U))
<> 135:176b8275d35d 8496
<> 135:176b8275d35d 8497 /**
<> 135:176b8275d35d 8498 * @brief Helper macro to get the value of ADC analog watchdog threshold high
<> 135:176b8275d35d 8499 * or low in function of ADC resolution, when ADC resolution is
<> 135:176b8275d35d 8500 * different of 12 bits.
<> 135:176b8275d35d 8501 * @note To be used with function @ref LL_ADC_GetAnalogWDThresholds().
<> 135:176b8275d35d 8502 * Example, with a ADC resolution of 8 bits, to get the value of
<> 135:176b8275d35d 8503 * analog watchdog threshold high (on 8 bits):
<> 135:176b8275d35d 8504 * < threshold_value_6_bits > = __LL_ADC_ANALOGWD_GET_THRESHOLD_RESOLUTION
<> 135:176b8275d35d 8505 * (LL_ADC_RESOLUTION_8B,
<> 135:176b8275d35d 8506 * LL_ADC_GetAnalogWDThresholds(<ADCx param>, LL_ADC_AWD_THRESHOLD_HIGH)
<> 135:176b8275d35d 8507 * );
<> 135:176b8275d35d 8508 * @param __ADC_RESOLUTION__ This parameter can be one of the following values:
<> 135:176b8275d35d 8509 * @arg @ref LL_ADC_RESOLUTION_12B
<> 135:176b8275d35d 8510 * @param __AWD_THRESHOLD_12_BITS__ Value between Min_Data=0x000 and Max_Data=0xFFF
<> 135:176b8275d35d 8511 * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
<> 135:176b8275d35d 8512 */
<> 135:176b8275d35d 8513 /* Note: On this STM32 serie, ADC is fixed to resolution 12 bits. */
<> 135:176b8275d35d 8514 /* This macro has been kept anyway for compatibility with other */
<> 135:176b8275d35d 8515 /* STM32 families featuring different ADC resolutions. */
<> 135:176b8275d35d 8516 #define __LL_ADC_ANALOGWD_GET_THRESHOLD_RESOLUTION(__ADC_RESOLUTION__, __AWD_THRESHOLD_12_BITS__) \
<> 135:176b8275d35d 8517 (__AWD_THRESHOLD_12_BITS__)
<> 135:176b8275d35d 8518
<> 135:176b8275d35d 8519 /**
<> 135:176b8275d35d 8520 * @brief Helper macro to select the ADC common instance
<> 135:176b8275d35d 8521 * to which is belonging the selected ADC instance.
<> 135:176b8275d35d 8522 * @note ADC common register instance can be used for:
<> 135:176b8275d35d 8523 * - Set parameters common to several ADC instances
<> 135:176b8275d35d 8524 * - Multimode (for devices with several ADC instances)
<> 135:176b8275d35d 8525 * Refer to functions having argument "ADCxy_COMMON" as parameter.
<> 135:176b8275d35d 8526 * @note On STM32F37x, there is no common ADC instance.
<> 135:176b8275d35d 8527 * However, ADC instance ADC1 has a role of common ADC instance
<> 135:176b8275d35d 8528 * (equivalence with other STM32 families featuring several
<> 135:176b8275d35d 8529 * ADC instances).
<> 135:176b8275d35d 8530 * @param __ADCx__ ADC instance
<> 135:176b8275d35d 8531 * @retval ADC common register instance
<> 135:176b8275d35d 8532 */
<> 135:176b8275d35d 8533 #define __LL_ADC_COMMON_INSTANCE(__ADCx__) \
<> 135:176b8275d35d 8534 (ADC1_COMMON)
<> 135:176b8275d35d 8535
<> 135:176b8275d35d 8536 /**
<> 135:176b8275d35d 8537 * @brief Helper macro to check if all ADC instances sharing the same
<> 135:176b8275d35d 8538 * ADC common instance are disabled.
<> 135:176b8275d35d 8539 * @note This check is required by functions with setting conditioned to
<> 135:176b8275d35d 8540 * ADC state:
<> 135:176b8275d35d 8541 * All ADC instances of the ADC common group must be disabled.
<> 135:176b8275d35d 8542 * Refer to functions having argument "ADCxy_COMMON" as parameter.
<> 135:176b8275d35d 8543 * @note On devices with only 1 ADC common instance, parameter of this macro
<> 135:176b8275d35d 8544 * is useless and can be ignored (parameter kept for compatibility
<> 135:176b8275d35d 8545 * with devices featuring several ADC common instances).
<> 135:176b8275d35d 8546 * @note On STM32F37x, there is no common ADC instance.
<> 135:176b8275d35d 8547 * However, ADC instance ADC1 has a role of common ADC instance
<> 135:176b8275d35d 8548 * (equivalence with other STM32 families featuring several
<> 135:176b8275d35d 8549 * ADC instances).
<> 135:176b8275d35d 8550 * @param __ADCXY_COMMON__ ADC common instance
<> 135:176b8275d35d 8551 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
<> 135:176b8275d35d 8552 * @retval Value "0" All ADC instances sharing the same ADC common instance
<> 135:176b8275d35d 8553 * are disabled.
<> 135:176b8275d35d 8554 * Value "1" At least one ADC instance sharing the same ADC common instance
<> 135:176b8275d35d 8555 * is enabled
<> 135:176b8275d35d 8556 */
<> 135:176b8275d35d 8557 #define __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(__ADCXY_COMMON__) \
<> 135:176b8275d35d 8558 LL_ADC_IsEnabled(ADC1)
<> 135:176b8275d35d 8559
<> 135:176b8275d35d 8560 /**
<> 135:176b8275d35d 8561 * @brief Helper macro to define the ADC conversion data full-scale digital
<> 135:176b8275d35d 8562 * value corresponding to the selected ADC resolution.
<> 135:176b8275d35d 8563 * @note ADC conversion data full-scale corresponds to voltage range
<> 135:176b8275d35d 8564 * determined by analog voltage references Vref+ and Vref-
<> 135:176b8275d35d 8565 * (refer to reference manual).
<> 135:176b8275d35d 8566 * @param __ADC_RESOLUTION__ This parameter can be one of the following values:
<> 135:176b8275d35d 8567 * @arg @ref LL_ADC_RESOLUTION_12B
<> 135:176b8275d35d 8568 * @retval ADC conversion data equivalent voltage value (unit: mVolt)
<> 135:176b8275d35d 8569 */
<> 135:176b8275d35d 8570 #define __LL_ADC_DIGITAL_SCALE(__ADC_RESOLUTION__) \
<> 135:176b8275d35d 8571 ((uint32_t)0xFFFU)
<> 135:176b8275d35d 8572
<> 135:176b8275d35d 8573 /**
<> 135:176b8275d35d 8574 * @brief Helper macro to convert the ADC conversion data from
<> 135:176b8275d35d 8575 * a resolution to another resolution.
<> 135:176b8275d35d 8576 * @note On STM32F37x, the only ADC resolution available is 12 bits.
<> 135:176b8275d35d 8577 * This macro has been kept for compatibility purpose over other
<> 135:176b8275d35d 8578 * STM32 families.
<> 135:176b8275d35d 8579 * @param __DATA__ ADC conversion data to be converted
<> 135:176b8275d35d 8580 * @param __ADC_RESOLUTION_CURRENT__ Resolution of to the data to be converted
<> 135:176b8275d35d 8581 * This parameter can be one of the following values:
<> 135:176b8275d35d 8582 * @arg @ref LL_ADC_RESOLUTION_12B
<> 135:176b8275d35d 8583 * @param __ADC_RESOLUTION_TARGET__ Resolution of the data after conversion
<> 135:176b8275d35d 8584 * This parameter can be one of the following values:
<> 135:176b8275d35d 8585 * @arg @ref LL_ADC_RESOLUTION_12B
<> 135:176b8275d35d 8586 * @retval ADC conversion data to the requested resolution
<> 135:176b8275d35d 8587 */
<> 135:176b8275d35d 8588 #define __LL_ADC_CONVERT_DATA_RESOLUTION(__DATA__,\
<> 135:176b8275d35d 8589 __ADC_RESOLUTION_CURRENT__,\
<> 135:176b8275d35d 8590 __ADC_RESOLUTION_TARGET__) \
<> 135:176b8275d35d 8591 (((__DATA__) \
<> 135:176b8275d35d 8592 << ((__ADC_RESOLUTION_CURRENT__) >> (0U))) \
<> 135:176b8275d35d 8593 >> ((__ADC_RESOLUTION_TARGET__) >> (0U)) \
<> 135:176b8275d35d 8594 )
<> 135:176b8275d35d 8595
<> 135:176b8275d35d 8596 /**
<> 135:176b8275d35d 8597 * @brief Helper macro to calculate the voltage (unit: mVolt)
<> 135:176b8275d35d 8598 * corresponding to a ADC conversion data (unit: digital value).
<> 135:176b8275d35d 8599 * @note Analog reference voltage (Vref+) must be either known from
<> 135:176b8275d35d 8600 * user board environment or can be calculated using ADC measurement
<> 135:176b8275d35d 8601 * and ADC helper macro @ref __LL_ADC_CALC_VREFANALOG_VOLTAGE().
<> 135:176b8275d35d 8602 * @param __VREFANALOG_VOLTAGE__ Analog reference voltage (unit: mV)
<> 135:176b8275d35d 8603 * @param __ADC_DATA__ ADC conversion data (resolution 12 bits)
<> 135:176b8275d35d 8604 * (unit: digital value).
<> 135:176b8275d35d 8605 * @param __ADC_RESOLUTION__ This parameter can be one of the following values:
<> 135:176b8275d35d 8606 * @arg @ref LL_ADC_RESOLUTION_12B
<> 135:176b8275d35d 8607 * @retval ADC conversion data equivalent voltage value (unit: mVolt)
<> 135:176b8275d35d 8608 */
<> 135:176b8275d35d 8609 #define __LL_ADC_CALC_DATA_TO_VOLTAGE(__VREFANALOG_VOLTAGE__,\
<> 135:176b8275d35d 8610 __ADC_DATA__,\
<> 135:176b8275d35d 8611 __ADC_RESOLUTION__) \
<> 135:176b8275d35d 8612 ((__ADC_DATA__) * (__VREFANALOG_VOLTAGE__) \
<> 135:176b8275d35d 8613 / __LL_ADC_DIGITAL_SCALE(__ADC_RESOLUTION__) \
<> 135:176b8275d35d 8614 )
<> 135:176b8275d35d 8615
<> 135:176b8275d35d 8616
<> 135:176b8275d35d 8617 /**
<> 135:176b8275d35d 8618 * @brief Helper macro to calculate analog reference voltage (Vref+)
<> 135:176b8275d35d 8619 * (unit: mVolt) from ADC conversion data of internal voltage
<> 135:176b8275d35d 8620 * reference VrefInt.
<> 135:176b8275d35d 8621 * @note Computation is using VrefInt calibration value
<> 135:176b8275d35d 8622 * stored in system memory for each device during production.
<> 135:176b8275d35d 8623 * @note This voltage depends on user board environment: voltage level
<> 135:176b8275d35d 8624 * connected to pin Vref+.
<> 135:176b8275d35d 8625 * On devices with small package, the pin Vref+ is not present
<> 135:176b8275d35d 8626 * and internally bonded to pin Vdda.
<> 135:176b8275d35d 8627 * @note On this STM32 serie, calibration data of internal voltage reference
<> 135:176b8275d35d 8628 * VrefInt corresponds to a resolution of 12 bits,
<> 135:176b8275d35d 8629 * this is the recommended ADC resolution to convert voltage of
<> 135:176b8275d35d 8630 * internal voltage reference VrefInt.
<> 135:176b8275d35d 8631 * On STM32F37x, the only ADC resolution available is 12 bits.
<> 135:176b8275d35d 8632 * The parameter of ADC resolution is kept for compatibility purpose
<> 135:176b8275d35d 8633 * over other STM32 families.
<> 135:176b8275d35d 8634 * @param __VREFINT_ADC_DATA__: ADC conversion data (resolution 12 bits)
<> 135:176b8275d35d 8635 * of internal voltage reference VrefInt (unit: digital value).
<> 135:176b8275d35d 8636 * @param __ADC_RESOLUTION__ This parameter can be one of the following values:
<> 135:176b8275d35d 8637 * @arg @ref LL_ADC_RESOLUTION_12B
<> 135:176b8275d35d 8638 * @retval Analog reference voltage (unit: mV)
<> 135:176b8275d35d 8639 */
<> 135:176b8275d35d 8640 #define __LL_ADC_CALC_VREFANALOG_VOLTAGE(__VREFINT_ADC_DATA__,\
<> 135:176b8275d35d 8641 __ADC_RESOLUTION__) \
<> 135:176b8275d35d 8642 (((uint32_t)(*VREFINT_CAL_ADDR) * VREFINT_CAL_VREF) \
<> 135:176b8275d35d 8643 / __LL_ADC_CONVERT_DATA_RESOLUTION((__VREFINT_ADC_DATA__), \
<> 135:176b8275d35d 8644 (__ADC_RESOLUTION__), \
<> 135:176b8275d35d 8645 LL_ADC_RESOLUTION_12B) \
<> 135:176b8275d35d 8646 )
<> 135:176b8275d35d 8647
<> 135:176b8275d35d 8648 /**
<> 135:176b8275d35d 8649 * @brief Helper macro to calculate the temperature (unit: degree Celsius)
<> 135:176b8275d35d 8650 * from ADC conversion data of internal temperature sensor.
<> 135:176b8275d35d 8651 * @note Computation is using temperature sensor calibration values
<> 135:176b8275d35d 8652 * stored in system memory for each device during production.
<> 135:176b8275d35d 8653 * @note Calculation formula:
<> 135:176b8275d35d 8654 * Temperature = ((TS_ADC_DATA - TS_CAL1)
<> 135:176b8275d35d 8655 * * (TS_CAL2_TEMP - TS_CAL1_TEMP))
<> 135:176b8275d35d 8656 * / (TS_CAL2 - TS_CAL1) + TS_CAL1_TEMP
<> 135:176b8275d35d 8657 * with TS_ADC_DATA = temperature sensor raw data measured by ADC
<> 135:176b8275d35d 8658 * Avg_Slope = (TS_CAL2 - TS_CAL1)
<> 135:176b8275d35d 8659 * / (TS_CAL2_TEMP - TS_CAL1_TEMP)
<> 135:176b8275d35d 8660 * TS_CAL1 = equivalent TS_ADC_DATA at temperature
<> 135:176b8275d35d 8661 * TEMP_DEGC_CAL1 (calibrated in factory)
<> 135:176b8275d35d 8662 * TS_CAL2 = equivalent TS_ADC_DATA at temperature
<> 135:176b8275d35d 8663 * TEMP_DEGC_CAL2 (calibrated in factory)
<> 135:176b8275d35d 8664 * Caution: Calculation relevancy under reserve that calibration
<> 135:176b8275d35d 8665 * parameters are correct (address and data).
<> 135:176b8275d35d 8666 * To calculate temperature using temperature sensor
<> 135:176b8275d35d 8667 * datasheet typical values (generic values less, therefore
<> 135:176b8275d35d 8668 * less accurate than calibrated values),
<> 135:176b8275d35d 8669 * use helper macro @ref __LL_ADC_CALC_TEMPERATURE_TYP_PARAMS().
<> 135:176b8275d35d 8670 * @note As calculation input, the analog reference voltage (Vref+) must be
<> 135:176b8275d35d 8671 * defined as it impacts the ADC LSB equivalent voltage.
<> 135:176b8275d35d 8672 * @note Analog reference voltage (Vref+) must be either known from
<> 135:176b8275d35d 8673 * user board environment or can be calculated using ADC measurement
<> 135:176b8275d35d 8674 * and ADC helper macro @ref __LL_ADC_CALC_VREFANALOG_VOLTAGE().
<> 135:176b8275d35d 8675 * @note On this STM32 serie, calibration data of temperature sensor
<> 135:176b8275d35d 8676 * corresponds to a resolution of 12 bits,
<> 135:176b8275d35d 8677 * this is the recommended ADC resolution to convert voltage of
<> 135:176b8275d35d 8678 * temperature sensor.
<> 135:176b8275d35d 8679 * On STM32F37x, the only ADC resolution available is 12 bits.
<> 135:176b8275d35d 8680 * The parameter of ADC resolution is kept for compatibility purpose
<> 135:176b8275d35d 8681 * over other STM32 families.
<> 135:176b8275d35d 8682 * @param __VREFANALOG_VOLTAGE__ Analog reference voltage (unit: mV)
<> 135:176b8275d35d 8683 * @param __TEMPSENSOR_ADC_DATA__ ADC conversion data of internal
<> 135:176b8275d35d 8684 * temperature sensor (unit: digital value).
<> 135:176b8275d35d 8685 * @param __ADC_RESOLUTION__ ADC resolution at which internal temperature
<> 135:176b8275d35d 8686 * sensor voltage has been measured.
<> 135:176b8275d35d 8687 * This parameter can be one of the following values:
<> 135:176b8275d35d 8688 * @arg @ref LL_ADC_RESOLUTION_12B
<> 135:176b8275d35d 8689 * @retval Temperature (unit: degree Celsius)
<> 135:176b8275d35d 8690 */
<> 135:176b8275d35d 8691 #define __LL_ADC_CALC_TEMPERATURE(__VREFANALOG_VOLTAGE__,\
<> 135:176b8275d35d 8692 __TEMPSENSOR_ADC_DATA__,\
<> 135:176b8275d35d 8693 __ADC_RESOLUTION__) \
<> 135:176b8275d35d 8694 (((( ((int32_t)((__LL_ADC_CONVERT_DATA_RESOLUTION((__TEMPSENSOR_ADC_DATA__), \
<> 135:176b8275d35d 8695 (__ADC_RESOLUTION__), \
<> 135:176b8275d35d 8696 LL_ADC_RESOLUTION_12B) \
<> 135:176b8275d35d 8697 * (__VREFANALOG_VOLTAGE__)) \
<> 135:176b8275d35d 8698 / TEMPSENSOR_CAL_VREFANALOG) \
<> 135:176b8275d35d 8699 - (int32_t) *TEMPSENSOR_CAL1_ADDR) \
<> 135:176b8275d35d 8700 ) * (int32_t)(TEMPSENSOR_CAL2_TEMP - TEMPSENSOR_CAL1_TEMP) \
<> 135:176b8275d35d 8701 ) / (int32_t)((int32_t)*TEMPSENSOR_CAL2_ADDR - (int32_t)*TEMPSENSOR_CAL1_ADDR) \
<> 135:176b8275d35d 8702 ) + TEMPSENSOR_CAL1_TEMP \
<> 135:176b8275d35d 8703 )
<> 135:176b8275d35d 8704
<> 135:176b8275d35d 8705 /**
<> 135:176b8275d35d 8706 * @brief Helper macro to calculate the temperature (unit: degree Celsius)
<> 135:176b8275d35d 8707 * from ADC conversion data of internal temperature sensor.
<> 135:176b8275d35d 8708 * @note Computation is using temperature sensor typical values
<> 135:176b8275d35d 8709 * (refer to device datasheet).
<> 135:176b8275d35d 8710 * @note Calculation formula:
<> 135:176b8275d35d 8711 * Temperature = (TS_TYP_CALx_VOLT(uV) - TS_ADC_DATA * Conversion_uV)
<> 135:176b8275d35d 8712 * / Avg_Slope + CALx_TEMP
<> 135:176b8275d35d 8713 * with TS_ADC_DATA = temperature sensor raw data measured by ADC
<> 135:176b8275d35d 8714 * (unit: digital value)
<> 135:176b8275d35d 8715 * Avg_Slope = temperature sensor slope
<> 135:176b8275d35d 8716 * (unit: uV/Degree Celsius)
<> 135:176b8275d35d 8717 * TS_TYP_CALx_VOLT = temperature sensor digital value at
<> 135:176b8275d35d 8718 * temperature CALx_TEMP (unit: mV)
<> 135:176b8275d35d 8719 * Caution: Calculation relevancy under reserve the temperature sensor
<> 135:176b8275d35d 8720 * of the current device has characteristics in line with
<> 135:176b8275d35d 8721 * datasheet typical values.
<> 135:176b8275d35d 8722 * If temperature sensor calibration values are available on
<> 135:176b8275d35d 8723 * on this device (presence of macro __LL_ADC_CALC_TEMPERATURE()),
<> 135:176b8275d35d 8724 * temperature calculation will be more accurate using
<> 135:176b8275d35d 8725 * helper macro @ref __LL_ADC_CALC_TEMPERATURE().
<> 135:176b8275d35d 8726 * @note As calculation input, the analog reference voltage (Vref+) must be
<> 135:176b8275d35d 8727 * defined as it impacts the ADC LSB equivalent voltage.
<> 135:176b8275d35d 8728 * @note Analog reference voltage (Vref+) must be either known from
<> 135:176b8275d35d 8729 * user board environment or can be calculated using ADC measurement
<> 135:176b8275d35d 8730 * and ADC helper macro @ref __LL_ADC_CALC_VREFANALOG_VOLTAGE().
<> 135:176b8275d35d 8731 * @note ADC measurement data must correspond to a resolution of 12bits
<> 135:176b8275d35d 8732 * (full scale digital value 4095). If not the case, the data must be
<> 135:176b8275d35d 8733 * preliminarily rescaled to an equivalent resolution of 12 bits.
<> 135:176b8275d35d 8734 * @param __TEMPSENSOR_TYP_AVGSLOPE__ Device datasheet data: Temperature sensor slope typical value (unit: uV/DegCelsius).
<> 135:176b8275d35d 8735 * On STM32F37x, refer to device datasheet parameter "Avg_Slope".
<> 135:176b8275d35d 8736 * @param __TEMPSENSOR_TYP_CALX_V__ Device datasheet data: Temperature sensor voltage typical value (at temperature and Vref+ defined in parameters below) (unit: mV).
<> 135:176b8275d35d 8737 * On STM32F37x, refer to device datasheet parameter "V25".
<> 135:176b8275d35d 8738 * @param __TEMPSENSOR_CALX_TEMP__ Device datasheet data: Temperature at which temperature sensor voltage (see parameter above) is corresponding (unit: mV)
<> 135:176b8275d35d 8739 * @param __VREFANALOG_VOLTAGE__ Analog voltage reference (Vref+) voltage (unit: mV)
<> 135:176b8275d35d 8740 * @param __TEMPSENSOR_ADC_DATA__ ADC conversion data of internal temperature sensor (unit: digital value).
<> 135:176b8275d35d 8741 * @param __ADC_RESOLUTION__ ADC resolution at which internal temperature sensor voltage has been measured.
<> 135:176b8275d35d 8742 * This parameter can be one of the following values:
<> 135:176b8275d35d 8743 * @arg @ref LL_ADC_RESOLUTION_12B
<> 135:176b8275d35d 8744 * @retval Temperature (unit: degree Celsius)
<> 135:176b8275d35d 8745 */
<> 135:176b8275d35d 8746 #define __LL_ADC_CALC_TEMPERATURE_TYP_PARAMS(__TEMPSENSOR_TYP_AVGSLOPE__,\
<> 135:176b8275d35d 8747 __TEMPSENSOR_TYP_CALX_V__,\
<> 135:176b8275d35d 8748 __TEMPSENSOR_CALX_TEMP__,\
<> 135:176b8275d35d 8749 __VREFANALOG_VOLTAGE__,\
<> 135:176b8275d35d 8750 __TEMPSENSOR_ADC_DATA__,\
<> 135:176b8275d35d 8751 __ADC_RESOLUTION__) \
<> 135:176b8275d35d 8752 ((( ( \
<> 135:176b8275d35d 8753 (int32_t)(((__TEMPSENSOR_TYP_CALX_V__)) \
<> 135:176b8275d35d 8754 * 1000) \
<> 135:176b8275d35d 8755 - \
<> 135:176b8275d35d 8756 (int32_t)((((__TEMPSENSOR_ADC_DATA__) * (__VREFANALOG_VOLTAGE__)) \
<> 135:176b8275d35d 8757 / __LL_ADC_DIGITAL_SCALE(__ADC_RESOLUTION__)) \
<> 135:176b8275d35d 8758 * 1000) \
<> 135:176b8275d35d 8759 ) \
<> 135:176b8275d35d 8760 ) / (__TEMPSENSOR_TYP_AVGSLOPE__) \
<> 135:176b8275d35d 8761 ) + (__TEMPSENSOR_CALX_TEMP__) \
<> 135:176b8275d35d 8762 )
<> 135:176b8275d35d 8763
<> 135:176b8275d35d 8764 /**
<> 135:176b8275d35d 8765 * @}
<> 135:176b8275d35d 8766 */
<> 135:176b8275d35d 8767
<> 135:176b8275d35d 8768 /**
<> 135:176b8275d35d 8769 * @}
<> 135:176b8275d35d 8770 */
<> 135:176b8275d35d 8771
<> 135:176b8275d35d 8772
<> 135:176b8275d35d 8773 /* Exported functions --------------------------------------------------------*/
<> 135:176b8275d35d 8774 /** @defgroup ADC_LL_Exported_Functions ADC Exported Functions
<> 135:176b8275d35d 8775 * @{
<> 135:176b8275d35d 8776 */
<> 135:176b8275d35d 8777
<> 135:176b8275d35d 8778 /** @defgroup ADC_LL_EF_DMA_Management ADC DMA management
<> 135:176b8275d35d 8779 * @{
<> 135:176b8275d35d 8780 */
<> 135:176b8275d35d 8781 /* Note: LL ADC functions to set DMA transfer are located into sections of */
<> 135:176b8275d35d 8782 /* configuration of ADC instance, groups and multimode (if available): */
<> 135:176b8275d35d 8783 /* @ref LL_ADC_REG_SetDMATransfer(), ... */
<> 135:176b8275d35d 8784
<> 135:176b8275d35d 8785 /**
<> 135:176b8275d35d 8786 * @brief Function to help to configure DMA transfer from ADC: retrieve the
<> 135:176b8275d35d 8787 * ADC register address from ADC instance and a list of ADC registers
<> 135:176b8275d35d 8788 * intended to be used (most commonly) with DMA transfer.
<> 135:176b8275d35d 8789 * @note These ADC registers are data registers:
<> 135:176b8275d35d 8790 * when ADC conversion data is available in ADC data registers,
<> 135:176b8275d35d 8791 * ADC generates a DMA transfer request.
<> 135:176b8275d35d 8792 * @note This macro is intended to be used with LL DMA driver, refer to
<> 135:176b8275d35d 8793 * function "LL_DMA_ConfigAddresses()".
<> 135:176b8275d35d 8794 * Example:
<> 135:176b8275d35d 8795 * LL_DMA_ConfigAddresses(DMA1,
<> 135:176b8275d35d 8796 * LL_DMA_CHANNEL_1,
<> 135:176b8275d35d 8797 * LL_ADC_DMA_GetRegAddr(ADC1, LL_ADC_DMA_REG_REGULAR_DATA),
<> 135:176b8275d35d 8798 * (uint32_t)&< array or variable >,
<> 135:176b8275d35d 8799 * LL_DMA_DIRECTION_PERIPH_TO_MEMORY);
<> 135:176b8275d35d 8800 * @note For devices with several ADC: in multimode, some devices
<> 135:176b8275d35d 8801 * use a different data register outside of ADC instance scope
<> 135:176b8275d35d 8802 * (common data register). This macro manages this register difference,
<> 135:176b8275d35d 8803 * only ADC instance has to be set as parameter.
<> 135:176b8275d35d 8804 * @rmtoll DR DATA LL_ADC_DMA_GetRegAddr
<> 135:176b8275d35d 8805 * @param ADCx ADC instance
<> 135:176b8275d35d 8806 * @param Register This parameter can be one of the following values:
<> 135:176b8275d35d 8807 * @arg @ref LL_ADC_DMA_REG_REGULAR_DATA
<> 135:176b8275d35d 8808 * @retval ADC register address
<> 135:176b8275d35d 8809 */
<> 135:176b8275d35d 8810 __STATIC_INLINE uint32_t LL_ADC_DMA_GetRegAddr(ADC_TypeDef *ADCx, uint32_t Register)
<> 135:176b8275d35d 8811 {
<> 135:176b8275d35d 8812 /* Retrieve address of register DR */
<> 135:176b8275d35d 8813 return (uint32_t)&(ADCx->DR);
<> 135:176b8275d35d 8814 }
<> 135:176b8275d35d 8815
<> 135:176b8275d35d 8816 /**
<> 135:176b8275d35d 8817 * @}
<> 135:176b8275d35d 8818 */
<> 135:176b8275d35d 8819
<> 135:176b8275d35d 8820 /** @defgroup ADC_LL_EF_Configuration_ADC_Common Configuration of ADC hierarchical scope: common to several ADC instances
<> 135:176b8275d35d 8821 * @{
<> 135:176b8275d35d 8822 */
<> 135:176b8275d35d 8823
<> 135:176b8275d35d 8824 /**
<> 135:176b8275d35d 8825 * @brief Set parameter common to several ADC: measurement path to internal
<> 135:176b8275d35d 8826 * channels (VrefInt, temperature sensor, ...).
<> 135:176b8275d35d 8827 * @note One or several values can be selected.
<> 135:176b8275d35d 8828 * Example: (LL_ADC_PATH_INTERNAL_VREFINT |
<> 135:176b8275d35d 8829 * LL_ADC_PATH_INTERNAL_TEMPSENSOR)
<> 135:176b8275d35d 8830 * @note Stabilization time of measurement path to internal channel:
<> 135:176b8275d35d 8831 * After enabling internal paths, before starting ADC conversion,
<> 135:176b8275d35d 8832 * a delay is required for internal voltage reference and
<> 135:176b8275d35d 8833 * temperature sensor stabilization time.
<> 135:176b8275d35d 8834 * Refer to device datasheet.
<> 135:176b8275d35d 8835 * Refer to literal @ref LL_ADC_DELAY_TEMPSENSOR_STAB_US.
<> 135:176b8275d35d 8836 * @note ADC internal channel sampling time constraint:
<> 135:176b8275d35d 8837 * For ADC conversion of internal channels,
<> 135:176b8275d35d 8838 * a sampling time minimum value is required.
<> 135:176b8275d35d 8839 * Refer to device datasheet.
<> 135:176b8275d35d 8840 * @rmtoll CR2 TSVREFE LL_ADC_SetCommonPathInternalCh
<> 135:176b8275d35d 8841 * @param ADCxy_COMMON ADC common instance
<> 135:176b8275d35d 8842 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
<> 135:176b8275d35d 8843 * @param PathInternal This parameter can be a combination of the following values:
<> 135:176b8275d35d 8844 * @arg @ref LL_ADC_PATH_INTERNAL_NONE
<> 135:176b8275d35d 8845 * @arg @ref LL_ADC_PATH_INTERNAL_VREFINT
<> 135:176b8275d35d 8846 * @arg @ref LL_ADC_PATH_INTERNAL_TEMPSENSOR
<> 135:176b8275d35d 8847 * @retval None
<> 135:176b8275d35d 8848 */
<> 135:176b8275d35d 8849 __STATIC_INLINE void LL_ADC_SetCommonPathInternalCh(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t PathInternal)
<> 135:176b8275d35d 8850 {
<> 135:176b8275d35d 8851 MODIFY_REG(ADCxy_COMMON->CR2, (ADC_CR2_TSVREFE), PathInternal);
<> 135:176b8275d35d 8852 }
<> 135:176b8275d35d 8853
<> 135:176b8275d35d 8854 /**
<> 135:176b8275d35d 8855 * @brief Get parameter common to several ADC: measurement path to internal
<> 135:176b8275d35d 8856 * channels (VrefInt, temperature sensor, ...).
<> 135:176b8275d35d 8857 * @note One or several values can be selected.
<> 135:176b8275d35d 8858 * Example: (LL_ADC_PATH_INTERNAL_VREFINT |
<> 135:176b8275d35d 8859 * LL_ADC_PATH_INTERNAL_TEMPSENSOR)
<> 135:176b8275d35d 8860 * @rmtoll CR2 TSVREFE LL_ADC_GetCommonPathInternalCh
<> 135:176b8275d35d 8861 * @param ADCxy_COMMON ADC common instance
<> 135:176b8275d35d 8862 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
<> 135:176b8275d35d 8863 * @retval Returned value can be a combination of the following values:
<> 135:176b8275d35d 8864 * @arg @ref LL_ADC_PATH_INTERNAL_NONE
<> 135:176b8275d35d 8865 * @arg @ref LL_ADC_PATH_INTERNAL_VREFINT
<> 135:176b8275d35d 8866 * @arg @ref LL_ADC_PATH_INTERNAL_TEMPSENSOR
<> 135:176b8275d35d 8867 */
<> 135:176b8275d35d 8868 __STATIC_INLINE uint32_t LL_ADC_GetCommonPathInternalCh(ADC_Common_TypeDef *ADCxy_COMMON)
<> 135:176b8275d35d 8869 {
<> 135:176b8275d35d 8870 return (uint32_t)(READ_BIT(ADCxy_COMMON->CR2, ADC_CR2_TSVREFE));
<> 135:176b8275d35d 8871 }
<> 135:176b8275d35d 8872
<> 135:176b8275d35d 8873 /**
<> 135:176b8275d35d 8874 * @}
<> 135:176b8275d35d 8875 */
<> 135:176b8275d35d 8876
<> 135:176b8275d35d 8877 /** @defgroup ADC_LL_EF_Configuration_ADC_Instance Configuration of ADC hierarchical scope: ADC instance
<> 135:176b8275d35d 8878 * @{
<> 135:176b8275d35d 8879 */
<> 135:176b8275d35d 8880
<> 135:176b8275d35d 8881 /**
<> 135:176b8275d35d 8882 * @brief Set ADC conversion data alignment.
<> 135:176b8275d35d 8883 * @note Refer to reference manual for alignments formats
<> 135:176b8275d35d 8884 * dependencies to ADC resolutions.
<> 135:176b8275d35d 8885 * @rmtoll CR2 ALIGN LL_ADC_SetDataAlignment
<> 135:176b8275d35d 8886 * @param ADCx ADC instance
<> 135:176b8275d35d 8887 * @param DataAlignment This parameter can be one of the following values:
<> 135:176b8275d35d 8888 * @arg @ref LL_ADC_DATA_ALIGN_RIGHT
<> 135:176b8275d35d 8889 * @arg @ref LL_ADC_DATA_ALIGN_LEFT
<> 135:176b8275d35d 8890 * @retval None
<> 135:176b8275d35d 8891 */
<> 135:176b8275d35d 8892 __STATIC_INLINE void LL_ADC_SetDataAlignment(ADC_TypeDef *ADCx, uint32_t DataAlignment)
<> 135:176b8275d35d 8893 {
<> 135:176b8275d35d 8894 MODIFY_REG(ADCx->CR2, ADC_CR2_ALIGN, DataAlignment);
<> 135:176b8275d35d 8895 }
<> 135:176b8275d35d 8896
<> 135:176b8275d35d 8897 /**
<> 135:176b8275d35d 8898 * @brief Get ADC conversion data alignment.
<> 135:176b8275d35d 8899 * @note Refer to reference manual for alignments formats
<> 135:176b8275d35d 8900 * dependencies to ADC resolutions.
<> 135:176b8275d35d 8901 * @rmtoll CR2 ALIGN LL_ADC_SetDataAlignment
<> 135:176b8275d35d 8902 * @param ADCx ADC instance
<> 135:176b8275d35d 8903 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 8904 * @arg @ref LL_ADC_DATA_ALIGN_RIGHT
<> 135:176b8275d35d 8905 * @arg @ref LL_ADC_DATA_ALIGN_LEFT
<> 135:176b8275d35d 8906 */
<> 135:176b8275d35d 8907 __STATIC_INLINE uint32_t LL_ADC_GetDataAlignment(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 8908 {
<> 135:176b8275d35d 8909 return (uint32_t)(READ_BIT(ADCx->CR2, ADC_CR2_ALIGN));
<> 135:176b8275d35d 8910 }
<> 135:176b8275d35d 8911
<> 135:176b8275d35d 8912 /**
<> 135:176b8275d35d 8913 * @brief Set ADC sequencers scan mode, for all ADC groups
<> 135:176b8275d35d 8914 * (group regular, group injected).
<> 135:176b8275d35d 8915 * @note According to sequencers scan mode :
<> 135:176b8275d35d 8916 * - If disabled: ADC conversion is performed in unitary conversion
<> 135:176b8275d35d 8917 * mode (one channel converted, that defined in rank 1).
<> 135:176b8275d35d 8918 * Configuration of sequencers of all ADC groups
<> 135:176b8275d35d 8919 * (sequencer scan length, ...) is discarded: equivalent to
<> 135:176b8275d35d 8920 * scan length of 1 rank.
<> 135:176b8275d35d 8921 * - If enabled: ADC conversions are performed in sequence conversions
<> 135:176b8275d35d 8922 * mode, according to configuration of sequencers of
<> 135:176b8275d35d 8923 * each ADC group (sequencer scan length, ...).
<> 135:176b8275d35d 8924 * Refer to function @ref LL_ADC_REG_SetSequencerLength()
<> 135:176b8275d35d 8925 * and to function @ref LL_ADC_INJ_SetSequencerLength().
<> 135:176b8275d35d 8926 * @rmtoll CR1 SCAN LL_ADC_SetSequencersScanMode
<> 135:176b8275d35d 8927 * @param ADCx ADC instance
<> 135:176b8275d35d 8928 * @param ScanMode This parameter can be one of the following values:
<> 135:176b8275d35d 8929 * @arg @ref LL_ADC_SEQ_SCAN_DISABLE
<> 135:176b8275d35d 8930 * @arg @ref LL_ADC_SEQ_SCAN_ENABLE
<> 135:176b8275d35d 8931 * @retval None
<> 135:176b8275d35d 8932 */
<> 135:176b8275d35d 8933 __STATIC_INLINE void LL_ADC_SetSequencersScanMode(ADC_TypeDef *ADCx, uint32_t ScanMode)
<> 135:176b8275d35d 8934 {
<> 135:176b8275d35d 8935 MODIFY_REG(ADCx->CR1, ADC_CR1_SCAN, ScanMode);
<> 135:176b8275d35d 8936 }
<> 135:176b8275d35d 8937
<> 135:176b8275d35d 8938 /**
<> 135:176b8275d35d 8939 * @brief Get ADC sequencers scan mode, for all ADC groups
<> 135:176b8275d35d 8940 * (group regular, group injected).
<> 135:176b8275d35d 8941 * @note According to sequencers scan mode :
<> 135:176b8275d35d 8942 * - If disabled: ADC conversion is performed in unitary conversion
<> 135:176b8275d35d 8943 * mode (one channel converted, that defined in rank 1).
<> 135:176b8275d35d 8944 * Configuration of sequencers of all ADC groups
<> 135:176b8275d35d 8945 * (sequencer scan length, ...) is discarded: equivalent to
<> 135:176b8275d35d 8946 * scan length of 1 rank.
<> 135:176b8275d35d 8947 * - If enabled: ADC conversions are performed in sequence conversions
<> 135:176b8275d35d 8948 * mode, according to configuration of sequencers of
<> 135:176b8275d35d 8949 * each ADC group (sequencer scan length, ...).
<> 135:176b8275d35d 8950 * Refer to function @ref LL_ADC_REG_SetSequencerLength()
<> 135:176b8275d35d 8951 * and to function @ref LL_ADC_INJ_SetSequencerLength().
<> 135:176b8275d35d 8952 * @rmtoll CR1 SCAN LL_ADC_GetSequencersScanMode
<> 135:176b8275d35d 8953 * @param ADCx ADC instance
<> 135:176b8275d35d 8954 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 8955 * @arg @ref LL_ADC_SEQ_SCAN_DISABLE
<> 135:176b8275d35d 8956 * @arg @ref LL_ADC_SEQ_SCAN_ENABLE
<> 135:176b8275d35d 8957 */
<> 135:176b8275d35d 8958 __STATIC_INLINE uint32_t LL_ADC_GetSequencersScanMode(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 8959 {
<> 135:176b8275d35d 8960 return (uint32_t)(READ_BIT(ADCx->CR1, ADC_CR1_SCAN));
<> 135:176b8275d35d 8961 }
<> 135:176b8275d35d 8962
<> 135:176b8275d35d 8963 /**
<> 135:176b8275d35d 8964 * @}
<> 135:176b8275d35d 8965 */
<> 135:176b8275d35d 8966
<> 135:176b8275d35d 8967 /** @defgroup ADC_LL_EF_Configuration_ADC_Group_Regular Configuration of ADC hierarchical scope: group regular
<> 135:176b8275d35d 8968 * @{
<> 135:176b8275d35d 8969 */
<> 135:176b8275d35d 8970
<> 135:176b8275d35d 8971 /**
<> 135:176b8275d35d 8972 * @brief Set ADC group regular conversion trigger source:
<> 135:176b8275d35d 8973 * internal (SW start) or external from timer or external interrupt.
<> 135:176b8275d35d 8974 * @note On this STM32 serie, external trigger is set with trigger polarity:
<> 135:176b8275d35d 8975 * rising edge (only trigger polarity available on this STM32 serie).
<> 135:176b8275d35d 8976 * @note Availability of parameters of trigger sources from timer
<> 135:176b8275d35d 8977 * depends on timers availability on the selected device.
<> 135:176b8275d35d 8978 * @rmtoll CR2 EXTSEL LL_ADC_REG_SetTriggerSource
<> 135:176b8275d35d 8979 * @param ADCx ADC instance
<> 135:176b8275d35d 8980 * @param TriggerSource This parameter can be one of the following values:
<> 135:176b8275d35d 8981 * @arg @ref LL_ADC_REG_TRIG_SOFTWARE
<> 135:176b8275d35d 8982 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_CH2
<> 135:176b8275d35d 8983 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_TRGO
<> 135:176b8275d35d 8984 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_CH2
<> 135:176b8275d35d 8985 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM19_TRGO
<> 135:176b8275d35d 8986 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM19_CH3
<> 135:176b8275d35d 8987 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM19_CH4
<> 135:176b8275d35d 8988 * @arg @ref LL_ADC_REG_TRIG_EXT_EXTI_LINE11
<> 135:176b8275d35d 8989 * @retval None
<> 135:176b8275d35d 8990 */
<> 135:176b8275d35d 8991 __STATIC_INLINE void LL_ADC_REG_SetTriggerSource(ADC_TypeDef *ADCx, uint32_t TriggerSource)
<> 135:176b8275d35d 8992 {
<> 135:176b8275d35d 8993 /* Note: On this STM32 serie, ADC group regular external trigger edge */
<> 135:176b8275d35d 8994 /* is used to perform a ADC conversion start. */
<> 135:176b8275d35d 8995 /* This function does not set external trigger edge. */
<> 135:176b8275d35d 8996 /* This feature is set using function */
<> 135:176b8275d35d 8997 /* @ref LL_ADC_REG_StartConversionExtTrig(). */
<> 135:176b8275d35d 8998 MODIFY_REG(ADCx->CR2, ADC_CR2_EXTSEL, (TriggerSource & ADC_CR2_EXTSEL));
<> 135:176b8275d35d 8999 }
<> 135:176b8275d35d 9000
<> 135:176b8275d35d 9001 /**
<> 135:176b8275d35d 9002 * @brief Get ADC group regular conversion trigger source:
<> 135:176b8275d35d 9003 * internal (SW start) or external from timer or external interrupt.
<> 135:176b8275d35d 9004 * @note To determine whether group regular trigger source is
<> 135:176b8275d35d 9005 * internal (SW start) or external, without detail
<> 135:176b8275d35d 9006 * of which peripheral is selected as external trigger,
<> 135:176b8275d35d 9007 * (equivalent to
<> 135:176b8275d35d 9008 * "if(LL_ADC_REG_GetTriggerSource(ADC1) == LL_ADC_REG_TRIG_SOFTWARE)")
<> 135:176b8275d35d 9009 * use function @ref LL_ADC_REG_IsTriggerSourceSWStart.
<> 135:176b8275d35d 9010 * @note Availability of parameters of trigger sources from timer
<> 135:176b8275d35d 9011 * depends on timers availability on the selected device.
<> 135:176b8275d35d 9012 * @rmtoll CR2 EXTSEL LL_ADC_REG_GetTriggerSource
<> 135:176b8275d35d 9013 * @param ADCx ADC instance
<> 135:176b8275d35d 9014 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 9015 * @arg @ref LL_ADC_REG_TRIG_SOFTWARE
<> 135:176b8275d35d 9016 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_CH2
<> 135:176b8275d35d 9017 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_TRGO
<> 135:176b8275d35d 9018 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_CH2
<> 135:176b8275d35d 9019 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM19_TRGO
<> 135:176b8275d35d 9020 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM19_CH3
<> 135:176b8275d35d 9021 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM19_CH4
<> 135:176b8275d35d 9022 * @arg @ref LL_ADC_REG_TRIG_EXT_EXTI_LINE11
<> 135:176b8275d35d 9023 */
<> 135:176b8275d35d 9024 __STATIC_INLINE uint32_t LL_ADC_REG_GetTriggerSource(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 9025 {
<> 135:176b8275d35d 9026 return (uint32_t)(READ_BIT(ADCx->CR2, ADC_CR2_EXTSEL));
<> 135:176b8275d35d 9027 }
<> 135:176b8275d35d 9028
<> 135:176b8275d35d 9029 /**
<> 135:176b8275d35d 9030 * @brief Get ADC group regular conversion trigger source internal (SW start)
<> 135:176b8275d35d 9031 or external.
<> 135:176b8275d35d 9032 * @note In case of group regular trigger source set to external trigger,
<> 135:176b8275d35d 9033 * to determine which peripheral is selected as external trigger,
<> 135:176b8275d35d 9034 * use function @ref LL_ADC_REG_GetTriggerSource().
<> 135:176b8275d35d 9035 * @rmtoll CR2 EXTSEL LL_ADC_REG_IsTriggerSourceSWStart
<> 135:176b8275d35d 9036 * @param ADCx ADC instance
<> 135:176b8275d35d 9037 * @retval Value "0" trigger source external trigger
<> 135:176b8275d35d 9038 * Value "1" trigger source SW start.
<> 135:176b8275d35d 9039 */
<> 135:176b8275d35d 9040 __STATIC_INLINE uint32_t LL_ADC_REG_IsTriggerSourceSWStart(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 9041 {
<> 135:176b8275d35d 9042 return (READ_BIT(ADCx->CR2, ADC_CR2_EXTSEL) == (LL_ADC_REG_TRIG_SOFTWARE));
<> 135:176b8275d35d 9043 }
<> 135:176b8275d35d 9044
<> 135:176b8275d35d 9045
<> 135:176b8275d35d 9046 /**
<> 135:176b8275d35d 9047 * @brief Set ADC group regular sequencer length and scan direction.
<> 135:176b8275d35d 9048 * @note Description of ADC group regular sequencer features:
<> 135:176b8275d35d 9049 * - For devices with sequencer fully configurable
<> 135:176b8275d35d 9050 * (function "LL_ADC_REG_SetSequencerRanks()" available):
<> 135:176b8275d35d 9051 * sequencer length and each rank affectation to a channel
<> 135:176b8275d35d 9052 * are configurable.
<> 135:176b8275d35d 9053 * This function performs configuration of:
<> 135:176b8275d35d 9054 * - Sequence length: Number of ranks in the scan sequence.
<> 135:176b8275d35d 9055 * - Sequence direction: Unless specified in parameters, sequencer
<> 135:176b8275d35d 9056 * scan direction is forward (from rank 1 to rank n).
<> 135:176b8275d35d 9057 * Sequencer ranks are selected using
<> 135:176b8275d35d 9058 * function "LL_ADC_REG_SetSequencerRanks()".
<> 135:176b8275d35d 9059 * - For devices with sequencer not fully configurable
<> 135:176b8275d35d 9060 * (function "LL_ADC_REG_SetSequencerChannels()" available):
<> 135:176b8275d35d 9061 * sequencer length and each rank affectation to a channel
<> 135:176b8275d35d 9062 * are defined by channel number.
<> 135:176b8275d35d 9063 * This function performs configuration of:
<> 135:176b8275d35d 9064 * - Sequence length: Number of ranks in the scan sequence is
<> 135:176b8275d35d 9065 * defined by number of channels set in the sequence,
<> 135:176b8275d35d 9066 * rank of each channel is fixed by channel HW number.
<> 135:176b8275d35d 9067 * (channel 0 fixed on rank 0, channel 1 fixed on rank1, ...).
<> 135:176b8275d35d 9068 * - Sequence direction: Unless specified in parameters, sequencer
<> 135:176b8275d35d 9069 * scan direction is forward (from lowest channel number to
<> 135:176b8275d35d 9070 * highest channel number).
<> 135:176b8275d35d 9071 * Sequencer ranks are selected using
<> 135:176b8275d35d 9072 * function "LL_ADC_REG_SetSequencerChannels()".
<> 135:176b8275d35d 9073 * @note On this STM32 serie, group regular sequencer configuration
<> 135:176b8275d35d 9074 * is conditioned to ADC instance sequencer mode.
<> 135:176b8275d35d 9075 * If ADC instance sequencer mode is disabled, sequencers of
<> 135:176b8275d35d 9076 * all groups (group regular, group injected) can be configured
<> 135:176b8275d35d 9077 * but their execution is disabled (limited to rank 1).
<> 135:176b8275d35d 9078 * Refer to function @ref LL_ADC_SetSequencersScanMode().
<> 135:176b8275d35d 9079 * @note Sequencer disabled is equivalent to sequencer of 1 rank:
<> 135:176b8275d35d 9080 * ADC conversion on only 1 channel.
<> 135:176b8275d35d 9081 * @rmtoll SQR1 L LL_ADC_REG_SetSequencerLength
<> 135:176b8275d35d 9082 * @param ADCx ADC instance
<> 135:176b8275d35d 9083 * @param SequencerNbRanks This parameter can be one of the following values:
<> 135:176b8275d35d 9084 * @arg @ref LL_ADC_REG_SEQ_SCAN_DISABLE
<> 135:176b8275d35d 9085 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_2RANKS
<> 135:176b8275d35d 9086 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_3RANKS
<> 135:176b8275d35d 9087 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_4RANKS
<> 135:176b8275d35d 9088 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_5RANKS
<> 135:176b8275d35d 9089 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_6RANKS
<> 135:176b8275d35d 9090 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_7RANKS
<> 135:176b8275d35d 9091 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_8RANKS
<> 135:176b8275d35d 9092 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_9RANKS
<> 135:176b8275d35d 9093 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_10RANKS
<> 135:176b8275d35d 9094 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_11RANKS
<> 135:176b8275d35d 9095 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_12RANKS
<> 135:176b8275d35d 9096 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_13RANKS
<> 135:176b8275d35d 9097 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_14RANKS
<> 135:176b8275d35d 9098 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_15RANKS
<> 135:176b8275d35d 9099 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_16RANKS
<> 135:176b8275d35d 9100 * @retval None
<> 135:176b8275d35d 9101 */
<> 135:176b8275d35d 9102 __STATIC_INLINE void LL_ADC_REG_SetSequencerLength(ADC_TypeDef *ADCx, uint32_t SequencerNbRanks)
<> 135:176b8275d35d 9103 {
<> 135:176b8275d35d 9104 MODIFY_REG(ADCx->SQR1, ADC_SQR1_L, SequencerNbRanks);
<> 135:176b8275d35d 9105 }
<> 135:176b8275d35d 9106
<> 135:176b8275d35d 9107 /**
<> 135:176b8275d35d 9108 * @brief Get ADC group regular sequencer length and scan direction.
<> 135:176b8275d35d 9109 * @note Description of ADC group regular sequencer features:
<> 135:176b8275d35d 9110 * - For devices with sequencer fully configurable
<> 135:176b8275d35d 9111 * (function "LL_ADC_REG_SetSequencerRanks()" available):
<> 135:176b8275d35d 9112 * sequencer length and each rank affectation to a channel
<> 135:176b8275d35d 9113 * are configurable.
<> 135:176b8275d35d 9114 * This function retrieves:
<> 135:176b8275d35d 9115 * - Sequence length: Number of ranks in the scan sequence.
<> 135:176b8275d35d 9116 * - Sequence direction: Unless specified in parameters, sequencer
<> 135:176b8275d35d 9117 * scan direction is forward (from rank 1 to rank n).
<> 135:176b8275d35d 9118 * Sequencer ranks are selected using
<> 135:176b8275d35d 9119 * function "LL_ADC_REG_SetSequencerRanks()".
<> 135:176b8275d35d 9120 * - For devices with sequencer not fully configurable
<> 135:176b8275d35d 9121 * (function "LL_ADC_REG_SetSequencerChannels()" available):
<> 135:176b8275d35d 9122 * sequencer length and each rank affectation to a channel
<> 135:176b8275d35d 9123 * are defined by channel number.
<> 135:176b8275d35d 9124 * This function retrieves:
<> 135:176b8275d35d 9125 * - Sequence length: Number of ranks in the scan sequence is
<> 135:176b8275d35d 9126 * defined by number of channels set in the sequence,
<> 135:176b8275d35d 9127 * rank of each channel is fixed by channel HW number.
<> 135:176b8275d35d 9128 * (channel 0 fixed on rank 0, channel 1 fixed on rank1, ...).
<> 135:176b8275d35d 9129 * - Sequence direction: Unless specified in parameters, sequencer
<> 135:176b8275d35d 9130 * scan direction is forward (from lowest channel number to
<> 135:176b8275d35d 9131 * highest channel number).
<> 135:176b8275d35d 9132 * Sequencer ranks are selected using
<> 135:176b8275d35d 9133 * function "LL_ADC_REG_SetSequencerChannels()".
<> 135:176b8275d35d 9134 * @note On this STM32 serie, group regular sequencer configuration
<> 135:176b8275d35d 9135 * is conditioned to ADC instance sequencer mode.
<> 135:176b8275d35d 9136 * If ADC instance sequencer mode is disabled, sequencers of
<> 135:176b8275d35d 9137 * all groups (group regular, group injected) can be configured
<> 135:176b8275d35d 9138 * but their execution is disabled (limited to rank 1).
<> 135:176b8275d35d 9139 * Refer to function @ref LL_ADC_SetSequencersScanMode().
<> 135:176b8275d35d 9140 * @note Sequencer disabled is equivalent to sequencer of 1 rank:
<> 135:176b8275d35d 9141 * ADC conversion on only 1 channel.
<> 135:176b8275d35d 9142 * @rmtoll SQR1 L LL_ADC_REG_SetSequencerLength
<> 135:176b8275d35d 9143 * @param ADCx ADC instance
<> 135:176b8275d35d 9144 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 9145 * @arg @ref LL_ADC_REG_SEQ_SCAN_DISABLE
<> 135:176b8275d35d 9146 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_2RANKS
<> 135:176b8275d35d 9147 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_3RANKS
<> 135:176b8275d35d 9148 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_4RANKS
<> 135:176b8275d35d 9149 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_5RANKS
<> 135:176b8275d35d 9150 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_6RANKS
<> 135:176b8275d35d 9151 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_7RANKS
<> 135:176b8275d35d 9152 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_8RANKS
<> 135:176b8275d35d 9153 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_9RANKS
<> 135:176b8275d35d 9154 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_10RANKS
<> 135:176b8275d35d 9155 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_11RANKS
<> 135:176b8275d35d 9156 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_12RANKS
<> 135:176b8275d35d 9157 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_13RANKS
<> 135:176b8275d35d 9158 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_14RANKS
<> 135:176b8275d35d 9159 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_15RANKS
<> 135:176b8275d35d 9160 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_16RANKS
<> 135:176b8275d35d 9161 */
<> 135:176b8275d35d 9162 __STATIC_INLINE uint32_t LL_ADC_REG_GetSequencerLength(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 9163 {
<> 135:176b8275d35d 9164 return (uint32_t)(READ_BIT(ADCx->SQR1, ADC_SQR1_L));
<> 135:176b8275d35d 9165 }
<> 135:176b8275d35d 9166
<> 135:176b8275d35d 9167 /**
<> 135:176b8275d35d 9168 * @brief Set ADC group regular sequencer discontinuous mode:
<> 135:176b8275d35d 9169 * sequence subdivided and scan conversions interrupted every selected
<> 135:176b8275d35d 9170 * number of ranks.
<> 135:176b8275d35d 9171 * @note It is not possible to enable both ADC group regular
<> 135:176b8275d35d 9172 * continuous mode and sequencer discontinuous mode.
<> 135:176b8275d35d 9173 * @note It is not possible to enable both ADC auto-injected mode
<> 135:176b8275d35d 9174 * and ADC group regular sequencer discontinuous mode.
<> 135:176b8275d35d 9175 * @rmtoll CR1 DISCEN LL_ADC_REG_SetSequencerDiscont\n
<> 135:176b8275d35d 9176 * CR1 DISCNUM LL_ADC_REG_SetSequencerDiscont
<> 135:176b8275d35d 9177 * @param ADCx ADC instance
<> 135:176b8275d35d 9178 * @param SeqDiscont This parameter can be one of the following values:
<> 135:176b8275d35d 9179 * @arg @ref LL_ADC_REG_SEQ_DISCONT_DISABLE
<> 135:176b8275d35d 9180 * @arg @ref LL_ADC_REG_SEQ_DISCONT_1RANK
<> 135:176b8275d35d 9181 * @arg @ref LL_ADC_REG_SEQ_DISCONT_2RANKS
<> 135:176b8275d35d 9182 * @arg @ref LL_ADC_REG_SEQ_DISCONT_3RANKS
<> 135:176b8275d35d 9183 * @arg @ref LL_ADC_REG_SEQ_DISCONT_4RANKS
<> 135:176b8275d35d 9184 * @arg @ref LL_ADC_REG_SEQ_DISCONT_5RANKS
<> 135:176b8275d35d 9185 * @arg @ref LL_ADC_REG_SEQ_DISCONT_6RANKS
<> 135:176b8275d35d 9186 * @arg @ref LL_ADC_REG_SEQ_DISCONT_7RANKS
<> 135:176b8275d35d 9187 * @arg @ref LL_ADC_REG_SEQ_DISCONT_8RANKS
<> 135:176b8275d35d 9188 * @retval None
<> 135:176b8275d35d 9189 */
<> 135:176b8275d35d 9190 __STATIC_INLINE void LL_ADC_REG_SetSequencerDiscont(ADC_TypeDef *ADCx, uint32_t SeqDiscont)
<> 135:176b8275d35d 9191 {
<> 135:176b8275d35d 9192 MODIFY_REG(ADCx->CR1, ADC_CR1_DISCEN | ADC_CR1_DISCNUM, SeqDiscont);
<> 135:176b8275d35d 9193 }
<> 135:176b8275d35d 9194
<> 135:176b8275d35d 9195 /**
<> 135:176b8275d35d 9196 * @brief Get ADC group regular sequencer discontinuous mode:
<> 135:176b8275d35d 9197 * sequence subdivided and scan conversions interrupted every selected
<> 135:176b8275d35d 9198 * number of ranks.
<> 135:176b8275d35d 9199 * @rmtoll CR1 DISCEN LL_ADC_REG_GetSequencerDiscont\n
<> 135:176b8275d35d 9200 * CR1 DISCNUM LL_ADC_REG_GetSequencerDiscont
<> 135:176b8275d35d 9201 * @param ADCx ADC instance
<> 135:176b8275d35d 9202 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 9203 * @arg @ref LL_ADC_REG_SEQ_DISCONT_DISABLE
<> 135:176b8275d35d 9204 * @arg @ref LL_ADC_REG_SEQ_DISCONT_1RANK
<> 135:176b8275d35d 9205 * @arg @ref LL_ADC_REG_SEQ_DISCONT_2RANKS
<> 135:176b8275d35d 9206 * @arg @ref LL_ADC_REG_SEQ_DISCONT_3RANKS
<> 135:176b8275d35d 9207 * @arg @ref LL_ADC_REG_SEQ_DISCONT_4RANKS
<> 135:176b8275d35d 9208 * @arg @ref LL_ADC_REG_SEQ_DISCONT_5RANKS
<> 135:176b8275d35d 9209 * @arg @ref LL_ADC_REG_SEQ_DISCONT_6RANKS
<> 135:176b8275d35d 9210 * @arg @ref LL_ADC_REG_SEQ_DISCONT_7RANKS
<> 135:176b8275d35d 9211 * @arg @ref LL_ADC_REG_SEQ_DISCONT_8RANKS
<> 135:176b8275d35d 9212 */
<> 135:176b8275d35d 9213 __STATIC_INLINE uint32_t LL_ADC_REG_GetSequencerDiscont(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 9214 {
<> 135:176b8275d35d 9215 return (uint32_t)(READ_BIT(ADCx->CR1, ADC_CR1_DISCEN | ADC_CR1_DISCNUM));
<> 135:176b8275d35d 9216 }
<> 135:176b8275d35d 9217
<> 135:176b8275d35d 9218 /**
<> 135:176b8275d35d 9219 * @brief Set ADC group regular sequence: channel on the selected
<> 135:176b8275d35d 9220 * scan sequence rank.
<> 135:176b8275d35d 9221 * @note This function performs configuration of:
<> 135:176b8275d35d 9222 * - Channels ordering into each rank of scan sequence:
<> 135:176b8275d35d 9223 * whatever channel can be placed into whatever rank.
<> 135:176b8275d35d 9224 * @note On this STM32 serie, ADC group regular sequencer is
<> 135:176b8275d35d 9225 * fully configurable: sequencer length and each rank
<> 135:176b8275d35d 9226 * affectation to a channel are configurable.
<> 135:176b8275d35d 9227 * Refer to description of function @ref LL_ADC_REG_SetSequencerLength().
<> 135:176b8275d35d 9228 * @note Depending on devices and packages, some channels may not be available.
<> 135:176b8275d35d 9229 * Refer to device datasheet for channels availability.
<> 135:176b8275d35d 9230 * @note On this STM32 serie, to measure internal channels (VrefInt,
<> 135:176b8275d35d 9231 * TempSensor, ...), measurement paths to internal channels must be
<> 135:176b8275d35d 9232 * enabled separately.
<> 135:176b8275d35d 9233 * This can be done using function @ref LL_ADC_SetCommonPathInternalCh().
<> 135:176b8275d35d 9234 * @rmtoll SQR3 SQ1 LL_ADC_REG_SetSequencerRanks\n
<> 135:176b8275d35d 9235 * SQR3 SQ2 LL_ADC_REG_SetSequencerRanks\n
<> 135:176b8275d35d 9236 * SQR3 SQ3 LL_ADC_REG_SetSequencerRanks\n
<> 135:176b8275d35d 9237 * SQR3 SQ4 LL_ADC_REG_SetSequencerRanks\n
<> 135:176b8275d35d 9238 * SQR3 SQ5 LL_ADC_REG_SetSequencerRanks\n
<> 135:176b8275d35d 9239 * SQR3 SQ6 LL_ADC_REG_SetSequencerRanks\n
<> 135:176b8275d35d 9240 * SQR2 SQ7 LL_ADC_REG_SetSequencerRanks\n
<> 135:176b8275d35d 9241 * SQR2 SQ8 LL_ADC_REG_SetSequencerRanks\n
<> 135:176b8275d35d 9242 * SQR2 SQ9 LL_ADC_REG_SetSequencerRanks\n
<> 135:176b8275d35d 9243 * SQR2 SQ10 LL_ADC_REG_SetSequencerRanks\n
<> 135:176b8275d35d 9244 * SQR2 SQ11 LL_ADC_REG_SetSequencerRanks\n
<> 135:176b8275d35d 9245 * SQR2 SQ12 LL_ADC_REG_SetSequencerRanks\n
<> 135:176b8275d35d 9246 * SQR1 SQ13 LL_ADC_REG_SetSequencerRanks\n
<> 135:176b8275d35d 9247 * SQR1 SQ14 LL_ADC_REG_SetSequencerRanks\n
<> 135:176b8275d35d 9248 * SQR1 SQ15 LL_ADC_REG_SetSequencerRanks\n
<> 135:176b8275d35d 9249 * SQR1 SQ16 LL_ADC_REG_SetSequencerRanks
<> 135:176b8275d35d 9250 * @param ADCx ADC instance
<> 135:176b8275d35d 9251 * @param Rank This parameter can be one of the following values:
<> 135:176b8275d35d 9252 * @arg @ref LL_ADC_REG_RANK_1
<> 135:176b8275d35d 9253 * @arg @ref LL_ADC_REG_RANK_2
<> 135:176b8275d35d 9254 * @arg @ref LL_ADC_REG_RANK_3
<> 135:176b8275d35d 9255 * @arg @ref LL_ADC_REG_RANK_4
<> 135:176b8275d35d 9256 * @arg @ref LL_ADC_REG_RANK_5
<> 135:176b8275d35d 9257 * @arg @ref LL_ADC_REG_RANK_6
<> 135:176b8275d35d 9258 * @arg @ref LL_ADC_REG_RANK_7
<> 135:176b8275d35d 9259 * @arg @ref LL_ADC_REG_RANK_8
<> 135:176b8275d35d 9260 * @arg @ref LL_ADC_REG_RANK_9
<> 135:176b8275d35d 9261 * @arg @ref LL_ADC_REG_RANK_10
<> 135:176b8275d35d 9262 * @arg @ref LL_ADC_REG_RANK_11
<> 135:176b8275d35d 9263 * @arg @ref LL_ADC_REG_RANK_12
<> 135:176b8275d35d 9264 * @arg @ref LL_ADC_REG_RANK_13
<> 135:176b8275d35d 9265 * @arg @ref LL_ADC_REG_RANK_14
<> 135:176b8275d35d 9266 * @arg @ref LL_ADC_REG_RANK_15
<> 135:176b8275d35d 9267 * @arg @ref LL_ADC_REG_RANK_16
<> 135:176b8275d35d 9268 * @param Channel This parameter can be one of the following values:
<> 135:176b8275d35d 9269 * @arg @ref LL_ADC_CHANNEL_0
<> 135:176b8275d35d 9270 * @arg @ref LL_ADC_CHANNEL_1
<> 135:176b8275d35d 9271 * @arg @ref LL_ADC_CHANNEL_2
<> 135:176b8275d35d 9272 * @arg @ref LL_ADC_CHANNEL_3
<> 135:176b8275d35d 9273 * @arg @ref LL_ADC_CHANNEL_4
<> 135:176b8275d35d 9274 * @arg @ref LL_ADC_CHANNEL_5
<> 135:176b8275d35d 9275 * @arg @ref LL_ADC_CHANNEL_6
<> 135:176b8275d35d 9276 * @arg @ref LL_ADC_CHANNEL_7
<> 135:176b8275d35d 9277 * @arg @ref LL_ADC_CHANNEL_8
<> 135:176b8275d35d 9278 * @arg @ref LL_ADC_CHANNEL_9
<> 135:176b8275d35d 9279 * @arg @ref LL_ADC_CHANNEL_10
<> 135:176b8275d35d 9280 * @arg @ref LL_ADC_CHANNEL_11
<> 135:176b8275d35d 9281 * @arg @ref LL_ADC_CHANNEL_12
<> 135:176b8275d35d 9282 * @arg @ref LL_ADC_CHANNEL_13
<> 135:176b8275d35d 9283 * @arg @ref LL_ADC_CHANNEL_14
<> 135:176b8275d35d 9284 * @arg @ref LL_ADC_CHANNEL_15
<> 135:176b8275d35d 9285 * @arg @ref LL_ADC_CHANNEL_16
<> 135:176b8275d35d 9286 * @arg @ref LL_ADC_CHANNEL_17
<> 135:176b8275d35d 9287 * @arg @ref LL_ADC_CHANNEL_VREFINT (1)
<> 135:176b8275d35d 9288 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (1)
<> 135:176b8275d35d 9289 *
<> 135:176b8275d35d 9290 * (1) On STM32F37x, parameter available only on ADC instance: ADC1.
<> 135:176b8275d35d 9291 * @retval None
<> 135:176b8275d35d 9292 */
<> 135:176b8275d35d 9293 __STATIC_INLINE void LL_ADC_REG_SetSequencerRanks(ADC_TypeDef *ADCx, uint32_t Rank, uint32_t Channel)
<> 135:176b8275d35d 9294 {
<> 135:176b8275d35d 9295 /* Set bits with content of parameter "Channel" with bits position */
<> 135:176b8275d35d 9296 /* in register and register position depending on parameter "Rank". */
<> 135:176b8275d35d 9297 /* Parameters "Rank" and "Channel" are used with masks because containing */
<> 135:176b8275d35d 9298 /* other bits reserved for other purpose. */
<> 135:176b8275d35d 9299 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->SQR1, __ADC_MASK_SHIFT(Rank, ADC_REG_SQRX_REGOFFSET_MASK));
<> 135:176b8275d35d 9300
<> 135:176b8275d35d 9301 MODIFY_REG(*preg,
<> 135:176b8275d35d 9302 ADC_CHANNEL_ID_NUMBER_MASK << (Rank & ADC_REG_RANK_ID_SQRX_MASK),
<> 135:176b8275d35d 9303 (Channel & ADC_CHANNEL_ID_NUMBER_MASK) << (Rank & ADC_REG_RANK_ID_SQRX_MASK));
<> 135:176b8275d35d 9304 }
<> 135:176b8275d35d 9305
<> 135:176b8275d35d 9306 /**
<> 135:176b8275d35d 9307 * @brief Get ADC group regular sequence: channel on the selected
<> 135:176b8275d35d 9308 * scan sequence rank.
<> 135:176b8275d35d 9309 * @note On this STM32 serie, ADC group regular sequencer is
<> 135:176b8275d35d 9310 * fully configurable: sequencer length and each rank
<> 135:176b8275d35d 9311 * affectation to a channel are configurable.
<> 135:176b8275d35d 9312 * Refer to description of function @ref LL_ADC_REG_SetSequencerLength().
<> 135:176b8275d35d 9313 * @note Depending on devices and packages, some channels may not be available.
<> 135:176b8275d35d 9314 * Refer to device datasheet for channels availability.
<> 135:176b8275d35d 9315 * @note Usage of the returned channel number:
<> 135:176b8275d35d 9316 * - To reinject this channel into another function LL_ADC_xxx:
<> 135:176b8275d35d 9317 * the returned channel number is only partly formatted on definition
<> 135:176b8275d35d 9318 * of literals LL_ADC_CHANNEL_x. Therefore, it has to be compared
<> 135:176b8275d35d 9319 * with parts of literals LL_ADC_CHANNEL_x or using
<> 135:176b8275d35d 9320 * helper macro @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
<> 135:176b8275d35d 9321 * Then the selected literal LL_ADC_CHANNEL_x can be used
<> 135:176b8275d35d 9322 * as parameter for another function.
<> 135:176b8275d35d 9323 * - To get the channel number in decimal format:
<> 135:176b8275d35d 9324 * process the returned value with the helper macro
<> 135:176b8275d35d 9325 * @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
<> 135:176b8275d35d 9326 * @rmtoll SQR3 SQ1 LL_ADC_REG_GetSequencerRanks\n
<> 135:176b8275d35d 9327 * SQR3 SQ2 LL_ADC_REG_GetSequencerRanks\n
<> 135:176b8275d35d 9328 * SQR3 SQ3 LL_ADC_REG_GetSequencerRanks\n
<> 135:176b8275d35d 9329 * SQR3 SQ4 LL_ADC_REG_GetSequencerRanks\n
<> 135:176b8275d35d 9330 * SQR3 SQ5 LL_ADC_REG_GetSequencerRanks\n
<> 135:176b8275d35d 9331 * SQR3 SQ6 LL_ADC_REG_GetSequencerRanks\n
<> 135:176b8275d35d 9332 * SQR2 SQ7 LL_ADC_REG_GetSequencerRanks\n
<> 135:176b8275d35d 9333 * SQR2 SQ8 LL_ADC_REG_GetSequencerRanks\n
<> 135:176b8275d35d 9334 * SQR2 SQ9 LL_ADC_REG_GetSequencerRanks\n
<> 135:176b8275d35d 9335 * SQR2 SQ10 LL_ADC_REG_GetSequencerRanks\n
<> 135:176b8275d35d 9336 * SQR2 SQ11 LL_ADC_REG_GetSequencerRanks\n
<> 135:176b8275d35d 9337 * SQR2 SQ12 LL_ADC_REG_GetSequencerRanks\n
<> 135:176b8275d35d 9338 * SQR1 SQ13 LL_ADC_REG_GetSequencerRanks\n
<> 135:176b8275d35d 9339 * SQR1 SQ14 LL_ADC_REG_GetSequencerRanks\n
<> 135:176b8275d35d 9340 * SQR1 SQ15 LL_ADC_REG_GetSequencerRanks\n
<> 135:176b8275d35d 9341 * SQR1 SQ16 LL_ADC_REG_GetSequencerRanks
<> 135:176b8275d35d 9342 * @param ADCx ADC instance
<> 135:176b8275d35d 9343 * @param Rank This parameter can be one of the following values:
<> 135:176b8275d35d 9344 * @arg @ref LL_ADC_REG_RANK_1
<> 135:176b8275d35d 9345 * @arg @ref LL_ADC_REG_RANK_2
<> 135:176b8275d35d 9346 * @arg @ref LL_ADC_REG_RANK_3
<> 135:176b8275d35d 9347 * @arg @ref LL_ADC_REG_RANK_4
<> 135:176b8275d35d 9348 * @arg @ref LL_ADC_REG_RANK_5
<> 135:176b8275d35d 9349 * @arg @ref LL_ADC_REG_RANK_6
<> 135:176b8275d35d 9350 * @arg @ref LL_ADC_REG_RANK_7
<> 135:176b8275d35d 9351 * @arg @ref LL_ADC_REG_RANK_8
<> 135:176b8275d35d 9352 * @arg @ref LL_ADC_REG_RANK_9
<> 135:176b8275d35d 9353 * @arg @ref LL_ADC_REG_RANK_10
<> 135:176b8275d35d 9354 * @arg @ref LL_ADC_REG_RANK_11
<> 135:176b8275d35d 9355 * @arg @ref LL_ADC_REG_RANK_12
<> 135:176b8275d35d 9356 * @arg @ref LL_ADC_REG_RANK_13
<> 135:176b8275d35d 9357 * @arg @ref LL_ADC_REG_RANK_14
<> 135:176b8275d35d 9358 * @arg @ref LL_ADC_REG_RANK_15
<> 135:176b8275d35d 9359 * @arg @ref LL_ADC_REG_RANK_16
<> 135:176b8275d35d 9360 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 9361 * @arg @ref LL_ADC_CHANNEL_0
<> 135:176b8275d35d 9362 * @arg @ref LL_ADC_CHANNEL_1
<> 135:176b8275d35d 9363 * @arg @ref LL_ADC_CHANNEL_2
<> 135:176b8275d35d 9364 * @arg @ref LL_ADC_CHANNEL_3
<> 135:176b8275d35d 9365 * @arg @ref LL_ADC_CHANNEL_4
<> 135:176b8275d35d 9366 * @arg @ref LL_ADC_CHANNEL_5
<> 135:176b8275d35d 9367 * @arg @ref LL_ADC_CHANNEL_6
<> 135:176b8275d35d 9368 * @arg @ref LL_ADC_CHANNEL_7
<> 135:176b8275d35d 9369 * @arg @ref LL_ADC_CHANNEL_8
<> 135:176b8275d35d 9370 * @arg @ref LL_ADC_CHANNEL_9
<> 135:176b8275d35d 9371 * @arg @ref LL_ADC_CHANNEL_10
<> 135:176b8275d35d 9372 * @arg @ref LL_ADC_CHANNEL_11
<> 135:176b8275d35d 9373 * @arg @ref LL_ADC_CHANNEL_12
<> 135:176b8275d35d 9374 * @arg @ref LL_ADC_CHANNEL_13
<> 135:176b8275d35d 9375 * @arg @ref LL_ADC_CHANNEL_14
<> 135:176b8275d35d 9376 * @arg @ref LL_ADC_CHANNEL_15
<> 135:176b8275d35d 9377 * @arg @ref LL_ADC_CHANNEL_16
<> 135:176b8275d35d 9378 * @arg @ref LL_ADC_CHANNEL_17
<> 135:176b8275d35d 9379 * @arg @ref LL_ADC_CHANNEL_VREFINT (1)
<> 135:176b8275d35d 9380 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (1)
<> 135:176b8275d35d 9381 *
<> 135:176b8275d35d 9382 * (1) On STM32F37x, parameter available only on ADC instance: ADC1.\n
<> 135:176b8275d35d 9383 * (1) For ADC channel read back from ADC register,
<> 135:176b8275d35d 9384 * comparison with internal channel parameter to be done
<> 135:176b8275d35d 9385 * using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL().
<> 135:176b8275d35d 9386 */
<> 135:176b8275d35d 9387 __STATIC_INLINE uint32_t LL_ADC_REG_GetSequencerRanks(ADC_TypeDef *ADCx, uint32_t Rank)
<> 135:176b8275d35d 9388 {
<> 135:176b8275d35d 9389 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->SQR1, __ADC_MASK_SHIFT(Rank, ADC_REG_SQRX_REGOFFSET_MASK));
<> 135:176b8275d35d 9390
<> 135:176b8275d35d 9391 return (uint32_t) (READ_BIT(*preg,
<> 135:176b8275d35d 9392 ADC_CHANNEL_ID_NUMBER_MASK << (Rank & ADC_REG_RANK_ID_SQRX_MASK))
<> 135:176b8275d35d 9393 >> (Rank & ADC_REG_RANK_ID_SQRX_MASK)
<> 135:176b8275d35d 9394 );
<> 135:176b8275d35d 9395 }
<> 135:176b8275d35d 9396
<> 135:176b8275d35d 9397 /**
<> 135:176b8275d35d 9398 * @brief Set ADC continuous conversion mode on ADC group regular.
<> 135:176b8275d35d 9399 * @note Description of ADC continuous conversion mode:
<> 135:176b8275d35d 9400 * - single mode: one conversion per trigger
<> 135:176b8275d35d 9401 * - continuous mode: after the first trigger, following
<> 135:176b8275d35d 9402 * conversions launched successively automatically.
<> 135:176b8275d35d 9403 * @note It is not possible to enable both ADC group regular
<> 135:176b8275d35d 9404 * continuous mode and sequencer discontinuous mode.
<> 135:176b8275d35d 9405 * @rmtoll CR2 CONT LL_ADC_REG_SetContinuousMode
<> 135:176b8275d35d 9406 * @param ADCx ADC instance
<> 135:176b8275d35d 9407 * @param Continuous This parameter can be one of the following values:
<> 135:176b8275d35d 9408 * @arg @ref LL_ADC_REG_CONV_SINGLE
<> 135:176b8275d35d 9409 * @arg @ref LL_ADC_REG_CONV_CONTINUOUS
<> 135:176b8275d35d 9410 * @retval None
<> 135:176b8275d35d 9411 */
<> 135:176b8275d35d 9412 __STATIC_INLINE void LL_ADC_REG_SetContinuousMode(ADC_TypeDef *ADCx, uint32_t Continuous)
<> 135:176b8275d35d 9413 {
<> 135:176b8275d35d 9414 MODIFY_REG(ADCx->CR2, ADC_CR2_CONT, Continuous);
<> 135:176b8275d35d 9415 }
<> 135:176b8275d35d 9416
<> 135:176b8275d35d 9417 /**
<> 135:176b8275d35d 9418 * @brief Get ADC continuous conversion mode on ADC group regular.
<> 135:176b8275d35d 9419 * @note Description of ADC continuous conversion mode:
<> 135:176b8275d35d 9420 * - single mode: one conversion per trigger
<> 135:176b8275d35d 9421 * - continuous mode: after the first trigger, following
<> 135:176b8275d35d 9422 * conversions launched successively automatically.
<> 135:176b8275d35d 9423 * @rmtoll CR2 CONT LL_ADC_REG_GetContinuousMode
<> 135:176b8275d35d 9424 * @param ADCx ADC instance
<> 135:176b8275d35d 9425 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 9426 * @arg @ref LL_ADC_REG_CONV_SINGLE
<> 135:176b8275d35d 9427 * @arg @ref LL_ADC_REG_CONV_CONTINUOUS
<> 135:176b8275d35d 9428 */
<> 135:176b8275d35d 9429 __STATIC_INLINE uint32_t LL_ADC_REG_GetContinuousMode(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 9430 {
<> 135:176b8275d35d 9431 return (uint32_t)(READ_BIT(ADCx->CR2, ADC_CR2_CONT));
<> 135:176b8275d35d 9432 }
<> 135:176b8275d35d 9433
<> 135:176b8275d35d 9434 /**
<> 135:176b8275d35d 9435 * @brief Set ADC group regular conversion data transfer: no transfer or
<> 135:176b8275d35d 9436 * transfer by DMA, and DMA requests mode.
<> 135:176b8275d35d 9437 * @note If transfer by DMA selected, specifies the DMA requests
<> 135:176b8275d35d 9438 * mode:
<> 135:176b8275d35d 9439 * - Limited mode (One shot mode): DMA transfer requests are stopped
<> 135:176b8275d35d 9440 * when number of DMA data transfers (number of
<> 135:176b8275d35d 9441 * ADC conversions) is reached.
<> 135:176b8275d35d 9442 * This ADC mode is intended to be used with DMA mode non-circular.
<> 135:176b8275d35d 9443 * - Unlimited mode: DMA transfer requests are unlimited,
<> 135:176b8275d35d 9444 * whatever number of DMA data transfers (number of
<> 135:176b8275d35d 9445 * ADC conversions).
<> 135:176b8275d35d 9446 * This ADC mode is intended to be used with DMA mode circular.
<> 135:176b8275d35d 9447 * @note If ADC DMA requests mode is set to unlimited and DMA is set to
<> 135:176b8275d35d 9448 * mode non-circular:
<> 135:176b8275d35d 9449 * when DMA transfers size will be reached, DMA will stop transfers of
<> 135:176b8275d35d 9450 * ADC conversions data ADC will raise an overrun error
<> 135:176b8275d35d 9451 * (overrun flag and interruption if enabled).
<> 135:176b8275d35d 9452 * @note To configure DMA source address (peripheral address),
<> 135:176b8275d35d 9453 * use function @ref LL_ADC_DMA_GetRegAddr().
<> 135:176b8275d35d 9454 * @rmtoll CR2 DMA LL_ADC_REG_SetDMATransfer
<> 135:176b8275d35d 9455 * @param ADCx ADC instance
<> 135:176b8275d35d 9456 * @param DMATransfer This parameter can be one of the following values:
<> 135:176b8275d35d 9457 * @arg @ref LL_ADC_REG_DMA_TRANSFER_NONE
<> 135:176b8275d35d 9458 * @arg @ref LL_ADC_REG_DMA_TRANSFER_UNLIMITED
<> 135:176b8275d35d 9459 * @retval None
<> 135:176b8275d35d 9460 */
<> 135:176b8275d35d 9461 __STATIC_INLINE void LL_ADC_REG_SetDMATransfer(ADC_TypeDef *ADCx, uint32_t DMATransfer)
<> 135:176b8275d35d 9462 {
<> 135:176b8275d35d 9463 MODIFY_REG(ADCx->CR2, ADC_CR2_DMA, DMATransfer);
<> 135:176b8275d35d 9464 }
<> 135:176b8275d35d 9465
<> 135:176b8275d35d 9466 /**
<> 135:176b8275d35d 9467 * @brief Get ADC group regular conversion data transfer: no transfer or
<> 135:176b8275d35d 9468 * transfer by DMA, and DMA requests mode.
<> 135:176b8275d35d 9469 * @note If transfer by DMA selected, specifies the DMA requests
<> 135:176b8275d35d 9470 * mode:
<> 135:176b8275d35d 9471 * - Limited mode (One shot mode): DMA transfer requests are stopped
<> 135:176b8275d35d 9472 * when number of DMA data transfers (number of
<> 135:176b8275d35d 9473 * ADC conversions) is reached.
<> 135:176b8275d35d 9474 * This ADC mode is intended to be used with DMA mode non-circular.
<> 135:176b8275d35d 9475 * - Unlimited mode: DMA transfer requests are unlimited,
<> 135:176b8275d35d 9476 * whatever number of DMA data transfers (number of
<> 135:176b8275d35d 9477 * ADC conversions).
<> 135:176b8275d35d 9478 * This ADC mode is intended to be used with DMA mode circular.
<> 135:176b8275d35d 9479 * @note If ADC DMA requests mode is set to unlimited and DMA is set to
<> 135:176b8275d35d 9480 * mode non-circular:
<> 135:176b8275d35d 9481 * when DMA transfers size will be reached, DMA will stop transfers of
<> 135:176b8275d35d 9482 * ADC conversions data ADC will raise an overrun error
<> 135:176b8275d35d 9483 * (overrun flag and interruption if enabled).
<> 135:176b8275d35d 9484 * @note To configure DMA source address (peripheral address),
<> 135:176b8275d35d 9485 * use function @ref LL_ADC_DMA_GetRegAddr().
<> 135:176b8275d35d 9486 * @rmtoll CR2 DMA LL_ADC_REG_GetDMATransfer
<> 135:176b8275d35d 9487 * @param ADCx ADC instance
<> 135:176b8275d35d 9488 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 9489 * @arg @ref LL_ADC_REG_DMA_TRANSFER_NONE
<> 135:176b8275d35d 9490 * @arg @ref LL_ADC_REG_DMA_TRANSFER_UNLIMITED
<> 135:176b8275d35d 9491 */
<> 135:176b8275d35d 9492 __STATIC_INLINE uint32_t LL_ADC_REG_GetDMATransfer(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 9493 {
<> 135:176b8275d35d 9494 return (uint32_t)(READ_BIT(ADCx->CR2, ADC_CR2_DMA));
<> 135:176b8275d35d 9495 }
<> 135:176b8275d35d 9496
<> 135:176b8275d35d 9497 /**
<> 135:176b8275d35d 9498 * @}
<> 135:176b8275d35d 9499 */
<> 135:176b8275d35d 9500
<> 135:176b8275d35d 9501 /** @defgroup ADC_LL_EF_Configuration_ADC_Group_Injected Configuration of ADC hierarchical scope: group injected
<> 135:176b8275d35d 9502 * @{
<> 135:176b8275d35d 9503 */
<> 135:176b8275d35d 9504
<> 135:176b8275d35d 9505 /**
<> 135:176b8275d35d 9506 * @brief Set ADC group injected conversion trigger source:
<> 135:176b8275d35d 9507 * internal (SW start) or external from timer or external interrupt.
<> 135:176b8275d35d 9508 * @note On this STM32 serie, external trigger is set with trigger polarity:
<> 135:176b8275d35d 9509 * rising edge (only trigger polarity available on this STM32 serie).
<> 135:176b8275d35d 9510 * @note Availability of parameters of trigger sources from timer
<> 135:176b8275d35d 9511 * depends on timers availability on the selected device.
<> 135:176b8275d35d 9512 * @rmtoll CR2 JEXTSEL LL_ADC_INJ_SetTriggerSource
<> 135:176b8275d35d 9513 * @param ADCx ADC instance
<> 135:176b8275d35d 9514 * @param TriggerSource This parameter can be one of the following values:
<> 135:176b8275d35d 9515 * @arg @ref LL_ADC_INJ_TRIG_SOFTWARE
<> 135:176b8275d35d 9516 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_TRGO
<> 135:176b8275d35d 9517 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_CH1
<> 135:176b8275d35d 9518 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH4
<> 135:176b8275d35d 9519 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_TRGO
<> 135:176b8275d35d 9520 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM19_CH1
<> 135:176b8275d35d 9521 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM19_CH2
<> 135:176b8275d35d 9522 * @arg @ref LL_ADC_INJ_TRIG_EXT_EXTI_LINE15
<> 135:176b8275d35d 9523 * @retval None
<> 135:176b8275d35d 9524 */
<> 135:176b8275d35d 9525 __STATIC_INLINE void LL_ADC_INJ_SetTriggerSource(ADC_TypeDef *ADCx, uint32_t TriggerSource)
<> 135:176b8275d35d 9526 {
<> 135:176b8275d35d 9527 /* Note: On this STM32 serie, ADC group injected external trigger edge */
<> 135:176b8275d35d 9528 /* is used to perform a ADC conversion start. */
<> 135:176b8275d35d 9529 /* This function does not set external trigger edge. */
<> 135:176b8275d35d 9530 /* This feature is set using function */
<> 135:176b8275d35d 9531 /* @ref LL_ADC_INJ_StartConversionExtTrig(). */
<> 135:176b8275d35d 9532 MODIFY_REG(ADCx->CR2, ADC_CR2_JEXTSEL, (TriggerSource & ADC_CR2_JEXTSEL));
<> 135:176b8275d35d 9533 }
<> 135:176b8275d35d 9534
<> 135:176b8275d35d 9535 /**
<> 135:176b8275d35d 9536 * @brief Get ADC group injected conversion trigger source:
<> 135:176b8275d35d 9537 * internal (SW start) or external from timer or external interrupt.
<> 135:176b8275d35d 9538 * @note To determine whether group injected trigger source is
<> 135:176b8275d35d 9539 * internal (SW start) or external, without detail
<> 135:176b8275d35d 9540 * of which peripheral is selected as external trigger,
<> 135:176b8275d35d 9541 * (equivalent to
<> 135:176b8275d35d 9542 * "if(LL_ADC_INJ_GetTriggerSource(ADC1) == LL_ADC_INJ_TRIG_SOFTWARE)")
<> 135:176b8275d35d 9543 * use function @ref LL_ADC_INJ_IsTriggerSourceSWStart.
<> 135:176b8275d35d 9544 * @note Availability of parameters of trigger sources from timer
<> 135:176b8275d35d 9545 * depends on timers availability on the selected device.
<> 135:176b8275d35d 9546 * @rmtoll CR2 JEXTSEL LL_ADC_INJ_GetTriggerSource
<> 135:176b8275d35d 9547 * @param ADCx ADC instance
<> 135:176b8275d35d 9548 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 9549 * @arg @ref LL_ADC_INJ_TRIG_SOFTWARE
<> 135:176b8275d35d 9550 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_TRGO
<> 135:176b8275d35d 9551 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_CH1
<> 135:176b8275d35d 9552 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH4
<> 135:176b8275d35d 9553 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_TRGO
<> 135:176b8275d35d 9554 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM19_CH1
<> 135:176b8275d35d 9555 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM19_CH2
<> 135:176b8275d35d 9556 * @arg @ref LL_ADC_INJ_TRIG_EXT_EXTI_LINE15
<> 135:176b8275d35d 9557 */
<> 135:176b8275d35d 9558 __STATIC_INLINE uint32_t LL_ADC_INJ_GetTriggerSource(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 9559 {
<> 135:176b8275d35d 9560 return (uint32_t)(READ_BIT(ADCx->CR2, ADC_CR2_JEXTSEL));
<> 135:176b8275d35d 9561 }
<> 135:176b8275d35d 9562
<> 135:176b8275d35d 9563 /**
<> 135:176b8275d35d 9564 * @brief Get ADC group injected conversion trigger source internal (SW start)
<> 135:176b8275d35d 9565 or external
<> 135:176b8275d35d 9566 * @note In case of group injected trigger source set to external trigger,
<> 135:176b8275d35d 9567 * to determine which peripheral is selected as external trigger,
<> 135:176b8275d35d 9568 * use function @ref LL_ADC_INJ_GetTriggerSource.
<> 135:176b8275d35d 9569 * @rmtoll CR2 JEXTSEL LL_ADC_INJ_IsTriggerSourceSWStart
<> 135:176b8275d35d 9570 * @param ADCx ADC instance
<> 135:176b8275d35d 9571 * @retval Value "0" trigger source external trigger
<> 135:176b8275d35d 9572 * Value "1" trigger source SW start.
<> 135:176b8275d35d 9573 */
<> 135:176b8275d35d 9574 __STATIC_INLINE uint32_t LL_ADC_INJ_IsTriggerSourceSWStart(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 9575 {
<> 135:176b8275d35d 9576 return (READ_BIT(ADCx->CR2, ADC_CR2_JEXTSEL) == LL_ADC_INJ_TRIG_SOFTWARE);
<> 135:176b8275d35d 9577 }
<> 135:176b8275d35d 9578
<> 135:176b8275d35d 9579 /**
<> 135:176b8275d35d 9580 * @brief Set ADC group injected sequencer length and scan direction.
<> 135:176b8275d35d 9581 * @note This function performs configuration of:
<> 135:176b8275d35d 9582 * - Sequence length: Number of ranks in the scan sequence.
<> 135:176b8275d35d 9583 * - Sequence direction: Unless specified in parameters, sequencer
<> 135:176b8275d35d 9584 * scan direction is forward (from rank 1 to rank n).
<> 135:176b8275d35d 9585 * @note On this STM32 serie, group injected sequencer configuration
<> 135:176b8275d35d 9586 * is conditioned to ADC instance sequencer mode.
<> 135:176b8275d35d 9587 * If ADC instance sequencer mode is disabled, sequencers of
<> 135:176b8275d35d 9588 * all groups (group regular, group injected) can be configured
<> 135:176b8275d35d 9589 * but their execution is disabled (limited to rank 1).
<> 135:176b8275d35d 9590 * Refer to function @ref LL_ADC_SetSequencersScanMode().
<> 135:176b8275d35d 9591 * @note Sequencer disabled is equivalent to sequencer of 1 rank:
<> 135:176b8275d35d 9592 * ADC conversion on only 1 channel.
<> 135:176b8275d35d 9593 * @rmtoll JSQR JL LL_ADC_INJ_SetSequencerLength
<> 135:176b8275d35d 9594 * @param ADCx ADC instance
<> 135:176b8275d35d 9595 * @param SequencerNbRanks This parameter can be one of the following values:
<> 135:176b8275d35d 9596 * @arg @ref LL_ADC_INJ_SEQ_SCAN_DISABLE
<> 135:176b8275d35d 9597 * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_2RANKS
<> 135:176b8275d35d 9598 * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_3RANKS
<> 135:176b8275d35d 9599 * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_4RANKS
<> 135:176b8275d35d 9600 * @retval None
<> 135:176b8275d35d 9601 */
<> 135:176b8275d35d 9602 __STATIC_INLINE void LL_ADC_INJ_SetSequencerLength(ADC_TypeDef *ADCx, uint32_t SequencerNbRanks)
<> 135:176b8275d35d 9603 {
<> 135:176b8275d35d 9604 MODIFY_REG(ADCx->JSQR, ADC_JSQR_JL, SequencerNbRanks);
<> 135:176b8275d35d 9605 }
<> 135:176b8275d35d 9606
<> 135:176b8275d35d 9607 /**
<> 135:176b8275d35d 9608 * @brief Get ADC group injected sequencer length and scan direction.
<> 135:176b8275d35d 9609 * @note This function retrieves:
<> 135:176b8275d35d 9610 * - Sequence length: Number of ranks in the scan sequence.
<> 135:176b8275d35d 9611 * - Sequence direction: Unless specified in parameters, sequencer
<> 135:176b8275d35d 9612 * scan direction is forward (from rank 1 to rank n).
<> 135:176b8275d35d 9613 * @note On this STM32 serie, group injected sequencer configuration
<> 135:176b8275d35d 9614 * is conditioned to ADC instance sequencer mode.
<> 135:176b8275d35d 9615 * If ADC instance sequencer mode is disabled, sequencers of
<> 135:176b8275d35d 9616 * all groups (group regular, group injected) can be configured
<> 135:176b8275d35d 9617 * but their execution is disabled (limited to rank 1).
<> 135:176b8275d35d 9618 * Refer to function @ref LL_ADC_SetSequencersScanMode().
<> 135:176b8275d35d 9619 * @note Sequencer disabled is equivalent to sequencer of 1 rank:
<> 135:176b8275d35d 9620 * ADC conversion on only 1 channel.
<> 135:176b8275d35d 9621 * @rmtoll JSQR JL LL_ADC_INJ_GetSequencerLength
<> 135:176b8275d35d 9622 * @param ADCx ADC instance
<> 135:176b8275d35d 9623 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 9624 * @arg @ref LL_ADC_INJ_SEQ_SCAN_DISABLE
<> 135:176b8275d35d 9625 * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_2RANKS
<> 135:176b8275d35d 9626 * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_3RANKS
<> 135:176b8275d35d 9627 * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_4RANKS
<> 135:176b8275d35d 9628 */
<> 135:176b8275d35d 9629 __STATIC_INLINE uint32_t LL_ADC_INJ_GetSequencerLength(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 9630 {
<> 135:176b8275d35d 9631 return (uint32_t)(READ_BIT(ADCx->JSQR, ADC_JSQR_JL));
<> 135:176b8275d35d 9632 }
<> 135:176b8275d35d 9633
<> 135:176b8275d35d 9634 /**
<> 135:176b8275d35d 9635 * @brief Set ADC group injected sequencer discontinuous mode:
<> 135:176b8275d35d 9636 * sequence subdivided and scan conversions interrupted every selected
<> 135:176b8275d35d 9637 * number of ranks.
<> 135:176b8275d35d 9638 * @note It is not possible to enable both ADC group injected
<> 135:176b8275d35d 9639 * auto-injected mode and sequencer discontinuous mode.
<> 135:176b8275d35d 9640 * @rmtoll CR1 DISCEN LL_ADC_INJ_SetSequencerDiscont
<> 135:176b8275d35d 9641 * @param ADCx ADC instance
<> 135:176b8275d35d 9642 * @param SeqDiscont This parameter can be one of the following values:
<> 135:176b8275d35d 9643 * @arg @ref LL_ADC_INJ_SEQ_DISCONT_DISABLE
<> 135:176b8275d35d 9644 * @arg @ref LL_ADC_INJ_SEQ_DISCONT_1RANK
<> 135:176b8275d35d 9645 * @retval None
<> 135:176b8275d35d 9646 */
<> 135:176b8275d35d 9647 __STATIC_INLINE void LL_ADC_INJ_SetSequencerDiscont(ADC_TypeDef *ADCx, uint32_t SeqDiscont)
<> 135:176b8275d35d 9648 {
<> 135:176b8275d35d 9649 MODIFY_REG(ADCx->CR1, ADC_CR1_JDISCEN, SeqDiscont);
<> 135:176b8275d35d 9650 }
<> 135:176b8275d35d 9651
<> 135:176b8275d35d 9652 /**
<> 135:176b8275d35d 9653 * @brief Get ADC group injected sequencer discontinuous mode:
<> 135:176b8275d35d 9654 * sequence subdivided and scan conversions interrupted every selected
<> 135:176b8275d35d 9655 * number of ranks.
<> 135:176b8275d35d 9656 * @rmtoll CR1 DISCEN LL_ADC_REG_GetSequencerDiscont
<> 135:176b8275d35d 9657 * @param ADCx ADC instance
<> 135:176b8275d35d 9658 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 9659 * @arg @ref LL_ADC_INJ_SEQ_DISCONT_DISABLE
<> 135:176b8275d35d 9660 * @arg @ref LL_ADC_INJ_SEQ_DISCONT_1RANK
<> 135:176b8275d35d 9661 */
<> 135:176b8275d35d 9662 __STATIC_INLINE uint32_t LL_ADC_INJ_GetSequencerDiscont(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 9663 {
<> 135:176b8275d35d 9664 return (uint32_t)(READ_BIT(ADCx->CR1, ADC_CR1_JDISCEN));
<> 135:176b8275d35d 9665 }
<> 135:176b8275d35d 9666
<> 135:176b8275d35d 9667 /**
<> 135:176b8275d35d 9668 * @brief Set ADC group injected sequence: channel on the selected
<> 135:176b8275d35d 9669 * sequence rank.
<> 135:176b8275d35d 9670 * @note Depending on devices and packages, some channels may not be available.
<> 135:176b8275d35d 9671 * Refer to device datasheet for channels availability.
<> 135:176b8275d35d 9672 * @note On this STM32 serie, to measure internal channels (VrefInt,
<> 135:176b8275d35d 9673 * TempSensor, ...), measurement paths to internal channels must be
<> 135:176b8275d35d 9674 * enabled separately.
<> 135:176b8275d35d 9675 * This can be done using function @ref LL_ADC_SetCommonPathInternalCh().
<> 135:176b8275d35d 9676 * @rmtoll JSQR JSQ1 LL_ADC_INJ_SetSequencerRanks\n
<> 135:176b8275d35d 9677 * JSQR JSQ2 LL_ADC_INJ_SetSequencerRanks\n
<> 135:176b8275d35d 9678 * JSQR JSQ3 LL_ADC_INJ_SetSequencerRanks\n
<> 135:176b8275d35d 9679 * JSQR JSQ4 LL_ADC_INJ_SetSequencerRanks
<> 135:176b8275d35d 9680 * @param ADCx ADC instance
<> 135:176b8275d35d 9681 * @param Rank This parameter can be one of the following values:
<> 135:176b8275d35d 9682 * @arg @ref LL_ADC_INJ_RANK_1
<> 135:176b8275d35d 9683 * @arg @ref LL_ADC_INJ_RANK_2
<> 135:176b8275d35d 9684 * @arg @ref LL_ADC_INJ_RANK_3
<> 135:176b8275d35d 9685 * @arg @ref LL_ADC_INJ_RANK_4
<> 135:176b8275d35d 9686 * @param Channel This parameter can be one of the following values:
<> 135:176b8275d35d 9687 * @arg @ref LL_ADC_CHANNEL_0
<> 135:176b8275d35d 9688 * @arg @ref LL_ADC_CHANNEL_1
<> 135:176b8275d35d 9689 * @arg @ref LL_ADC_CHANNEL_2
<> 135:176b8275d35d 9690 * @arg @ref LL_ADC_CHANNEL_3
<> 135:176b8275d35d 9691 * @arg @ref LL_ADC_CHANNEL_4
<> 135:176b8275d35d 9692 * @arg @ref LL_ADC_CHANNEL_5
<> 135:176b8275d35d 9693 * @arg @ref LL_ADC_CHANNEL_6
<> 135:176b8275d35d 9694 * @arg @ref LL_ADC_CHANNEL_7
<> 135:176b8275d35d 9695 * @arg @ref LL_ADC_CHANNEL_8
<> 135:176b8275d35d 9696 * @arg @ref LL_ADC_CHANNEL_9
<> 135:176b8275d35d 9697 * @arg @ref LL_ADC_CHANNEL_10
<> 135:176b8275d35d 9698 * @arg @ref LL_ADC_CHANNEL_11
<> 135:176b8275d35d 9699 * @arg @ref LL_ADC_CHANNEL_12
<> 135:176b8275d35d 9700 * @arg @ref LL_ADC_CHANNEL_13
<> 135:176b8275d35d 9701 * @arg @ref LL_ADC_CHANNEL_14
<> 135:176b8275d35d 9702 * @arg @ref LL_ADC_CHANNEL_15
<> 135:176b8275d35d 9703 * @arg @ref LL_ADC_CHANNEL_16
<> 135:176b8275d35d 9704 * @arg @ref LL_ADC_CHANNEL_17
<> 135:176b8275d35d 9705 * @arg @ref LL_ADC_CHANNEL_VREFINT (1)
<> 135:176b8275d35d 9706 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (1)
<> 135:176b8275d35d 9707 *
<> 135:176b8275d35d 9708 * (1) On STM32F37x, parameter available only on ADC instance: ADC1.
<> 135:176b8275d35d 9709 * @retval None
<> 135:176b8275d35d 9710 */
<> 135:176b8275d35d 9711 __STATIC_INLINE void LL_ADC_INJ_SetSequencerRanks(ADC_TypeDef *ADCx, uint32_t Rank, uint32_t Channel)
<> 135:176b8275d35d 9712 {
<> 135:176b8275d35d 9713 /* Set bits with content of parameter "Channel" with bits position */
<> 135:176b8275d35d 9714 /* in register depending on parameter "Rank". */
<> 135:176b8275d35d 9715 /* Parameters "Rank" and "Channel" are used with masks because containing */
<> 135:176b8275d35d 9716 /* other bits reserved for other purpose. */
<> 135:176b8275d35d 9717 MODIFY_REG(ADCx->JSQR,
<> 135:176b8275d35d 9718 ADC_CHANNEL_ID_NUMBER_MASK << (Rank & ADC_INJ_RANK_ID_JSQR_MASK),
<> 135:176b8275d35d 9719 (Channel & ADC_CHANNEL_ID_NUMBER_MASK) << (Rank & ADC_INJ_RANK_ID_JSQR_MASK));
<> 135:176b8275d35d 9720 }
<> 135:176b8275d35d 9721
<> 135:176b8275d35d 9722 /**
<> 135:176b8275d35d 9723 * @brief Get ADC group injected sequence: channel on the selected
<> 135:176b8275d35d 9724 * sequence rank.
<> 135:176b8275d35d 9725 * @note Depending on devices and packages, some channels may not be available.
<> 135:176b8275d35d 9726 * Refer to device datasheet for channels availability.
<> 135:176b8275d35d 9727 * @note Usage of the returned channel number:
<> 135:176b8275d35d 9728 * - To reinject this channel into another function LL_ADC_xxx:
<> 135:176b8275d35d 9729 * the returned channel number is only partly formatted on definition
<> 135:176b8275d35d 9730 * of literals LL_ADC_CHANNEL_x. Therefore, it has to be compared
<> 135:176b8275d35d 9731 * with parts of literals LL_ADC_CHANNEL_x or using
<> 135:176b8275d35d 9732 * helper macro @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
<> 135:176b8275d35d 9733 * Then the selected literal LL_ADC_CHANNEL_x can be used
<> 135:176b8275d35d 9734 * as parameter for another function.
<> 135:176b8275d35d 9735 * - To get the channel number in decimal format:
<> 135:176b8275d35d 9736 * process the returned value with the helper macro
<> 135:176b8275d35d 9737 * @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
<> 135:176b8275d35d 9738 * @rmtoll JSQR JSQ1 LL_ADC_INJ_SetSequencerRanks\n
<> 135:176b8275d35d 9739 * JSQR JSQ2 LL_ADC_INJ_SetSequencerRanks\n
<> 135:176b8275d35d 9740 * JSQR JSQ3 LL_ADC_INJ_SetSequencerRanks\n
<> 135:176b8275d35d 9741 * JSQR JSQ4 LL_ADC_INJ_SetSequencerRanks
<> 135:176b8275d35d 9742 * @param ADCx ADC instance
<> 135:176b8275d35d 9743 * @param Rank This parameter can be one of the following values:
<> 135:176b8275d35d 9744 * @arg @ref LL_ADC_INJ_RANK_1
<> 135:176b8275d35d 9745 * @arg @ref LL_ADC_INJ_RANK_2
<> 135:176b8275d35d 9746 * @arg @ref LL_ADC_INJ_RANK_3
<> 135:176b8275d35d 9747 * @arg @ref LL_ADC_INJ_RANK_4
<> 135:176b8275d35d 9748 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 9749 * @arg @ref LL_ADC_CHANNEL_0
<> 135:176b8275d35d 9750 * @arg @ref LL_ADC_CHANNEL_1
<> 135:176b8275d35d 9751 * @arg @ref LL_ADC_CHANNEL_2
<> 135:176b8275d35d 9752 * @arg @ref LL_ADC_CHANNEL_3
<> 135:176b8275d35d 9753 * @arg @ref LL_ADC_CHANNEL_4
<> 135:176b8275d35d 9754 * @arg @ref LL_ADC_CHANNEL_5
<> 135:176b8275d35d 9755 * @arg @ref LL_ADC_CHANNEL_6
<> 135:176b8275d35d 9756 * @arg @ref LL_ADC_CHANNEL_7
<> 135:176b8275d35d 9757 * @arg @ref LL_ADC_CHANNEL_8
<> 135:176b8275d35d 9758 * @arg @ref LL_ADC_CHANNEL_9
<> 135:176b8275d35d 9759 * @arg @ref LL_ADC_CHANNEL_10
<> 135:176b8275d35d 9760 * @arg @ref LL_ADC_CHANNEL_11
<> 135:176b8275d35d 9761 * @arg @ref LL_ADC_CHANNEL_12
<> 135:176b8275d35d 9762 * @arg @ref LL_ADC_CHANNEL_13
<> 135:176b8275d35d 9763 * @arg @ref LL_ADC_CHANNEL_14
<> 135:176b8275d35d 9764 * @arg @ref LL_ADC_CHANNEL_15
<> 135:176b8275d35d 9765 * @arg @ref LL_ADC_CHANNEL_16
<> 135:176b8275d35d 9766 * @arg @ref LL_ADC_CHANNEL_17
<> 135:176b8275d35d 9767 * @arg @ref LL_ADC_CHANNEL_VREFINT (1)
<> 135:176b8275d35d 9768 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (1)
<> 135:176b8275d35d 9769 *
<> 135:176b8275d35d 9770 * (1) On STM32F37x, parameter available only on ADC instance: ADC1.\n
<> 135:176b8275d35d 9771 * (1) For ADC channel read back from ADC register,
<> 135:176b8275d35d 9772 * comparison with internal channel parameter to be done
<> 135:176b8275d35d 9773 * using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL().
<> 135:176b8275d35d 9774 */
<> 135:176b8275d35d 9775 __STATIC_INLINE uint32_t LL_ADC_INJ_GetSequencerRanks(ADC_TypeDef *ADCx, uint32_t Rank)
<> 135:176b8275d35d 9776 {
<> 135:176b8275d35d 9777 return (uint32_t)(READ_BIT(ADCx->JSQR,
<> 135:176b8275d35d 9778 ADC_CHANNEL_ID_NUMBER_MASK << (Rank & ADC_INJ_RANK_ID_JSQR_MASK))
<> 135:176b8275d35d 9779 >> (Rank & ADC_INJ_RANK_ID_JSQR_MASK)
<> 135:176b8275d35d 9780 );
<> 135:176b8275d35d 9781 }
<> 135:176b8275d35d 9782
<> 135:176b8275d35d 9783 /**
<> 135:176b8275d35d 9784 * @brief Set ADC group injected conversion trigger:
<> 135:176b8275d35d 9785 * independent or from ADC group regular.
<> 135:176b8275d35d 9786 * @note This mode can be used to extend number of data registers
<> 135:176b8275d35d 9787 * updated after one ADC conversion trigger and with data
<> 135:176b8275d35d 9788 * permanently kept (not erased by successive conversions of scan of
<> 135:176b8275d35d 9789 * ADC sequencer ranks), up to 5 data registers:
<> 135:176b8275d35d 9790 * 1 data register on ADC group regular, 4 data registers
<> 135:176b8275d35d 9791 * on ADC group injected.
<> 135:176b8275d35d 9792 * @note If ADC group injected injected trigger source is set to an
<> 135:176b8275d35d 9793 * external trigger, this feature must be must be set to
<> 135:176b8275d35d 9794 * independent trigger.
<> 135:176b8275d35d 9795 * ADC group injected automatic trigger is compliant only with
<> 135:176b8275d35d 9796 * group injected trigger source set to SW start, without any
<> 135:176b8275d35d 9797 * further action on ADC group injected conversion start or stop:
<> 135:176b8275d35d 9798 * in this case, ADC group injected is controlled only
<> 135:176b8275d35d 9799 * from ADC group regular.
<> 135:176b8275d35d 9800 * @note It is not possible to enable both ADC group injected
<> 135:176b8275d35d 9801 * auto-injected mode and sequencer discontinuous mode.
<> 135:176b8275d35d 9802 * @rmtoll CR1 JAUTO LL_ADC_INJ_SetTrigAuto
<> 135:176b8275d35d 9803 * @param ADCx ADC instance
<> 135:176b8275d35d 9804 * @param TrigAuto This parameter can be one of the following values:
<> 135:176b8275d35d 9805 * @arg @ref LL_ADC_INJ_TRIG_INDEPENDENT
<> 135:176b8275d35d 9806 * @arg @ref LL_ADC_INJ_TRIG_FROM_GRP_REGULAR
<> 135:176b8275d35d 9807 * @retval None
<> 135:176b8275d35d 9808 */
<> 135:176b8275d35d 9809 __STATIC_INLINE void LL_ADC_INJ_SetTrigAuto(ADC_TypeDef *ADCx, uint32_t TrigAuto)
<> 135:176b8275d35d 9810 {
<> 135:176b8275d35d 9811 MODIFY_REG(ADCx->CR1, ADC_CR1_JAUTO, TrigAuto);
<> 135:176b8275d35d 9812 }
<> 135:176b8275d35d 9813
<> 135:176b8275d35d 9814 /**
<> 135:176b8275d35d 9815 * @brief Get ADC group injected conversion trigger:
<> 135:176b8275d35d 9816 * independent or from ADC group regular.
<> 135:176b8275d35d 9817 * @rmtoll CR1 JAUTO LL_ADC_INJ_GetTrigAuto
<> 135:176b8275d35d 9818 * @param ADCx ADC instance
<> 135:176b8275d35d 9819 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 9820 * @arg @ref LL_ADC_INJ_TRIG_INDEPENDENT
<> 135:176b8275d35d 9821 * @arg @ref LL_ADC_INJ_TRIG_FROM_GRP_REGULAR
<> 135:176b8275d35d 9822 */
<> 135:176b8275d35d 9823 __STATIC_INLINE uint32_t LL_ADC_INJ_GetTrigAuto(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 9824 {
<> 135:176b8275d35d 9825 return (uint32_t)(READ_BIT(ADCx->CR1, ADC_CR1_JAUTO));
<> 135:176b8275d35d 9826 }
<> 135:176b8275d35d 9827
<> 135:176b8275d35d 9828 /**
<> 135:176b8275d35d 9829 * @brief Set ADC group injected offset.
<> 135:176b8275d35d 9830 * @note It sets:
<> 135:176b8275d35d 9831 * - ADC group injected rank to which the offset programmed
<> 135:176b8275d35d 9832 * will be applied
<> 135:176b8275d35d 9833 * - Offset level (offset to be subtracted from the raw
<> 135:176b8275d35d 9834 * converted data).
<> 135:176b8275d35d 9835 * Caution: Offset format is dependent to ADC resolution:
<> 135:176b8275d35d 9836 * offset has to be left-aligned on bit 11, the LSB (right bits)
<> 135:176b8275d35d 9837 * are set to 0.
<> 135:176b8275d35d 9838 * @note Offset cannot be enabled or disabled.
<> 135:176b8275d35d 9839 * To emulate offset disabled, set an offset value equal to 0.
<> 135:176b8275d35d 9840 * @rmtoll JOFR1 JOFFSET1 LL_ADC_INJ_SetOffset\n
<> 135:176b8275d35d 9841 * JOFR2 JOFFSET2 LL_ADC_INJ_SetOffset\n
<> 135:176b8275d35d 9842 * JOFR3 JOFFSET3 LL_ADC_INJ_SetOffset\n
<> 135:176b8275d35d 9843 * JOFR4 JOFFSET4 LL_ADC_INJ_SetOffset
<> 135:176b8275d35d 9844 * @param ADCx ADC instance
<> 135:176b8275d35d 9845 * @param Rank This parameter can be one of the following values:
<> 135:176b8275d35d 9846 * @arg @ref LL_ADC_INJ_RANK_1
<> 135:176b8275d35d 9847 * @arg @ref LL_ADC_INJ_RANK_2
<> 135:176b8275d35d 9848 * @arg @ref LL_ADC_INJ_RANK_3
<> 135:176b8275d35d 9849 * @arg @ref LL_ADC_INJ_RANK_4
<> 135:176b8275d35d 9850 * @param OffsetLevel Value between Min_Data=0x000 and Max_Data=0xFFF
<> 135:176b8275d35d 9851 * @retval None
<> 135:176b8275d35d 9852 */
<> 135:176b8275d35d 9853 __STATIC_INLINE void LL_ADC_INJ_SetOffset(ADC_TypeDef *ADCx, uint32_t Rank, uint32_t OffsetLevel)
<> 135:176b8275d35d 9854 {
<> 135:176b8275d35d 9855 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JOFR1, __ADC_MASK_SHIFT(Rank, ADC_INJ_JOFRX_REGOFFSET_MASK));
<> 135:176b8275d35d 9856
<> 135:176b8275d35d 9857 MODIFY_REG(*preg,
<> 135:176b8275d35d 9858 ADC_JOFR1_JOFFSET1,
<> 135:176b8275d35d 9859 OffsetLevel);
<> 135:176b8275d35d 9860 }
<> 135:176b8275d35d 9861
<> 135:176b8275d35d 9862 /**
<> 135:176b8275d35d 9863 * @brief Get ADC group injected offset.
<> 135:176b8275d35d 9864 * @note It gives offset level (offset to be subtracted from the raw converted data).
<> 135:176b8275d35d 9865 * Caution: Offset format is dependent to ADC resolution:
<> 135:176b8275d35d 9866 * offset has to be left-aligned on bit 11, the LSB (right bits)
<> 135:176b8275d35d 9867 * are set to 0.
<> 135:176b8275d35d 9868 * @rmtoll JOFR1 JOFFSET1 LL_ADC_INJ_GetOffset\n
<> 135:176b8275d35d 9869 * JOFR2 JOFFSET2 LL_ADC_INJ_GetOffset\n
<> 135:176b8275d35d 9870 * JOFR3 JOFFSET3 LL_ADC_INJ_GetOffset\n
<> 135:176b8275d35d 9871 * JOFR4 JOFFSET4 LL_ADC_INJ_GetOffset
<> 135:176b8275d35d 9872 * @param ADCx ADC instance
<> 135:176b8275d35d 9873 * @param Rank This parameter can be one of the following values:
<> 135:176b8275d35d 9874 * @arg @ref LL_ADC_INJ_RANK_1
<> 135:176b8275d35d 9875 * @arg @ref LL_ADC_INJ_RANK_2
<> 135:176b8275d35d 9876 * @arg @ref LL_ADC_INJ_RANK_3
<> 135:176b8275d35d 9877 * @arg @ref LL_ADC_INJ_RANK_4
<> 135:176b8275d35d 9878 * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
<> 135:176b8275d35d 9879 */
<> 135:176b8275d35d 9880 __STATIC_INLINE uint32_t LL_ADC_INJ_GetOffset(ADC_TypeDef *ADCx, uint32_t Rank)
<> 135:176b8275d35d 9881 {
<> 135:176b8275d35d 9882 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JOFR1, __ADC_MASK_SHIFT(Rank, ADC_INJ_JOFRX_REGOFFSET_MASK));
<> 135:176b8275d35d 9883
<> 135:176b8275d35d 9884 return (uint32_t)(READ_BIT(*preg,
<> 135:176b8275d35d 9885 ADC_JOFR1_JOFFSET1)
<> 135:176b8275d35d 9886 );
<> 135:176b8275d35d 9887 }
<> 135:176b8275d35d 9888
<> 135:176b8275d35d 9889 /**
<> 135:176b8275d35d 9890 * @}
<> 135:176b8275d35d 9891 */
<> 135:176b8275d35d 9892
<> 135:176b8275d35d 9893 /** @defgroup ADC_LL_EF_Configuration_Channels Configuration of ADC hierarchical scope: channels
<> 135:176b8275d35d 9894 * @{
<> 135:176b8275d35d 9895 */
<> 135:176b8275d35d 9896
<> 135:176b8275d35d 9897 /**
<> 135:176b8275d35d 9898 * @brief Set sampling time of the selected ADC channel
<> 135:176b8275d35d 9899 * Unit: ADC clock cycles.
<> 135:176b8275d35d 9900 * @note On this device, sampling time is on channel scope: independently
<> 135:176b8275d35d 9901 * of channel mapped on ADC group regular or injected.
<> 135:176b8275d35d 9902 * @note In case of internal channel (VrefInt, TempSensor, ...) to be
<> 135:176b8275d35d 9903 * converted:
<> 135:176b8275d35d 9904 * sampling time constraints must be respected (sampling time can be
<> 135:176b8275d35d 9905 * adjusted in function of ADC clock frequency and sampling time
<> 135:176b8275d35d 9906 * setting).
<> 135:176b8275d35d 9907 * Refer to device datasheet for timings values (parameters TS_vrefint,
<> 135:176b8275d35d 9908 * TS_temp, ...).
<> 135:176b8275d35d 9909 * @note Conversion time is the addition of sampling time and processing time.
<> 135:176b8275d35d 9910 * Refer to reference manual for ADC processing time of
<> 135:176b8275d35d 9911 * this STM32 serie.
<> 135:176b8275d35d 9912 * @note In case of ADC conversion of internal channel (VrefInt,
<> 135:176b8275d35d 9913 * temperature sensor, ...), a sampling time minimum value
<> 135:176b8275d35d 9914 * is required.
<> 135:176b8275d35d 9915 * Refer to device datasheet.
<> 135:176b8275d35d 9916 * @rmtoll SMPR1 SMP17 LL_ADC_SetChannelSamplingTime\n
<> 135:176b8275d35d 9917 * SMPR1 SMP16 LL_ADC_SetChannelSamplingTime\n
<> 135:176b8275d35d 9918 * SMPR1 SMP15 LL_ADC_SetChannelSamplingTime\n
<> 135:176b8275d35d 9919 * SMPR1 SMP14 LL_ADC_SetChannelSamplingTime\n
<> 135:176b8275d35d 9920 * SMPR1 SMP13 LL_ADC_SetChannelSamplingTime\n
<> 135:176b8275d35d 9921 * SMPR1 SMP12 LL_ADC_SetChannelSamplingTime\n
<> 135:176b8275d35d 9922 * SMPR1 SMP11 LL_ADC_SetChannelSamplingTime\n
<> 135:176b8275d35d 9923 * SMPR1 SMP10 LL_ADC_SetChannelSamplingTime\n
<> 135:176b8275d35d 9924 * SMPR2 SMP9 LL_ADC_SetChannelSamplingTime\n
<> 135:176b8275d35d 9925 * SMPR2 SMP8 LL_ADC_SetChannelSamplingTime\n
<> 135:176b8275d35d 9926 * SMPR2 SMP7 LL_ADC_SetChannelSamplingTime\n
<> 135:176b8275d35d 9927 * SMPR2 SMP6 LL_ADC_SetChannelSamplingTime\n
<> 135:176b8275d35d 9928 * SMPR2 SMP5 LL_ADC_SetChannelSamplingTime\n
<> 135:176b8275d35d 9929 * SMPR2 SMP4 LL_ADC_SetChannelSamplingTime\n
<> 135:176b8275d35d 9930 * SMPR2 SMP3 LL_ADC_SetChannelSamplingTime\n
<> 135:176b8275d35d 9931 * SMPR2 SMP2 LL_ADC_SetChannelSamplingTime\n
<> 135:176b8275d35d 9932 * SMPR2 SMP1 LL_ADC_SetChannelSamplingTime\n
<> 135:176b8275d35d 9933 * SMPR2 SMP0 LL_ADC_SetChannelSamplingTime
<> 135:176b8275d35d 9934 * @param ADCx ADC instance
<> 135:176b8275d35d 9935 * @param Channel This parameter can be one of the following values:
<> 135:176b8275d35d 9936 * @arg @ref LL_ADC_CHANNEL_0
<> 135:176b8275d35d 9937 * @arg @ref LL_ADC_CHANNEL_1
<> 135:176b8275d35d 9938 * @arg @ref LL_ADC_CHANNEL_2
<> 135:176b8275d35d 9939 * @arg @ref LL_ADC_CHANNEL_3
<> 135:176b8275d35d 9940 * @arg @ref LL_ADC_CHANNEL_4
<> 135:176b8275d35d 9941 * @arg @ref LL_ADC_CHANNEL_5
<> 135:176b8275d35d 9942 * @arg @ref LL_ADC_CHANNEL_6
<> 135:176b8275d35d 9943 * @arg @ref LL_ADC_CHANNEL_7
<> 135:176b8275d35d 9944 * @arg @ref LL_ADC_CHANNEL_8
<> 135:176b8275d35d 9945 * @arg @ref LL_ADC_CHANNEL_9
<> 135:176b8275d35d 9946 * @arg @ref LL_ADC_CHANNEL_10
<> 135:176b8275d35d 9947 * @arg @ref LL_ADC_CHANNEL_11
<> 135:176b8275d35d 9948 * @arg @ref LL_ADC_CHANNEL_12
<> 135:176b8275d35d 9949 * @arg @ref LL_ADC_CHANNEL_13
<> 135:176b8275d35d 9950 * @arg @ref LL_ADC_CHANNEL_14
<> 135:176b8275d35d 9951 * @arg @ref LL_ADC_CHANNEL_15
<> 135:176b8275d35d 9952 * @arg @ref LL_ADC_CHANNEL_16
<> 135:176b8275d35d 9953 * @arg @ref LL_ADC_CHANNEL_17
<> 135:176b8275d35d 9954 * @arg @ref LL_ADC_CHANNEL_VREFINT (1)
<> 135:176b8275d35d 9955 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (1)
<> 135:176b8275d35d 9956 *
<> 135:176b8275d35d 9957 * (1) On STM32F37x, parameter available only on ADC instance: ADC1.
<> 135:176b8275d35d 9958 * @param SamplingTime This parameter can be one of the following values:
<> 135:176b8275d35d 9959 * @arg @ref LL_ADC_SAMPLINGTIME_1CYCLE_5
<> 135:176b8275d35d 9960 * @arg @ref LL_ADC_SAMPLINGTIME_7CYCLES_5
<> 135:176b8275d35d 9961 * @arg @ref LL_ADC_SAMPLINGTIME_13CYCLES_5
<> 135:176b8275d35d 9962 * @arg @ref LL_ADC_SAMPLINGTIME_28CYCLES_5
<> 135:176b8275d35d 9963 * @arg @ref LL_ADC_SAMPLINGTIME_41CYCLES_5
<> 135:176b8275d35d 9964 * @arg @ref LL_ADC_SAMPLINGTIME_55CYCLES_5
<> 135:176b8275d35d 9965 * @arg @ref LL_ADC_SAMPLINGTIME_71CYCLES_5
<> 135:176b8275d35d 9966 * @arg @ref LL_ADC_SAMPLINGTIME_239CYCLES_5
<> 135:176b8275d35d 9967 * @retval None
<> 135:176b8275d35d 9968 */
<> 135:176b8275d35d 9969 __STATIC_INLINE void LL_ADC_SetChannelSamplingTime(ADC_TypeDef *ADCx, uint32_t Channel, uint32_t SamplingTime)
<> 135:176b8275d35d 9970 {
<> 135:176b8275d35d 9971 /* Set bits with content of parameter "SamplingTime" with bits position */
<> 135:176b8275d35d 9972 /* in register and register position depending on parameter "Channel". */
<> 135:176b8275d35d 9973 /* Parameter "Channel" is used with masks because containing */
<> 135:176b8275d35d 9974 /* other bits reserved for other purpose. */
<> 135:176b8275d35d 9975 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->SMPR1, __ADC_MASK_SHIFT(Channel, ADC_CHANNEL_SMPRX_REGOFFSET_MASK));
<> 135:176b8275d35d 9976
<> 135:176b8275d35d 9977 MODIFY_REG(*preg,
<> 135:176b8275d35d 9978 ADC_SMPR2_SMP0 << __ADC_MASK_SHIFT(Channel, ADC_CHANNEL_SMPx_BITOFFSET_MASK),
<> 135:176b8275d35d 9979 SamplingTime << __ADC_MASK_SHIFT(Channel, ADC_CHANNEL_SMPx_BITOFFSET_MASK));
<> 135:176b8275d35d 9980 }
<> 135:176b8275d35d 9981
<> 135:176b8275d35d 9982 /**
<> 135:176b8275d35d 9983 * @brief Get sampling time of the selected ADC channel
<> 135:176b8275d35d 9984 * Unit: ADC clock cycles.
<> 135:176b8275d35d 9985 * @note On this device, sampling time is on channel scope: independently
<> 135:176b8275d35d 9986 * of channel mapped on ADC group regular or injected.
<> 135:176b8275d35d 9987 * @note Conversion time is the addition of sampling time and processing time.
<> 135:176b8275d35d 9988 * Refer to reference manual for ADC processing time of
<> 135:176b8275d35d 9989 * this STM32 serie.
<> 135:176b8275d35d 9990 * @rmtoll SMPR1 SMP17 LL_ADC_GetChannelSamplingTime\n
<> 135:176b8275d35d 9991 * SMPR1 SMP16 LL_ADC_GetChannelSamplingTime\n
<> 135:176b8275d35d 9992 * SMPR1 SMP15 LL_ADC_GetChannelSamplingTime\n
<> 135:176b8275d35d 9993 * SMPR1 SMP14 LL_ADC_GetChannelSamplingTime\n
<> 135:176b8275d35d 9994 * SMPR1 SMP13 LL_ADC_GetChannelSamplingTime\n
<> 135:176b8275d35d 9995 * SMPR1 SMP12 LL_ADC_GetChannelSamplingTime\n
<> 135:176b8275d35d 9996 * SMPR1 SMP11 LL_ADC_GetChannelSamplingTime\n
<> 135:176b8275d35d 9997 * SMPR1 SMP10 LL_ADC_GetChannelSamplingTime\n
<> 135:176b8275d35d 9998 * SMPR2 SMP9 LL_ADC_GetChannelSamplingTime\n
<> 135:176b8275d35d 9999 * SMPR2 SMP8 LL_ADC_GetChannelSamplingTime\n
<> 135:176b8275d35d 10000 * SMPR2 SMP7 LL_ADC_GetChannelSamplingTime\n
<> 135:176b8275d35d 10001 * SMPR2 SMP6 LL_ADC_GetChannelSamplingTime\n
<> 135:176b8275d35d 10002 * SMPR2 SMP5 LL_ADC_GetChannelSamplingTime\n
<> 135:176b8275d35d 10003 * SMPR2 SMP4 LL_ADC_GetChannelSamplingTime\n
<> 135:176b8275d35d 10004 * SMPR2 SMP3 LL_ADC_GetChannelSamplingTime\n
<> 135:176b8275d35d 10005 * SMPR2 SMP2 LL_ADC_GetChannelSamplingTime\n
<> 135:176b8275d35d 10006 * SMPR2 SMP1 LL_ADC_GetChannelSamplingTime\n
<> 135:176b8275d35d 10007 * SMPR2 SMP0 LL_ADC_GetChannelSamplingTime
<> 135:176b8275d35d 10008 * @param ADCx ADC instance
<> 135:176b8275d35d 10009 * @param Channel This parameter can be one of the following values:
<> 135:176b8275d35d 10010 * @arg @ref LL_ADC_CHANNEL_0
<> 135:176b8275d35d 10011 * @arg @ref LL_ADC_CHANNEL_1
<> 135:176b8275d35d 10012 * @arg @ref LL_ADC_CHANNEL_2
<> 135:176b8275d35d 10013 * @arg @ref LL_ADC_CHANNEL_3
<> 135:176b8275d35d 10014 * @arg @ref LL_ADC_CHANNEL_4
<> 135:176b8275d35d 10015 * @arg @ref LL_ADC_CHANNEL_5
<> 135:176b8275d35d 10016 * @arg @ref LL_ADC_CHANNEL_6
<> 135:176b8275d35d 10017 * @arg @ref LL_ADC_CHANNEL_7
<> 135:176b8275d35d 10018 * @arg @ref LL_ADC_CHANNEL_8
<> 135:176b8275d35d 10019 * @arg @ref LL_ADC_CHANNEL_9
<> 135:176b8275d35d 10020 * @arg @ref LL_ADC_CHANNEL_10
<> 135:176b8275d35d 10021 * @arg @ref LL_ADC_CHANNEL_11
<> 135:176b8275d35d 10022 * @arg @ref LL_ADC_CHANNEL_12
<> 135:176b8275d35d 10023 * @arg @ref LL_ADC_CHANNEL_13
<> 135:176b8275d35d 10024 * @arg @ref LL_ADC_CHANNEL_14
<> 135:176b8275d35d 10025 * @arg @ref LL_ADC_CHANNEL_15
<> 135:176b8275d35d 10026 * @arg @ref LL_ADC_CHANNEL_16
<> 135:176b8275d35d 10027 * @arg @ref LL_ADC_CHANNEL_17
<> 135:176b8275d35d 10028 * @arg @ref LL_ADC_CHANNEL_VREFINT (1)
<> 135:176b8275d35d 10029 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (1)
<> 135:176b8275d35d 10030 *
<> 135:176b8275d35d 10031 * (1) On STM32F37x, parameter available only on ADC instance: ADC1.
<> 135:176b8275d35d 10032 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 10033 * @arg @ref LL_ADC_SAMPLINGTIME_1CYCLE_5
<> 135:176b8275d35d 10034 * @arg @ref LL_ADC_SAMPLINGTIME_7CYCLES_5
<> 135:176b8275d35d 10035 * @arg @ref LL_ADC_SAMPLINGTIME_13CYCLES_5
<> 135:176b8275d35d 10036 * @arg @ref LL_ADC_SAMPLINGTIME_28CYCLES_5
<> 135:176b8275d35d 10037 * @arg @ref LL_ADC_SAMPLINGTIME_41CYCLES_5
<> 135:176b8275d35d 10038 * @arg @ref LL_ADC_SAMPLINGTIME_55CYCLES_5
<> 135:176b8275d35d 10039 * @arg @ref LL_ADC_SAMPLINGTIME_71CYCLES_5
<> 135:176b8275d35d 10040 * @arg @ref LL_ADC_SAMPLINGTIME_239CYCLES_5
<> 135:176b8275d35d 10041 */
<> 135:176b8275d35d 10042 __STATIC_INLINE uint32_t LL_ADC_GetChannelSamplingTime(ADC_TypeDef *ADCx, uint32_t Channel)
<> 135:176b8275d35d 10043 {
<> 135:176b8275d35d 10044 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->SMPR1, __ADC_MASK_SHIFT(Channel, ADC_CHANNEL_SMPRX_REGOFFSET_MASK));
<> 135:176b8275d35d 10045
<> 135:176b8275d35d 10046 return (uint32_t)(READ_BIT(*preg,
<> 135:176b8275d35d 10047 ADC_SMPR2_SMP0 << __ADC_MASK_SHIFT(Channel, ADC_CHANNEL_SMPx_BITOFFSET_MASK))
<> 135:176b8275d35d 10048 >> __ADC_MASK_SHIFT(Channel, ADC_CHANNEL_SMPx_BITOFFSET_MASK)
<> 135:176b8275d35d 10049 );
<> 135:176b8275d35d 10050 }
<> 135:176b8275d35d 10051
<> 135:176b8275d35d 10052 /**
<> 135:176b8275d35d 10053 * @}
<> 135:176b8275d35d 10054 */
<> 135:176b8275d35d 10055
<> 135:176b8275d35d 10056 /** @defgroup ADC_LL_EF_Configuration_ADC_AnalogWatchdog Configuration of ADC transversal scope: analog watchdog
<> 135:176b8275d35d 10057 * @{
<> 135:176b8275d35d 10058 */
<> 135:176b8275d35d 10059
<> 135:176b8275d35d 10060 /**
<> 135:176b8275d35d 10061 * @brief Set ADC analog watchdog monitored channels:
<> 135:176b8275d35d 10062 * a single channel or all channels,
<> 135:176b8275d35d 10063 * on ADC groups regular and-or injected.
<> 135:176b8275d35d 10064 * @note Once monitored channels are selected, analog watchdog
<> 135:176b8275d35d 10065 * is enabled.
<> 135:176b8275d35d 10066 * @note In case of need to define a single channel to monitor
<> 135:176b8275d35d 10067 * with analog watchdog from sequencer channel definition,
<> 135:176b8275d35d 10068 * use helper macro @ref __LL_ADC_ANALOGWD_CHANNEL_GROUP().
<> 135:176b8275d35d 10069 * @note On this STM32 serie, there is only 1 kind of analog watchdog
<> 135:176b8275d35d 10070 * instance:
<> 135:176b8275d35d 10071 * - AWD standard (instance AWD1):
<> 135:176b8275d35d 10072 * - channels monitored: can monitor 1 channel or all channels.
<> 135:176b8275d35d 10073 * - groups monitored: ADC groups regular and-or injected.
<> 135:176b8275d35d 10074 * - resolution: resolution is not limited (corresponds to
<> 135:176b8275d35d 10075 * ADC resolution configured).
<> 135:176b8275d35d 10076 * @rmtoll CR1 AWD1CH LL_ADC_SetAnalogWDMonitChannels\n
<> 135:176b8275d35d 10077 * CR1 AWD1SGL LL_ADC_SetAnalogWDMonitChannels\n
<> 135:176b8275d35d 10078 * CR1 AWD1EN LL_ADC_SetAnalogWDMonitChannels
<> 135:176b8275d35d 10079 * @param ADCx ADC instance
<> 135:176b8275d35d 10080 * @param AWDChannelGroup This parameter can be one of the following values:
<> 135:176b8275d35d 10081 * @arg @ref LL_ADC_AWD_DISABLE
<> 135:176b8275d35d 10082 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG
<> 135:176b8275d35d 10083 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_INJ
<> 135:176b8275d35d 10084 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG_INJ
<> 135:176b8275d35d 10085 * @arg @ref LL_ADC_AWD_CHANNEL_0_REG
<> 135:176b8275d35d 10086 * @arg @ref LL_ADC_AWD_CHANNEL_0_INJ
<> 135:176b8275d35d 10087 * @arg @ref LL_ADC_AWD_CHANNEL_0_REG_INJ
<> 135:176b8275d35d 10088 * @arg @ref LL_ADC_AWD_CHANNEL_1_REG
<> 135:176b8275d35d 10089 * @arg @ref LL_ADC_AWD_CHANNEL_1_INJ
<> 135:176b8275d35d 10090 * @arg @ref LL_ADC_AWD_CHANNEL_1_REG_INJ
<> 135:176b8275d35d 10091 * @arg @ref LL_ADC_AWD_CHANNEL_2_REG
<> 135:176b8275d35d 10092 * @arg @ref LL_ADC_AWD_CHANNEL_2_INJ
<> 135:176b8275d35d 10093 * @arg @ref LL_ADC_AWD_CHANNEL_2_REG_INJ
<> 135:176b8275d35d 10094 * @arg @ref LL_ADC_AWD_CHANNEL_3_REG
<> 135:176b8275d35d 10095 * @arg @ref LL_ADC_AWD_CHANNEL_3_INJ
<> 135:176b8275d35d 10096 * @arg @ref LL_ADC_AWD_CHANNEL_3_REG_INJ
<> 135:176b8275d35d 10097 * @arg @ref LL_ADC_AWD_CHANNEL_4_REG
<> 135:176b8275d35d 10098 * @arg @ref LL_ADC_AWD_CHANNEL_4_INJ
<> 135:176b8275d35d 10099 * @arg @ref LL_ADC_AWD_CHANNEL_4_REG_INJ
<> 135:176b8275d35d 10100 * @arg @ref LL_ADC_AWD_CHANNEL_5_REG
<> 135:176b8275d35d 10101 * @arg @ref LL_ADC_AWD_CHANNEL_5_INJ
<> 135:176b8275d35d 10102 * @arg @ref LL_ADC_AWD_CHANNEL_5_REG_INJ
<> 135:176b8275d35d 10103 * @arg @ref LL_ADC_AWD_CHANNEL_6_REG
<> 135:176b8275d35d 10104 * @arg @ref LL_ADC_AWD_CHANNEL_6_INJ
<> 135:176b8275d35d 10105 * @arg @ref LL_ADC_AWD_CHANNEL_6_REG_INJ
<> 135:176b8275d35d 10106 * @arg @ref LL_ADC_AWD_CHANNEL_7_REG
<> 135:176b8275d35d 10107 * @arg @ref LL_ADC_AWD_CHANNEL_7_INJ
<> 135:176b8275d35d 10108 * @arg @ref LL_ADC_AWD_CHANNEL_7_REG_INJ
<> 135:176b8275d35d 10109 * @arg @ref LL_ADC_AWD_CHANNEL_8_REG
<> 135:176b8275d35d 10110 * @arg @ref LL_ADC_AWD_CHANNEL_8_INJ
<> 135:176b8275d35d 10111 * @arg @ref LL_ADC_AWD_CHANNEL_8_REG_INJ
<> 135:176b8275d35d 10112 * @arg @ref LL_ADC_AWD_CHANNEL_9_REG
<> 135:176b8275d35d 10113 * @arg @ref LL_ADC_AWD_CHANNEL_9_INJ
<> 135:176b8275d35d 10114 * @arg @ref LL_ADC_AWD_CHANNEL_9_REG_INJ
<> 135:176b8275d35d 10115 * @arg @ref LL_ADC_AWD_CHANNEL_10_REG
<> 135:176b8275d35d 10116 * @arg @ref LL_ADC_AWD_CHANNEL_10_INJ
<> 135:176b8275d35d 10117 * @arg @ref LL_ADC_AWD_CHANNEL_10_REG_INJ
<> 135:176b8275d35d 10118 * @arg @ref LL_ADC_AWD_CHANNEL_11_REG
<> 135:176b8275d35d 10119 * @arg @ref LL_ADC_AWD_CHANNEL_11_INJ
<> 135:176b8275d35d 10120 * @arg @ref LL_ADC_AWD_CHANNEL_11_REG_INJ
<> 135:176b8275d35d 10121 * @arg @ref LL_ADC_AWD_CHANNEL_12_REG
<> 135:176b8275d35d 10122 * @arg @ref LL_ADC_AWD_CHANNEL_12_INJ
<> 135:176b8275d35d 10123 * @arg @ref LL_ADC_AWD_CHANNEL_12_REG_INJ
<> 135:176b8275d35d 10124 * @arg @ref LL_ADC_AWD_CHANNEL_13_REG
<> 135:176b8275d35d 10125 * @arg @ref LL_ADC_AWD_CHANNEL_13_INJ
<> 135:176b8275d35d 10126 * @arg @ref LL_ADC_AWD_CHANNEL_13_REG_INJ
<> 135:176b8275d35d 10127 * @arg @ref LL_ADC_AWD_CHANNEL_14_REG
<> 135:176b8275d35d 10128 * @arg @ref LL_ADC_AWD_CHANNEL_14_INJ
<> 135:176b8275d35d 10129 * @arg @ref LL_ADC_AWD_CHANNEL_14_REG_INJ
<> 135:176b8275d35d 10130 * @arg @ref LL_ADC_AWD_CHANNEL_15_REG
<> 135:176b8275d35d 10131 * @arg @ref LL_ADC_AWD_CHANNEL_15_INJ
<> 135:176b8275d35d 10132 * @arg @ref LL_ADC_AWD_CHANNEL_15_REG_INJ
<> 135:176b8275d35d 10133 * @arg @ref LL_ADC_AWD_CHANNEL_16_REG
<> 135:176b8275d35d 10134 * @arg @ref LL_ADC_AWD_CHANNEL_16_INJ
<> 135:176b8275d35d 10135 * @arg @ref LL_ADC_AWD_CHANNEL_16_REG_INJ
<> 135:176b8275d35d 10136 * @arg @ref LL_ADC_AWD_CHANNEL_17_REG
<> 135:176b8275d35d 10137 * @arg @ref LL_ADC_AWD_CHANNEL_17_INJ
<> 135:176b8275d35d 10138 * @arg @ref LL_ADC_AWD_CHANNEL_17_REG_INJ
<> 135:176b8275d35d 10139 * @arg @ref LL_ADC_AWD_CH_VREFINT_REG (1)
<> 135:176b8275d35d 10140 * @arg @ref LL_ADC_AWD_CH_VREFINT_INJ (1)
<> 135:176b8275d35d 10141 * @arg @ref LL_ADC_AWD_CH_VREFINT_REG_INJ (1)
<> 135:176b8275d35d 10142 * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_REG (1)
<> 135:176b8275d35d 10143 * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_INJ (1)
<> 135:176b8275d35d 10144 * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_REG_INJ (1)
<> 135:176b8275d35d 10145 *
<> 135:176b8275d35d 10146 * (1) On STM32F37x, parameter available only on ADC instance: ADC1.
<> 135:176b8275d35d 10147 * @retval None
<> 135:176b8275d35d 10148 */
<> 135:176b8275d35d 10149 __STATIC_INLINE void LL_ADC_SetAnalogWDMonitChannels(ADC_TypeDef *ADCx, uint32_t AWDChannelGroup)
<> 135:176b8275d35d 10150 {
<> 135:176b8275d35d 10151 MODIFY_REG(ADCx->CR1,
<> 135:176b8275d35d 10152 (ADC_CR1_AWDEN | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL | ADC_CR1_AWDCH),
<> 135:176b8275d35d 10153 AWDChannelGroup);
<> 135:176b8275d35d 10154 }
<> 135:176b8275d35d 10155
<> 135:176b8275d35d 10156 /**
<> 135:176b8275d35d 10157 * @brief Get ADC analog watchdog monitored channel.
<> 135:176b8275d35d 10158 * @note Usage of the returned channel number:
<> 135:176b8275d35d 10159 * - To reinject this channel into another function LL_ADC_xxx:
<> 135:176b8275d35d 10160 * the returned channel number is only partly formatted on definition
<> 135:176b8275d35d 10161 * of literals LL_ADC_CHANNEL_x. Therefore, it has to be compared
<> 135:176b8275d35d 10162 * with parts of literals LL_ADC_CHANNEL_x or using
<> 135:176b8275d35d 10163 * helper macro @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
<> 135:176b8275d35d 10164 * Then the selected literal LL_ADC_CHANNEL_x can be used
<> 135:176b8275d35d 10165 * as parameter for another function.
<> 135:176b8275d35d 10166 * - To get the channel number in decimal format:
<> 135:176b8275d35d 10167 * process the returned value with the helper macro
<> 135:176b8275d35d 10168 * @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
<> 135:176b8275d35d 10169 * Applicable only when the analog watchdog is set to monitor
<> 135:176b8275d35d 10170 * one channel.
<> 135:176b8275d35d 10171 * @note On this STM32 serie, there is only 1 kind of analog watchdog
<> 135:176b8275d35d 10172 * instance:
<> 135:176b8275d35d 10173 * - AWD standard (instance AWD1):
<> 135:176b8275d35d 10174 * - channels monitored: can monitor 1 channel or all channels.
<> 135:176b8275d35d 10175 * - groups monitored: ADC groups regular and-or injected.
<> 135:176b8275d35d 10176 * - resolution: resolution is not limited (corresponds to
<> 135:176b8275d35d 10177 * ADC resolution configured).
<> 135:176b8275d35d 10178 * @rmtoll CR1 AWD1CH LL_ADC_GetAnalogWDMonitChannels\n
<> 135:176b8275d35d 10179 * CR1 AWD1SGL LL_ADC_GetAnalogWDMonitChannels\n
<> 135:176b8275d35d 10180 * CR1 AWD1EN LL_ADC_GetAnalogWDMonitChannels
<> 135:176b8275d35d 10181 * @param ADCx ADC instance
<> 135:176b8275d35d 10182 * @retval Returned value can be one of the following values:
<> 135:176b8275d35d 10183 * @arg @ref LL_ADC_AWD_DISABLE
<> 135:176b8275d35d 10184 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG
<> 135:176b8275d35d 10185 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_INJ
<> 135:176b8275d35d 10186 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG_INJ
<> 135:176b8275d35d 10187 * @arg @ref LL_ADC_AWD_CHANNEL_0_REG
<> 135:176b8275d35d 10188 * @arg @ref LL_ADC_AWD_CHANNEL_0_INJ
<> 135:176b8275d35d 10189 * @arg @ref LL_ADC_AWD_CHANNEL_0_REG_INJ
<> 135:176b8275d35d 10190 * @arg @ref LL_ADC_AWD_CHANNEL_1_REG
<> 135:176b8275d35d 10191 * @arg @ref LL_ADC_AWD_CHANNEL_1_INJ
<> 135:176b8275d35d 10192 * @arg @ref LL_ADC_AWD_CHANNEL_1_REG_INJ
<> 135:176b8275d35d 10193 * @arg @ref LL_ADC_AWD_CHANNEL_2_REG
<> 135:176b8275d35d 10194 * @arg @ref LL_ADC_AWD_CHANNEL_2_INJ
<> 135:176b8275d35d 10195 * @arg @ref LL_ADC_AWD_CHANNEL_2_REG_INJ
<> 135:176b8275d35d 10196 * @arg @ref LL_ADC_AWD_CHANNEL_3_REG
<> 135:176b8275d35d 10197 * @arg @ref LL_ADC_AWD_CHANNEL_3_INJ
<> 135:176b8275d35d 10198 * @arg @ref LL_ADC_AWD_CHANNEL_3_REG_INJ
<> 135:176b8275d35d 10199 * @arg @ref LL_ADC_AWD_CHANNEL_4_REG
<> 135:176b8275d35d 10200 * @arg @ref LL_ADC_AWD_CHANNEL_4_INJ
<> 135:176b8275d35d 10201 * @arg @ref LL_ADC_AWD_CHANNEL_4_REG_INJ
<> 135:176b8275d35d 10202 * @arg @ref LL_ADC_AWD_CHANNEL_5_REG
<> 135:176b8275d35d 10203 * @arg @ref LL_ADC_AWD_CHANNEL_5_INJ
<> 135:176b8275d35d 10204 * @arg @ref LL_ADC_AWD_CHANNEL_5_REG_INJ
<> 135:176b8275d35d 10205 * @arg @ref LL_ADC_AWD_CHANNEL_6_REG
<> 135:176b8275d35d 10206 * @arg @ref LL_ADC_AWD_CHANNEL_6_INJ
<> 135:176b8275d35d 10207 * @arg @ref LL_ADC_AWD_CHANNEL_6_REG_INJ
<> 135:176b8275d35d 10208 * @arg @ref LL_ADC_AWD_CHANNEL_7_REG
<> 135:176b8275d35d 10209 * @arg @ref LL_ADC_AWD_CHANNEL_7_INJ
<> 135:176b8275d35d 10210 * @arg @ref LL_ADC_AWD_CHANNEL_7_REG_INJ
<> 135:176b8275d35d 10211 * @arg @ref LL_ADC_AWD_CHANNEL_8_REG
<> 135:176b8275d35d 10212 * @arg @ref LL_ADC_AWD_CHANNEL_8_INJ
<> 135:176b8275d35d 10213 * @arg @ref LL_ADC_AWD_CHANNEL_8_REG_INJ
<> 135:176b8275d35d 10214 * @arg @ref LL_ADC_AWD_CHANNEL_9_REG
<> 135:176b8275d35d 10215 * @arg @ref LL_ADC_AWD_CHANNEL_9_INJ
<> 135:176b8275d35d 10216 * @arg @ref LL_ADC_AWD_CHANNEL_9_REG_INJ
<> 135:176b8275d35d 10217 * @arg @ref LL_ADC_AWD_CHANNEL_10_REG
<> 135:176b8275d35d 10218 * @arg @ref LL_ADC_AWD_CHANNEL_10_INJ
<> 135:176b8275d35d 10219 * @arg @ref LL_ADC_AWD_CHANNEL_10_REG_INJ
<> 135:176b8275d35d 10220 * @arg @ref LL_ADC_AWD_CHANNEL_11_REG
<> 135:176b8275d35d 10221 * @arg @ref LL_ADC_AWD_CHANNEL_11_INJ
<> 135:176b8275d35d 10222 * @arg @ref LL_ADC_AWD_CHANNEL_11_REG_INJ
<> 135:176b8275d35d 10223 * @arg @ref LL_ADC_AWD_CHANNEL_12_REG
<> 135:176b8275d35d 10224 * @arg @ref LL_ADC_AWD_CHANNEL_12_INJ
<> 135:176b8275d35d 10225 * @arg @ref LL_ADC_AWD_CHANNEL_12_REG_INJ
<> 135:176b8275d35d 10226 * @arg @ref LL_ADC_AWD_CHANNEL_13_REG
<> 135:176b8275d35d 10227 * @arg @ref LL_ADC_AWD_CHANNEL_13_INJ
<> 135:176b8275d35d 10228 * @arg @ref LL_ADC_AWD_CHANNEL_13_REG_INJ
<> 135:176b8275d35d 10229 * @arg @ref LL_ADC_AWD_CHANNEL_14_REG
<> 135:176b8275d35d 10230 * @arg @ref LL_ADC_AWD_CHANNEL_14_INJ
<> 135:176b8275d35d 10231 * @arg @ref LL_ADC_AWD_CHANNEL_14_REG_INJ
<> 135:176b8275d35d 10232 * @arg @ref LL_ADC_AWD_CHANNEL_15_REG
<> 135:176b8275d35d 10233 * @arg @ref LL_ADC_AWD_CHANNEL_15_INJ
<> 135:176b8275d35d 10234 * @arg @ref LL_ADC_AWD_CHANNEL_15_REG_INJ
<> 135:176b8275d35d 10235 * @arg @ref LL_ADC_AWD_CHANNEL_16_REG
<> 135:176b8275d35d 10236 * @arg @ref LL_ADC_AWD_CHANNEL_16_INJ
<> 135:176b8275d35d 10237 * @arg @ref LL_ADC_AWD_CHANNEL_16_REG_INJ
<> 135:176b8275d35d 10238 * @arg @ref LL_ADC_AWD_CHANNEL_17_REG
<> 135:176b8275d35d 10239 * @arg @ref LL_ADC_AWD_CHANNEL_17_INJ
<> 135:176b8275d35d 10240 * @arg @ref LL_ADC_AWD_CHANNEL_17_REG_INJ
<> 135:176b8275d35d 10241 */
<> 135:176b8275d35d 10242 __STATIC_INLINE uint32_t LL_ADC_GetAnalogWDMonitChannels(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 10243 {
<> 135:176b8275d35d 10244 return (uint32_t)(READ_BIT(ADCx->CR1, (ADC_CR1_AWDEN | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL | ADC_CR1_AWDCH)));
<> 135:176b8275d35d 10245 }
<> 135:176b8275d35d 10246
<> 135:176b8275d35d 10247 /**
<> 135:176b8275d35d 10248 * @brief Set ADC analog watchdog threshold value of threshold
<> 135:176b8275d35d 10249 * high or low.
<> 135:176b8275d35d 10250 * @note On this STM32 serie, there is only 1 kind of analog watchdog
<> 135:176b8275d35d 10251 * instance:
<> 135:176b8275d35d 10252 * - AWD standard (instance AWD1):
<> 135:176b8275d35d 10253 * - channels monitored: can monitor 1 channel or all channels.
<> 135:176b8275d35d 10254 * - groups monitored: ADC groups regular and-or injected.
<> 135:176b8275d35d 10255 * - resolution: resolution is not limited (corresponds to
<> 135:176b8275d35d 10256 * ADC resolution configured).
<> 135:176b8275d35d 10257 * @rmtoll HTR HT LL_ADC_SetAnalogWDThresholds\n
<> 135:176b8275d35d 10258 * LTR LT LL_ADC_SetAnalogWDThresholds
<> 135:176b8275d35d 10259 * @param ADCx ADC instance
<> 135:176b8275d35d 10260 * @param AWDThresholdsHighLow This parameter can be one of the following values:
<> 135:176b8275d35d 10261 * @arg @ref LL_ADC_AWD_THRESHOLD_HIGH
<> 135:176b8275d35d 10262 * @arg @ref LL_ADC_AWD_THRESHOLD_LOW
<> 135:176b8275d35d 10263 * @param AWDThresholdValue: Value between Min_Data=0x000 and Max_Data=0xFFF
<> 135:176b8275d35d 10264 * @retval None
<> 135:176b8275d35d 10265 */
<> 135:176b8275d35d 10266 __STATIC_INLINE void LL_ADC_SetAnalogWDThresholds(ADC_TypeDef *ADCx, uint32_t AWDThresholdsHighLow, uint32_t AWDThresholdValue)
<> 135:176b8275d35d 10267 {
<> 135:176b8275d35d 10268 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->HTR, AWDThresholdsHighLow);
<> 135:176b8275d35d 10269
<> 135:176b8275d35d 10270 MODIFY_REG(*preg,
<> 135:176b8275d35d 10271 ADC_HTR_HT,
<> 135:176b8275d35d 10272 AWDThresholdValue);
<> 135:176b8275d35d 10273 }
<> 135:176b8275d35d 10274
<> 135:176b8275d35d 10275 /**
<> 135:176b8275d35d 10276 * @brief Get ADC analog watchdog threshold value of threshold high or
<> 135:176b8275d35d 10277 * threshold low.
<> 135:176b8275d35d 10278 * @note In case of ADC resolution different of 12 bits,
<> 135:176b8275d35d 10279 * analog watchdog thresholds data require a specific shift.
<> 135:176b8275d35d 10280 * Use helper macro @ref __LL_ADC_ANALOGWD_GET_THRESHOLD_RESOLUTION().
<> 135:176b8275d35d 10281 * @rmtoll HTR HT LL_ADC_GetAnalogWDThresholds\n
<> 135:176b8275d35d 10282 * LTR LT LL_ADC_GetAnalogWDThresholds
<> 135:176b8275d35d 10283 * @param ADCx ADC instance
<> 135:176b8275d35d 10284 * @param AWDThresholdsHighLow This parameter can be one of the following values:
<> 135:176b8275d35d 10285 * @arg @ref LL_ADC_AWD_THRESHOLD_HIGH
<> 135:176b8275d35d 10286 * @arg @ref LL_ADC_AWD_THRESHOLD_LOW
<> 135:176b8275d35d 10287 * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
<> 135:176b8275d35d 10288 */
<> 135:176b8275d35d 10289 __STATIC_INLINE uint32_t LL_ADC_GetAnalogWDThresholds(ADC_TypeDef *ADCx, uint32_t AWDThresholdsHighLow)
<> 135:176b8275d35d 10290 {
<> 135:176b8275d35d 10291 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->HTR, AWDThresholdsHighLow);
<> 135:176b8275d35d 10292
<> 135:176b8275d35d 10293 return (uint32_t)(READ_BIT(*preg, ADC_HTR_HT));
<> 135:176b8275d35d 10294 }
<> 135:176b8275d35d 10295
<> 135:176b8275d35d 10296 /**
<> 135:176b8275d35d 10297 * @}
<> 135:176b8275d35d 10298 */
<> 135:176b8275d35d 10299
<> 135:176b8275d35d 10300 /** @defgroup ADC_LL_EF_Operation_ADC_Instance Operation on ADC hierarchical scope: ADC instance
<> 135:176b8275d35d 10301 * @{
<> 135:176b8275d35d 10302 */
<> 135:176b8275d35d 10303
<> 135:176b8275d35d 10304 /**
<> 135:176b8275d35d 10305 * @brief Enable the selected ADC instance.
<> 135:176b8275d35d 10306 * @note On this STM32 serie, after ADC enable, a delay for
<> 135:176b8275d35d 10307 * ADC internal analog stabilization is required before performing a
<> 135:176b8275d35d 10308 * ADC conversion start.
<> 135:176b8275d35d 10309 * Refer to device datasheet, parameter tSTAB.
<> 135:176b8275d35d 10310 * @rmtoll CR2 ADON LL_ADC_Enable
<> 135:176b8275d35d 10311 * @param ADCx ADC instance
<> 135:176b8275d35d 10312 * @retval None
<> 135:176b8275d35d 10313 */
<> 135:176b8275d35d 10314 __STATIC_INLINE void LL_ADC_Enable(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 10315 {
<> 135:176b8275d35d 10316 SET_BIT(ADCx->CR2, ADC_CR2_ADON);
<> 135:176b8275d35d 10317 }
<> 135:176b8275d35d 10318
<> 135:176b8275d35d 10319 /**
<> 135:176b8275d35d 10320 * @brief Disable the selected ADC instance.
<> 135:176b8275d35d 10321 * @rmtoll CR2 ADON LL_ADC_Disable
<> 135:176b8275d35d 10322 * @param ADCx ADC instance
<> 135:176b8275d35d 10323 * @retval None
<> 135:176b8275d35d 10324 */
<> 135:176b8275d35d 10325 __STATIC_INLINE void LL_ADC_Disable(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 10326 {
<> 135:176b8275d35d 10327 CLEAR_BIT(ADCx->CR2, ADC_CR2_ADON);
<> 135:176b8275d35d 10328 }
<> 135:176b8275d35d 10329
<> 135:176b8275d35d 10330 /**
<> 135:176b8275d35d 10331 * @brief Get the selected ADC instance enable state.
<> 135:176b8275d35d 10332 * @rmtoll CR2 ADON LL_ADC_IsEnabled
<> 135:176b8275d35d 10333 * @param ADCx ADC instance
<> 135:176b8275d35d 10334 * @retval 0: ADC is disabled, 1: ADC is enabled.
<> 135:176b8275d35d 10335 */
<> 135:176b8275d35d 10336 __STATIC_INLINE uint32_t LL_ADC_IsEnabled(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 10337 {
<> 135:176b8275d35d 10338 return (READ_BIT(ADCx->CR2, ADC_CR2_ADON) == (ADC_CR2_ADON));
<> 135:176b8275d35d 10339 }
<> 135:176b8275d35d 10340
<> 135:176b8275d35d 10341 /**
<> 135:176b8275d35d 10342 * @brief Start ADC calibration in the mode single-ended
<> 135:176b8275d35d 10343 * or differential (for devices with differential mode available).
<> 135:176b8275d35d 10344 * @note On this STM32 serie, before starting a calibration,
<> 135:176b8275d35d 10345 * ADC must be disabled.
<> 135:176b8275d35d 10346 * A minimum number of ADC clock cycles are required
<> 135:176b8275d35d 10347 * between ADC disable state and calibration start.
<> 135:176b8275d35d 10348 * Refer to literal @ref LL_ADC_DELAY_DISABLE_CALIB_ADC_CYCLES.
<> 135:176b8275d35d 10349 * @note On this STM32 serie, hardware prerequisite before starting a calibration:
<> 135:176b8275d35d 10350 the ADC must have been in power-on state for at least
<> 135:176b8275d35d 10351 two ADC clock cycles.
<> 135:176b8275d35d 10352 * @rmtoll CR2 CAL LL_ADC_StartCalibration
<> 135:176b8275d35d 10353 * @param ADCx ADC instance
<> 135:176b8275d35d 10354 * @retval None
<> 135:176b8275d35d 10355 */
<> 135:176b8275d35d 10356 __STATIC_INLINE void LL_ADC_StartCalibration(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 10357 {
<> 135:176b8275d35d 10358 SET_BIT(ADCx->CR2, ADC_CR2_CAL);
<> 135:176b8275d35d 10359 }
<> 135:176b8275d35d 10360
<> 135:176b8275d35d 10361 /**
<> 135:176b8275d35d 10362 * @brief Get ADC calibration state.
<> 135:176b8275d35d 10363 * @rmtoll CR2 CAL LL_ADC_IsCalibrationOnGoing
<> 135:176b8275d35d 10364 * @param ADCx ADC instance
<> 135:176b8275d35d 10365 * @retval 0: calibration complete, 1: calibration in progress.
<> 135:176b8275d35d 10366 */
<> 135:176b8275d35d 10367 __STATIC_INLINE uint32_t LL_ADC_IsCalibrationOnGoing(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 10368 {
<> 135:176b8275d35d 10369 return (READ_BIT(ADCx->CR2, ADC_CR2_CAL) == (ADC_CR2_CAL));
<> 135:176b8275d35d 10370 }
<> 135:176b8275d35d 10371
<> 135:176b8275d35d 10372 /**
<> 135:176b8275d35d 10373 * @}
<> 135:176b8275d35d 10374 */
<> 135:176b8275d35d 10375
<> 135:176b8275d35d 10376 /** @defgroup ADC_LL_EF_Operation_ADC_Group_Regular Operation on ADC hierarchical scope: group regular
<> 135:176b8275d35d 10377 * @{
<> 135:176b8275d35d 10378 */
<> 135:176b8275d35d 10379
<> 135:176b8275d35d 10380 /**
<> 135:176b8275d35d 10381 * @brief Start ADC group regular conversion.
<> 135:176b8275d35d 10382 * @note On this STM32 serie, this function is relevant for both
<> 135:176b8275d35d 10383 * internal trigger (SW start) and external trigger:
<> 135:176b8275d35d 10384 * - If ADC trigger has been set to software start, ADC conversion
<> 135:176b8275d35d 10385 * starts immediately.
<> 135:176b8275d35d 10386 * - If ADC trigger has been set to external trigger, ADC conversion
<> 135:176b8275d35d 10387 * will start at next trigger event (on the selected trigger edge)
<> 135:176b8275d35d 10388 * following the ADC start conversion command.
<> 135:176b8275d35d 10389 * @rmtoll CR2 EXTTRIG LL_ADC_REG_StartConversion
<> 135:176b8275d35d 10390 * @param ADCx ADC instance
<> 135:176b8275d35d 10391 * @retval None
<> 135:176b8275d35d 10392 */
<> 135:176b8275d35d 10393 __STATIC_INLINE void LL_ADC_REG_StartConversion(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 10394 {
<> 135:176b8275d35d 10395 /* Note: Set bit ADC_CR2_SWSTART for case of trigger source set to */
<> 135:176b8275d35d 10396 /* SW start. In case of external trigger selected, this bit */
<> 135:176b8275d35d 10397 /* has no effect. */
<> 135:176b8275d35d 10398 SET_BIT(ADCx->CR2, (ADC_CR2_SWSTART | ADC_CR2_EXTTRIG));
<> 135:176b8275d35d 10399 }
<> 135:176b8275d35d 10400
<> 135:176b8275d35d 10401 /**
<> 135:176b8275d35d 10402 * @brief Stop ADC group regular conversion from external trigger.
<> 135:176b8275d35d 10403 * @note No more ADC conversion will start at next trigger event
<> 135:176b8275d35d 10404 * following the ADC stop conversion command.
<> 135:176b8275d35d 10405 * If a conversion is on-going, it will be completed.
<> 135:176b8275d35d 10406 * @note On this STM32 serie, there is no specific command
<> 135:176b8275d35d 10407 * to stop a conversion on-going or to stop ADC converting
<> 135:176b8275d35d 10408 * in continuous mode. These actions can be performed
<> 135:176b8275d35d 10409 * using function @ref LL_ADC_Disable().
<> 135:176b8275d35d 10410 * @rmtoll CR2 EXTSEL LL_ADC_REG_StopConversionExtTrig
<> 135:176b8275d35d 10411 * @param ADCx ADC instance
<> 135:176b8275d35d 10412 * @retval None
<> 135:176b8275d35d 10413 */
<> 135:176b8275d35d 10414 __STATIC_INLINE void LL_ADC_REG_StopConversionExtTrig(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 10415 {
<> 135:176b8275d35d 10416 SET_BIT(ADCx->CR2, ADC_CR2_EXTSEL);
<> 135:176b8275d35d 10417 }
<> 135:176b8275d35d 10418
<> 135:176b8275d35d 10419 /**
<> 135:176b8275d35d 10420 * @brief Get ADC group regular conversion data, range fit for
<> 135:176b8275d35d 10421 * all ADC configurations: all ADC resolutions and
<> 135:176b8275d35d 10422 * all oversampling increased data width (for devices
<> 135:176b8275d35d 10423 * with feature oversampling).
<> 135:176b8275d35d 10424 * @rmtoll DR RDATA LL_ADC_REG_ReadConversionData32
<> 135:176b8275d35d 10425 * @param ADCx ADC instance
<> 135:176b8275d35d 10426 * @retval Value between Min_Data=0x00000000 and Max_Data=0xFFFFFFFF
<> 135:176b8275d35d 10427 */
<> 135:176b8275d35d 10428 __STATIC_INLINE uint32_t LL_ADC_REG_ReadConversionData32(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 10429 {
<> 135:176b8275d35d 10430 return (uint16_t)(READ_BIT(ADCx->DR, ADC_DR_DATA));
<> 135:176b8275d35d 10431 }
<> 135:176b8275d35d 10432
<> 135:176b8275d35d 10433 /**
<> 135:176b8275d35d 10434 * @brief Get ADC group regular conversion data, range fit for
<> 135:176b8275d35d 10435 * ADC resolution 12 bits.
<> 135:176b8275d35d 10436 * @note For devices with feature oversampling: Oversampling
<> 135:176b8275d35d 10437 * can increase data width, function for extended range
<> 135:176b8275d35d 10438 * may be needed: @ref LL_ADC_REG_ReadConversionData32.
<> 135:176b8275d35d 10439 * @rmtoll DR RDATA LL_ADC_REG_ReadConversionData12
<> 135:176b8275d35d 10440 * @param ADCx ADC instance
<> 135:176b8275d35d 10441 * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
<> 135:176b8275d35d 10442 */
<> 135:176b8275d35d 10443 __STATIC_INLINE uint16_t LL_ADC_REG_ReadConversionData12(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 10444 {
<> 135:176b8275d35d 10445 return (uint16_t)(READ_BIT(ADCx->DR, ADC_DR_DATA));
<> 135:176b8275d35d 10446 }
<> 135:176b8275d35d 10447
<> 135:176b8275d35d 10448 /**
<> 135:176b8275d35d 10449 * @}
<> 135:176b8275d35d 10450 */
<> 135:176b8275d35d 10451
<> 135:176b8275d35d 10452 /** @defgroup ADC_LL_EF_Operation_ADC_Group_Injected Operation on ADC hierarchical scope: group injected
<> 135:176b8275d35d 10453 * @{
<> 135:176b8275d35d 10454 */
<> 135:176b8275d35d 10455
<> 135:176b8275d35d 10456 /**
<> 135:176b8275d35d 10457 * @brief Start ADC group injected conversion.
<> 135:176b8275d35d 10458 * @note On this STM32 serie, this function is relevant for both
<> 135:176b8275d35d 10459 * internal trigger (SW start) and external trigger:
<> 135:176b8275d35d 10460 * - If ADC trigger has been set to software start, ADC conversion
<> 135:176b8275d35d 10461 * starts immediately.
<> 135:176b8275d35d 10462 * - If ADC trigger has been set to external trigger, ADC conversion
<> 135:176b8275d35d 10463 * will start at next trigger event (on the selected trigger edge)
<> 135:176b8275d35d 10464 * following the ADC start conversion command.
<> 135:176b8275d35d 10465 * @rmtoll CR2 JEXTTRIG LL_ADC_REG_StartConversion
<> 135:176b8275d35d 10466 * @param ADCx ADC instance
<> 135:176b8275d35d 10467 * @retval None
<> 135:176b8275d35d 10468 */
<> 135:176b8275d35d 10469 __STATIC_INLINE void LL_ADC_INJ_StartConversion(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 10470 {
<> 135:176b8275d35d 10471 /* Note: Set bit ADC_CR2_JSWSTART for case of trigger source set to */
<> 135:176b8275d35d 10472 /* SW start. In case of external trigger selected, this bit */
<> 135:176b8275d35d 10473 /* has no effect. */
<> 135:176b8275d35d 10474 SET_BIT(ADCx->CR2, (ADC_CR2_JSWSTART | ADC_CR2_JEXTTRIG));
<> 135:176b8275d35d 10475 }
<> 135:176b8275d35d 10476
<> 135:176b8275d35d 10477 /**
<> 135:176b8275d35d 10478 * @brief Stop ADC group injected conversion from external trigger.
<> 135:176b8275d35d 10479 * @note No more ADC conversion will start at next trigger event
<> 135:176b8275d35d 10480 * following the ADC stop conversion command.
<> 135:176b8275d35d 10481 * If a conversion is on-going, it will be completed.
<> 135:176b8275d35d 10482 * @note On this STM32 serie, there is no specific command
<> 135:176b8275d35d 10483 * to stop a conversion on-going or to stop ADC converting
<> 135:176b8275d35d 10484 * in continuous mode. These actions can be performed
<> 135:176b8275d35d 10485 * using function @ref LL_ADC_Disable().
<> 135:176b8275d35d 10486 * @rmtoll CR2 JEXTSEL LL_ADC_INJ_StopConversionExtTrig
<> 135:176b8275d35d 10487 * @param ADCx ADC instance
<> 135:176b8275d35d 10488 * @retval None
<> 135:176b8275d35d 10489 */
<> 135:176b8275d35d 10490 __STATIC_INLINE void LL_ADC_INJ_StopConversionExtTrig(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 10491 {
<> 135:176b8275d35d 10492 SET_BIT(ADCx->CR2, ADC_CR2_JEXTSEL);
<> 135:176b8275d35d 10493 }
<> 135:176b8275d35d 10494
<> 135:176b8275d35d 10495 /**
<> 135:176b8275d35d 10496 * @brief Get ADC group regular conversion data, range fit for
<> 135:176b8275d35d 10497 * all ADC configurations: all ADC resolutions and
<> 135:176b8275d35d 10498 * all oversampling increased data width (for devices
<> 135:176b8275d35d 10499 * with feature oversampling).
<> 135:176b8275d35d 10500 * @rmtoll JDR1 JDATA LL_ADC_INJ_ReadConversionData32\n
<> 135:176b8275d35d 10501 * JDR2 JDATA LL_ADC_INJ_ReadConversionData32\n
<> 135:176b8275d35d 10502 * JDR3 JDATA LL_ADC_INJ_ReadConversionData32\n
<> 135:176b8275d35d 10503 * JDR4 JDATA LL_ADC_INJ_ReadConversionData32
<> 135:176b8275d35d 10504 * @param ADCx ADC instance
<> 135:176b8275d35d 10505 * @param Rank This parameter can be one of the following values:
<> 135:176b8275d35d 10506 * @arg @ref LL_ADC_INJ_RANK_1
<> 135:176b8275d35d 10507 * @arg @ref LL_ADC_INJ_RANK_2
<> 135:176b8275d35d 10508 * @arg @ref LL_ADC_INJ_RANK_3
<> 135:176b8275d35d 10509 * @arg @ref LL_ADC_INJ_RANK_4
<> 135:176b8275d35d 10510 * @retval Value between Min_Data=0x00000000 and Max_Data=0xFFFFFFFF
<> 135:176b8275d35d 10511 */
<> 135:176b8275d35d 10512 __STATIC_INLINE uint32_t LL_ADC_INJ_ReadConversionData32(ADC_TypeDef *ADCx, uint32_t Rank)
<> 135:176b8275d35d 10513 {
<> 135:176b8275d35d 10514 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JDR1, __ADC_MASK_SHIFT(Rank, ADC_INJ_JDRX_REGOFFSET_MASK));
<> 135:176b8275d35d 10515
<> 135:176b8275d35d 10516 return (uint32_t)(READ_BIT(*preg,
<> 135:176b8275d35d 10517 ADC_JDR1_JDATA)
<> 135:176b8275d35d 10518 );
<> 135:176b8275d35d 10519 }
<> 135:176b8275d35d 10520
<> 135:176b8275d35d 10521 /**
<> 135:176b8275d35d 10522 * @brief Get ADC group injected conversion data, range fit for
<> 135:176b8275d35d 10523 * ADC resolution 12 bits.
<> 135:176b8275d35d 10524 * @note For devices with feature oversampling: Oversampling
<> 135:176b8275d35d 10525 * can increase data width, function for extended range
<> 135:176b8275d35d 10526 * may be needed: @ref LL_ADC_INJ_ReadConversionData32.
<> 135:176b8275d35d 10527 * @rmtoll JDR1 JDATA LL_ADC_INJ_ReadConversionData12\n
<> 135:176b8275d35d 10528 * JDR2 JDATA LL_ADC_INJ_ReadConversionData12\n
<> 135:176b8275d35d 10529 * JDR3 JDATA LL_ADC_INJ_ReadConversionData12\n
<> 135:176b8275d35d 10530 * JDR4 JDATA LL_ADC_INJ_ReadConversionData12
<> 135:176b8275d35d 10531 * @param ADCx ADC instance
<> 135:176b8275d35d 10532 * @param Rank This parameter can be one of the following values:
<> 135:176b8275d35d 10533 * @arg @ref LL_ADC_INJ_RANK_1
<> 135:176b8275d35d 10534 * @arg @ref LL_ADC_INJ_RANK_2
<> 135:176b8275d35d 10535 * @arg @ref LL_ADC_INJ_RANK_3
<> 135:176b8275d35d 10536 * @arg @ref LL_ADC_INJ_RANK_4
<> 135:176b8275d35d 10537 * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
<> 135:176b8275d35d 10538 */
<> 135:176b8275d35d 10539 __STATIC_INLINE uint16_t LL_ADC_INJ_ReadConversionData12(ADC_TypeDef *ADCx, uint32_t Rank)
<> 135:176b8275d35d 10540 {
<> 135:176b8275d35d 10541 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JDR1, __ADC_MASK_SHIFT(Rank, ADC_INJ_JDRX_REGOFFSET_MASK));
<> 135:176b8275d35d 10542
<> 135:176b8275d35d 10543 return (uint16_t)(READ_BIT(*preg,
<> 135:176b8275d35d 10544 ADC_JDR1_JDATA)
<> 135:176b8275d35d 10545 );
<> 135:176b8275d35d 10546 }
<> 135:176b8275d35d 10547
<> 135:176b8275d35d 10548 /**
<> 135:176b8275d35d 10549 * @}
<> 135:176b8275d35d 10550 */
<> 135:176b8275d35d 10551
<> 135:176b8275d35d 10552 /** @defgroup ADC_LL_EF_FLAG_Management ADC flag management
<> 135:176b8275d35d 10553 * @{
<> 135:176b8275d35d 10554 */
<> 135:176b8275d35d 10555
<> 135:176b8275d35d 10556 /**
<> 135:176b8275d35d 10557 * @brief Get flag ADC group regular end of sequence conversions.
<> 135:176b8275d35d 10558 * @rmtoll SR EOC LL_ADC_IsActiveFlag_EOS
<> 135:176b8275d35d 10559 * @param ADCx ADC instance
<> 135:176b8275d35d 10560 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 10561 */
<> 135:176b8275d35d 10562 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_EOS(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 10563 {
<> 135:176b8275d35d 10564 /* Note: on this STM32 serie, there is no flag ADC group regular */
<> 135:176b8275d35d 10565 /* end of unitary conversion. */
<> 135:176b8275d35d 10566 /* Flag noted as "EOC" is corresponding to flag "EOS" */
<> 135:176b8275d35d 10567 /* in other STM32 families). */
<> 135:176b8275d35d 10568 return (READ_BIT(ADCx->SR, LL_ADC_FLAG_EOS) == (LL_ADC_FLAG_EOS));
<> 135:176b8275d35d 10569 }
<> 135:176b8275d35d 10570
<> 135:176b8275d35d 10571
<> 135:176b8275d35d 10572 /**
<> 135:176b8275d35d 10573 * @brief Get flag ADC group injected end of sequence conversions.
<> 135:176b8275d35d 10574 * @rmtoll SR JEOC LL_ADC_IsActiveFlag_JEOS
<> 135:176b8275d35d 10575 * @param ADCx ADC instance
<> 135:176b8275d35d 10576 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 10577 */
<> 135:176b8275d35d 10578 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_JEOS(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 10579 {
<> 135:176b8275d35d 10580 /* Note: on this STM32 serie, there is no flag ADC group injected */
<> 135:176b8275d35d 10581 /* end of unitary conversion. */
<> 135:176b8275d35d 10582 /* Flag noted as "JEOC" is corresponding to flag "JEOS" */
<> 135:176b8275d35d 10583 /* in other STM32 families). */
<> 135:176b8275d35d 10584 return (READ_BIT(ADCx->SR, LL_ADC_FLAG_JEOS) == (LL_ADC_FLAG_JEOS));
<> 135:176b8275d35d 10585 }
<> 135:176b8275d35d 10586
<> 135:176b8275d35d 10587 /**
<> 135:176b8275d35d 10588 * @brief Get flag ADC analog watchdog 1 flag
<> 135:176b8275d35d 10589 * @rmtoll SR AWD LL_ADC_IsActiveFlag_AWD1
<> 135:176b8275d35d 10590 * @param ADCx ADC instance
<> 135:176b8275d35d 10591 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 10592 */
<> 135:176b8275d35d 10593 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_AWD1(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 10594 {
<> 135:176b8275d35d 10595 return (READ_BIT(ADCx->SR, LL_ADC_FLAG_AWD1) == (LL_ADC_FLAG_AWD1));
<> 135:176b8275d35d 10596 }
<> 135:176b8275d35d 10597
<> 135:176b8275d35d 10598 /**
<> 135:176b8275d35d 10599 * @brief Clear flag ADC group regular end of sequence conversions.
<> 135:176b8275d35d 10600 * @rmtoll SR EOC LL_ADC_ClearFlag_EOS
<> 135:176b8275d35d 10601 * @param ADCx ADC instance
<> 135:176b8275d35d 10602 * @retval None
<> 135:176b8275d35d 10603 */
<> 135:176b8275d35d 10604 __STATIC_INLINE void LL_ADC_ClearFlag_EOS(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 10605 {
<> 135:176b8275d35d 10606 /* Note: on this STM32 serie, there is no flag ADC group regular */
<> 135:176b8275d35d 10607 /* end of unitary conversion. */
<> 135:176b8275d35d 10608 /* Flag noted as "EOC" is corresponding to flag "EOS" */
<> 135:176b8275d35d 10609 /* in other STM32 families). */
<> 135:176b8275d35d 10610 WRITE_REG(ADCx->SR, ~LL_ADC_FLAG_EOS);
<> 135:176b8275d35d 10611 }
<> 135:176b8275d35d 10612
<> 135:176b8275d35d 10613
<> 135:176b8275d35d 10614 /**
<> 135:176b8275d35d 10615 * @brief Clear flag ADC group injected end of sequence conversions.
<> 135:176b8275d35d 10616 * @rmtoll SR JEOC LL_ADC_ClearFlag_JEOS
<> 135:176b8275d35d 10617 * @param ADCx ADC instance
<> 135:176b8275d35d 10618 * @retval None
<> 135:176b8275d35d 10619 */
<> 135:176b8275d35d 10620 __STATIC_INLINE void LL_ADC_ClearFlag_JEOS(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 10621 {
<> 135:176b8275d35d 10622 /* Note: on this STM32 serie, there is no flag ADC group injected */
<> 135:176b8275d35d 10623 /* end of unitary conversion. */
<> 135:176b8275d35d 10624 /* Flag noted as "JEOC" is corresponding to flag "JEOS" */
<> 135:176b8275d35d 10625 /* in other STM32 families). */
<> 135:176b8275d35d 10626 WRITE_REG(ADCx->SR, ~LL_ADC_FLAG_JEOS);
<> 135:176b8275d35d 10627 }
<> 135:176b8275d35d 10628
<> 135:176b8275d35d 10629 /**
<> 135:176b8275d35d 10630 * @brief Clear flag ADC analog watchdog 1.
<> 135:176b8275d35d 10631 * @rmtoll SR AWD LL_ADC_ClearFlag_AWD1
<> 135:176b8275d35d 10632 * @param ADCx ADC instance
<> 135:176b8275d35d 10633 * @retval None
<> 135:176b8275d35d 10634 */
<> 135:176b8275d35d 10635 __STATIC_INLINE void LL_ADC_ClearFlag_AWD1(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 10636 {
<> 135:176b8275d35d 10637 WRITE_REG(ADCx->SR, ~LL_ADC_FLAG_AWD1);
<> 135:176b8275d35d 10638 }
<> 135:176b8275d35d 10639
<> 135:176b8275d35d 10640 /**
<> 135:176b8275d35d 10641 * @}
<> 135:176b8275d35d 10642 */
<> 135:176b8275d35d 10643
<> 135:176b8275d35d 10644 /** @defgroup ADC_LL_EF_IT_Management ADC IT management
<> 135:176b8275d35d 10645 * @{
<> 135:176b8275d35d 10646 */
<> 135:176b8275d35d 10647
<> 135:176b8275d35d 10648 /**
<> 135:176b8275d35d 10649 * @brief Enable interruption ADC group regular end of sequence conversions.
<> 135:176b8275d35d 10650 * @rmtoll CR1 EOCIE LL_ADC_EnableIT_EOS
<> 135:176b8275d35d 10651 * @param ADCx ADC instance
<> 135:176b8275d35d 10652 * @retval None
<> 135:176b8275d35d 10653 */
<> 135:176b8275d35d 10654 __STATIC_INLINE void LL_ADC_EnableIT_EOS(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 10655 {
<> 135:176b8275d35d 10656 /* Note: on this STM32 serie, there is no flag ADC group regular */
<> 135:176b8275d35d 10657 /* end of unitary conversion. */
<> 135:176b8275d35d 10658 /* Flag noted as "EOC" is corresponding to flag "EOS" */
<> 135:176b8275d35d 10659 /* in other STM32 families). */
<> 135:176b8275d35d 10660 SET_BIT(ADCx->CR1, ADC_CR1_EOCIE);
<> 135:176b8275d35d 10661 }
<> 135:176b8275d35d 10662
<> 135:176b8275d35d 10663
<> 135:176b8275d35d 10664 /**
<> 135:176b8275d35d 10665 * @brief Enable interruption ADC group injected end of sequence conversions.
<> 135:176b8275d35d 10666 * @rmtoll CR1 JEOCIE LL_ADC_EnableIT_JEOS
<> 135:176b8275d35d 10667 * @param ADCx ADC instance
<> 135:176b8275d35d 10668 * @retval None
<> 135:176b8275d35d 10669 */
<> 135:176b8275d35d 10670 __STATIC_INLINE void LL_ADC_EnableIT_JEOS(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 10671 {
<> 135:176b8275d35d 10672 /* Note: on this STM32 serie, there is no flag ADC group injected */
<> 135:176b8275d35d 10673 /* end of unitary conversion. */
<> 135:176b8275d35d 10674 /* Flag noted as "JEOC" is corresponding to flag "JEOS" */
<> 135:176b8275d35d 10675 /* in other STM32 families). */
<> 135:176b8275d35d 10676 SET_BIT(ADCx->CR1, LL_ADC_IT_JEOS);
<> 135:176b8275d35d 10677 }
<> 135:176b8275d35d 10678
<> 135:176b8275d35d 10679 /**
<> 135:176b8275d35d 10680 * @brief Enable interruption ADC analog watchdog 1.
<> 135:176b8275d35d 10681 * @rmtoll CR1 AWDIE LL_ADC_EnableIT_AWD1
<> 135:176b8275d35d 10682 * @param ADCx ADC instance
<> 135:176b8275d35d 10683 * @retval None
<> 135:176b8275d35d 10684 */
<> 135:176b8275d35d 10685 __STATIC_INLINE void LL_ADC_EnableIT_AWD1(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 10686 {
<> 135:176b8275d35d 10687 SET_BIT(ADCx->CR1, LL_ADC_IT_AWD1);
<> 135:176b8275d35d 10688 }
<> 135:176b8275d35d 10689
<> 135:176b8275d35d 10690 /**
<> 135:176b8275d35d 10691 * @brief Disable interruption ADC group regular end of sequence conversions.
<> 135:176b8275d35d 10692 * @rmtoll CR1 EOCIE LL_ADC_DisableIT_EOS
<> 135:176b8275d35d 10693 * @param ADCx ADC instance
<> 135:176b8275d35d 10694 * @retval None
<> 135:176b8275d35d 10695 */
<> 135:176b8275d35d 10696 __STATIC_INLINE void LL_ADC_DisableIT_EOS(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 10697 {
<> 135:176b8275d35d 10698 /* Note: on this STM32 serie, there is no flag ADC group regular */
<> 135:176b8275d35d 10699 /* end of unitary conversion. */
<> 135:176b8275d35d 10700 /* Flag noted as "EOC" is corresponding to flag "EOS" */
<> 135:176b8275d35d 10701 /* in other STM32 families). */
<> 135:176b8275d35d 10702 CLEAR_BIT(ADCx->CR1, ADC_CR1_EOCIE);
<> 135:176b8275d35d 10703 }
<> 135:176b8275d35d 10704
<> 135:176b8275d35d 10705
<> 135:176b8275d35d 10706 /**
<> 135:176b8275d35d 10707 * @brief Disable interruption ADC group injected end of sequence conversions.
<> 135:176b8275d35d 10708 * @rmtoll CR1 JEOCIE LL_ADC_EnableIT_JEOS
<> 135:176b8275d35d 10709 * @param ADCx ADC instance
<> 135:176b8275d35d 10710 * @retval None
<> 135:176b8275d35d 10711 */
<> 135:176b8275d35d 10712 __STATIC_INLINE void LL_ADC_DisableIT_JEOS(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 10713 {
<> 135:176b8275d35d 10714 /* Note: on this STM32 serie, there is no flag ADC group injected */
<> 135:176b8275d35d 10715 /* end of unitary conversion. */
<> 135:176b8275d35d 10716 /* Flag noted as "JEOC" is corresponding to flag "JEOS" */
<> 135:176b8275d35d 10717 /* in other STM32 families). */
<> 135:176b8275d35d 10718 CLEAR_BIT(ADCx->CR1, LL_ADC_IT_JEOS);
<> 135:176b8275d35d 10719 }
<> 135:176b8275d35d 10720
<> 135:176b8275d35d 10721 /**
<> 135:176b8275d35d 10722 * @brief Disable interruption ADC analog watchdog 1.
<> 135:176b8275d35d 10723 * @rmtoll CR1 AWDIE LL_ADC_EnableIT_AWD1
<> 135:176b8275d35d 10724 * @param ADCx ADC instance
<> 135:176b8275d35d 10725 * @retval None
<> 135:176b8275d35d 10726 */
<> 135:176b8275d35d 10727 __STATIC_INLINE void LL_ADC_DisableIT_AWD1(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 10728 {
<> 135:176b8275d35d 10729 CLEAR_BIT(ADCx->CR1, LL_ADC_IT_AWD1);
<> 135:176b8275d35d 10730 }
<> 135:176b8275d35d 10731
<> 135:176b8275d35d 10732 /**
<> 135:176b8275d35d 10733 * @brief Get state of interruption ADC group regular end of sequence conversions
<> 135:176b8275d35d 10734 * (0: interrupt disabled, 1: interrupt enabled).
<> 135:176b8275d35d 10735 * @rmtoll CR1 EOCIE LL_ADC_IsEnabledIT_EOS
<> 135:176b8275d35d 10736 * @param ADCx ADC instance
<> 135:176b8275d35d 10737 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 10738 */
<> 135:176b8275d35d 10739 __STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_EOS(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 10740 {
<> 135:176b8275d35d 10741 /* Note: on this STM32 serie, there is no flag ADC group regular */
<> 135:176b8275d35d 10742 /* end of unitary conversion. */
<> 135:176b8275d35d 10743 /* Flag noted as "EOC" is corresponding to flag "EOS" */
<> 135:176b8275d35d 10744 /* in other STM32 families). */
<> 135:176b8275d35d 10745 return (READ_BIT(ADCx->CR1, LL_ADC_IT_EOS) == (LL_ADC_IT_EOS));
<> 135:176b8275d35d 10746 }
<> 135:176b8275d35d 10747
<> 135:176b8275d35d 10748
<> 135:176b8275d35d 10749 /**
<> 135:176b8275d35d 10750 * @brief Get state of interruption ADC group injected end of sequence conversions
<> 135:176b8275d35d 10751 * (0: interrupt disabled, 1: interrupt enabled).
<> 135:176b8275d35d 10752 * @rmtoll CR1 JEOCIE LL_ADC_EnableIT_JEOS
<> 135:176b8275d35d 10753 * @param ADCx ADC instance
<> 135:176b8275d35d 10754 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 10755 */
<> 135:176b8275d35d 10756 __STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_JEOS(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 10757 {
<> 135:176b8275d35d 10758 /* Note: on this STM32 serie, there is no flag ADC group injected */
<> 135:176b8275d35d 10759 /* end of unitary conversion. */
<> 135:176b8275d35d 10760 /* Flag noted as "JEOC" is corresponding to flag "JEOS" */
<> 135:176b8275d35d 10761 /* in other STM32 families). */
<> 135:176b8275d35d 10762 return (READ_BIT(ADCx->CR1, LL_ADC_IT_JEOS) == (LL_ADC_IT_JEOS));
<> 135:176b8275d35d 10763 }
<> 135:176b8275d35d 10764
<> 135:176b8275d35d 10765 /**
<> 135:176b8275d35d 10766 * @brief Get state of interruption ADC analog watchdog 1
<> 135:176b8275d35d 10767 * (0: interrupt disabled, 1: interrupt enabled).
<> 135:176b8275d35d 10768 * @rmtoll CR1 AWDIE LL_ADC_EnableIT_AWD1
<> 135:176b8275d35d 10769 * @param ADCx ADC instance
<> 135:176b8275d35d 10770 * @retval State of bit (1 or 0).
<> 135:176b8275d35d 10771 */
<> 135:176b8275d35d 10772 __STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_AWD1(ADC_TypeDef *ADCx)
<> 135:176b8275d35d 10773 {
<> 135:176b8275d35d 10774 return (READ_BIT(ADCx->CR1, LL_ADC_IT_AWD1) == (LL_ADC_IT_AWD1));
<> 135:176b8275d35d 10775 }
<> 135:176b8275d35d 10776
<> 135:176b8275d35d 10777 /**
<> 135:176b8275d35d 10778 * @}
<> 135:176b8275d35d 10779 */
<> 135:176b8275d35d 10780
<> 135:176b8275d35d 10781 #if defined(USE_FULL_LL_DRIVER)
<> 135:176b8275d35d 10782 /** @defgroup ADC_LL_EF_Init Initialization and de-initialization functions
<> 135:176b8275d35d 10783 * @{
<> 135:176b8275d35d 10784 */
<> 135:176b8275d35d 10785
<> 135:176b8275d35d 10786 /* Initialization of some features of ADC common parameters and multimode */
<> 135:176b8275d35d 10787 /* Note: On STM32F37x ADC, there is no ADC common initialization */
<> 135:176b8275d35d 10788 /* function. */
<> 135:176b8275d35d 10789 ErrorStatus LL_ADC_CommonDeInit(ADC_Common_TypeDef *ADCxy_COMMON);
<> 135:176b8275d35d 10790
<> 135:176b8275d35d 10791 /* De-initialization of ADC instance, ADC group regular and ADC group injected */
<> 135:176b8275d35d 10792 /* (availability of ADC group injected depends on STM32 families) */
<> 135:176b8275d35d 10793 ErrorStatus LL_ADC_DeInit(ADC_TypeDef *ADCx);
<> 135:176b8275d35d 10794
<> 135:176b8275d35d 10795 /* Initialization of some features of ADC instance */
<> 135:176b8275d35d 10796 ErrorStatus LL_ADC_Init(ADC_TypeDef *ADCx, LL_ADC_InitTypeDef *ADC_InitStruct);
<> 135:176b8275d35d 10797 void LL_ADC_StructInit(LL_ADC_InitTypeDef *ADC_InitStruct);
<> 135:176b8275d35d 10798
<> 135:176b8275d35d 10799 /* Initialization of some features of ADC instance and ADC group regular */
<> 135:176b8275d35d 10800 ErrorStatus LL_ADC_REG_Init(ADC_TypeDef *ADCx, LL_ADC_REG_InitTypeDef *ADC_REG_InitStruct);
<> 135:176b8275d35d 10801 void LL_ADC_REG_StructInit(LL_ADC_REG_InitTypeDef *ADC_REG_InitStruct);
<> 135:176b8275d35d 10802
<> 135:176b8275d35d 10803 /* Initialization of some features of ADC instance and ADC group injected */
<> 135:176b8275d35d 10804 ErrorStatus LL_ADC_INJ_Init(ADC_TypeDef *ADCx, LL_ADC_INJ_InitTypeDef *ADC_INJ_InitStruct);
<> 135:176b8275d35d 10805 void LL_ADC_INJ_StructInit(LL_ADC_INJ_InitTypeDef *ADC_INJ_InitStruct);
<> 135:176b8275d35d 10806
<> 135:176b8275d35d 10807 /**
<> 135:176b8275d35d 10808 * @}
<> 135:176b8275d35d 10809 */
<> 135:176b8275d35d 10810 #endif /* USE_FULL_LL_DRIVER */
<> 135:176b8275d35d 10811
<> 135:176b8275d35d 10812 /**
<> 135:176b8275d35d 10813 * @}
<> 135:176b8275d35d 10814 */
<> 135:176b8275d35d 10815
<> 135:176b8275d35d 10816 /**
<> 135:176b8275d35d 10817 * @}
<> 135:176b8275d35d 10818 */
<> 135:176b8275d35d 10819
<> 135:176b8275d35d 10820 #endif /* ADC1 */
<> 135:176b8275d35d 10821
<> 135:176b8275d35d 10822
<> 135:176b8275d35d 10823 #endif /* STM32F373xC || STM32F378xx */
<> 135:176b8275d35d 10824
<> 135:176b8275d35d 10825 /**
<> 135:176b8275d35d 10826 * @}
<> 135:176b8275d35d 10827 */
<> 135:176b8275d35d 10828
<> 135:176b8275d35d 10829 #ifdef __cplusplus
<> 135:176b8275d35d 10830 }
<> 135:176b8275d35d 10831 #endif
<> 135:176b8275d35d 10832
<> 135:176b8275d35d 10833 #endif /* __STM32F3xx_LL_ADC_H */
<> 135:176b8275d35d 10834
<> 135:176b8275d35d 10835 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/