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

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

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

Committer:
AnnaBridge
Date:
Wed Feb 20 20:53:29 2019 +0000
Revision:
172:65be27845400
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 172:65be27845400 1 /**
AnnaBridge 172:65be27845400 2 ******************************************************************************
AnnaBridge 172:65be27845400 3 * @file stm32l4xx_ll_adc.h
AnnaBridge 172:65be27845400 4 * @author MCD Application Team
AnnaBridge 172:65be27845400 5 * @brief Header file of ADC LL module.
AnnaBridge 172:65be27845400 6 ******************************************************************************
AnnaBridge 172:65be27845400 7 * @attention
AnnaBridge 172:65be27845400 8 *
AnnaBridge 172:65be27845400 9 * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
AnnaBridge 172:65be27845400 10 *
AnnaBridge 172:65be27845400 11 * Redistribution and use in source and binary forms, with or without modification,
AnnaBridge 172:65be27845400 12 * are permitted provided that the following conditions are met:
AnnaBridge 172:65be27845400 13 * 1. Redistributions of source code must retain the above copyright notice,
AnnaBridge 172:65be27845400 14 * this list of conditions and the following disclaimer.
AnnaBridge 172:65be27845400 15 * 2. Redistributions in binary form must reproduce the above copyright notice,
AnnaBridge 172:65be27845400 16 * this list of conditions and the following disclaimer in the documentation
AnnaBridge 172:65be27845400 17 * and/or other materials provided with the distribution.
AnnaBridge 172:65be27845400 18 * 3. Neither the name of STMicroelectronics nor the names of its contributors
AnnaBridge 172:65be27845400 19 * may be used to endorse or promote products derived from this software
AnnaBridge 172:65be27845400 20 * without specific prior written permission.
AnnaBridge 172:65be27845400 21 *
AnnaBridge 172:65be27845400 22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AnnaBridge 172:65be27845400 23 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
AnnaBridge 172:65be27845400 24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
AnnaBridge 172:65be27845400 25 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
AnnaBridge 172:65be27845400 26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
AnnaBridge 172:65be27845400 27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
AnnaBridge 172:65be27845400 28 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
AnnaBridge 172:65be27845400 29 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
AnnaBridge 172:65be27845400 30 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
AnnaBridge 172:65be27845400 31 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
AnnaBridge 172:65be27845400 32 *
AnnaBridge 172:65be27845400 33 ******************************************************************************
AnnaBridge 172:65be27845400 34 */
AnnaBridge 172:65be27845400 35
AnnaBridge 172:65be27845400 36 /* Define to prevent recursive inclusion -------------------------------------*/
AnnaBridge 172:65be27845400 37 #ifndef __STM32L4xx_LL_ADC_H
AnnaBridge 172:65be27845400 38 #define __STM32L4xx_LL_ADC_H
AnnaBridge 172:65be27845400 39
AnnaBridge 172:65be27845400 40 #ifdef __cplusplus
AnnaBridge 172:65be27845400 41 extern "C" {
AnnaBridge 172:65be27845400 42 #endif
AnnaBridge 172:65be27845400 43
AnnaBridge 172:65be27845400 44 /* Includes ------------------------------------------------------------------*/
AnnaBridge 172:65be27845400 45 #include "stm32l4xx.h"
AnnaBridge 172:65be27845400 46
AnnaBridge 172:65be27845400 47 /** @addtogroup STM32L4xx_LL_Driver
AnnaBridge 172:65be27845400 48 * @{
AnnaBridge 172:65be27845400 49 */
AnnaBridge 172:65be27845400 50
AnnaBridge 172:65be27845400 51 #if defined (ADC1) || defined (ADC2) || defined (ADC3)
AnnaBridge 172:65be27845400 52
AnnaBridge 172:65be27845400 53 /** @defgroup ADC_LL ADC
AnnaBridge 172:65be27845400 54 * @{
AnnaBridge 172:65be27845400 55 */
AnnaBridge 172:65be27845400 56
AnnaBridge 172:65be27845400 57 /* Private types -------------------------------------------------------------*/
AnnaBridge 172:65be27845400 58 /* Private variables ---------------------------------------------------------*/
AnnaBridge 172:65be27845400 59
AnnaBridge 172:65be27845400 60 /* Private constants ---------------------------------------------------------*/
AnnaBridge 172:65be27845400 61 /** @defgroup ADC_LL_Private_Constants ADC Private Constants
AnnaBridge 172:65be27845400 62 * @{
AnnaBridge 172:65be27845400 63 */
AnnaBridge 172:65be27845400 64
AnnaBridge 172:65be27845400 65 /* Internal mask for ADC group regular sequencer: */
AnnaBridge 172:65be27845400 66 /* To select into literal LL_ADC_REG_RANK_x the relevant bits for: */
AnnaBridge 172:65be27845400 67 /* - sequencer register offset */
AnnaBridge 172:65be27845400 68 /* - sequencer rank bits position into the selected register */
AnnaBridge 172:65be27845400 69
AnnaBridge 172:65be27845400 70 /* Internal register offset for ADC group regular sequencer configuration */
AnnaBridge 172:65be27845400 71 /* (offset placed into a spare area of literal definition) */
AnnaBridge 172:65be27845400 72 #define ADC_SQR1_REGOFFSET (0x00000000U)
AnnaBridge 172:65be27845400 73 #define ADC_SQR2_REGOFFSET (0x00000100U)
AnnaBridge 172:65be27845400 74 #define ADC_SQR3_REGOFFSET (0x00000200U)
AnnaBridge 172:65be27845400 75 #define ADC_SQR4_REGOFFSET (0x00000300U)
AnnaBridge 172:65be27845400 76
AnnaBridge 172:65be27845400 77 #define ADC_REG_SQRX_REGOFFSET_MASK (ADC_SQR1_REGOFFSET | ADC_SQR2_REGOFFSET | ADC_SQR3_REGOFFSET | ADC_SQR4_REGOFFSET)
AnnaBridge 172:65be27845400 78 #if defined(CORE_CM0PLUS)
AnnaBridge 172:65be27845400 79 #define ADC_SQRX_REGOFFSET_POS (8U) /* Position of bits ADC_SQRx_REGOFFSET in ADC_REG_SQRX_REGOFFSET_MASK */
AnnaBridge 172:65be27845400 80 #endif
AnnaBridge 172:65be27845400 81 #define ADC_REG_RANK_ID_SQRX_MASK (ADC_CHANNEL_ID_NUMBER_MASK_POSBIT0)
AnnaBridge 172:65be27845400 82
AnnaBridge 172:65be27845400 83 /* Definition of ADC group regular sequencer bits information to be inserted */
AnnaBridge 172:65be27845400 84 /* into ADC group regular sequencer ranks literals definition. */
AnnaBridge 172:65be27845400 85 #define ADC_REG_RANK_1_SQRX_BITOFFSET_POS ( 6U) /* Value equivalent to POSITION_VAL(ADC_SQR1_SQ1) */
AnnaBridge 172:65be27845400 86 #define ADC_REG_RANK_2_SQRX_BITOFFSET_POS (12U) /* Value equivalent to POSITION_VAL(ADC_SQR1_SQ2) */
AnnaBridge 172:65be27845400 87 #define ADC_REG_RANK_3_SQRX_BITOFFSET_POS (18U) /* Value equivalent to POSITION_VAL(ADC_SQR1_SQ3) */
AnnaBridge 172:65be27845400 88 #define ADC_REG_RANK_4_SQRX_BITOFFSET_POS (24U) /* Value equivalent to POSITION_VAL(ADC_SQR1_SQ4) */
AnnaBridge 172:65be27845400 89 #define ADC_REG_RANK_5_SQRX_BITOFFSET_POS ( 0U) /* Value equivalent to POSITION_VAL(ADC_SQR2_SQ5) */
AnnaBridge 172:65be27845400 90 #define ADC_REG_RANK_6_SQRX_BITOFFSET_POS ( 6U) /* Value equivalent to POSITION_VAL(ADC_SQR2_SQ6) */
AnnaBridge 172:65be27845400 91 #define ADC_REG_RANK_7_SQRX_BITOFFSET_POS (12U) /* Value equivalent to POSITION_VAL(ADC_SQR2_SQ7) */
AnnaBridge 172:65be27845400 92 #define ADC_REG_RANK_8_SQRX_BITOFFSET_POS (18U) /* Value equivalent to POSITION_VAL(ADC_SQR2_SQ8) */
AnnaBridge 172:65be27845400 93 #define ADC_REG_RANK_9_SQRX_BITOFFSET_POS (24U) /* Value equivalent to POSITION_VAL(ADC_SQR2_SQ9) */
AnnaBridge 172:65be27845400 94 #define ADC_REG_RANK_10_SQRX_BITOFFSET_POS ( 0U) /* Value equivalent to POSITION_VAL(ADC_SQR3_SQ10) */
AnnaBridge 172:65be27845400 95 #define ADC_REG_RANK_11_SQRX_BITOFFSET_POS ( 6U) /* Value equivalent to POSITION_VAL(ADC_SQR3_SQ11) */
AnnaBridge 172:65be27845400 96 #define ADC_REG_RANK_12_SQRX_BITOFFSET_POS (12U) /* Value equivalent to POSITION_VAL(ADC_SQR3_SQ12) */
AnnaBridge 172:65be27845400 97 #define ADC_REG_RANK_13_SQRX_BITOFFSET_POS (18U) /* Value equivalent to POSITION_VAL(ADC_SQR3_SQ13) */
AnnaBridge 172:65be27845400 98 #define ADC_REG_RANK_14_SQRX_BITOFFSET_POS (24U) /* Value equivalent to POSITION_VAL(ADC_SQR3_SQ14) */
AnnaBridge 172:65be27845400 99 #define ADC_REG_RANK_15_SQRX_BITOFFSET_POS ( 0U) /* Value equivalent to POSITION_VAL(ADC_SQR4_SQ15) */
AnnaBridge 172:65be27845400 100 #define ADC_REG_RANK_16_SQRX_BITOFFSET_POS ( 6U) /* Value equivalent to POSITION_VAL(ADC_SQR4_SQ16) */
AnnaBridge 172:65be27845400 101
AnnaBridge 172:65be27845400 102
AnnaBridge 172:65be27845400 103
AnnaBridge 172:65be27845400 104 /* Internal mask for ADC group injected sequencer: */
AnnaBridge 172:65be27845400 105 /* To select into literal LL_ADC_INJ_RANK_x the relevant bits for: */
AnnaBridge 172:65be27845400 106 /* - data register offset */
AnnaBridge 172:65be27845400 107 /* - sequencer rank bits position into the selected register */
AnnaBridge 172:65be27845400 108
AnnaBridge 172:65be27845400 109 /* Internal register offset for ADC group injected data register */
AnnaBridge 172:65be27845400 110 /* (offset placed into a spare area of literal definition) */
AnnaBridge 172:65be27845400 111 #define ADC_JDR1_REGOFFSET (0x00000000U)
AnnaBridge 172:65be27845400 112 #define ADC_JDR2_REGOFFSET (0x00000100U)
AnnaBridge 172:65be27845400 113 #define ADC_JDR3_REGOFFSET (0x00000200U)
AnnaBridge 172:65be27845400 114 #define ADC_JDR4_REGOFFSET (0x00000300U)
AnnaBridge 172:65be27845400 115
AnnaBridge 172:65be27845400 116 #define ADC_INJ_JDRX_REGOFFSET_MASK (ADC_JDR1_REGOFFSET | ADC_JDR2_REGOFFSET | ADC_JDR3_REGOFFSET | ADC_JDR4_REGOFFSET)
AnnaBridge 172:65be27845400 117 #define ADC_INJ_RANK_ID_JSQR_MASK (ADC_CHANNEL_ID_NUMBER_MASK_POSBIT0)
AnnaBridge 172:65be27845400 118 #if defined(CORE_CM0PLUS)
AnnaBridge 172:65be27845400 119 #define ADC_JDRX_REGOFFSET_POS (8U) /* Position of bits ADC_JDRx_REGOFFSET in ADC_INJ_JDRX_REGOFFSET_MASK */
AnnaBridge 172:65be27845400 120 #endif
AnnaBridge 172:65be27845400 121
AnnaBridge 172:65be27845400 122 /* Definition of ADC group injected sequencer bits information to be inserted */
AnnaBridge 172:65be27845400 123 /* into ADC group injected sequencer ranks literals definition. */
AnnaBridge 172:65be27845400 124 #define ADC_INJ_RANK_1_JSQR_BITOFFSET_POS ( 8U) /* Value equivalent to POSITION_VAL(ADC_JSQR_JSQ1) */
AnnaBridge 172:65be27845400 125 #define ADC_INJ_RANK_2_JSQR_BITOFFSET_POS (14U) /* Value equivalent to POSITION_VAL(ADC_JSQR_JSQ2) */
AnnaBridge 172:65be27845400 126 #define ADC_INJ_RANK_3_JSQR_BITOFFSET_POS (20U) /* Value equivalent to POSITION_VAL(ADC_JSQR_JSQ3) */
AnnaBridge 172:65be27845400 127 #define ADC_INJ_RANK_4_JSQR_BITOFFSET_POS (26U) /* Value equivalent to POSITION_VAL(ADC_JSQR_JSQ4) */
AnnaBridge 172:65be27845400 128
AnnaBridge 172:65be27845400 129
AnnaBridge 172:65be27845400 130
AnnaBridge 172:65be27845400 131 /* Internal mask for ADC group regular trigger: */
AnnaBridge 172:65be27845400 132 /* To select into literal LL_ADC_REG_TRIG_x the relevant bits for: */
AnnaBridge 172:65be27845400 133 /* - regular trigger source */
AnnaBridge 172:65be27845400 134 /* - regular trigger edge */
AnnaBridge 172:65be27845400 135 #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) */
AnnaBridge 172:65be27845400 136
AnnaBridge 172:65be27845400 137 /* Mask containing trigger source masks for each of possible */
AnnaBridge 172:65be27845400 138 /* trigger edge selection duplicated with shifts [0; 4; 8; 12] */
AnnaBridge 172:65be27845400 139 /* corresponding to {SW start; ext trigger; ext trigger; ext trigger}. */
AnnaBridge 172:65be27845400 140 #define ADC_REG_TRIG_SOURCE_MASK (((LL_ADC_REG_TRIG_SOFTWARE & ADC_CFGR_EXTSEL) << (4U * 0U)) | \
AnnaBridge 172:65be27845400 141 ((ADC_CFGR_EXTSEL) << (4U * 1U)) | \
AnnaBridge 172:65be27845400 142 ((ADC_CFGR_EXTSEL) << (4U * 2U)) | \
AnnaBridge 172:65be27845400 143 ((ADC_CFGR_EXTSEL) << (4U * 3U)) )
AnnaBridge 172:65be27845400 144
AnnaBridge 172:65be27845400 145 /* Mask containing trigger edge masks for each of possible */
AnnaBridge 172:65be27845400 146 /* trigger edge selection duplicated with shifts [0; 4; 8; 12] */
AnnaBridge 172:65be27845400 147 /* corresponding to {SW start; ext trigger; ext trigger; ext trigger}. */
AnnaBridge 172:65be27845400 148 #define ADC_REG_TRIG_EDGE_MASK (((LL_ADC_REG_TRIG_SOFTWARE & ADC_CFGR_EXTEN) << (4U * 0U)) | \
AnnaBridge 172:65be27845400 149 ((ADC_REG_TRIG_EXT_EDGE_DEFAULT) << (4U * 1U)) | \
AnnaBridge 172:65be27845400 150 ((ADC_REG_TRIG_EXT_EDGE_DEFAULT) << (4U * 2U)) | \
AnnaBridge 172:65be27845400 151 ((ADC_REG_TRIG_EXT_EDGE_DEFAULT) << (4U * 3U)) )
AnnaBridge 172:65be27845400 152
AnnaBridge 172:65be27845400 153 /* Definition of ADC group regular trigger bits information. */
AnnaBridge 172:65be27845400 154 #define ADC_REG_TRIG_EXTSEL_BITOFFSET_POS ( 6U) /* Value equivalent to POSITION_VAL(ADC_CFGR_EXTSEL) */
AnnaBridge 172:65be27845400 155 #define ADC_REG_TRIG_EXTEN_BITOFFSET_POS (10U) /* Value equivalent to POSITION_VAL(ADC_CFGR_EXTEN) */
AnnaBridge 172:65be27845400 156
AnnaBridge 172:65be27845400 157
AnnaBridge 172:65be27845400 158
AnnaBridge 172:65be27845400 159 /* Internal mask for ADC group injected trigger: */
AnnaBridge 172:65be27845400 160 /* To select into literal LL_ADC_INJ_TRIG_x the relevant bits for: */
AnnaBridge 172:65be27845400 161 /* - injected trigger source */
AnnaBridge 172:65be27845400 162 /* - injected trigger edge */
AnnaBridge 172:65be27845400 163 #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) */
AnnaBridge 172:65be27845400 164
AnnaBridge 172:65be27845400 165 /* Mask containing trigger source masks for each of possible */
AnnaBridge 172:65be27845400 166 /* trigger edge selection duplicated with shifts [0; 4; 8; 12] */
AnnaBridge 172:65be27845400 167 /* corresponding to {SW start; ext trigger; ext trigger; ext trigger}. */
AnnaBridge 172:65be27845400 168 #define ADC_INJ_TRIG_SOURCE_MASK (((LL_ADC_INJ_TRIG_SOFTWARE & ADC_JSQR_JEXTSEL) << (4U * 0U)) | \
AnnaBridge 172:65be27845400 169 ((ADC_JSQR_JEXTSEL) << (4U * 1U)) | \
AnnaBridge 172:65be27845400 170 ((ADC_JSQR_JEXTSEL) << (4U * 2U)) | \
AnnaBridge 172:65be27845400 171 ((ADC_JSQR_JEXTSEL) << (4U * 3U)) )
AnnaBridge 172:65be27845400 172
AnnaBridge 172:65be27845400 173 /* Mask containing trigger edge masks for each of possible */
AnnaBridge 172:65be27845400 174 /* trigger edge selection duplicated with shifts [0; 4; 8; 12] */
AnnaBridge 172:65be27845400 175 /* corresponding to {SW start; ext trigger; ext trigger; ext trigger}. */
AnnaBridge 172:65be27845400 176 #define ADC_INJ_TRIG_EDGE_MASK (((LL_ADC_INJ_TRIG_SOFTWARE & ADC_JSQR_JEXTEN) << (4U * 0U)) | \
AnnaBridge 172:65be27845400 177 ((ADC_INJ_TRIG_EXT_EDGE_DEFAULT) << (4U * 1U)) | \
AnnaBridge 172:65be27845400 178 ((ADC_INJ_TRIG_EXT_EDGE_DEFAULT) << (4U * 2U)) | \
AnnaBridge 172:65be27845400 179 ((ADC_INJ_TRIG_EXT_EDGE_DEFAULT) << (4U * 3U)) )
AnnaBridge 172:65be27845400 180
AnnaBridge 172:65be27845400 181 /* Definition of ADC group injected trigger bits information. */
AnnaBridge 172:65be27845400 182 #define ADC_INJ_TRIG_EXTSEL_BITOFFSET_POS ( 2U) /* Value equivalent to POSITION_VAL(ADC_JSQR_JEXTSEL) */
AnnaBridge 172:65be27845400 183 #define ADC_INJ_TRIG_EXTEN_BITOFFSET_POS ( 6U) /* Value equivalent to POSITION_VAL(ADC_JSQR_JEXTEN) */
AnnaBridge 172:65be27845400 184
AnnaBridge 172:65be27845400 185
AnnaBridge 172:65be27845400 186
AnnaBridge 172:65be27845400 187
AnnaBridge 172:65be27845400 188
AnnaBridge 172:65be27845400 189
AnnaBridge 172:65be27845400 190 /* Internal mask for ADC channel: */
AnnaBridge 172:65be27845400 191 /* To select into literal LL_ADC_CHANNEL_x the relevant bits for: */
AnnaBridge 172:65be27845400 192 /* - channel identifier defined by number */
AnnaBridge 172:65be27845400 193 /* - channel identifier defined by bitfield */
AnnaBridge 172:65be27845400 194 /* - channel differentiation between external channels (connected to */
AnnaBridge 172:65be27845400 195 /* GPIO pins) and internal channels (connected to internal paths) */
AnnaBridge 172:65be27845400 196 /* - channel sampling time defined by SMPRx register offset */
AnnaBridge 172:65be27845400 197 /* and SMPx bits positions into SMPRx register */
AnnaBridge 172:65be27845400 198 #define ADC_CHANNEL_ID_NUMBER_MASK (ADC_CFGR_AWD1CH)
AnnaBridge 172:65be27845400 199 #define ADC_CHANNEL_ID_BITFIELD_MASK (ADC_AWD2CR_AWD2CH)
AnnaBridge 172:65be27845400 200 #define ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS (26U)/* Value equivalent to POSITION_VAL(ADC_CHANNEL_ID_NUMBER_MASK) */
AnnaBridge 172:65be27845400 201 #define ADC_CHANNEL_ID_MASK (ADC_CHANNEL_ID_NUMBER_MASK | ADC_CHANNEL_ID_BITFIELD_MASK | ADC_CHANNEL_ID_INTERNAL_CH_MASK)
AnnaBridge 172:65be27845400 202 /* Equivalent mask of ADC_CHANNEL_NUMBER_MASK aligned on register LSB (bit 0) */
AnnaBridge 172:65be27845400 203 #define ADC_CHANNEL_ID_NUMBER_MASK_POSBIT0 (ADC_SQR2_SQ5) /* Equivalent to shift: (ADC_CHANNEL_NUMBER_MASK >> POSITION_VAL(ADC_CHANNEL_NUMBER_MASK)) */
AnnaBridge 172:65be27845400 204
AnnaBridge 172:65be27845400 205 /* Channel differentiation between external and internal channels */
AnnaBridge 172:65be27845400 206 #define ADC_CHANNEL_ID_INTERNAL_CH (0x80000000U) /* Marker of internal channel */
AnnaBridge 172:65be27845400 207 #define ADC_CHANNEL_ID_INTERNAL_CH_2 (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 */
AnnaBridge 172:65be27845400 208 #define ADC_CHANNEL_ID_INTERNAL_CH_MASK (ADC_CHANNEL_ID_INTERNAL_CH | ADC_CHANNEL_ID_INTERNAL_CH_2)
AnnaBridge 172:65be27845400 209
AnnaBridge 172:65be27845400 210 /* Internal register offset for ADC channel sampling time configuration */
AnnaBridge 172:65be27845400 211 /* (offset placed into a spare area of literal definition) */
AnnaBridge 172:65be27845400 212 #define ADC_SMPR1_REGOFFSET (0x00000000U)
AnnaBridge 172:65be27845400 213 #define ADC_SMPR2_REGOFFSET (0x02000000U)
AnnaBridge 172:65be27845400 214 #define ADC_CHANNEL_SMPRX_REGOFFSET_MASK (ADC_SMPR1_REGOFFSET | ADC_SMPR2_REGOFFSET)
AnnaBridge 172:65be27845400 215 #if defined(CORE_CM0PLUS)
AnnaBridge 172:65be27845400 216 #define ADC_SMPRX_REGOFFSET_POS (25U) /* Position of bits ADC_SMPRx_REGOFFSET in ADC_CHANNEL_SMPRX_REGOFFSET_MASK */
AnnaBridge 172:65be27845400 217 #endif
AnnaBridge 172:65be27845400 218
AnnaBridge 172:65be27845400 219 #define ADC_CHANNEL_SMPx_BITOFFSET_MASK (0x01F00000U)
AnnaBridge 172:65be27845400 220 #define ADC_CHANNEL_SMPx_BITOFFSET_POS (20U) /* Value equivalent to POSITION_VAL(ADC_CHANNEL_SMPx_BITOFFSET_MASK) */
AnnaBridge 172:65be27845400 221
AnnaBridge 172:65be27845400 222 /* Definition of channels ID number information to be inserted into */
AnnaBridge 172:65be27845400 223 /* channels literals definition. */
AnnaBridge 172:65be27845400 224 #define ADC_CHANNEL_0_NUMBER (0x00000000U)
AnnaBridge 172:65be27845400 225 #define ADC_CHANNEL_1_NUMBER ( ADC_CFGR_AWD1CH_0)
AnnaBridge 172:65be27845400 226 #define ADC_CHANNEL_2_NUMBER ( ADC_CFGR_AWD1CH_1 )
AnnaBridge 172:65be27845400 227 #define ADC_CHANNEL_3_NUMBER ( ADC_CFGR_AWD1CH_1 | ADC_CFGR_AWD1CH_0)
AnnaBridge 172:65be27845400 228 #define ADC_CHANNEL_4_NUMBER ( ADC_CFGR_AWD1CH_2 )
AnnaBridge 172:65be27845400 229 #define ADC_CHANNEL_5_NUMBER ( ADC_CFGR_AWD1CH_2 | ADC_CFGR_AWD1CH_0)
AnnaBridge 172:65be27845400 230 #define ADC_CHANNEL_6_NUMBER ( ADC_CFGR_AWD1CH_2 | ADC_CFGR_AWD1CH_1 )
AnnaBridge 172:65be27845400 231 #define ADC_CHANNEL_7_NUMBER ( ADC_CFGR_AWD1CH_2 | ADC_CFGR_AWD1CH_1 | ADC_CFGR_AWD1CH_0)
AnnaBridge 172:65be27845400 232 #define ADC_CHANNEL_8_NUMBER ( ADC_CFGR_AWD1CH_3 )
AnnaBridge 172:65be27845400 233 #define ADC_CHANNEL_9_NUMBER ( ADC_CFGR_AWD1CH_3 | ADC_CFGR_AWD1CH_0)
AnnaBridge 172:65be27845400 234 #define ADC_CHANNEL_10_NUMBER ( ADC_CFGR_AWD1CH_3 | ADC_CFGR_AWD1CH_1 )
AnnaBridge 172:65be27845400 235 #define ADC_CHANNEL_11_NUMBER ( ADC_CFGR_AWD1CH_3 | ADC_CFGR_AWD1CH_1 | ADC_CFGR_AWD1CH_0)
AnnaBridge 172:65be27845400 236 #define ADC_CHANNEL_12_NUMBER ( ADC_CFGR_AWD1CH_3 | ADC_CFGR_AWD1CH_2 )
AnnaBridge 172:65be27845400 237 #define ADC_CHANNEL_13_NUMBER ( ADC_CFGR_AWD1CH_3 | ADC_CFGR_AWD1CH_2 | ADC_CFGR_AWD1CH_0)
AnnaBridge 172:65be27845400 238 #define ADC_CHANNEL_14_NUMBER ( ADC_CFGR_AWD1CH_3 | ADC_CFGR_AWD1CH_2 | ADC_CFGR_AWD1CH_1 )
AnnaBridge 172:65be27845400 239 #define ADC_CHANNEL_15_NUMBER ( ADC_CFGR_AWD1CH_3 | ADC_CFGR_AWD1CH_2 | ADC_CFGR_AWD1CH_1 | ADC_CFGR_AWD1CH_0)
AnnaBridge 172:65be27845400 240 #define ADC_CHANNEL_16_NUMBER (ADC_CFGR_AWD1CH_4 )
AnnaBridge 172:65be27845400 241 #define ADC_CHANNEL_17_NUMBER (ADC_CFGR_AWD1CH_4 | ADC_CFGR_AWD1CH_0)
AnnaBridge 172:65be27845400 242 #define ADC_CHANNEL_18_NUMBER (ADC_CFGR_AWD1CH_4 | ADC_CFGR_AWD1CH_1 )
AnnaBridge 172:65be27845400 243
AnnaBridge 172:65be27845400 244 /* Definition of channels ID bitfield information to be inserted into */
AnnaBridge 172:65be27845400 245 /* channels literals definition. */
AnnaBridge 172:65be27845400 246 #define ADC_CHANNEL_0_BITFIELD (ADC_AWD2CR_AWD2CH_0)
AnnaBridge 172:65be27845400 247 #define ADC_CHANNEL_1_BITFIELD (ADC_AWD2CR_AWD2CH_1)
AnnaBridge 172:65be27845400 248 #define ADC_CHANNEL_2_BITFIELD (ADC_AWD2CR_AWD2CH_2)
AnnaBridge 172:65be27845400 249 #define ADC_CHANNEL_3_BITFIELD (ADC_AWD2CR_AWD2CH_3)
AnnaBridge 172:65be27845400 250 #define ADC_CHANNEL_4_BITFIELD (ADC_AWD2CR_AWD2CH_4)
AnnaBridge 172:65be27845400 251 #define ADC_CHANNEL_5_BITFIELD (ADC_AWD2CR_AWD2CH_5)
AnnaBridge 172:65be27845400 252 #define ADC_CHANNEL_6_BITFIELD (ADC_AWD2CR_AWD2CH_6)
AnnaBridge 172:65be27845400 253 #define ADC_CHANNEL_7_BITFIELD (ADC_AWD2CR_AWD2CH_7)
AnnaBridge 172:65be27845400 254 #define ADC_CHANNEL_8_BITFIELD (ADC_AWD2CR_AWD2CH_8)
AnnaBridge 172:65be27845400 255 #define ADC_CHANNEL_9_BITFIELD (ADC_AWD2CR_AWD2CH_9)
AnnaBridge 172:65be27845400 256 #define ADC_CHANNEL_10_BITFIELD (ADC_AWD2CR_AWD2CH_10)
AnnaBridge 172:65be27845400 257 #define ADC_CHANNEL_11_BITFIELD (ADC_AWD2CR_AWD2CH_11)
AnnaBridge 172:65be27845400 258 #define ADC_CHANNEL_12_BITFIELD (ADC_AWD2CR_AWD2CH_12)
AnnaBridge 172:65be27845400 259 #define ADC_CHANNEL_13_BITFIELD (ADC_AWD2CR_AWD2CH_13)
AnnaBridge 172:65be27845400 260 #define ADC_CHANNEL_14_BITFIELD (ADC_AWD2CR_AWD2CH_14)
AnnaBridge 172:65be27845400 261 #define ADC_CHANNEL_15_BITFIELD (ADC_AWD2CR_AWD2CH_15)
AnnaBridge 172:65be27845400 262 #define ADC_CHANNEL_16_BITFIELD (ADC_AWD2CR_AWD2CH_16)
AnnaBridge 172:65be27845400 263 #define ADC_CHANNEL_17_BITFIELD (ADC_AWD2CR_AWD2CH_17)
AnnaBridge 172:65be27845400 264 #define ADC_CHANNEL_18_BITFIELD (ADC_AWD2CR_AWD2CH_18)
AnnaBridge 172:65be27845400 265
AnnaBridge 172:65be27845400 266 /* Definition of channels sampling time information to be inserted into */
AnnaBridge 172:65be27845400 267 /* channels literals definition. */
AnnaBridge 172:65be27845400 268 #define ADC_CHANNEL_0_SMP (ADC_SMPR1_REGOFFSET | (( 0U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP0) */
AnnaBridge 172:65be27845400 269 #define ADC_CHANNEL_1_SMP (ADC_SMPR1_REGOFFSET | (( 3U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP1) */
AnnaBridge 172:65be27845400 270 #define ADC_CHANNEL_2_SMP (ADC_SMPR1_REGOFFSET | (( 6U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP2) */
AnnaBridge 172:65be27845400 271 #define ADC_CHANNEL_3_SMP (ADC_SMPR1_REGOFFSET | (( 9U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP3) */
AnnaBridge 172:65be27845400 272 #define ADC_CHANNEL_4_SMP (ADC_SMPR1_REGOFFSET | ((12U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP4) */
AnnaBridge 172:65be27845400 273 #define ADC_CHANNEL_5_SMP (ADC_SMPR1_REGOFFSET | ((15U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP5) */
AnnaBridge 172:65be27845400 274 #define ADC_CHANNEL_6_SMP (ADC_SMPR1_REGOFFSET | ((18U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP6) */
AnnaBridge 172:65be27845400 275 #define ADC_CHANNEL_7_SMP (ADC_SMPR1_REGOFFSET | ((21U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP7) */
AnnaBridge 172:65be27845400 276 #define ADC_CHANNEL_8_SMP (ADC_SMPR1_REGOFFSET | ((24U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP8) */
AnnaBridge 172:65be27845400 277 #define ADC_CHANNEL_9_SMP (ADC_SMPR1_REGOFFSET | ((27U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP9) */
AnnaBridge 172:65be27845400 278 #define ADC_CHANNEL_10_SMP (ADC_SMPR2_REGOFFSET | (( 0U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP10) */
AnnaBridge 172:65be27845400 279 #define ADC_CHANNEL_11_SMP (ADC_SMPR2_REGOFFSET | (( 3U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP11) */
AnnaBridge 172:65be27845400 280 #define ADC_CHANNEL_12_SMP (ADC_SMPR2_REGOFFSET | (( 6U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP12) */
AnnaBridge 172:65be27845400 281 #define ADC_CHANNEL_13_SMP (ADC_SMPR2_REGOFFSET | (( 9U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP13) */
AnnaBridge 172:65be27845400 282 #define ADC_CHANNEL_14_SMP (ADC_SMPR2_REGOFFSET | ((12U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP14) */
AnnaBridge 172:65be27845400 283 #define ADC_CHANNEL_15_SMP (ADC_SMPR2_REGOFFSET | ((15U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP15) */
AnnaBridge 172:65be27845400 284 #define ADC_CHANNEL_16_SMP (ADC_SMPR2_REGOFFSET | ((18U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP16) */
AnnaBridge 172:65be27845400 285 #define ADC_CHANNEL_17_SMP (ADC_SMPR2_REGOFFSET | ((21U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP17) */
AnnaBridge 172:65be27845400 286 #define ADC_CHANNEL_18_SMP (ADC_SMPR2_REGOFFSET | ((24U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP18) */
AnnaBridge 172:65be27845400 287
AnnaBridge 172:65be27845400 288
AnnaBridge 172:65be27845400 289 /* Internal mask for ADC mode single or differential ended: */
AnnaBridge 172:65be27845400 290 /* To select into literals LL_ADC_SINGLE_ENDED or LL_ADC_SINGLE_DIFFERENTIAL */
AnnaBridge 172:65be27845400 291 /* the relevant bits for: */
AnnaBridge 172:65be27845400 292 /* (concatenation of multiple bits used in different registers) */
AnnaBridge 172:65be27845400 293 /* - ADC calibration: calibration start, calibration factor get or set */
AnnaBridge 172:65be27845400 294 /* - ADC channels: set each ADC channel ending mode */
AnnaBridge 172:65be27845400 295 #define ADC_SINGLEDIFF_CALIB_START_MASK (ADC_CR_ADCALDIF)
AnnaBridge 172:65be27845400 296 #define ADC_SINGLEDIFF_CALIB_FACTOR_MASK (ADC_CALFACT_CALFACT_D | ADC_CALFACT_CALFACT_S)
AnnaBridge 172:65be27845400 297 #define ADC_SINGLEDIFF_CHANNEL_MASK (ADC_CHANNEL_ID_BITFIELD_MASK) /* Equivalent to ADC_DIFSEL_DIFSEL */
AnnaBridge 172:65be27845400 298 #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. */
AnnaBridge 172:65be27845400 299 #if defined(CORE_CM0PLUS)
AnnaBridge 172:65be27845400 300 #define ADC_SINGLEDIFF_CALIB_F_BIT_D_MASK (0x00010000U) /* Selection of 1 bit to discriminate differential mode: mask of bit */
AnnaBridge 172:65be27845400 301 #define ADC_SINGLEDIFF_CALIB_F_BIT_D_POS (16U) /* Selection of 1 bit to discriminate differential mode: position of bit */
AnnaBridge 172:65be27845400 302 #define ADC_SINGLEDIFF_CALIB_F_BIT_D_SHIFT4 (ADC_SINGLEDIFF_CALIB_F_BIT_D_POS - 4U) /* Shift of bit ADC_SINGLEDIFF_CALIB_F_BIT_D to position to perform a shift of 4 ranks */
AnnaBridge 172:65be27845400 303 #endif
AnnaBridge 172:65be27845400 304
AnnaBridge 172:65be27845400 305 /* Internal mask for ADC analog watchdog: */
AnnaBridge 172:65be27845400 306 /* To select into literals LL_ADC_AWD_CHANNELx_xxx the relevant bits for: */
AnnaBridge 172:65be27845400 307 /* (concatenation of multiple bits used in different analog watchdogs, */
AnnaBridge 172:65be27845400 308 /* (feature of several watchdogs not available on all STM32 families)). */
AnnaBridge 172:65be27845400 309 /* - analog watchdog 1: monitored channel defined by number, */
AnnaBridge 172:65be27845400 310 /* selection of ADC group (ADC groups regular and-or injected). */
AnnaBridge 172:65be27845400 311 /* - analog watchdog 2 and 3: monitored channel defined by bitfield, no */
AnnaBridge 172:65be27845400 312 /* selection on groups. */
AnnaBridge 172:65be27845400 313
AnnaBridge 172:65be27845400 314 /* Internal register offset for ADC analog watchdog channel configuration */
AnnaBridge 172:65be27845400 315 #define ADC_AWD_CR1_REGOFFSET (0x00000000U)
AnnaBridge 172:65be27845400 316 #define ADC_AWD_CR2_REGOFFSET (0x00100000U)
AnnaBridge 172:65be27845400 317 #define ADC_AWD_CR3_REGOFFSET (0x00200000U)
AnnaBridge 172:65be27845400 318
AnnaBridge 172:65be27845400 319 /* Register offset gap between AWD1 and AWD2-AWD3 configuration registers */
AnnaBridge 172:65be27845400 320 /* (Set separately as ADC_AWD_CRX_REGOFFSET to spare 32 bits space */
AnnaBridge 172:65be27845400 321 #define ADC_AWD_CR12_REGOFFSETGAP_MASK (ADC_AWD2CR_AWD2CH_0)
AnnaBridge 172:65be27845400 322 #define ADC_AWD_CR12_REGOFFSETGAP_VAL (0x00000024U)
AnnaBridge 172:65be27845400 323
AnnaBridge 172:65be27845400 324 #define ADC_AWD_CRX_REGOFFSET_MASK (ADC_AWD_CR1_REGOFFSET | ADC_AWD_CR2_REGOFFSET | ADC_AWD_CR3_REGOFFSET)
AnnaBridge 172:65be27845400 325
AnnaBridge 172:65be27845400 326 #define ADC_AWD_CR1_CHANNEL_MASK (ADC_CFGR_AWD1CH | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL)
AnnaBridge 172:65be27845400 327 #define ADC_AWD_CR23_CHANNEL_MASK (ADC_AWD2CR_AWD2CH)
AnnaBridge 172:65be27845400 328 #define ADC_AWD_CR_ALL_CHANNEL_MASK (ADC_AWD_CR1_CHANNEL_MASK | ADC_AWD_CR23_CHANNEL_MASK)
AnnaBridge 172:65be27845400 329
AnnaBridge 172:65be27845400 330 #define ADC_AWD_CRX_REGOFFSET_POS (20U) /* Position of bits ADC_AWD_CRx_REGOFFSET in ADC_AWD_CRX_REGOFFSET_MASK */
AnnaBridge 172:65be27845400 331
AnnaBridge 172:65be27845400 332 /* Internal register offset for ADC analog watchdog threshold configuration */
AnnaBridge 172:65be27845400 333 #define ADC_AWD_TR1_REGOFFSET (ADC_AWD_CR1_REGOFFSET)
AnnaBridge 172:65be27845400 334 #define ADC_AWD_TR2_REGOFFSET (ADC_AWD_CR2_REGOFFSET)
AnnaBridge 172:65be27845400 335 #define ADC_AWD_TR3_REGOFFSET (ADC_AWD_CR3_REGOFFSET)
AnnaBridge 172:65be27845400 336 #define ADC_AWD_TRX_REGOFFSET_MASK (ADC_AWD_TR1_REGOFFSET | ADC_AWD_TR2_REGOFFSET | ADC_AWD_TR3_REGOFFSET)
AnnaBridge 172:65be27845400 337 #if defined(CORE_CM0PLUS)
AnnaBridge 172:65be27845400 338 #define ADC_AWD_TRX_REGOFFSET_POS (ADC_AWD_CRX_REGOFFSET_POS) /* Position of bits ADC_SQRx_REGOFFSET in ADC_AWD_TRX_REGOFFSET_MASK */
AnnaBridge 172:65be27845400 339 #define ADC_AWD_TRX_BIT_HIGH_MASK (0x00010000U) /* Selection of 1 bit to discriminate threshold high: mask of bit */
AnnaBridge 172:65be27845400 340 #define ADC_AWD_TRX_BIT_HIGH_POS (16U) /* Selection of 1 bit to discriminate threshold high: position of bit */
AnnaBridge 172:65be27845400 341 #define ADC_AWD_TRX_BIT_HIGH_SHIFT4 (ADC_AWD_TRX_BIT_HIGH_POS - 4U) /* Shift of bit ADC_AWD_TRX_BIT_HIGH to position to perform a shift of 4 ranks */
AnnaBridge 172:65be27845400 342 #endif
AnnaBridge 172:65be27845400 343
AnnaBridge 172:65be27845400 344 /* Internal mask for ADC offset: */
AnnaBridge 172:65be27845400 345 /* Internal register offset for ADC offset number configuration */
AnnaBridge 172:65be27845400 346 #define ADC_OFR1_REGOFFSET (0x00000000U)
AnnaBridge 172:65be27845400 347 #define ADC_OFR2_REGOFFSET (0x00000001U)
AnnaBridge 172:65be27845400 348 #define ADC_OFR3_REGOFFSET (0x00000002U)
AnnaBridge 172:65be27845400 349 #define ADC_OFR4_REGOFFSET (0x00000003U)
AnnaBridge 172:65be27845400 350 #define ADC_OFRx_REGOFFSET_MASK (ADC_OFR1_REGOFFSET | ADC_OFR2_REGOFFSET | ADC_OFR3_REGOFFSET | ADC_OFR4_REGOFFSET)
AnnaBridge 172:65be27845400 351
AnnaBridge 172:65be27845400 352
AnnaBridge 172:65be27845400 353 /* ADC registers bits positions */
AnnaBridge 172:65be27845400 354 #define ADC_CFGR_RES_BITOFFSET_POS ( 3U) /* Value equivalent to POSITION_VAL(ADC_CFGR_RES) */
AnnaBridge 172:65be27845400 355 #define ADC_CFGR_AWD1SGL_BITOFFSET_POS (22U) /* Value equivalent to POSITION_VAL(ADC_CFGR_AWD1SGL) */
AnnaBridge 172:65be27845400 356 #define ADC_CFGR_AWD1EN_BITOFFSET_POS (23U) /* Value equivalent to POSITION_VAL(ADC_CFGR_AWD1EN) */
AnnaBridge 172:65be27845400 357 #define ADC_CFGR_JAWD1EN_BITOFFSET_POS (24U) /* Value equivalent to POSITION_VAL(ADC_CFGR_JAWD1EN) */
AnnaBridge 172:65be27845400 358 #define ADC_TR1_HT1_BITOFFSET_POS (16U) /* Value equivalent to POSITION_VAL(ADC_TR1_HT1) */
AnnaBridge 172:65be27845400 359
AnnaBridge 172:65be27845400 360
AnnaBridge 172:65be27845400 361 /* ADC registers bits groups */
AnnaBridge 172:65be27845400 362 #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. */
AnnaBridge 172:65be27845400 363
AnnaBridge 172:65be27845400 364
AnnaBridge 172:65be27845400 365 /* ADC internal channels related definitions */
AnnaBridge 172:65be27845400 366 /* Internal voltage reference VrefInt */
AnnaBridge 172:65be27845400 367 #define VREFINT_CAL_ADDR ((uint16_t*) (0x1FFF75AAU)) /* Internal voltage reference, address of parameter VREFINT_CAL: VrefInt ADC raw data acquired at temperature 30 DegC (tolerance: +-5 DegC), Vref+ = 3.0 V (tolerance: +-10 mV). */
AnnaBridge 172:65be27845400 368 #define VREFINT_CAL_VREF ( 3000U) /* Analog voltage reference (Vref+) value with which temperature sensor has been calibrated in production (tolerance: +-10 mV) (unit: mV). */
AnnaBridge 172:65be27845400 369 /* Temperature sensor */
AnnaBridge 172:65be27845400 370 #define TEMPSENSOR_CAL1_ADDR ((uint16_t*) (0x1FFF75A8U)) /* Internal temperature sensor, address of parameter TS_CAL1: On STM32L4, temperature sensor ADC raw data acquired at temperature 30 DegC (tolerance: +-5 DegC), Vref+ = 3.0 V (tolerance: +-10 mV). */
AnnaBridge 172:65be27845400 371 #define TEMPSENSOR_CAL2_ADDR ((uint16_t*) (0x1FFF75CAU)) /* Internal temperature sensor, address of parameter TS_CAL2: On STM32L4, temperature sensor ADC raw data acquired at temperature 110 DegC (tolerance: +-5 DegC), Vref+ = 3.0 V (tolerance: +-10 mV). */
AnnaBridge 172:65be27845400 372 #define TEMPSENSOR_CAL1_TEMP (( int32_t) 30) /* Internal temperature sensor, temperature at which temperature sensor has been calibrated in production for data into TEMPSENSOR_CAL1_ADDR (tolerance: +-5 DegC) (unit: DegC). */
AnnaBridge 172:65be27845400 373 #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). */
AnnaBridge 172:65be27845400 374 #define TEMPSENSOR_CAL_VREFANALOG ( 3000U) /* Analog voltage reference (Vref+) voltage with which temperature sensor has been calibrated in production (+-10 mV) (unit: mV). */
AnnaBridge 172:65be27845400 375
AnnaBridge 172:65be27845400 376
AnnaBridge 172:65be27845400 377 /**
AnnaBridge 172:65be27845400 378 * @}
AnnaBridge 172:65be27845400 379 */
AnnaBridge 172:65be27845400 380
AnnaBridge 172:65be27845400 381
AnnaBridge 172:65be27845400 382 /* Private macros ------------------------------------------------------------*/
AnnaBridge 172:65be27845400 383 /** @defgroup ADC_LL_Private_Macros ADC Private Macros
AnnaBridge 172:65be27845400 384 * @{
AnnaBridge 172:65be27845400 385 */
AnnaBridge 172:65be27845400 386
AnnaBridge 172:65be27845400 387 /**
AnnaBridge 172:65be27845400 388 * @brief Driver macro reserved for internal use: isolate bits with the
AnnaBridge 172:65be27845400 389 * selected mask and shift them to the register LSB
AnnaBridge 172:65be27845400 390 * (shift mask on register position bit 0).
AnnaBridge 172:65be27845400 391 * @param __BITS__ Bits in register 32 bits
AnnaBridge 172:65be27845400 392 * @param __MASK__ Mask in register 32 bits
AnnaBridge 172:65be27845400 393 * @retval Bits in register 32 bits
AnnaBridge 172:65be27845400 394 */
AnnaBridge 172:65be27845400 395 #define __ADC_MASK_SHIFT(__BITS__, __MASK__) \
AnnaBridge 172:65be27845400 396 (((__BITS__) & (__MASK__)) >> POSITION_VAL((__MASK__)))
AnnaBridge 172:65be27845400 397
AnnaBridge 172:65be27845400 398 /**
AnnaBridge 172:65be27845400 399 * @brief Driver macro reserved for internal use: set a pointer to
AnnaBridge 172:65be27845400 400 * a register from a register basis from which an offset
AnnaBridge 172:65be27845400 401 * is applied.
AnnaBridge 172:65be27845400 402 * @param __REG__ Register basis from which the offset is applied.
AnnaBridge 172:65be27845400 403 * @param __REG_OFFFSET__ Offset to be applied (unit: number of registers).
AnnaBridge 172:65be27845400 404 * @retval Pointer to register address
AnnaBridge 172:65be27845400 405 */
AnnaBridge 172:65be27845400 406 #define __ADC_PTR_REG_OFFSET(__REG__, __REG_OFFFSET__) \
AnnaBridge 172:65be27845400 407 ((uint32_t *)((uint32_t) ((uint32_t)(&(__REG__)) + ((__REG_OFFFSET__) << 2U))))
AnnaBridge 172:65be27845400 408
AnnaBridge 172:65be27845400 409 /**
AnnaBridge 172:65be27845400 410 * @}
AnnaBridge 172:65be27845400 411 */
AnnaBridge 172:65be27845400 412
AnnaBridge 172:65be27845400 413
AnnaBridge 172:65be27845400 414 /* Exported types ------------------------------------------------------------*/
AnnaBridge 172:65be27845400 415 #if defined(USE_FULL_LL_DRIVER)
AnnaBridge 172:65be27845400 416 /** @defgroup ADC_LL_ES_INIT ADC Exported Init structure
AnnaBridge 172:65be27845400 417 * @{
AnnaBridge 172:65be27845400 418 */
AnnaBridge 172:65be27845400 419
AnnaBridge 172:65be27845400 420 /**
AnnaBridge 172:65be27845400 421 * @brief Structure definition of some features of ADC common parameters
AnnaBridge 172:65be27845400 422 * and multimode
AnnaBridge 172:65be27845400 423 * (all ADC instances belonging to the same ADC common instance).
AnnaBridge 172:65be27845400 424 * @note The setting of these parameters by function @ref LL_ADC_CommonInit()
AnnaBridge 172:65be27845400 425 * is conditioned to ADC instances state (all ADC instances
AnnaBridge 172:65be27845400 426 * sharing the same ADC common instance):
AnnaBridge 172:65be27845400 427 * All ADC instances sharing the same ADC common instance must be
AnnaBridge 172:65be27845400 428 * disabled.
AnnaBridge 172:65be27845400 429 */
AnnaBridge 172:65be27845400 430 typedef struct
AnnaBridge 172:65be27845400 431 {
AnnaBridge 172:65be27845400 432 uint32_t CommonClock; /*!< Set parameter common to several ADC: Clock source and prescaler.
AnnaBridge 172:65be27845400 433 This parameter can be a value of @ref ADC_LL_EC_COMMON_CLOCK_SOURCE
AnnaBridge 172:65be27845400 434 @note On this STM32 serie, if ADC group injected is used, some
AnnaBridge 172:65be27845400 435 clock ratio constraints between ADC clock and AHB clock
AnnaBridge 172:65be27845400 436 must be respected. Refer to reference manual.
AnnaBridge 172:65be27845400 437
AnnaBridge 172:65be27845400 438 This feature can be modified afterwards using unitary function @ref LL_ADC_SetCommonClock(). */
AnnaBridge 172:65be27845400 439
AnnaBridge 172:65be27845400 440 #if defined(ADC_MULTIMODE_SUPPORT)
AnnaBridge 172:65be27845400 441 uint32_t Multimode; /*!< Set ADC multimode configuration to operate in independent mode or multimode (for devices with several ADC instances).
AnnaBridge 172:65be27845400 442 This parameter can be a value of @ref ADC_LL_EC_MULTI_MODE
AnnaBridge 172:65be27845400 443
AnnaBridge 172:65be27845400 444 This feature can be modified afterwards using unitary function @ref LL_ADC_SetMultimode(). */
AnnaBridge 172:65be27845400 445
AnnaBridge 172:65be27845400 446 uint32_t MultiDMATransfer; /*!< Set ADC multimode conversion data transfer: no transfer or transfer by DMA.
AnnaBridge 172:65be27845400 447 This parameter can be a value of @ref ADC_LL_EC_MULTI_DMA_TRANSFER
AnnaBridge 172:65be27845400 448
AnnaBridge 172:65be27845400 449 This feature can be modified afterwards using unitary function @ref LL_ADC_SetMultiDMATransfer(). */
AnnaBridge 172:65be27845400 450
AnnaBridge 172:65be27845400 451 uint32_t MultiTwoSamplingDelay; /*!< Set ADC multimode delay between 2 sampling phases.
AnnaBridge 172:65be27845400 452 This parameter can be a value of @ref ADC_LL_EC_MULTI_TWOSMP_DELAY
AnnaBridge 172:65be27845400 453
AnnaBridge 172:65be27845400 454 This feature can be modified afterwards using unitary function @ref LL_ADC_SetMultiTwoSamplingDelay(). */
AnnaBridge 172:65be27845400 455 #endif /* ADC_MULTIMODE_SUPPORT */
AnnaBridge 172:65be27845400 456
AnnaBridge 172:65be27845400 457 } LL_ADC_CommonInitTypeDef;
AnnaBridge 172:65be27845400 458
AnnaBridge 172:65be27845400 459 /**
AnnaBridge 172:65be27845400 460 * @brief Structure definition of some features of ADC instance.
AnnaBridge 172:65be27845400 461 * @note These parameters have an impact on ADC scope: ADC instance.
AnnaBridge 172:65be27845400 462 * Affects both group regular and group injected (availability
AnnaBridge 172:65be27845400 463 * of ADC group injected depends on STM32 families).
AnnaBridge 172:65be27845400 464 * Refer to corresponding unitary functions into
AnnaBridge 172:65be27845400 465 * @ref ADC_LL_EF_Configuration_ADC_Instance .
AnnaBridge 172:65be27845400 466 * @note The setting of these parameters by function @ref LL_ADC_Init()
AnnaBridge 172:65be27845400 467 * is conditioned to ADC state:
AnnaBridge 172:65be27845400 468 * ADC instance must be disabled.
AnnaBridge 172:65be27845400 469 * This condition is applied to all ADC features, for efficiency
AnnaBridge 172:65be27845400 470 * and compatibility over all STM32 families. However, the different
AnnaBridge 172:65be27845400 471 * features can be set under different ADC state conditions
AnnaBridge 172:65be27845400 472 * (setting possible with ADC enabled without conversion on going,
AnnaBridge 172:65be27845400 473 * ADC enabled with conversion on going, ...)
AnnaBridge 172:65be27845400 474 * Each feature can be updated afterwards with a unitary function
AnnaBridge 172:65be27845400 475 * and potentially with ADC in a different state than disabled,
AnnaBridge 172:65be27845400 476 * refer to description of each function for setting
AnnaBridge 172:65be27845400 477 * conditioned to ADC state.
AnnaBridge 172:65be27845400 478 */
AnnaBridge 172:65be27845400 479 typedef struct
AnnaBridge 172:65be27845400 480 {
AnnaBridge 172:65be27845400 481 uint32_t Resolution; /*!< Set ADC resolution.
AnnaBridge 172:65be27845400 482 This parameter can be a value of @ref ADC_LL_EC_RESOLUTION
AnnaBridge 172:65be27845400 483
AnnaBridge 172:65be27845400 484 This feature can be modified afterwards using unitary function @ref LL_ADC_SetResolution(). */
AnnaBridge 172:65be27845400 485
AnnaBridge 172:65be27845400 486 uint32_t DataAlignment; /*!< Set ADC conversion data alignment.
AnnaBridge 172:65be27845400 487 This parameter can be a value of @ref ADC_LL_EC_DATA_ALIGN
AnnaBridge 172:65be27845400 488
AnnaBridge 172:65be27845400 489 This feature can be modified afterwards using unitary function @ref LL_ADC_SetDataAlignment(). */
AnnaBridge 172:65be27845400 490
AnnaBridge 172:65be27845400 491 uint32_t LowPowerMode; /*!< Set ADC low power mode.
AnnaBridge 172:65be27845400 492 This parameter can be a value of @ref ADC_LL_EC_LP_MODE
AnnaBridge 172:65be27845400 493
AnnaBridge 172:65be27845400 494 This feature can be modified afterwards using unitary function @ref LL_ADC_SetLowPowerMode(). */
AnnaBridge 172:65be27845400 495
AnnaBridge 172:65be27845400 496 } LL_ADC_InitTypeDef;
AnnaBridge 172:65be27845400 497
AnnaBridge 172:65be27845400 498 /**
AnnaBridge 172:65be27845400 499 * @brief Structure definition of some features of ADC group regular.
AnnaBridge 172:65be27845400 500 * @note These parameters have an impact on ADC scope: ADC group regular.
AnnaBridge 172:65be27845400 501 * Refer to corresponding unitary functions into
AnnaBridge 172:65be27845400 502 * @ref ADC_LL_EF_Configuration_ADC_Group_Regular
AnnaBridge 172:65be27845400 503 * (functions with prefix "REG").
AnnaBridge 172:65be27845400 504 * @note The setting of these parameters by function @ref LL_ADC_REG_Init()
AnnaBridge 172:65be27845400 505 * is conditioned to ADC state:
AnnaBridge 172:65be27845400 506 * ADC instance must be disabled.
AnnaBridge 172:65be27845400 507 * This condition is applied to all ADC features, for efficiency
AnnaBridge 172:65be27845400 508 * and compatibility over all STM32 families. However, the different
AnnaBridge 172:65be27845400 509 * features can be set under different ADC state conditions
AnnaBridge 172:65be27845400 510 * (setting possible with ADC enabled without conversion on going,
AnnaBridge 172:65be27845400 511 * ADC enabled with conversion on going, ...)
AnnaBridge 172:65be27845400 512 * Each feature can be updated afterwards with a unitary function
AnnaBridge 172:65be27845400 513 * and potentially with ADC in a different state than disabled,
AnnaBridge 172:65be27845400 514 * refer to description of each function for setting
AnnaBridge 172:65be27845400 515 * conditioned to ADC state.
AnnaBridge 172:65be27845400 516 */
AnnaBridge 172:65be27845400 517 typedef struct
AnnaBridge 172:65be27845400 518 {
AnnaBridge 172:65be27845400 519 uint32_t TriggerSource; /*!< Set ADC group regular conversion trigger source: internal (SW start) or from external IP (timer event, external interrupt line).
AnnaBridge 172:65be27845400 520 This parameter can be a value of @ref ADC_LL_EC_REG_TRIGGER_SOURCE
AnnaBridge 172:65be27845400 521 @note On this STM32 serie, setting trigger source to external trigger also set trigger polarity to rising edge
AnnaBridge 172:65be27845400 522 (default setting for compatibility with some ADC on other STM32 families having this setting set by HW default value).
AnnaBridge 172:65be27845400 523 In case of need to modify trigger edge, use function @ref LL_ADC_REG_SetTriggerEdge().
AnnaBridge 172:65be27845400 524
AnnaBridge 172:65be27845400 525 This feature can be modified afterwards using unitary function @ref LL_ADC_REG_SetTriggerSource(). */
AnnaBridge 172:65be27845400 526
AnnaBridge 172:65be27845400 527 uint32_t SequencerLength; /*!< Set ADC group regular sequencer length.
AnnaBridge 172:65be27845400 528 This parameter can be a value of @ref ADC_LL_EC_REG_SEQ_SCAN_LENGTH
AnnaBridge 172:65be27845400 529
AnnaBridge 172:65be27845400 530 This feature can be modified afterwards using unitary function @ref LL_ADC_REG_SetSequencerLength(). */
AnnaBridge 172:65be27845400 531
AnnaBridge 172:65be27845400 532 uint32_t SequencerDiscont; /*!< Set ADC group regular sequencer discontinuous mode: sequence subdivided and scan conversions interrupted every selected number of ranks.
AnnaBridge 172:65be27845400 533 This parameter can be a value of @ref ADC_LL_EC_REG_SEQ_DISCONT_MODE
AnnaBridge 172:65be27845400 534 @note This parameter has an effect only if group regular sequencer is enabled
AnnaBridge 172:65be27845400 535 (scan length of 2 ranks or more).
AnnaBridge 172:65be27845400 536
AnnaBridge 172:65be27845400 537 This feature can be modified afterwards using unitary function @ref LL_ADC_REG_SetSequencerDiscont(). */
AnnaBridge 172:65be27845400 538
AnnaBridge 172:65be27845400 539 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).
AnnaBridge 172:65be27845400 540 This parameter can be a value of @ref ADC_LL_EC_REG_CONTINUOUS_MODE
AnnaBridge 172:65be27845400 541 Note: It is not possible to enable both ADC group regular continuous mode and discontinuous mode.
AnnaBridge 172:65be27845400 542
AnnaBridge 172:65be27845400 543 This feature can be modified afterwards using unitary function @ref LL_ADC_REG_SetContinuousMode(). */
AnnaBridge 172:65be27845400 544
AnnaBridge 172:65be27845400 545 uint32_t DMATransfer; /*!< Set ADC group regular conversion data transfer: no transfer or transfer by DMA, and DMA requests mode.
AnnaBridge 172:65be27845400 546 This parameter can be a value of @ref ADC_LL_EC_REG_DMA_TRANSFER
AnnaBridge 172:65be27845400 547
AnnaBridge 172:65be27845400 548 This feature can be modified afterwards using unitary function @ref LL_ADC_REG_SetDMATransfer(). */
AnnaBridge 172:65be27845400 549
AnnaBridge 172:65be27845400 550 uint32_t Overrun; /*!< Set ADC group regular behavior in case of overrun:
AnnaBridge 172:65be27845400 551 data preserved or overwritten.
AnnaBridge 172:65be27845400 552 This parameter can be a value of @ref ADC_LL_EC_REG_OVR_DATA_BEHAVIOR
AnnaBridge 172:65be27845400 553
AnnaBridge 172:65be27845400 554 This feature can be modified afterwards using unitary function @ref LL_ADC_REG_SetOverrun(). */
AnnaBridge 172:65be27845400 555
AnnaBridge 172:65be27845400 556 } LL_ADC_REG_InitTypeDef;
AnnaBridge 172:65be27845400 557
AnnaBridge 172:65be27845400 558 /**
AnnaBridge 172:65be27845400 559 * @brief Structure definition of some features of ADC group injected.
AnnaBridge 172:65be27845400 560 * @note These parameters have an impact on ADC scope: ADC group injected.
AnnaBridge 172:65be27845400 561 * Refer to corresponding unitary functions into
AnnaBridge 172:65be27845400 562 * @ref ADC_LL_EF_Configuration_ADC_Group_Regular
AnnaBridge 172:65be27845400 563 * (functions with prefix "INJ").
AnnaBridge 172:65be27845400 564 * @note The setting of these parameters by function @ref LL_ADC_INJ_Init()
AnnaBridge 172:65be27845400 565 * is conditioned to ADC state:
AnnaBridge 172:65be27845400 566 * ADC instance must be disabled.
AnnaBridge 172:65be27845400 567 * This condition is applied to all ADC features, for efficiency
AnnaBridge 172:65be27845400 568 * and compatibility over all STM32 families. However, the different
AnnaBridge 172:65be27845400 569 * features can be set under different ADC state conditions
AnnaBridge 172:65be27845400 570 * (setting possible with ADC enabled without conversion on going,
AnnaBridge 172:65be27845400 571 * ADC enabled with conversion on going, ...)
AnnaBridge 172:65be27845400 572 * Each feature can be updated afterwards with a unitary function
AnnaBridge 172:65be27845400 573 * and potentially with ADC in a different state than disabled,
AnnaBridge 172:65be27845400 574 * refer to description of each function for setting
AnnaBridge 172:65be27845400 575 * conditioned to ADC state.
AnnaBridge 172:65be27845400 576 */
AnnaBridge 172:65be27845400 577 typedef struct
AnnaBridge 172:65be27845400 578 {
AnnaBridge 172:65be27845400 579 uint32_t TriggerSource; /*!< Set ADC group injected conversion trigger source: internal (SW start) or from external IP (timer event, external interrupt line).
AnnaBridge 172:65be27845400 580 This parameter can be a value of @ref ADC_LL_EC_INJ_TRIGGER_SOURCE
AnnaBridge 172:65be27845400 581 @note On this STM32 serie, setting trigger source to external trigger also set trigger polarity to rising edge
AnnaBridge 172:65be27845400 582 (default setting for compatibility with some ADC on other STM32 families having this setting set by HW default value).
AnnaBridge 172:65be27845400 583 In case of need to modify trigger edge, use function @ref LL_ADC_INJ_SetTriggerEdge().
AnnaBridge 172:65be27845400 584
AnnaBridge 172:65be27845400 585 This feature can be modified afterwards using unitary function @ref LL_ADC_INJ_SetTriggerSource(). */
AnnaBridge 172:65be27845400 586
AnnaBridge 172:65be27845400 587 uint32_t SequencerLength; /*!< Set ADC group injected sequencer length.
AnnaBridge 172:65be27845400 588 This parameter can be a value of @ref ADC_LL_EC_INJ_SEQ_SCAN_LENGTH
AnnaBridge 172:65be27845400 589
AnnaBridge 172:65be27845400 590 This feature can be modified afterwards using unitary function @ref LL_ADC_INJ_SetSequencerLength(). */
AnnaBridge 172:65be27845400 591
AnnaBridge 172:65be27845400 592 uint32_t SequencerDiscont; /*!< Set ADC group injected sequencer discontinuous mode: sequence subdivided and scan conversions interrupted every selected number of ranks.
AnnaBridge 172:65be27845400 593 This parameter can be a value of @ref ADC_LL_EC_INJ_SEQ_DISCONT_MODE
AnnaBridge 172:65be27845400 594 @note This parameter has an effect only if group injected sequencer is enabled
AnnaBridge 172:65be27845400 595 (scan length of 2 ranks or more).
AnnaBridge 172:65be27845400 596
AnnaBridge 172:65be27845400 597 This feature can be modified afterwards using unitary function @ref LL_ADC_INJ_SetSequencerDiscont(). */
AnnaBridge 172:65be27845400 598
AnnaBridge 172:65be27845400 599 uint32_t TrigAuto; /*!< Set ADC group injected conversion trigger: independent or from ADC group regular.
AnnaBridge 172:65be27845400 600 This parameter can be a value of @ref ADC_LL_EC_INJ_TRIG_AUTO
AnnaBridge 172:65be27845400 601 Note: This parameter must be set to set to independent trigger if injected trigger source is set to an external trigger.
AnnaBridge 172:65be27845400 602
AnnaBridge 172:65be27845400 603 This feature can be modified afterwards using unitary function @ref LL_ADC_INJ_SetTrigAuto(). */
AnnaBridge 172:65be27845400 604
AnnaBridge 172:65be27845400 605 } LL_ADC_INJ_InitTypeDef;
AnnaBridge 172:65be27845400 606
AnnaBridge 172:65be27845400 607 /**
AnnaBridge 172:65be27845400 608 * @}
AnnaBridge 172:65be27845400 609 */
AnnaBridge 172:65be27845400 610 #endif /* USE_FULL_LL_DRIVER */
AnnaBridge 172:65be27845400 611
AnnaBridge 172:65be27845400 612 /* Exported constants --------------------------------------------------------*/
AnnaBridge 172:65be27845400 613 /** @defgroup ADC_LL_Exported_Constants ADC Exported Constants
AnnaBridge 172:65be27845400 614 * @{
AnnaBridge 172:65be27845400 615 */
AnnaBridge 172:65be27845400 616
AnnaBridge 172:65be27845400 617 /** @defgroup ADC_LL_EC_FLAG ADC flags
AnnaBridge 172:65be27845400 618 * @brief Flags defines which can be used with LL_ADC_ReadReg function
AnnaBridge 172:65be27845400 619 * @{
AnnaBridge 172:65be27845400 620 */
AnnaBridge 172:65be27845400 621 #define LL_ADC_FLAG_ADRDY ADC_ISR_ADRDY /*!< ADC flag ADC instance ready */
AnnaBridge 172:65be27845400 622 #define LL_ADC_FLAG_EOC ADC_ISR_EOC /*!< ADC flag ADC group regular end of unitary conversion */
AnnaBridge 172:65be27845400 623 #define LL_ADC_FLAG_EOS ADC_ISR_EOS /*!< ADC flag ADC group regular end of sequence conversions */
AnnaBridge 172:65be27845400 624 #define LL_ADC_FLAG_OVR ADC_ISR_OVR /*!< ADC flag ADC group regular overrun */
AnnaBridge 172:65be27845400 625 #define LL_ADC_FLAG_EOSMP ADC_ISR_EOSMP /*!< ADC flag ADC group regular end of sampling phase */
AnnaBridge 172:65be27845400 626 #define LL_ADC_FLAG_JEOC ADC_ISR_JEOC /*!< ADC flag ADC group injected end of unitary conversion */
AnnaBridge 172:65be27845400 627 #define LL_ADC_FLAG_JEOS ADC_ISR_JEOS /*!< ADC flag ADC group injected end of sequence conversions */
AnnaBridge 172:65be27845400 628 #define LL_ADC_FLAG_JQOVF ADC_ISR_JQOVF /*!< ADC flag ADC group injected contexts queue overflow */
AnnaBridge 172:65be27845400 629 #define LL_ADC_FLAG_AWD1 ADC_ISR_AWD1 /*!< ADC flag ADC analog watchdog 1 */
AnnaBridge 172:65be27845400 630 #define LL_ADC_FLAG_AWD2 ADC_ISR_AWD2 /*!< ADC flag ADC analog watchdog 2 */
AnnaBridge 172:65be27845400 631 #define LL_ADC_FLAG_AWD3 ADC_ISR_AWD3 /*!< ADC flag ADC analog watchdog 3 */
AnnaBridge 172:65be27845400 632 #if defined(ADC_MULTIMODE_SUPPORT)
AnnaBridge 172:65be27845400 633 #define LL_ADC_FLAG_ADRDY_MST ADC_CSR_ADRDY_MST /*!< ADC flag ADC multimode master instance ready */
AnnaBridge 172:65be27845400 634 #define LL_ADC_FLAG_ADRDY_SLV ADC_CSR_ADRDY_SLV /*!< ADC flag ADC multimode slave instance ready */
AnnaBridge 172:65be27845400 635 #define LL_ADC_FLAG_EOC_MST ADC_CSR_EOC_MST /*!< ADC flag ADC multimode master group regular end of unitary conversion */
AnnaBridge 172:65be27845400 636 #define LL_ADC_FLAG_EOC_SLV ADC_CSR_EOC_SLV /*!< ADC flag ADC multimode slave group regular end of unitary conversion */
AnnaBridge 172:65be27845400 637 #define LL_ADC_FLAG_EOS_MST ADC_CSR_EOS_MST /*!< ADC flag ADC multimode master group regular end of sequence conversions */
AnnaBridge 172:65be27845400 638 #define LL_ADC_FLAG_EOS_SLV ADC_CSR_EOS_SLV /*!< ADC flag ADC multimode slave group regular end of sequence conversions */
AnnaBridge 172:65be27845400 639 #define LL_ADC_FLAG_OVR_MST ADC_CSR_OVR_MST /*!< ADC flag ADC multimode master group regular overrun */
AnnaBridge 172:65be27845400 640 #define LL_ADC_FLAG_OVR_SLV ADC_CSR_OVR_SLV /*!< ADC flag ADC multimode slave group regular overrun */
AnnaBridge 172:65be27845400 641 #define LL_ADC_FLAG_EOSMP_MST ADC_CSR_EOSMP_MST /*!< ADC flag ADC multimode master group regular end of sampling phase */
AnnaBridge 172:65be27845400 642 #define LL_ADC_FLAG_EOSMP_SLV ADC_CSR_EOSMP_SLV /*!< ADC flag ADC multimode slave group regular end of sampling phase */
AnnaBridge 172:65be27845400 643 #define LL_ADC_FLAG_JEOC_MST ADC_CSR_JEOC_MST /*!< ADC flag ADC multimode master group injected end of unitary conversion */
AnnaBridge 172:65be27845400 644 #define LL_ADC_FLAG_JEOC_SLV ADC_CSR_JEOC_SLV /*!< ADC flag ADC multimode slave group injected end of unitary conversion */
AnnaBridge 172:65be27845400 645 #define LL_ADC_FLAG_JEOS_MST ADC_CSR_JEOS_MST /*!< ADC flag ADC multimode master group injected end of sequence conversions */
AnnaBridge 172:65be27845400 646 #define LL_ADC_FLAG_JEOS_SLV ADC_CSR_JEOS_SLV /*!< ADC flag ADC multimode slave group injected end of sequence conversions */
AnnaBridge 172:65be27845400 647 #define LL_ADC_FLAG_JQOVF_MST ADC_CSR_JQOVF_MST /*!< ADC flag ADC multimode master group injected contexts queue overflow */
AnnaBridge 172:65be27845400 648 #define LL_ADC_FLAG_JQOVF_SLV ADC_CSR_JQOVF_SLV /*!< ADC flag ADC multimode slave group injected contexts queue overflow */
AnnaBridge 172:65be27845400 649 #define LL_ADC_FLAG_AWD1_MST ADC_CSR_AWD1_MST /*!< ADC flag ADC multimode master analog watchdog 1 of the ADC master */
AnnaBridge 172:65be27845400 650 #define LL_ADC_FLAG_AWD1_SLV ADC_CSR_AWD1_SLV /*!< ADC flag ADC multimode slave analog watchdog 1 of the ADC slave */
AnnaBridge 172:65be27845400 651 #define LL_ADC_FLAG_AWD2_MST ADC_CSR_AWD2_MST /*!< ADC flag ADC multimode master analog watchdog 2 of the ADC master */
AnnaBridge 172:65be27845400 652 #define LL_ADC_FLAG_AWD2_SLV ADC_CSR_AWD2_SLV /*!< ADC flag ADC multimode slave analog watchdog 2 of the ADC slave */
AnnaBridge 172:65be27845400 653 #define LL_ADC_FLAG_AWD3_MST ADC_CSR_AWD3_MST /*!< ADC flag ADC multimode master analog watchdog 3 of the ADC master */
AnnaBridge 172:65be27845400 654 #define LL_ADC_FLAG_AWD3_SLV ADC_CSR_AWD3_SLV /*!< ADC flag ADC multimode slave analog watchdog 3 of the ADC slave */
AnnaBridge 172:65be27845400 655 #endif
AnnaBridge 172:65be27845400 656 /**
AnnaBridge 172:65be27845400 657 * @}
AnnaBridge 172:65be27845400 658 */
AnnaBridge 172:65be27845400 659
AnnaBridge 172:65be27845400 660 /** @defgroup ADC_LL_EC_IT ADC interruptions for configuration (interruption enable or disable)
AnnaBridge 172:65be27845400 661 * @brief IT defines which can be used with LL_ADC_ReadReg and LL_ADC_WriteReg functions
AnnaBridge 172:65be27845400 662 * @{
AnnaBridge 172:65be27845400 663 */
AnnaBridge 172:65be27845400 664 #define LL_ADC_IT_ADRDY ADC_IER_ADRDYIE /*!< ADC interruption ADC instance ready */
AnnaBridge 172:65be27845400 665 #define LL_ADC_IT_EOC ADC_IER_EOCIE /*!< ADC interruption ADC group regular end of unitary conversion */
AnnaBridge 172:65be27845400 666 #define LL_ADC_IT_EOS ADC_IER_EOSIE /*!< ADC interruption ADC group regular end of sequence conversions */
AnnaBridge 172:65be27845400 667 #define LL_ADC_IT_OVR ADC_IER_OVRIE /*!< ADC interruption ADC group regular overrun */
AnnaBridge 172:65be27845400 668 #define LL_ADC_IT_EOSMP ADC_IER_EOSMPIE /*!< ADC interruption ADC group regular end of sampling phase */
AnnaBridge 172:65be27845400 669 #define LL_ADC_IT_JEOC ADC_IER_JEOCIE /*!< ADC interruption ADC group injected end of unitary conversion */
AnnaBridge 172:65be27845400 670 #define LL_ADC_IT_JEOS ADC_IER_JEOSIE /*!< ADC interruption ADC group injected end of sequence conversions */
AnnaBridge 172:65be27845400 671 #define LL_ADC_IT_JQOVF ADC_IER_JQOVFIE /*!< ADC interruption ADC group injected contexts queue overflow */
AnnaBridge 172:65be27845400 672 #define LL_ADC_IT_AWD1 ADC_IER_AWD1IE /*!< ADC interruption ADC analog watchdog 1 */
AnnaBridge 172:65be27845400 673 #define LL_ADC_IT_AWD2 ADC_IER_AWD2IE /*!< ADC interruption ADC analog watchdog 2 */
AnnaBridge 172:65be27845400 674 #define LL_ADC_IT_AWD3 ADC_IER_AWD3IE /*!< ADC interruption ADC analog watchdog 3 */
AnnaBridge 172:65be27845400 675 /**
AnnaBridge 172:65be27845400 676 * @}
AnnaBridge 172:65be27845400 677 */
AnnaBridge 172:65be27845400 678
AnnaBridge 172:65be27845400 679 /** @defgroup ADC_LL_EC_REGISTERS ADC registers compliant with specific purpose
AnnaBridge 172:65be27845400 680 * @{
AnnaBridge 172:65be27845400 681 */
AnnaBridge 172:65be27845400 682 /* List of ADC registers intended to be used (most commonly) with */
AnnaBridge 172:65be27845400 683 /* DMA transfer. */
AnnaBridge 172:65be27845400 684 /* Refer to function @ref LL_ADC_DMA_GetRegAddr(). */
AnnaBridge 172:65be27845400 685 #define LL_ADC_DMA_REG_REGULAR_DATA (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() */
AnnaBridge 172:65be27845400 686 #if defined(ADC_MULTIMODE_SUPPORT)
AnnaBridge 172:65be27845400 687 #define LL_ADC_DMA_REG_REGULAR_DATA_MULTI (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() */
AnnaBridge 172:65be27845400 688 #endif
AnnaBridge 172:65be27845400 689 /**
AnnaBridge 172:65be27845400 690 * @}
AnnaBridge 172:65be27845400 691 */
AnnaBridge 172:65be27845400 692
AnnaBridge 172:65be27845400 693 /** @defgroup ADC_LL_EC_COMMON_CLOCK_SOURCE ADC common - Clock source
AnnaBridge 172:65be27845400 694 * @{
AnnaBridge 172:65be27845400 695 */
AnnaBridge 172:65be27845400 696 #define LL_ADC_CLOCK_SYNC_PCLK_DIV1 (ADC_CCR_CKMODE_0) /*!< ADC synchronous clock derived from AHB clock without prescaler */
AnnaBridge 172:65be27845400 697 #define LL_ADC_CLOCK_SYNC_PCLK_DIV2 (ADC_CCR_CKMODE_1 ) /*!< ADC synchronous clock derived from AHB clock with prescaler division by 2 */
AnnaBridge 172:65be27845400 698 #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 */
AnnaBridge 172:65be27845400 699 #define LL_ADC_CLOCK_ASYNC_DIV1 (0x00000000U) /*!< ADC asynchronous clock without prescaler */
AnnaBridge 172:65be27845400 700 #define LL_ADC_CLOCK_ASYNC_DIV2 (ADC_CCR_PRESC_0) /*!< ADC asynchronous clock with prescaler division by 2 */
AnnaBridge 172:65be27845400 701 #define LL_ADC_CLOCK_ASYNC_DIV4 (ADC_CCR_PRESC_1 ) /*!< ADC asynchronous clock with prescaler division by 4 */
AnnaBridge 172:65be27845400 702 #define LL_ADC_CLOCK_ASYNC_DIV6 (ADC_CCR_PRESC_1 | ADC_CCR_PRESC_0) /*!< ADC asynchronous clock with prescaler division by 6 */
AnnaBridge 172:65be27845400 703 #define LL_ADC_CLOCK_ASYNC_DIV8 (ADC_CCR_PRESC_2 ) /*!< ADC asynchronous clock with prescaler division by 8 */
AnnaBridge 172:65be27845400 704 #define LL_ADC_CLOCK_ASYNC_DIV10 (ADC_CCR_PRESC_2 | ADC_CCR_PRESC_0) /*!< ADC asynchronous clock with prescaler division by 10 */
AnnaBridge 172:65be27845400 705 #define LL_ADC_CLOCK_ASYNC_DIV12 (ADC_CCR_PRESC_2 | ADC_CCR_PRESC_1 ) /*!< ADC asynchronous clock with prescaler division by 12 */
AnnaBridge 172:65be27845400 706 #define LL_ADC_CLOCK_ASYNC_DIV16 (ADC_CCR_PRESC_2 | ADC_CCR_PRESC_1 | ADC_CCR_PRESC_0) /*!< ADC asynchronous clock with prescaler division by 16 */
AnnaBridge 172:65be27845400 707 #define LL_ADC_CLOCK_ASYNC_DIV32 (ADC_CCR_PRESC_3) /*!< ADC asynchronous clock with prescaler division by 32 */
AnnaBridge 172:65be27845400 708 #define LL_ADC_CLOCK_ASYNC_DIV64 (ADC_CCR_PRESC_3 | ADC_CCR_PRESC_0) /*!< ADC asynchronous clock with prescaler division by 64 */
AnnaBridge 172:65be27845400 709 #define LL_ADC_CLOCK_ASYNC_DIV128 (ADC_CCR_PRESC_3 | ADC_CCR_PRESC_1) /*!< ADC asynchronous clock with prescaler division by 128 */
AnnaBridge 172:65be27845400 710 #define LL_ADC_CLOCK_ASYNC_DIV256 (ADC_CCR_PRESC_3 | ADC_CCR_PRESC_1 | ADC_CCR_PRESC_0) /*!< ADC asynchronous clock with prescaler division by 256 */
AnnaBridge 172:65be27845400 711 /**
AnnaBridge 172:65be27845400 712 * @}
AnnaBridge 172:65be27845400 713 */
AnnaBridge 172:65be27845400 714
AnnaBridge 172:65be27845400 715 /** @defgroup ADC_LL_EC_COMMON_PATH_INTERNAL ADC common - Measurement path to internal channels
AnnaBridge 172:65be27845400 716 * @{
AnnaBridge 172:65be27845400 717 */
AnnaBridge 172:65be27845400 718 /* Note: Other measurement paths to internal channels may be available */
AnnaBridge 172:65be27845400 719 /* (connections to other peripherals). */
AnnaBridge 172:65be27845400 720 /* If they are not listed below, they do not require any specific */
AnnaBridge 172:65be27845400 721 /* path enable. In this case, Access to measurement path is done */
AnnaBridge 172:65be27845400 722 /* only by selecting the corresponding ADC internal channel. */
AnnaBridge 172:65be27845400 723 #define LL_ADC_PATH_INTERNAL_NONE (0x00000000U)/*!< ADC measurement pathes all disabled */
AnnaBridge 172:65be27845400 724 #define LL_ADC_PATH_INTERNAL_VREFINT (ADC_CCR_VREFEN) /*!< ADC measurement path to internal channel VrefInt */
AnnaBridge 172:65be27845400 725 #define LL_ADC_PATH_INTERNAL_TEMPSENSOR (ADC_CCR_TSEN) /*!< ADC measurement path to internal channel temperature sensor */
AnnaBridge 172:65be27845400 726 #define LL_ADC_PATH_INTERNAL_VBAT (ADC_CCR_VBATEN) /*!< ADC measurement path to internal channel Vbat */
AnnaBridge 172:65be27845400 727 /**
AnnaBridge 172:65be27845400 728 * @}
AnnaBridge 172:65be27845400 729 */
AnnaBridge 172:65be27845400 730
AnnaBridge 172:65be27845400 731 /** @defgroup ADC_LL_EC_RESOLUTION ADC instance - Resolution
AnnaBridge 172:65be27845400 732 * @{
AnnaBridge 172:65be27845400 733 */
AnnaBridge 172:65be27845400 734 #define LL_ADC_RESOLUTION_12B (0x00000000U) /*!< ADC resolution 12 bits */
AnnaBridge 172:65be27845400 735 #define LL_ADC_RESOLUTION_10B ( ADC_CFGR_RES_0) /*!< ADC resolution 10 bits */
AnnaBridge 172:65be27845400 736 #define LL_ADC_RESOLUTION_8B (ADC_CFGR_RES_1 ) /*!< ADC resolution 8 bits */
AnnaBridge 172:65be27845400 737 #define LL_ADC_RESOLUTION_6B (ADC_CFGR_RES_1 | ADC_CFGR_RES_0) /*!< ADC resolution 6 bits */
AnnaBridge 172:65be27845400 738 /**
AnnaBridge 172:65be27845400 739 * @}
AnnaBridge 172:65be27845400 740 */
AnnaBridge 172:65be27845400 741
AnnaBridge 172:65be27845400 742 /** @defgroup ADC_LL_EC_DATA_ALIGN ADC instance - Data alignment
AnnaBridge 172:65be27845400 743 * @{
AnnaBridge 172:65be27845400 744 */
AnnaBridge 172:65be27845400 745 #define LL_ADC_DATA_ALIGN_RIGHT (0x00000000U)/*!< ADC conversion data alignment: right aligned (alignment on data register LSB bit 0)*/
AnnaBridge 172:65be27845400 746 #define LL_ADC_DATA_ALIGN_LEFT (ADC_CFGR_ALIGN) /*!< ADC conversion data alignment: left aligned (aligment on data register MSB bit 15)*/
AnnaBridge 172:65be27845400 747 /**
AnnaBridge 172:65be27845400 748 * @}
AnnaBridge 172:65be27845400 749 */
AnnaBridge 172:65be27845400 750
AnnaBridge 172:65be27845400 751 /** @defgroup ADC_LL_EC_LP_MODE ADC instance - Low power mode
AnnaBridge 172:65be27845400 752 * @{
AnnaBridge 172:65be27845400 753 */
AnnaBridge 172:65be27845400 754 #define LL_ADC_LP_MODE_NONE (0x00000000U) /*!< No ADC low power mode activated */
AnnaBridge 172:65be27845400 755 #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(). */
AnnaBridge 172:65be27845400 756 /**
AnnaBridge 172:65be27845400 757 * @}
AnnaBridge 172:65be27845400 758 */
AnnaBridge 172:65be27845400 759
AnnaBridge 172:65be27845400 760 /** @defgroup ADC_LL_EC_OFFSET_NB ADC instance - Offset number
AnnaBridge 172:65be27845400 761 * @{
AnnaBridge 172:65be27845400 762 */
AnnaBridge 172:65be27845400 763 #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) */
AnnaBridge 172:65be27845400 764 #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) */
AnnaBridge 172:65be27845400 765 #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) */
AnnaBridge 172:65be27845400 766 #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) */
AnnaBridge 172:65be27845400 767 /**
AnnaBridge 172:65be27845400 768 * @}
AnnaBridge 172:65be27845400 769 */
AnnaBridge 172:65be27845400 770
AnnaBridge 172:65be27845400 771 /** @defgroup ADC_LL_EC_OFFSET_STATE ADC instance - Offset state
AnnaBridge 172:65be27845400 772 * @{
AnnaBridge 172:65be27845400 773 */
AnnaBridge 172:65be27845400 774 #define LL_ADC_OFFSET_DISABLE (0x00000000U)/*!< ADC offset disabled (among ADC selected offset number 1, 2, 3 or 4) */
AnnaBridge 172:65be27845400 775 #define LL_ADC_OFFSET_ENABLE (ADC_OFR1_OFFSET1_EN) /*!< ADC offset enabled (among ADC selected offset number 1, 2, 3 or 4) */
AnnaBridge 172:65be27845400 776 /**
AnnaBridge 172:65be27845400 777 * @}
AnnaBridge 172:65be27845400 778 */
AnnaBridge 172:65be27845400 779
AnnaBridge 172:65be27845400 780 /** @defgroup ADC_LL_EC_GROUPS ADC instance - Groups
AnnaBridge 172:65be27845400 781 * @{
AnnaBridge 172:65be27845400 782 */
AnnaBridge 172:65be27845400 783 #define LL_ADC_GROUP_REGULAR (0x00000001U) /*!< ADC group regular (available on all STM32 devices) */
AnnaBridge 172:65be27845400 784 #define LL_ADC_GROUP_INJECTED (0x00000002U) /*!< ADC group injected (not available on all STM32 devices)*/
AnnaBridge 172:65be27845400 785 #define LL_ADC_GROUP_REGULAR_INJECTED (0x00000003U) /*!< ADC both groups regular and injected */
AnnaBridge 172:65be27845400 786 /**
AnnaBridge 172:65be27845400 787 * @}
AnnaBridge 172:65be27845400 788 */
AnnaBridge 172:65be27845400 789
AnnaBridge 172:65be27845400 790 /** @defgroup ADC_LL_EC_CHANNEL ADC instance - Channel number
AnnaBridge 172:65be27845400 791 * @{
AnnaBridge 172:65be27845400 792 */
AnnaBridge 172:65be27845400 793 #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 */
AnnaBridge 172:65be27845400 794 #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 */
AnnaBridge 172:65be27845400 795 #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 */
AnnaBridge 172:65be27845400 796 #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 */
AnnaBridge 172:65be27845400 797 #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 */
AnnaBridge 172:65be27845400 798 #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 */
AnnaBridge 172:65be27845400 799 #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 */
AnnaBridge 172:65be27845400 800 #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 */
AnnaBridge 172:65be27845400 801 #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 */
AnnaBridge 172:65be27845400 802 #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 */
AnnaBridge 172:65be27845400 803 #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 */
AnnaBridge 172:65be27845400 804 #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 */
AnnaBridge 172:65be27845400 805 #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 */
AnnaBridge 172:65be27845400 806 #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 */
AnnaBridge 172:65be27845400 807 #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 */
AnnaBridge 172:65be27845400 808 #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 */
AnnaBridge 172:65be27845400 809 #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 */
AnnaBridge 172:65be27845400 810 #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 */
AnnaBridge 172:65be27845400 811 #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 */
AnnaBridge 172:65be27845400 812 #define LL_ADC_CHANNEL_VREFINT (LL_ADC_CHANNEL_0 | ADC_CHANNEL_ID_INTERNAL_CH) /*!< ADC internal channel connected to VrefInt: Internal voltage reference. On STM32L4, ADC channel available only on ADC instance: ADC1. */
AnnaBridge 172:65be27845400 813 #define LL_ADC_CHANNEL_TEMPSENSOR (LL_ADC_CHANNEL_17 | ADC_CHANNEL_ID_INTERNAL_CH) /*!< ADC internal channel connected to Temperature sensor. On STM32L4, ADC channel available only on ADC instances: ADC1, ADC3. */
AnnaBridge 172:65be27845400 814 #define LL_ADC_CHANNEL_VBAT (LL_ADC_CHANNEL_18 | 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 STM32L4, ADC channel available only on ADC instances: ADC1, ADC3. */
AnnaBridge 172:65be27845400 815 #if defined(ADC1) && !defined(ADC2)
AnnaBridge 172:65be27845400 816 #define LL_ADC_CHANNEL_DAC1CH1 (LL_ADC_CHANNEL_17 | ADC_CHANNEL_ID_INTERNAL_CH | ADC_CHANNEL_ID_INTERNAL_CH_2) /*!< ADC internal channel connected to DAC1 channel 1, channel specific to ADC1. This channel is shared with ADC internal channel connected to temperature sensor, selection is done using function @ref LL_ADC_SetCommonPathInternalCh(). */
AnnaBridge 172:65be27845400 817 #define LL_ADC_CHANNEL_DAC1CH2 (LL_ADC_CHANNEL_18 | ADC_CHANNEL_ID_INTERNAL_CH | ADC_CHANNEL_ID_INTERNAL_CH_2) /*!< ADC internal channel connected to DAC1 channel 2, channel specific to ADC1. This channel is shared with ADC internal channel connected to Vbat, selection is done using function @ref LL_ADC_SetCommonPathInternalCh(). */
AnnaBridge 172:65be27845400 818 #elif defined(ADC2)
AnnaBridge 172:65be27845400 819 #define LL_ADC_CHANNEL_DAC1CH1_ADC2 (LL_ADC_CHANNEL_17 | ADC_CHANNEL_ID_INTERNAL_CH | ADC_CHANNEL_ID_INTERNAL_CH_2) /*!< ADC internal channel connected to DAC1 channel 1, channel specific to ADC2 */
AnnaBridge 172:65be27845400 820 #define LL_ADC_CHANNEL_DAC1CH2_ADC2 (LL_ADC_CHANNEL_18 | ADC_CHANNEL_ID_INTERNAL_CH | ADC_CHANNEL_ID_INTERNAL_CH_2) /*!< ADC internal channel connected to DAC1 channel 2, channel specific to ADC2 */
AnnaBridge 172:65be27845400 821 #if defined(ADC3)
AnnaBridge 172:65be27845400 822 #define LL_ADC_CHANNEL_DAC1CH1_ADC3 (LL_ADC_CHANNEL_14 | ADC_CHANNEL_ID_INTERNAL_CH) /*!< ADC internal channel connected to DAC1 channel 1, channel specific to ADC3 */
AnnaBridge 172:65be27845400 823 #define LL_ADC_CHANNEL_DAC1CH2_ADC3 (LL_ADC_CHANNEL_15 | ADC_CHANNEL_ID_INTERNAL_CH) /*!< ADC internal channel connected to DAC1 channel 2, channel specific to ADC3 */
AnnaBridge 172:65be27845400 824 #endif
AnnaBridge 172:65be27845400 825 #endif
AnnaBridge 172:65be27845400 826 /**
AnnaBridge 172:65be27845400 827 * @}
AnnaBridge 172:65be27845400 828 */
AnnaBridge 172:65be27845400 829
AnnaBridge 172:65be27845400 830 /** @defgroup ADC_LL_EC_REG_TRIGGER_SOURCE ADC group regular - Trigger source
AnnaBridge 172:65be27845400 831 * @{
AnnaBridge 172:65be27845400 832 */
AnnaBridge 172:65be27845400 833 #define LL_ADC_REG_TRIG_SOFTWARE (0x00000000U) /*!< ADC group regular conversion trigger internal: SW start. */
AnnaBridge 172:65be27845400 834 #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). */
AnnaBridge 172:65be27845400 835 #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). */
AnnaBridge 172:65be27845400 836 #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). */
AnnaBridge 172:65be27845400 837 #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). */
AnnaBridge 172:65be27845400 838 #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). */
AnnaBridge 172:65be27845400 839 #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). */
AnnaBridge 172:65be27845400 840 #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). */
AnnaBridge 172:65be27845400 841 #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). */
AnnaBridge 172:65be27845400 842 #define LL_ADC_REG_TRIG_EXT_TIM3_CH4 (ADC_CFGR_EXTSEL_3 | 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: TIM3 channel 4 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
AnnaBridge 172:65be27845400 843 #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). */
AnnaBridge 172:65be27845400 844 #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). */
AnnaBridge 172:65be27845400 845 #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). */
AnnaBridge 172:65be27845400 846 #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). */
AnnaBridge 172:65be27845400 847 #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). */
AnnaBridge 172:65be27845400 848 #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). */
AnnaBridge 172:65be27845400 849 #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). */
AnnaBridge 172:65be27845400 850 /**
AnnaBridge 172:65be27845400 851 * @}
AnnaBridge 172:65be27845400 852 */
AnnaBridge 172:65be27845400 853
AnnaBridge 172:65be27845400 854 /** @defgroup ADC_LL_EC_REG_TRIGGER_EDGE ADC group regular - Trigger edge
AnnaBridge 172:65be27845400 855 * @{
AnnaBridge 172:65be27845400 856 */
AnnaBridge 172:65be27845400 857 #define LL_ADC_REG_TRIG_EXT_RISING ( ADC_CFGR_EXTEN_0) /*!< ADC group regular conversion trigger polarity set to rising edge */
AnnaBridge 172:65be27845400 858 #define LL_ADC_REG_TRIG_EXT_FALLING (ADC_CFGR_EXTEN_1 ) /*!< ADC group regular conversion trigger polarity set to falling edge */
AnnaBridge 172:65be27845400 859 #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 */
AnnaBridge 172:65be27845400 860 /**
AnnaBridge 172:65be27845400 861 * @}
AnnaBridge 172:65be27845400 862 */
AnnaBridge 172:65be27845400 863
AnnaBridge 172:65be27845400 864 /** @defgroup ADC_LL_EC_REG_CONTINUOUS_MODE ADC group regular - Continuous mode
AnnaBridge 172:65be27845400 865 * @{
AnnaBridge 172:65be27845400 866 */
AnnaBridge 172:65be27845400 867 #define LL_ADC_REG_CONV_SINGLE (0x00000000U) /*!< ADC conversions are performed in single mode: one conversion per trigger */
AnnaBridge 172:65be27845400 868 #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 */
AnnaBridge 172:65be27845400 869 /**
AnnaBridge 172:65be27845400 870 * @}
AnnaBridge 172:65be27845400 871 */
AnnaBridge 172:65be27845400 872
AnnaBridge 172:65be27845400 873 /** @defgroup ADC_LL_EC_REG_DMA_TRANSFER ADC group regular - DMA transfer of ADC conversion data
AnnaBridge 172:65be27845400 874 * @{
AnnaBridge 172:65be27845400 875 */
AnnaBridge 172:65be27845400 876 #define LL_ADC_REG_DMA_TRANSFER_NONE (0x00000000U) /*!< ADC conversions are not transferred by DMA */
AnnaBridge 172:65be27845400 877 #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. */
AnnaBridge 172:65be27845400 878 #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. */
AnnaBridge 172:65be27845400 879 /**
AnnaBridge 172:65be27845400 880 * @}
AnnaBridge 172:65be27845400 881 */
AnnaBridge 172:65be27845400 882
AnnaBridge 172:65be27845400 883 #if defined(ADC_CFGR_DFSDMCFG) &&defined(DFSDM1_Channel0)
AnnaBridge 172:65be27845400 884 /** @defgroup ADC_LL_EC_REG_DFSDM_TRANSFER ADC group regular - DFSDM transfer of ADC conversion data
AnnaBridge 172:65be27845400 885 * @{
AnnaBridge 172:65be27845400 886 */
AnnaBridge 172:65be27845400 887 #define LL_ADC_REG_DFSDM_TRANSFER_NONE (0x00000000U) /*!< ADC conversions are not transferred by DFSDM. */
AnnaBridge 172:65be27845400 888 #define LL_ADC_REG_DFSDM_TRANSFER_ENABLE (ADC_CFGR_DFSDMCFG) /*!< ADC conversion data are transfered to DFSDM for post processing. The ADC conversion data format must be 16-bit signed and right aligned, refer to reference manual. DFSDM transfer cannot be used if DMA transfer is enabled. */
AnnaBridge 172:65be27845400 889 /**
AnnaBridge 172:65be27845400 890 * @}
AnnaBridge 172:65be27845400 891 */
AnnaBridge 172:65be27845400 892 #endif
AnnaBridge 172:65be27845400 893
AnnaBridge 172:65be27845400 894 #if defined(ADC_SMPR1_SMPPLUS)
AnnaBridge 172:65be27845400 895 /** @defgroup ADC_LL_EC_SAMPLINGTIME_COMMON_CONFIG ADC instance - ADC sampling time common configuration
AnnaBridge 172:65be27845400 896 * @{
AnnaBridge 172:65be27845400 897 */
AnnaBridge 172:65be27845400 898 #define LL_ADC_SAMPLINGTIME_COMMON_DEFAULT (0x00000000U) /*!< ADC sampling time let to default settings. */
AnnaBridge 172:65be27845400 899 #define LL_ADC_SAMPLINGTIME_COMMON_3C5_REPL_2C5 (ADC_SMPR1_SMPPLUS) /*!< ADC additional sampling time 3.5 ADC clock cycles replacing 2.5 ADC clock cycles (this applies to all channels mapped with selection sampling time 2.5 ADC clock cycles, whatever channels mapped on ADC groups regular or injected). */
AnnaBridge 172:65be27845400 900 /**
AnnaBridge 172:65be27845400 901 * @}
AnnaBridge 172:65be27845400 902 */
AnnaBridge 172:65be27845400 903 #endif
AnnaBridge 172:65be27845400 904
AnnaBridge 172:65be27845400 905 /** @defgroup ADC_LL_EC_REG_OVR_DATA_BEHAVIOR ADC group regular - Overrun behavior on conversion data
AnnaBridge 172:65be27845400 906 * @{
AnnaBridge 172:65be27845400 907 */
AnnaBridge 172:65be27845400 908 #define LL_ADC_REG_OVR_DATA_PRESERVED (0x00000000U) /*!< ADC group regular behavior in case of overrun: data preserved */
AnnaBridge 172:65be27845400 909 #define LL_ADC_REG_OVR_DATA_OVERWRITTEN (ADC_CFGR_OVRMOD) /*!< ADC group regular behavior in case of overrun: data overwritten */
AnnaBridge 172:65be27845400 910 /**
AnnaBridge 172:65be27845400 911 * @}
AnnaBridge 172:65be27845400 912 */
AnnaBridge 172:65be27845400 913
AnnaBridge 172:65be27845400 914 /** @defgroup ADC_LL_EC_REG_SEQ_SCAN_LENGTH ADC group regular - Sequencer scan length
AnnaBridge 172:65be27845400 915 * @{
AnnaBridge 172:65be27845400 916 */
AnnaBridge 172:65be27845400 917 #define LL_ADC_REG_SEQ_SCAN_DISABLE (0x00000000U) /*!< ADC group regular sequencer disable (equivalent to sequencer of 1 rank: ADC conversion on only 1 channel) */
AnnaBridge 172:65be27845400 918 #define LL_ADC_REG_SEQ_SCAN_ENABLE_2RANKS ( ADC_SQR1_L_0) /*!< ADC group regular sequencer enable with 2 ranks in the sequence */
AnnaBridge 172:65be27845400 919 #define LL_ADC_REG_SEQ_SCAN_ENABLE_3RANKS ( ADC_SQR1_L_1 ) /*!< ADC group regular sequencer enable with 3 ranks in the sequence */
AnnaBridge 172:65be27845400 920 #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 */
AnnaBridge 172:65be27845400 921 #define LL_ADC_REG_SEQ_SCAN_ENABLE_5RANKS ( ADC_SQR1_L_2 ) /*!< ADC group regular sequencer enable with 5 ranks in the sequence */
AnnaBridge 172:65be27845400 922 #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 */
AnnaBridge 172:65be27845400 923 #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 */
AnnaBridge 172:65be27845400 924 #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 */
AnnaBridge 172:65be27845400 925 #define LL_ADC_REG_SEQ_SCAN_ENABLE_9RANKS (ADC_SQR1_L_3 ) /*!< ADC group regular sequencer enable with 9 ranks in the sequence */
AnnaBridge 172:65be27845400 926 #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 */
AnnaBridge 172:65be27845400 927 #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 */
AnnaBridge 172:65be27845400 928 #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 */
AnnaBridge 172:65be27845400 929 #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 */
AnnaBridge 172:65be27845400 930 #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 */
AnnaBridge 172:65be27845400 931 #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 */
AnnaBridge 172:65be27845400 932 #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 */
AnnaBridge 172:65be27845400 933 /**
AnnaBridge 172:65be27845400 934 * @}
AnnaBridge 172:65be27845400 935 */
AnnaBridge 172:65be27845400 936
AnnaBridge 172:65be27845400 937 /** @defgroup ADC_LL_EC_REG_SEQ_DISCONT_MODE ADC group regular - Sequencer discontinuous mode
AnnaBridge 172:65be27845400 938 * @{
AnnaBridge 172:65be27845400 939 */
AnnaBridge 172:65be27845400 940 #define LL_ADC_REG_SEQ_DISCONT_DISABLE (0x00000000U) /*!< ADC group regular sequencer discontinuous mode disable */
AnnaBridge 172:65be27845400 941 #define LL_ADC_REG_SEQ_DISCONT_1RANK ( ADC_CFGR_DISCEN) /*!< ADC group regular sequencer discontinuous mode enable with sequence interruption every rank */
AnnaBridge 172:65be27845400 942 #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 */
AnnaBridge 172:65be27845400 943 #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 */
AnnaBridge 172:65be27845400 944 #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 */
AnnaBridge 172:65be27845400 945 #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 */
AnnaBridge 172:65be27845400 946 #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 */
AnnaBridge 172:65be27845400 947 #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 */
AnnaBridge 172:65be27845400 948 #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 */
AnnaBridge 172:65be27845400 949 /**
AnnaBridge 172:65be27845400 950 * @}
AnnaBridge 172:65be27845400 951 */
AnnaBridge 172:65be27845400 952
AnnaBridge 172:65be27845400 953 /** @defgroup ADC_LL_EC_REG_SEQ_RANKS ADC group regular - Sequencer ranks
AnnaBridge 172:65be27845400 954 * @{
AnnaBridge 172:65be27845400 955 */
AnnaBridge 172:65be27845400 956 #define LL_ADC_REG_RANK_1 (ADC_SQR1_REGOFFSET | ADC_REG_RANK_1_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 1 */
AnnaBridge 172:65be27845400 957 #define LL_ADC_REG_RANK_2 (ADC_SQR1_REGOFFSET | ADC_REG_RANK_2_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 2 */
AnnaBridge 172:65be27845400 958 #define LL_ADC_REG_RANK_3 (ADC_SQR1_REGOFFSET | ADC_REG_RANK_3_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 3 */
AnnaBridge 172:65be27845400 959 #define LL_ADC_REG_RANK_4 (ADC_SQR1_REGOFFSET | ADC_REG_RANK_4_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 4 */
AnnaBridge 172:65be27845400 960 #define LL_ADC_REG_RANK_5 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_5_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 5 */
AnnaBridge 172:65be27845400 961 #define LL_ADC_REG_RANK_6 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_6_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 6 */
AnnaBridge 172:65be27845400 962 #define LL_ADC_REG_RANK_7 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_7_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 7 */
AnnaBridge 172:65be27845400 963 #define LL_ADC_REG_RANK_8 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_8_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 8 */
AnnaBridge 172:65be27845400 964 #define LL_ADC_REG_RANK_9 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_9_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 9 */
AnnaBridge 172:65be27845400 965 #define LL_ADC_REG_RANK_10 (ADC_SQR3_REGOFFSET | ADC_REG_RANK_10_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 10 */
AnnaBridge 172:65be27845400 966 #define LL_ADC_REG_RANK_11 (ADC_SQR3_REGOFFSET | ADC_REG_RANK_11_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 11 */
AnnaBridge 172:65be27845400 967 #define LL_ADC_REG_RANK_12 (ADC_SQR3_REGOFFSET | ADC_REG_RANK_12_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 12 */
AnnaBridge 172:65be27845400 968 #define LL_ADC_REG_RANK_13 (ADC_SQR3_REGOFFSET | ADC_REG_RANK_13_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 13 */
AnnaBridge 172:65be27845400 969 #define LL_ADC_REG_RANK_14 (ADC_SQR3_REGOFFSET | ADC_REG_RANK_14_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 14 */
AnnaBridge 172:65be27845400 970 #define LL_ADC_REG_RANK_15 (ADC_SQR4_REGOFFSET | ADC_REG_RANK_15_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 15 */
AnnaBridge 172:65be27845400 971 #define LL_ADC_REG_RANK_16 (ADC_SQR4_REGOFFSET | ADC_REG_RANK_16_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 16 */
AnnaBridge 172:65be27845400 972 /**
AnnaBridge 172:65be27845400 973 * @}
AnnaBridge 172:65be27845400 974 */
AnnaBridge 172:65be27845400 975
AnnaBridge 172:65be27845400 976 /** @defgroup ADC_LL_EC_INJ_TRIGGER_SOURCE ADC group injected - Trigger source
AnnaBridge 172:65be27845400 977 * @{
AnnaBridge 172:65be27845400 978 */
AnnaBridge 172:65be27845400 979 #define LL_ADC_INJ_TRIG_SOFTWARE (0x00000000U) /*!< ADC group injected conversion trigger internal: SW start.. Trigger edge set to rising edge (default setting). */
AnnaBridge 172:65be27845400 980 #define LL_ADC_INJ_TRIG_EXT_TIM1_TRGO (ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM1 TRGO. Trigger edge set to rising edge (default setting). */
AnnaBridge 172:65be27845400 981 #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 TRGO2. Trigger edge set to rising edge (default setting). */
AnnaBridge 172:65be27845400 982 #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). */
AnnaBridge 172:65be27845400 983 #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 TRGO. Trigger edge set to rising edge (default setting). */
AnnaBridge 172:65be27845400 984 #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). */
AnnaBridge 172:65be27845400 985 #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 TRGO. Trigger edge set to rising edge (default setting). */
AnnaBridge 172:65be27845400 986 #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). */
AnnaBridge 172:65be27845400 987 #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). */
AnnaBridge 172:65be27845400 988 #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). */
AnnaBridge 172:65be27845400 989 #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 TRGO. Trigger edge set to rising edge (default setting). */
AnnaBridge 172:65be27845400 990 #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 TRGO. Trigger edge set to rising edge (default setting). */
AnnaBridge 172:65be27845400 991 #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). */
AnnaBridge 172:65be27845400 992 #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 TRGO. Trigger edge set to rising edge (default setting). */
AnnaBridge 172:65be27845400 993 #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 TRGO2. Trigger edge set to rising edge (default setting). */
AnnaBridge 172:65be27845400 994 #define LL_ADC_INJ_TRIG_EXT_TIM15_TRGO (ADC_JSQR_JEXTSEL_3 | 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: TIM15 TRGO. Trigger edge set to rising edge (default setting). */
AnnaBridge 172:65be27845400 995 #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). */
AnnaBridge 172:65be27845400 996 /**
AnnaBridge 172:65be27845400 997 * @}
AnnaBridge 172:65be27845400 998 */
AnnaBridge 172:65be27845400 999
AnnaBridge 172:65be27845400 1000 /** @defgroup ADC_LL_EC_INJ_TRIGGER_EDGE ADC group injected - Trigger edge
AnnaBridge 172:65be27845400 1001 * @{
AnnaBridge 172:65be27845400 1002 */
AnnaBridge 172:65be27845400 1003 #define LL_ADC_INJ_TRIG_EXT_RISING ( ADC_JSQR_JEXTEN_0) /*!< ADC group injected conversion trigger polarity set to rising edge */
AnnaBridge 172:65be27845400 1004 #define LL_ADC_INJ_TRIG_EXT_FALLING (ADC_JSQR_JEXTEN_1 ) /*!< ADC group injected conversion trigger polarity set to falling edge */
AnnaBridge 172:65be27845400 1005 #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 */
AnnaBridge 172:65be27845400 1006 /**
AnnaBridge 172:65be27845400 1007 * @}
AnnaBridge 172:65be27845400 1008 */
AnnaBridge 172:65be27845400 1009
AnnaBridge 172:65be27845400 1010 /** @defgroup ADC_LL_EC_INJ_TRIG_AUTO ADC group injected - Automatic trigger mode
AnnaBridge 172:65be27845400 1011 * @{
AnnaBridge 172:65be27845400 1012 */
AnnaBridge 172:65be27845400 1013 #define LL_ADC_INJ_TRIG_INDEPENDENT (0x00000000U) /*!< ADC group injected conversion trigger independent. Setting mandatory if ADC group injected injected trigger source is set to an external trigger. */
AnnaBridge 172:65be27845400 1014 #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. */
AnnaBridge 172:65be27845400 1015 /**
AnnaBridge 172:65be27845400 1016 * @}
AnnaBridge 172:65be27845400 1017 */
AnnaBridge 172:65be27845400 1018
AnnaBridge 172:65be27845400 1019 /** @defgroup ADC_LL_EC_INJ_CONTEXT_QUEUE ADC group injected - Context queue mode
AnnaBridge 172:65be27845400 1020 * @{
AnnaBridge 172:65be27845400 1021 */
AnnaBridge 172:65be27845400 1022 #define LL_ADC_INJ_QUEUE_2CONTEXTS_LAST_ACTIVE (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. */
AnnaBridge 172:65be27845400 1023 #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. */
AnnaBridge 172:65be27845400 1024 #define LL_ADC_INJ_QUEUE_DISABLE (ADC_CFGR_JQDIS) /* Group injected sequence context queue is disabled: only 1 sequence can be configured and is active perpetually. */
AnnaBridge 172:65be27845400 1025 /**
AnnaBridge 172:65be27845400 1026 * @}
AnnaBridge 172:65be27845400 1027 */
AnnaBridge 172:65be27845400 1028
AnnaBridge 172:65be27845400 1029 /** @defgroup ADC_LL_EC_INJ_SEQ_SCAN_LENGTH ADC group injected - Sequencer scan length
AnnaBridge 172:65be27845400 1030 * @{
AnnaBridge 172:65be27845400 1031 */
AnnaBridge 172:65be27845400 1032 #define LL_ADC_INJ_SEQ_SCAN_DISABLE (0x00000000U) /*!< ADC group injected sequencer disable (equivalent to sequencer of 1 rank: ADC conversion on only 1 channel) */
AnnaBridge 172:65be27845400 1033 #define LL_ADC_INJ_SEQ_SCAN_ENABLE_2RANKS ( ADC_JSQR_JL_0) /*!< ADC group injected sequencer enable with 2 ranks in the sequence */
AnnaBridge 172:65be27845400 1034 #define LL_ADC_INJ_SEQ_SCAN_ENABLE_3RANKS (ADC_JSQR_JL_1 ) /*!< ADC group injected sequencer enable with 3 ranks in the sequence */
AnnaBridge 172:65be27845400 1035 #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 */
AnnaBridge 172:65be27845400 1036 /**
AnnaBridge 172:65be27845400 1037 * @}
AnnaBridge 172:65be27845400 1038 */
AnnaBridge 172:65be27845400 1039
AnnaBridge 172:65be27845400 1040 /** @defgroup ADC_LL_EC_INJ_SEQ_DISCONT_MODE ADC group injected - Sequencer discontinuous mode
AnnaBridge 172:65be27845400 1041 * @{
AnnaBridge 172:65be27845400 1042 */
AnnaBridge 172:65be27845400 1043 #define LL_ADC_INJ_SEQ_DISCONT_DISABLE (0x00000000U) /*!< ADC group injected sequencer discontinuous mode disable */
AnnaBridge 172:65be27845400 1044 #define LL_ADC_INJ_SEQ_DISCONT_1RANK (ADC_CFGR_JDISCEN) /*!< ADC group injected sequencer discontinuous mode enable with sequence interruption every rank */
AnnaBridge 172:65be27845400 1045 /**
AnnaBridge 172:65be27845400 1046 * @}
AnnaBridge 172:65be27845400 1047 */
AnnaBridge 172:65be27845400 1048
AnnaBridge 172:65be27845400 1049 /** @defgroup ADC_LL_EC_INJ_SEQ_RANKS ADC group injected - Sequencer ranks
AnnaBridge 172:65be27845400 1050 * @{
AnnaBridge 172:65be27845400 1051 */
AnnaBridge 172:65be27845400 1052 #define LL_ADC_INJ_RANK_1 (ADC_JDR1_REGOFFSET | ADC_INJ_RANK_1_JSQR_BITOFFSET_POS) /*!< ADC group injected sequencer rank 1 */
AnnaBridge 172:65be27845400 1053 #define LL_ADC_INJ_RANK_2 (ADC_JDR2_REGOFFSET | ADC_INJ_RANK_2_JSQR_BITOFFSET_POS) /*!< ADC group injected sequencer rank 2 */
AnnaBridge 172:65be27845400 1054 #define LL_ADC_INJ_RANK_3 (ADC_JDR3_REGOFFSET | ADC_INJ_RANK_3_JSQR_BITOFFSET_POS) /*!< ADC group injected sequencer rank 3 */
AnnaBridge 172:65be27845400 1055 #define LL_ADC_INJ_RANK_4 (ADC_JDR4_REGOFFSET | ADC_INJ_RANK_4_JSQR_BITOFFSET_POS) /*!< ADC group injected sequencer rank 4 */
AnnaBridge 172:65be27845400 1056 /**
AnnaBridge 172:65be27845400 1057 * @}
AnnaBridge 172:65be27845400 1058 */
AnnaBridge 172:65be27845400 1059
AnnaBridge 172:65be27845400 1060 /** @defgroup ADC_LL_EC_CHANNEL_SAMPLINGTIME Channel - Sampling time
AnnaBridge 172:65be27845400 1061 * @{
AnnaBridge 172:65be27845400 1062 */
AnnaBridge 172:65be27845400 1063 #define LL_ADC_SAMPLINGTIME_2CYCLES_5 (0x00000000U) /*!< Sampling time 2.5 ADC clock cycles */
AnnaBridge 172:65be27845400 1064 #define LL_ADC_SAMPLINGTIME_6CYCLES_5 ( ADC_SMPR2_SMP10_0) /*!< Sampling time 6.5 ADC clock cycles */
AnnaBridge 172:65be27845400 1065 #define LL_ADC_SAMPLINGTIME_12CYCLES_5 ( ADC_SMPR2_SMP10_1 ) /*!< Sampling time 12.5 ADC clock cycles */
AnnaBridge 172:65be27845400 1066 #define LL_ADC_SAMPLINGTIME_24CYCLES_5 ( ADC_SMPR2_SMP10_1 | ADC_SMPR2_SMP10_0) /*!< Sampling time 24.5 ADC clock cycles */
AnnaBridge 172:65be27845400 1067 #define LL_ADC_SAMPLINGTIME_47CYCLES_5 (ADC_SMPR2_SMP10_2 ) /*!< Sampling time 47.5 ADC clock cycles */
AnnaBridge 172:65be27845400 1068 #define LL_ADC_SAMPLINGTIME_92CYCLES_5 (ADC_SMPR2_SMP10_2 | ADC_SMPR2_SMP10_0) /*!< Sampling time 92.5 ADC clock cycles */
AnnaBridge 172:65be27845400 1069 #define LL_ADC_SAMPLINGTIME_247CYCLES_5 (ADC_SMPR2_SMP10_2 | ADC_SMPR2_SMP10_1 ) /*!< Sampling time 247.5 ADC clock cycles */
AnnaBridge 172:65be27845400 1070 #define LL_ADC_SAMPLINGTIME_640CYCLES_5 (ADC_SMPR2_SMP10_2 | ADC_SMPR2_SMP10_1 | ADC_SMPR2_SMP10_0) /*!< Sampling time 640.5 ADC clock cycles */
AnnaBridge 172:65be27845400 1071 /**
AnnaBridge 172:65be27845400 1072 * @}
AnnaBridge 172:65be27845400 1073 */
AnnaBridge 172:65be27845400 1074
AnnaBridge 172:65be27845400 1075 /** @defgroup ADC_LL_EC_CHANNEL_SINGLE_DIFF_ENDING Channel - Single or differential ending
AnnaBridge 172:65be27845400 1076 * @{
AnnaBridge 172:65be27845400 1077 */
AnnaBridge 172:65be27845400 1078 #define LL_ADC_SINGLE_ENDED ( ADC_CALFACT_CALFACT_S) /*!< ADC channel ending set to single ended (literal also used to set calibration mode) */
AnnaBridge 172:65be27845400 1079 #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) */
AnnaBridge 172:65be27845400 1080 #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) */
AnnaBridge 172:65be27845400 1081 /**
AnnaBridge 172:65be27845400 1082 * @}
AnnaBridge 172:65be27845400 1083 */
AnnaBridge 172:65be27845400 1084
AnnaBridge 172:65be27845400 1085 /** @defgroup ADC_LL_EC_AWD_NUMBER Analog watchdog - Analog watchdog number
AnnaBridge 172:65be27845400 1086 * @{
AnnaBridge 172:65be27845400 1087 */
AnnaBridge 172:65be27845400 1088 #define LL_ADC_AWD1 (ADC_AWD_CR1_CHANNEL_MASK | ADC_AWD_CR1_REGOFFSET) /*!< ADC analog watchdog number 1 */
AnnaBridge 172:65be27845400 1089 #define LL_ADC_AWD2 (ADC_AWD_CR23_CHANNEL_MASK | ADC_AWD_CR2_REGOFFSET) /*!< ADC analog watchdog number 2 */
AnnaBridge 172:65be27845400 1090 #define LL_ADC_AWD3 (ADC_AWD_CR23_CHANNEL_MASK | ADC_AWD_CR3_REGOFFSET) /*!< ADC analog watchdog number 3 */
AnnaBridge 172:65be27845400 1091 /**
AnnaBridge 172:65be27845400 1092 * @}
AnnaBridge 172:65be27845400 1093 */
AnnaBridge 172:65be27845400 1094
AnnaBridge 172:65be27845400 1095 /** @defgroup ADC_LL_EC_AWD_CHANNELS Analog watchdog - Monitored channels
AnnaBridge 172:65be27845400 1096 * @{
AnnaBridge 172:65be27845400 1097 */
AnnaBridge 172:65be27845400 1098 #define LL_ADC_AWD_DISABLE (0x00000000U) /*!< ADC analog watchdog monitoring disabled */
AnnaBridge 172:65be27845400 1099 #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 */
AnnaBridge 172:65be27845400 1100 #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 */
AnnaBridge 172:65be27845400 1101 #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 */
AnnaBridge 172:65be27845400 1102 #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 */
AnnaBridge 172:65be27845400 1103 #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 */
AnnaBridge 172:65be27845400 1104 #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 */
AnnaBridge 172:65be27845400 1105 #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 */
AnnaBridge 172:65be27845400 1106 #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 */
AnnaBridge 172:65be27845400 1107 #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 */
AnnaBridge 172:65be27845400 1108 #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 */
AnnaBridge 172:65be27845400 1109 #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 */
AnnaBridge 172:65be27845400 1110 #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 */
AnnaBridge 172:65be27845400 1111 #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 */
AnnaBridge 172:65be27845400 1112 #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 */
AnnaBridge 172:65be27845400 1113 #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 */
AnnaBridge 172:65be27845400 1114 #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 */
AnnaBridge 172:65be27845400 1115 #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 */
AnnaBridge 172:65be27845400 1116 #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 */
AnnaBridge 172:65be27845400 1117 #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 */
AnnaBridge 172:65be27845400 1118 #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 */
AnnaBridge 172:65be27845400 1119 #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 */
AnnaBridge 172:65be27845400 1120 #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 */
AnnaBridge 172:65be27845400 1121 #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 */
AnnaBridge 172:65be27845400 1122 #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 */
AnnaBridge 172:65be27845400 1123 #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 */
AnnaBridge 172:65be27845400 1124 #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 */
AnnaBridge 172:65be27845400 1125 #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 */
AnnaBridge 172:65be27845400 1126 #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 */
AnnaBridge 172:65be27845400 1127 #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 */
AnnaBridge 172:65be27845400 1128 #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 */
AnnaBridge 172:65be27845400 1129 #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 */
AnnaBridge 172:65be27845400 1130 #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 */
AnnaBridge 172:65be27845400 1131 #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 */
AnnaBridge 172:65be27845400 1132 #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 */
AnnaBridge 172:65be27845400 1133 #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 */
AnnaBridge 172:65be27845400 1134 #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 */
AnnaBridge 172:65be27845400 1135 #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 */
AnnaBridge 172:65be27845400 1136 #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 */
AnnaBridge 172:65be27845400 1137 #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 */
AnnaBridge 172:65be27845400 1138 #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 */
AnnaBridge 172:65be27845400 1139 #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 */
AnnaBridge 172:65be27845400 1140 #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 */
AnnaBridge 172:65be27845400 1141 #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 */
AnnaBridge 172:65be27845400 1142 #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 */
AnnaBridge 172:65be27845400 1143 #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 */
AnnaBridge 172:65be27845400 1144 #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 */
AnnaBridge 172:65be27845400 1145 #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 */
AnnaBridge 172:65be27845400 1146 #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 */
AnnaBridge 172:65be27845400 1147 #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 */
AnnaBridge 172:65be27845400 1148 #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 */
AnnaBridge 172:65be27845400 1149 #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 */
AnnaBridge 172:65be27845400 1150 #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 */
AnnaBridge 172:65be27845400 1151 #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 */
AnnaBridge 172:65be27845400 1152 #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 */
AnnaBridge 172:65be27845400 1153 #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 */
AnnaBridge 172:65be27845400 1154 #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 */
AnnaBridge 172:65be27845400 1155 #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 */
AnnaBridge 172:65be27845400 1156 #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 */
AnnaBridge 172:65be27845400 1157 #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 */
AnnaBridge 172:65be27845400 1158 #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 */
AnnaBridge 172:65be27845400 1159 #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 */
AnnaBridge 172:65be27845400 1160 #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 */
AnnaBridge 172:65be27845400 1161 #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 */
AnnaBridge 172:65be27845400 1162 #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 */
AnnaBridge 172:65be27845400 1163 #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 */
AnnaBridge 172:65be27845400 1164 #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 */
AnnaBridge 172:65be27845400 1165 #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 */
AnnaBridge 172:65be27845400 1166 #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 */
AnnaBridge 172:65be27845400 1167 #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 */
AnnaBridge 172:65be27845400 1168 #if defined(ADC1) && !defined(ADC2)
AnnaBridge 172:65be27845400 1169 #define LL_ADC_AWD_CH_DAC1CH1_REG ((LL_ADC_CHANNEL_DAC1CH1 & 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 ADC1, converted by group regular only */
AnnaBridge 172:65be27845400 1170 #define LL_ADC_AWD_CH_DAC1CH1_INJ ((LL_ADC_CHANNEL_DAC1CH1 & 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 ADC1, converted by group injected only */
AnnaBridge 172:65be27845400 1171 #define LL_ADC_AWD_CH_DAC1CH1_REG_INJ ((LL_ADC_CHANNEL_DAC1CH1 & 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 ADC1, converted by either group regular or injected */
AnnaBridge 172:65be27845400 1172 #define LL_ADC_AWD_CH_DAC1CH2_REG ((LL_ADC_CHANNEL_DAC1CH2 & 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 ADC1, converted by group regular only */
AnnaBridge 172:65be27845400 1173 #define LL_ADC_AWD_CH_DAC1CH2_INJ ((LL_ADC_CHANNEL_DAC1CH2 & 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 ADC1, converted by group injected only */
AnnaBridge 172:65be27845400 1174 #define LL_ADC_AWD_CH_DAC1CH2_REG_INJ ((LL_ADC_CHANNEL_DAC1CH2 & 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 ADC1, converted by either group regular or injected */
AnnaBridge 172:65be27845400 1175 #elif defined(ADC2)
AnnaBridge 172:65be27845400 1176 #define LL_ADC_AWD_CH_DAC1CH1_ADC2_REG ((LL_ADC_CHANNEL_DAC1CH1_ADC2 & 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 */
AnnaBridge 172:65be27845400 1177 #define LL_ADC_AWD_CH_DAC1CH1_ADC2_INJ ((LL_ADC_CHANNEL_DAC1CH1_ADC2 & 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 */
AnnaBridge 172:65be27845400 1178 #define LL_ADC_AWD_CH_DAC1CH1_ADC2_REG_INJ ((LL_ADC_CHANNEL_DAC1CH1_ADC2 & 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 */
AnnaBridge 172:65be27845400 1179 #define LL_ADC_AWD_CH_DAC1CH2_ADC2_REG ((LL_ADC_CHANNEL_DAC1CH2_ADC2 & 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 */
AnnaBridge 172:65be27845400 1180 #define LL_ADC_AWD_CH_DAC1CH2_ADC2_INJ ((LL_ADC_CHANNEL_DAC1CH2_ADC2 & 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 */
AnnaBridge 172:65be27845400 1181 #define LL_ADC_AWD_CH_DAC1CH2_ADC2_REG_INJ ((LL_ADC_CHANNEL_DAC1CH2_ADC2 & 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 */
AnnaBridge 172:65be27845400 1182 #if defined(ADC3)
AnnaBridge 172:65be27845400 1183 #define LL_ADC_AWD_CH_DAC1CH1_ADC3_REG ((LL_ADC_CHANNEL_DAC1CH1_ADC3 & 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 */
AnnaBridge 172:65be27845400 1184 #define LL_ADC_AWD_CH_DAC1CH1_ADC3_INJ ((LL_ADC_CHANNEL_DAC1CH1_ADC3 & 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 */
AnnaBridge 172:65be27845400 1185 #define LL_ADC_AWD_CH_DAC1CH1_ADC3_REG_INJ ((LL_ADC_CHANNEL_DAC1CH1_ADC3 & 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 */
AnnaBridge 172:65be27845400 1186 #define LL_ADC_AWD_CH_DAC1CH2_ADC3_REG ((LL_ADC_CHANNEL_DAC1CH2_ADC3 & 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 */
AnnaBridge 172:65be27845400 1187 #define LL_ADC_AWD_CH_DAC1CH2_ADC3_INJ ((LL_ADC_CHANNEL_DAC1CH2_ADC3 & 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 */
AnnaBridge 172:65be27845400 1188 #define LL_ADC_AWD_CH_DAC1CH2_ADC3_REG_INJ ((LL_ADC_CHANNEL_DAC1CH2_ADC3 & 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 */
AnnaBridge 172:65be27845400 1189 #endif
AnnaBridge 172:65be27845400 1190 #endif
AnnaBridge 172:65be27845400 1191 /**
AnnaBridge 172:65be27845400 1192 * @}
AnnaBridge 172:65be27845400 1193 */
AnnaBridge 172:65be27845400 1194
AnnaBridge 172:65be27845400 1195 /** @defgroup ADC_LL_EC_AWD_THRESHOLDS Analog watchdog - Thresholds
AnnaBridge 172:65be27845400 1196 * @{
AnnaBridge 172:65be27845400 1197 */
AnnaBridge 172:65be27845400 1198 #define LL_ADC_AWD_THRESHOLD_HIGH (ADC_TR1_HT1 ) /*!< ADC analog watchdog threshold high */
AnnaBridge 172:65be27845400 1199 #define LL_ADC_AWD_THRESHOLD_LOW ( ADC_TR1_LT1) /*!< ADC analog watchdog threshold low */
AnnaBridge 172:65be27845400 1200 #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 */
AnnaBridge 172:65be27845400 1201 /**
AnnaBridge 172:65be27845400 1202 * @}
AnnaBridge 172:65be27845400 1203 */
AnnaBridge 172:65be27845400 1204
AnnaBridge 172:65be27845400 1205 /** @defgroup ADC_LL_EC_OVS_SCOPE Oversampling - Oversampling scope
AnnaBridge 172:65be27845400 1206 * @{
AnnaBridge 172:65be27845400 1207 */
AnnaBridge 172:65be27845400 1208 #define LL_ADC_OVS_DISABLE (0x00000000U) /*!< ADC oversampling disabled. */
AnnaBridge 172:65be27845400 1209 #define LL_ADC_OVS_GRP_REGULAR_CONTINUED ( ADC_CFGR2_ROVSE) /*!< ADC oversampling on conversions of ADC group regular. If group injected interrupts group regular: when ADC group injected is triggered, the oversampling on ADC group regular is temporary stopped and continued afterwards. */
AnnaBridge 172:65be27845400 1210 #define LL_ADC_OVS_GRP_REGULAR_RESUMED (ADC_CFGR2_ROVSM | ADC_CFGR2_ROVSE) /*!< ADC oversampling on conversions of ADC group regular. If group injected interrupts group regular: when ADC group injected is triggered, the oversampling on ADC group regular is resumed from start (oversampler buffer reset). */
AnnaBridge 172:65be27845400 1211 #define LL_ADC_OVS_GRP_INJECTED ( ADC_CFGR2_JOVSE ) /*!< ADC oversampling on conversions of ADC group injected. */
AnnaBridge 172:65be27845400 1212 #define LL_ADC_OVS_GRP_INJ_REG_RESUMED ( ADC_CFGR2_JOVSE | ADC_CFGR2_ROVSE) /*!< ADC oversampling on conversions of both ADC groups regular and injected. If group injected interrupting group regular: when ADC group injected is triggered, the oversampling on ADC group regular is resumed from start (oversampler buffer reset). */
AnnaBridge 172:65be27845400 1213 /**
AnnaBridge 172:65be27845400 1214 * @}
AnnaBridge 172:65be27845400 1215 */
AnnaBridge 172:65be27845400 1216
AnnaBridge 172:65be27845400 1217 /** @defgroup ADC_LL_EC_OVS_DISCONT_MODE Oversampling - Discontinuous mode
AnnaBridge 172:65be27845400 1218 * @{
AnnaBridge 172:65be27845400 1219 */
AnnaBridge 172:65be27845400 1220 #define LL_ADC_OVS_REG_CONT (0x00000000U) /*!< ADC oversampling discontinuous mode: continuous mode (all conversions of oversampling ratio are done from 1 trigger) */
AnnaBridge 172:65be27845400 1221 #define LL_ADC_OVS_REG_DISCONT (ADC_CFGR2_TROVS) /*!< ADC oversampling discontinuous mode: discontinuous mode (each conversion of oversampling ratio needs a trigger) */
AnnaBridge 172:65be27845400 1222 /**
AnnaBridge 172:65be27845400 1223 * @}
AnnaBridge 172:65be27845400 1224 */
AnnaBridge 172:65be27845400 1225
AnnaBridge 172:65be27845400 1226 /** @defgroup ADC_LL_EC_OVS_RATIO Oversampling - Ratio
AnnaBridge 172:65be27845400 1227 * @{
AnnaBridge 172:65be27845400 1228 */
AnnaBridge 172:65be27845400 1229 #define LL_ADC_OVS_RATIO_2 (0x00000000U) /*!< ADC oversampling ratio of 2 (2 ADC conversions are performed, sum of these conversions data is computed to result as the ADC oversampling conversion data (before potential shift) */
AnnaBridge 172:65be27845400 1230 #define LL_ADC_OVS_RATIO_4 ( ADC_CFGR2_OVSR_0) /*!< ADC oversampling ratio of 4 (4 ADC conversions are performed, sum of these conversions data is computed to result as the ADC oversampling conversion data (before potential shift) */
AnnaBridge 172:65be27845400 1231 #define LL_ADC_OVS_RATIO_8 ( ADC_CFGR2_OVSR_1 ) /*!< ADC oversampling ratio of 8 (8 ADC conversions are performed, sum of these conversions data is computed to result as the ADC oversampling conversion data (before potential shift) */
AnnaBridge 172:65be27845400 1232 #define LL_ADC_OVS_RATIO_16 ( ADC_CFGR2_OVSR_1 | ADC_CFGR2_OVSR_0) /*!< ADC oversampling ratio of 16 (16 ADC conversions are performed, sum of these conversions data is computed to result as the ADC oversampling conversion data (before potential shift) */
AnnaBridge 172:65be27845400 1233 #define LL_ADC_OVS_RATIO_32 (ADC_CFGR2_OVSR_2 ) /*!< ADC oversampling ratio of 32 (32 ADC conversions are performed, sum of these conversions data is computed to result as the ADC oversampling conversion data (before potential shift) */
AnnaBridge 172:65be27845400 1234 #define LL_ADC_OVS_RATIO_64 (ADC_CFGR2_OVSR_2 | ADC_CFGR2_OVSR_0) /*!< ADC oversampling ratio of 64 (64 ADC conversions are performed, sum of these conversions data is computed to result as the ADC oversampling conversion data (before potential shift) */
AnnaBridge 172:65be27845400 1235 #define LL_ADC_OVS_RATIO_128 (ADC_CFGR2_OVSR_2 | ADC_CFGR2_OVSR_1 ) /*!< ADC oversampling ratio of 128 (128 ADC conversions are performed, sum of these conversions data is computed to result as the ADC oversampling conversion data (before potential shift) */
AnnaBridge 172:65be27845400 1236 #define LL_ADC_OVS_RATIO_256 (ADC_CFGR2_OVSR_2 | ADC_CFGR2_OVSR_1 | ADC_CFGR2_OVSR_0) /*!< ADC oversampling ratio of 256 (256 ADC conversions are performed, sum of these conversions data is computed to result as the ADC oversampling conversion data (before potential shift) */
AnnaBridge 172:65be27845400 1237 /**
AnnaBridge 172:65be27845400 1238 * @}
AnnaBridge 172:65be27845400 1239 */
AnnaBridge 172:65be27845400 1240
AnnaBridge 172:65be27845400 1241 /** @defgroup ADC_LL_EC_OVS_SHIFT Oversampling - Data shift
AnnaBridge 172:65be27845400 1242 * @{
AnnaBridge 172:65be27845400 1243 */
AnnaBridge 172:65be27845400 1244 #define LL_ADC_OVS_SHIFT_NONE (0x00000000U) /*!< ADC oversampling no shift (sum of the ADC conversions data is not divided to result as the ADC oversampling conversion data) */
AnnaBridge 172:65be27845400 1245 #define LL_ADC_OVS_SHIFT_RIGHT_1 ( ADC_CFGR2_OVSS_0) /*!< ADC oversampling shift of 1 (sum of the ADC conversions data is divided by 2 to result as the ADC oversampling conversion data) */
AnnaBridge 172:65be27845400 1246 #define LL_ADC_OVS_SHIFT_RIGHT_2 ( ADC_CFGR2_OVSS_1 ) /*!< ADC oversampling shift of 2 (sum of the ADC conversions data is divided by 4 to result as the ADC oversampling conversion data) */
AnnaBridge 172:65be27845400 1247 #define LL_ADC_OVS_SHIFT_RIGHT_3 ( ADC_CFGR2_OVSS_1 | ADC_CFGR2_OVSS_0) /*!< ADC oversampling shift of 3 (sum of the ADC conversions data is divided by 8 to result as the ADC oversampling conversion data) */
AnnaBridge 172:65be27845400 1248 #define LL_ADC_OVS_SHIFT_RIGHT_4 ( ADC_CFGR2_OVSS_2 ) /*!< ADC oversampling shift of 4 (sum of the ADC conversions data is divided by 16 to result as the ADC oversampling conversion data) */
AnnaBridge 172:65be27845400 1249 #define LL_ADC_OVS_SHIFT_RIGHT_5 ( ADC_CFGR2_OVSS_2 | ADC_CFGR2_OVSS_0) /*!< ADC oversampling shift of 5 (sum of the ADC conversions data is divided by 32 to result as the ADC oversampling conversion data) */
AnnaBridge 172:65be27845400 1250 #define LL_ADC_OVS_SHIFT_RIGHT_6 ( ADC_CFGR2_OVSS_2 | ADC_CFGR2_OVSS_1 ) /*!< ADC oversampling shift of 6 (sum of the ADC conversions data is divided by 64 to result as the ADC oversampling conversion data) */
AnnaBridge 172:65be27845400 1251 #define LL_ADC_OVS_SHIFT_RIGHT_7 ( ADC_CFGR2_OVSS_2 | ADC_CFGR2_OVSS_1 | ADC_CFGR2_OVSS_0) /*!< ADC oversampling shift of 7 (sum of the ADC conversions data is divided by 128 to result as the ADC oversampling conversion data) */
AnnaBridge 172:65be27845400 1252 #define LL_ADC_OVS_SHIFT_RIGHT_8 (ADC_CFGR2_OVSS_3 ) /*!< ADC oversampling shift of 8 (sum of the ADC conversions data is divided by 256 to result as the ADC oversampling conversion data) */
AnnaBridge 172:65be27845400 1253 /**
AnnaBridge 172:65be27845400 1254 * @}
AnnaBridge 172:65be27845400 1255 */
AnnaBridge 172:65be27845400 1256
AnnaBridge 172:65be27845400 1257 #if defined(ADC_MULTIMODE_SUPPORT)
AnnaBridge 172:65be27845400 1258 /** @defgroup ADC_LL_EC_MULTI_MODE Multimode - Mode
AnnaBridge 172:65be27845400 1259 * @{
AnnaBridge 172:65be27845400 1260 */
AnnaBridge 172:65be27845400 1261 #define LL_ADC_MULTI_INDEPENDENT (0x00000000U) /*!< ADC dual mode disabled (ADC independent mode) */
AnnaBridge 172:65be27845400 1262 #define LL_ADC_MULTI_DUAL_REG_SIMULT ( ADC_CCR_DUAL_2 | ADC_CCR_DUAL_1 ) /*!< ADC dual mode enabled: group regular simultaneous */
AnnaBridge 172:65be27845400 1263 #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 */
AnnaBridge 172:65be27845400 1264 #define LL_ADC_MULTI_DUAL_INJ_SIMULT ( ADC_CCR_DUAL_2 | ADC_CCR_DUAL_0) /*!< ADC dual mode enabled: group injected simultaneous */
AnnaBridge 172:65be27845400 1265 #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) */
AnnaBridge 172:65be27845400 1266 #define LL_ADC_MULTI_DUAL_REG_SIM_INJ_SIM ( ADC_CCR_DUAL_0) /*!< ADC dual mode enabled: Combined group regular simultaneous + group injected simultaneous */
AnnaBridge 172:65be27845400 1267 #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 */
AnnaBridge 172:65be27845400 1268 #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 */
AnnaBridge 172:65be27845400 1269 /**
AnnaBridge 172:65be27845400 1270 * @}
AnnaBridge 172:65be27845400 1271 */
AnnaBridge 172:65be27845400 1272
AnnaBridge 172:65be27845400 1273 /** @defgroup ADC_LL_EC_MULTI_DMA_TRANSFER Multimode - DMA transfer
AnnaBridge 172:65be27845400 1274 * @{
AnnaBridge 172:65be27845400 1275 */
AnnaBridge 172:65be27845400 1276 #define LL_ADC_MULTI_REG_DMA_EACH_ADC (0x00000000U) /*!< ADC multimode group regular conversions are transferred by DMA: each ADC uses its own DMA channel, with its individual DMA transfer settings */
AnnaBridge 172:65be27845400 1277 #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 */
AnnaBridge 172:65be27845400 1278 #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 */
AnnaBridge 172:65be27845400 1279 #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 */
AnnaBridge 172:65be27845400 1280 #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 */
AnnaBridge 172:65be27845400 1281 /**
AnnaBridge 172:65be27845400 1282 * @}
AnnaBridge 172:65be27845400 1283 */
AnnaBridge 172:65be27845400 1284
AnnaBridge 172:65be27845400 1285 /** @defgroup ADC_LL_EC_MULTI_TWOSMP_DELAY Multimode - Delay between two sampling phases
AnnaBridge 172:65be27845400 1286 * @{
AnnaBridge 172:65be27845400 1287 */
AnnaBridge 172:65be27845400 1288 #define LL_ADC_MULTI_TWOSMP_DELAY_1CYCLE (0x00000000U) /*!< ADC multimode delay between two sampling phases: 1 ADC clock cycle */
AnnaBridge 172:65be27845400 1289 #define LL_ADC_MULTI_TWOSMP_DELAY_2CYCLES ( ADC_CCR_DELAY_0) /*!< ADC multimode delay between two sampling phases: 2 ADC clock cycles */
AnnaBridge 172:65be27845400 1290 #define LL_ADC_MULTI_TWOSMP_DELAY_3CYCLES ( ADC_CCR_DELAY_1 ) /*!< ADC multimode delay between two sampling phases: 3 ADC clock cycles */
AnnaBridge 172:65be27845400 1291 #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 */
AnnaBridge 172:65be27845400 1292 #define LL_ADC_MULTI_TWOSMP_DELAY_5CYCLES ( ADC_CCR_DELAY_2 ) /*!< ADC multimode delay between two sampling phases: 5 ADC clock cycles */
AnnaBridge 172:65be27845400 1293 #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 */
AnnaBridge 172:65be27845400 1294 #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 */
AnnaBridge 172:65be27845400 1295 #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 */
AnnaBridge 172:65be27845400 1296 #define LL_ADC_MULTI_TWOSMP_DELAY_9CYCLES (ADC_CCR_DELAY_3 ) /*!< ADC multimode delay between two sampling phases: 9 ADC clock cycles */
AnnaBridge 172:65be27845400 1297 #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 */
AnnaBridge 172:65be27845400 1298 #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 */
AnnaBridge 172:65be27845400 1299 #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 */
AnnaBridge 172:65be27845400 1300 /**
AnnaBridge 172:65be27845400 1301 * @}
AnnaBridge 172:65be27845400 1302 */
AnnaBridge 172:65be27845400 1303
AnnaBridge 172:65be27845400 1304 /** @defgroup ADC_LL_EC_MULTI_MASTER_SLAVE Multimode - ADC master or slave
AnnaBridge 172:65be27845400 1305 * @{
AnnaBridge 172:65be27845400 1306 */
AnnaBridge 172:65be27845400 1307 #define LL_ADC_MULTI_MASTER ( ADC_CDR_RDATA_MST) /*!< In multimode, selection among several ADC instances: ADC master */
AnnaBridge 172:65be27845400 1308 #define LL_ADC_MULTI_SLAVE (ADC_CDR_RDATA_SLV ) /*!< In multimode, selection among several ADC instances: ADC slave */
AnnaBridge 172:65be27845400 1309 #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 */
AnnaBridge 172:65be27845400 1310 /**
AnnaBridge 172:65be27845400 1311 * @}
AnnaBridge 172:65be27845400 1312 */
AnnaBridge 172:65be27845400 1313
AnnaBridge 172:65be27845400 1314 #endif /* ADC_MULTIMODE_SUPPORT */
AnnaBridge 172:65be27845400 1315
AnnaBridge 172:65be27845400 1316 /** @defgroup ADC_LL_EC_LEGACY ADC literals legacy naming
AnnaBridge 172:65be27845400 1317 * @{
AnnaBridge 172:65be27845400 1318 */
AnnaBridge 172:65be27845400 1319 #define LL_ADC_REG_TRIG_SW_START (LL_ADC_REG_TRIG_SOFTWARE)
AnnaBridge 172:65be27845400 1320 #define LL_ADC_REG_TRIG_EXT_TIM1_CC1 (LL_ADC_REG_TRIG_EXT_TIM1_CH1)
AnnaBridge 172:65be27845400 1321 #define LL_ADC_REG_TRIG_EXT_TIM1_CC2 (LL_ADC_REG_TRIG_EXT_TIM1_CH2)
AnnaBridge 172:65be27845400 1322 #define LL_ADC_REG_TRIG_EXT_TIM1_CC3 (LL_ADC_REG_TRIG_EXT_TIM1_CH3)
AnnaBridge 172:65be27845400 1323 #define LL_ADC_REG_TRIG_EXT_TIM2_CC2 (LL_ADC_REG_TRIG_EXT_TIM2_CH2)
AnnaBridge 172:65be27845400 1324 #define LL_ADC_REG_TRIG_EXT_TIM3_CC4 (LL_ADC_REG_TRIG_EXT_TIM3_CH4)
AnnaBridge 172:65be27845400 1325 #define LL_ADC_REG_TRIG_EXT_TIM4_CC4 (LL_ADC_REG_TRIG_EXT_TIM4_CH4)
AnnaBridge 172:65be27845400 1326
AnnaBridge 172:65be27845400 1327 #define LL_ADC_INJ_TRIG_SW_START (LL_ADC_INJ_TRIG_SOFTWARE)
AnnaBridge 172:65be27845400 1328 #define LL_ADC_INJ_TRIG_EXT_TIM1_CC4 (LL_ADC_INJ_TRIG_EXT_TIM1_CH4)
AnnaBridge 172:65be27845400 1329 #define LL_ADC_INJ_TRIG_EXT_TIM2_CC1 (LL_ADC_INJ_TRIG_EXT_TIM2_CH1)
AnnaBridge 172:65be27845400 1330 #define LL_ADC_INJ_TRIG_EXT_TIM3_CC1 (LL_ADC_INJ_TRIG_EXT_TIM3_CH1)
AnnaBridge 172:65be27845400 1331 #define LL_ADC_INJ_TRIG_EXT_TIM3_CC3 (LL_ADC_INJ_TRIG_EXT_TIM3_CH3)
AnnaBridge 172:65be27845400 1332 #define LL_ADC_INJ_TRIG_EXT_TIM3_CC4 (LL_ADC_INJ_TRIG_EXT_TIM3_CH4)
AnnaBridge 172:65be27845400 1333 #define LL_ADC_INJ_TRIG_EXT_TIM8_CC4 (LL_ADC_INJ_TRIG_EXT_TIM8_CH4)
AnnaBridge 172:65be27845400 1334
AnnaBridge 172:65be27845400 1335 #define LL_ADC_OVS_DATA_SHIFT_NONE (LL_ADC_OVS_SHIFT_NONE)
AnnaBridge 172:65be27845400 1336 #define LL_ADC_OVS_DATA_SHIFT_1 (LL_ADC_OVS_SHIFT_RIGHT_1)
AnnaBridge 172:65be27845400 1337 #define LL_ADC_OVS_DATA_SHIFT_2 (LL_ADC_OVS_SHIFT_RIGHT_2)
AnnaBridge 172:65be27845400 1338 #define LL_ADC_OVS_DATA_SHIFT_3 (LL_ADC_OVS_SHIFT_RIGHT_3)
AnnaBridge 172:65be27845400 1339 #define LL_ADC_OVS_DATA_SHIFT_4 (LL_ADC_OVS_SHIFT_RIGHT_4)
AnnaBridge 172:65be27845400 1340 #define LL_ADC_OVS_DATA_SHIFT_5 (LL_ADC_OVS_SHIFT_RIGHT_5)
AnnaBridge 172:65be27845400 1341 #define LL_ADC_OVS_DATA_SHIFT_6 (LL_ADC_OVS_SHIFT_RIGHT_6)
AnnaBridge 172:65be27845400 1342 #define LL_ADC_OVS_DATA_SHIFT_7 (LL_ADC_OVS_SHIFT_RIGHT_7)
AnnaBridge 172:65be27845400 1343 #define LL_ADC_OVS_DATA_SHIFT_8 (LL_ADC_OVS_SHIFT_RIGHT_8)
AnnaBridge 172:65be27845400 1344
AnnaBridge 172:65be27845400 1345 /**
AnnaBridge 172:65be27845400 1346 * @}
AnnaBridge 172:65be27845400 1347 */
AnnaBridge 172:65be27845400 1348
AnnaBridge 172:65be27845400 1349
AnnaBridge 172:65be27845400 1350 /** @defgroup ADC_LL_EC_HW_DELAYS Definitions of ADC hardware constraints delays
AnnaBridge 172:65be27845400 1351 * @note Only ADC IP HW delays are defined in ADC LL driver driver,
AnnaBridge 172:65be27845400 1352 * not timeout values.
AnnaBridge 172:65be27845400 1353 * For details on delays values, refer to descriptions in source code
AnnaBridge 172:65be27845400 1354 * above each literal definition.
AnnaBridge 172:65be27845400 1355 * @{
AnnaBridge 172:65be27845400 1356 */
AnnaBridge 172:65be27845400 1357
AnnaBridge 172:65be27845400 1358 /* Note: Only ADC IP HW delays are defined in ADC LL driver driver, */
AnnaBridge 172:65be27845400 1359 /* not timeout values. */
AnnaBridge 172:65be27845400 1360 /* Timeout values for ADC operations are dependent to device clock */
AnnaBridge 172:65be27845400 1361 /* configuration (system clock versus ADC clock), */
AnnaBridge 172:65be27845400 1362 /* and therefore must be defined in user application. */
AnnaBridge 172:65be27845400 1363 /* Indications for estimation of ADC timeout delays, for this */
AnnaBridge 172:65be27845400 1364 /* STM32 serie: */
AnnaBridge 172:65be27845400 1365 /* - ADC calibration time: maximum delay is 112/fADC. */
AnnaBridge 172:65be27845400 1366 /* (refer to device datasheet, parameter "tCAL") */
AnnaBridge 172:65be27845400 1367 /* - ADC enable time: maximum delay is 1 conversion cycle. */
AnnaBridge 172:65be27845400 1368 /* (refer to device datasheet, parameter "tSTAB") */
AnnaBridge 172:65be27845400 1369 /* - ADC disable time: maximum delay should be a few ADC clock cycles */
AnnaBridge 172:65be27845400 1370 /* - ADC stop conversion time: maximum delay should be a few ADC clock */
AnnaBridge 172:65be27845400 1371 /* cycles */
AnnaBridge 172:65be27845400 1372 /* - ADC conversion time: duration depending on ADC clock and ADC */
AnnaBridge 172:65be27845400 1373 /* configuration. */
AnnaBridge 172:65be27845400 1374 /* (refer to device reference manual, section "Timing") */
AnnaBridge 172:65be27845400 1375
AnnaBridge 172:65be27845400 1376 /* Delay for ADC stabilization time (ADC voltage regulator start-up time) */
AnnaBridge 172:65be27845400 1377 /* Delay set to maximum value (refer to device datasheet, */
AnnaBridge 172:65be27845400 1378 /* parameter "tADCVREG_STUP"). */
AnnaBridge 172:65be27845400 1379 /* Unit: us */
AnnaBridge 172:65be27845400 1380 #define LL_ADC_DELAY_INTERNAL_REGUL_STAB_US ( 10U) /*!< Delay for ADC stabilization time (ADC voltage regulator start-up time) */
AnnaBridge 172:65be27845400 1381
AnnaBridge 172:65be27845400 1382 /* Delay for internal voltage reference stabilization time. */
AnnaBridge 172:65be27845400 1383 /* Delay set to maximum value (refer to device datasheet, */
AnnaBridge 172:65be27845400 1384 /* parameter "tstart_vrefint"). */
AnnaBridge 172:65be27845400 1385 /* Unit: us */
AnnaBridge 172:65be27845400 1386 #define LL_ADC_DELAY_VREFINT_STAB_US ( 12U) /*!< Delay for internal voltage reference stabilization time */
AnnaBridge 172:65be27845400 1387
AnnaBridge 172:65be27845400 1388 /* Delay for temperature sensor stabilization time. */
AnnaBridge 172:65be27845400 1389 /* Literal set to maximum value (refer to device datasheet, */
AnnaBridge 172:65be27845400 1390 /* parameter "tSTART"). */
AnnaBridge 172:65be27845400 1391 /* Unit: us */
AnnaBridge 172:65be27845400 1392 #define LL_ADC_DELAY_TEMPSENSOR_STAB_US ( 120U) /*!< Delay for temperature sensor stabilization time */
AnnaBridge 172:65be27845400 1393
AnnaBridge 172:65be27845400 1394 /* Delay required between ADC end of calibration and ADC enable. */
AnnaBridge 172:65be27845400 1395 /* Note: On this STM32 serie, a minimum number of ADC clock cycles */
AnnaBridge 172:65be27845400 1396 /* are required between ADC end of calibration and ADC enable. */
AnnaBridge 172:65be27845400 1397 /* Wait time can be computed in user application by waiting for the */
AnnaBridge 172:65be27845400 1398 /* equivalent number of CPU cycles, by taking into account */
AnnaBridge 172:65be27845400 1399 /* ratio of CPU clock versus ADC clock prescalers. */
AnnaBridge 172:65be27845400 1400 /* Unit: ADC clock cycles. */
AnnaBridge 172:65be27845400 1401 #define LL_ADC_DELAY_CALIB_ENABLE_ADC_CYCLES ( 4U) /*!< Delay required between ADC end of calibration and ADC enable */
AnnaBridge 172:65be27845400 1402
AnnaBridge 172:65be27845400 1403 /**
AnnaBridge 172:65be27845400 1404 * @}
AnnaBridge 172:65be27845400 1405 */
AnnaBridge 172:65be27845400 1406
AnnaBridge 172:65be27845400 1407 /**
AnnaBridge 172:65be27845400 1408 * @}
AnnaBridge 172:65be27845400 1409 */
AnnaBridge 172:65be27845400 1410
AnnaBridge 172:65be27845400 1411
AnnaBridge 172:65be27845400 1412 /* Exported macro ------------------------------------------------------------*/
AnnaBridge 172:65be27845400 1413 /** @defgroup ADC_LL_Exported_Macros ADC Exported Macros
AnnaBridge 172:65be27845400 1414 * @{
AnnaBridge 172:65be27845400 1415 */
AnnaBridge 172:65be27845400 1416
AnnaBridge 172:65be27845400 1417 /** @defgroup ADC_LL_EM_WRITE_READ Common write and read registers Macros
AnnaBridge 172:65be27845400 1418 * @{
AnnaBridge 172:65be27845400 1419 */
AnnaBridge 172:65be27845400 1420
AnnaBridge 172:65be27845400 1421 /**
AnnaBridge 172:65be27845400 1422 * @brief Write a value in ADC register
AnnaBridge 172:65be27845400 1423 * @param __INSTANCE__ ADC Instance
AnnaBridge 172:65be27845400 1424 * @param __REG__ Register to be written
AnnaBridge 172:65be27845400 1425 * @param __VALUE__ Value to be written in the register
AnnaBridge 172:65be27845400 1426 * @retval None
AnnaBridge 172:65be27845400 1427 */
AnnaBridge 172:65be27845400 1428 #define LL_ADC_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__))
AnnaBridge 172:65be27845400 1429
AnnaBridge 172:65be27845400 1430 /**
AnnaBridge 172:65be27845400 1431 * @brief Read a value in ADC register
AnnaBridge 172:65be27845400 1432 * @param __INSTANCE__ ADC Instance
AnnaBridge 172:65be27845400 1433 * @param __REG__ Register to be read
AnnaBridge 172:65be27845400 1434 * @retval Register value
AnnaBridge 172:65be27845400 1435 */
AnnaBridge 172:65be27845400 1436 #define LL_ADC_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__)
AnnaBridge 172:65be27845400 1437 /**
AnnaBridge 172:65be27845400 1438 * @}
AnnaBridge 172:65be27845400 1439 */
AnnaBridge 172:65be27845400 1440
AnnaBridge 172:65be27845400 1441 /** @defgroup ADC_LL_EM_HELPER_MACRO ADC helper macro
AnnaBridge 172:65be27845400 1442 * @{
AnnaBridge 172:65be27845400 1443 */
AnnaBridge 172:65be27845400 1444
AnnaBridge 172:65be27845400 1445 /**
AnnaBridge 172:65be27845400 1446 * @brief Helper macro to get ADC channel number in decimal format
AnnaBridge 172:65be27845400 1447 * from literals LL_ADC_CHANNEL_x.
AnnaBridge 172:65be27845400 1448 * @note Example:
AnnaBridge 172:65be27845400 1449 * __LL_ADC_CHANNEL_TO_DECIMAL_NB(LL_ADC_CHANNEL_4)
AnnaBridge 172:65be27845400 1450 * will return decimal number "4".
AnnaBridge 172:65be27845400 1451 * @note The input can be a value from functions where a channel
AnnaBridge 172:65be27845400 1452 * number is returned, either defined with number
AnnaBridge 172:65be27845400 1453 * or with bitfield (only one bit must be set).
AnnaBridge 172:65be27845400 1454 * @param __CHANNEL__ This parameter can be one of the following values:
AnnaBridge 172:65be27845400 1455 * @arg @ref LL_ADC_CHANNEL_0
AnnaBridge 172:65be27845400 1456 * @arg @ref LL_ADC_CHANNEL_1 (7)
AnnaBridge 172:65be27845400 1457 * @arg @ref LL_ADC_CHANNEL_2 (7)
AnnaBridge 172:65be27845400 1458 * @arg @ref LL_ADC_CHANNEL_3 (7)
AnnaBridge 172:65be27845400 1459 * @arg @ref LL_ADC_CHANNEL_4 (7)
AnnaBridge 172:65be27845400 1460 * @arg @ref LL_ADC_CHANNEL_5 (7)
AnnaBridge 172:65be27845400 1461 * @arg @ref LL_ADC_CHANNEL_6
AnnaBridge 172:65be27845400 1462 * @arg @ref LL_ADC_CHANNEL_7
AnnaBridge 172:65be27845400 1463 * @arg @ref LL_ADC_CHANNEL_8
AnnaBridge 172:65be27845400 1464 * @arg @ref LL_ADC_CHANNEL_9
AnnaBridge 172:65be27845400 1465 * @arg @ref LL_ADC_CHANNEL_10
AnnaBridge 172:65be27845400 1466 * @arg @ref LL_ADC_CHANNEL_11
AnnaBridge 172:65be27845400 1467 * @arg @ref LL_ADC_CHANNEL_12
AnnaBridge 172:65be27845400 1468 * @arg @ref LL_ADC_CHANNEL_13
AnnaBridge 172:65be27845400 1469 * @arg @ref LL_ADC_CHANNEL_14
AnnaBridge 172:65be27845400 1470 * @arg @ref LL_ADC_CHANNEL_15
AnnaBridge 172:65be27845400 1471 * @arg @ref LL_ADC_CHANNEL_16
AnnaBridge 172:65be27845400 1472 * @arg @ref LL_ADC_CHANNEL_17
AnnaBridge 172:65be27845400 1473 * @arg @ref LL_ADC_CHANNEL_18
AnnaBridge 172:65be27845400 1474 * @arg @ref LL_ADC_CHANNEL_VREFINT (1)
AnnaBridge 172:65be27845400 1475 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (4)
AnnaBridge 172:65be27845400 1476 * @arg @ref LL_ADC_CHANNEL_VBAT (4)
AnnaBridge 172:65be27845400 1477 * @arg @ref LL_ADC_CHANNEL_DAC1CH1 (5)
AnnaBridge 172:65be27845400 1478 * @arg @ref LL_ADC_CHANNEL_DAC1CH2 (5)
AnnaBridge 172:65be27845400 1479 * @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC2 (2)(6)
AnnaBridge 172:65be27845400 1480 * @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC2 (2)(6)
AnnaBridge 172:65be27845400 1481 * @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC3 (3)(6)
AnnaBridge 172:65be27845400 1482 * @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC3 (3)(6)
AnnaBridge 172:65be27845400 1483 *
AnnaBridge 172:65be27845400 1484 * (1) On STM32L4, parameter available only on ADC instance: ADC1.\n
AnnaBridge 172:65be27845400 1485 * (2) On STM32L4, parameter available only on ADC instance: ADC2.\n
AnnaBridge 172:65be27845400 1486 * (3) On STM32L4, parameter available only on ADC instance: ADC3.\n
AnnaBridge 172:65be27845400 1487 * (4) On STM32L4, parameter available only on ADC instances: ADC1, ADC3.\n
AnnaBridge 172:65be27845400 1488 * (5) On STM32L4, parameter available on devices with only 1 ADC instance.\n
AnnaBridge 172:65be27845400 1489 * (6) On STM32L4, parameter available on devices with several ADC instances.\n
AnnaBridge 172:65be27845400 1490 * (7) On STM32L4, fast channel (0.188 us for 12-bit resolution (ADC conversion rate up to 5.33 Ms/s)).
AnnaBridge 172:65be27845400 1491 * Other channels are slow channels (0.238 us for 12-bit resolution (ADC conversion rate up to 4.21 Ms/s)).
AnnaBridge 172:65be27845400 1492 * @retval Value between Min_Data=0 and Max_Data=18
AnnaBridge 172:65be27845400 1493 */
AnnaBridge 172:65be27845400 1494 #define __LL_ADC_CHANNEL_TO_DECIMAL_NB(__CHANNEL__) \
AnnaBridge 172:65be27845400 1495 ((((__CHANNEL__) & ADC_CHANNEL_ID_BITFIELD_MASK) == 0U) \
AnnaBridge 172:65be27845400 1496 ? ( \
AnnaBridge 172:65be27845400 1497 ((__CHANNEL__) & ADC_CHANNEL_ID_NUMBER_MASK) >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS \
AnnaBridge 172:65be27845400 1498 ) \
AnnaBridge 172:65be27845400 1499 : \
AnnaBridge 172:65be27845400 1500 ( \
AnnaBridge 172:65be27845400 1501 POSITION_VAL((__CHANNEL__)) \
AnnaBridge 172:65be27845400 1502 ) \
AnnaBridge 172:65be27845400 1503 )
AnnaBridge 172:65be27845400 1504
AnnaBridge 172:65be27845400 1505 /**
AnnaBridge 172:65be27845400 1506 * @brief Helper macro to get ADC channel in literal format LL_ADC_CHANNEL_x
AnnaBridge 172:65be27845400 1507 * from number in decimal format.
AnnaBridge 172:65be27845400 1508 * @note Example:
AnnaBridge 172:65be27845400 1509 * __LL_ADC_DECIMAL_NB_TO_CHANNEL(4)
AnnaBridge 172:65be27845400 1510 * will return a data equivalent to "LL_ADC_CHANNEL_4".
AnnaBridge 172:65be27845400 1511 * @param __DECIMAL_NB__ Value between Min_Data=0 and Max_Data=18
AnnaBridge 172:65be27845400 1512 * @retval Returned value can be one of the following values:
AnnaBridge 172:65be27845400 1513 * @arg @ref LL_ADC_CHANNEL_0
AnnaBridge 172:65be27845400 1514 * @arg @ref LL_ADC_CHANNEL_1 (7)
AnnaBridge 172:65be27845400 1515 * @arg @ref LL_ADC_CHANNEL_2 (7)
AnnaBridge 172:65be27845400 1516 * @arg @ref LL_ADC_CHANNEL_3 (7)
AnnaBridge 172:65be27845400 1517 * @arg @ref LL_ADC_CHANNEL_4 (7)
AnnaBridge 172:65be27845400 1518 * @arg @ref LL_ADC_CHANNEL_5 (7)
AnnaBridge 172:65be27845400 1519 * @arg @ref LL_ADC_CHANNEL_6
AnnaBridge 172:65be27845400 1520 * @arg @ref LL_ADC_CHANNEL_7
AnnaBridge 172:65be27845400 1521 * @arg @ref LL_ADC_CHANNEL_8
AnnaBridge 172:65be27845400 1522 * @arg @ref LL_ADC_CHANNEL_9
AnnaBridge 172:65be27845400 1523 * @arg @ref LL_ADC_CHANNEL_10
AnnaBridge 172:65be27845400 1524 * @arg @ref LL_ADC_CHANNEL_11
AnnaBridge 172:65be27845400 1525 * @arg @ref LL_ADC_CHANNEL_12
AnnaBridge 172:65be27845400 1526 * @arg @ref LL_ADC_CHANNEL_13
AnnaBridge 172:65be27845400 1527 * @arg @ref LL_ADC_CHANNEL_14
AnnaBridge 172:65be27845400 1528 * @arg @ref LL_ADC_CHANNEL_15
AnnaBridge 172:65be27845400 1529 * @arg @ref LL_ADC_CHANNEL_16
AnnaBridge 172:65be27845400 1530 * @arg @ref LL_ADC_CHANNEL_17
AnnaBridge 172:65be27845400 1531 * @arg @ref LL_ADC_CHANNEL_18
AnnaBridge 172:65be27845400 1532 * @arg @ref LL_ADC_CHANNEL_VREFINT (1)
AnnaBridge 172:65be27845400 1533 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (4)
AnnaBridge 172:65be27845400 1534 * @arg @ref LL_ADC_CHANNEL_VBAT (4)
AnnaBridge 172:65be27845400 1535 * @arg @ref LL_ADC_CHANNEL_DAC1CH1 (5)
AnnaBridge 172:65be27845400 1536 * @arg @ref LL_ADC_CHANNEL_DAC1CH2 (5)
AnnaBridge 172:65be27845400 1537 * @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC2 (2)(6)
AnnaBridge 172:65be27845400 1538 * @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC2 (2)(6)
AnnaBridge 172:65be27845400 1539 * @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC3 (3)(6)
AnnaBridge 172:65be27845400 1540 * @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC3 (3)(6)
AnnaBridge 172:65be27845400 1541 *
AnnaBridge 172:65be27845400 1542 * (1) On STM32L4, parameter available only on ADC instance: ADC1.\n
AnnaBridge 172:65be27845400 1543 * (2) On STM32L4, parameter available only on ADC instance: ADC2.\n
AnnaBridge 172:65be27845400 1544 * (3) On STM32L4, parameter available only on ADC instance: ADC3.\n
AnnaBridge 172:65be27845400 1545 * (4) On STM32L4, parameter available only on ADC instances: ADC1, ADC3.\n
AnnaBridge 172:65be27845400 1546 * (5) On STM32L4, parameter available on devices with only 1 ADC instance.\n
AnnaBridge 172:65be27845400 1547 * (6) On STM32L4, parameter available on devices with several ADC instances.\n
AnnaBridge 172:65be27845400 1548 * (7) On STM32L4, fast channel (0.188 us for 12-bit resolution (ADC conversion rate up to 5.33 Ms/s)).
AnnaBridge 172:65be27845400 1549 * Other channels are slow channels (0.238 us for 12-bit resolution (ADC conversion rate up to 4.21 Ms/s)).\n
AnnaBridge 172:65be27845400 1550 * (1, 2, 3, 4) For ADC channel read back from ADC register,
AnnaBridge 172:65be27845400 1551 * comparison with internal channel parameter to be done
AnnaBridge 172:65be27845400 1552 * using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL().
AnnaBridge 172:65be27845400 1553 */
AnnaBridge 172:65be27845400 1554 #define __LL_ADC_DECIMAL_NB_TO_CHANNEL(__DECIMAL_NB__) \
AnnaBridge 172:65be27845400 1555 (((__DECIMAL_NB__) <= 9U) \
AnnaBridge 172:65be27845400 1556 ? ( \
AnnaBridge 172:65be27845400 1557 ((__DECIMAL_NB__) << ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) | \
AnnaBridge 172:65be27845400 1558 (ADC_AWD2CR_AWD2CH_0 << (__DECIMAL_NB__)) | \
AnnaBridge 172:65be27845400 1559 (ADC_SMPR1_REGOFFSET | (((uint32_t) (3U * (__DECIMAL_NB__))) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) \
AnnaBridge 172:65be27845400 1560 ) \
AnnaBridge 172:65be27845400 1561 : \
AnnaBridge 172:65be27845400 1562 ( \
AnnaBridge 172:65be27845400 1563 ((__DECIMAL_NB__) << ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) | \
AnnaBridge 172:65be27845400 1564 (ADC_AWD2CR_AWD2CH_0 << (__DECIMAL_NB__)) | \
AnnaBridge 172:65be27845400 1565 (ADC_SMPR2_REGOFFSET | (((uint32_t) (3U * ((__DECIMAL_NB__) - 10U))) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) \
AnnaBridge 172:65be27845400 1566 ) \
AnnaBridge 172:65be27845400 1567 )
AnnaBridge 172:65be27845400 1568
AnnaBridge 172:65be27845400 1569 /**
AnnaBridge 172:65be27845400 1570 * @brief Helper macro to determine whether the selected channel
AnnaBridge 172:65be27845400 1571 * corresponds to literal definitions of driver.
AnnaBridge 172:65be27845400 1572 * @note The different literal definitions of ADC channels are:
AnnaBridge 172:65be27845400 1573 * - ADC internal channel:
AnnaBridge 172:65be27845400 1574 * LL_ADC_CHANNEL_VREFINT, LL_ADC_CHANNEL_TEMPSENSOR, ...
AnnaBridge 172:65be27845400 1575 * - ADC external channel (channel connected to a GPIO pin):
AnnaBridge 172:65be27845400 1576 * LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...
AnnaBridge 172:65be27845400 1577 * @note The channel parameter must be a value defined from literal
AnnaBridge 172:65be27845400 1578 * definition of a ADC internal channel (LL_ADC_CHANNEL_VREFINT,
AnnaBridge 172:65be27845400 1579 * LL_ADC_CHANNEL_TEMPSENSOR, ...),
AnnaBridge 172:65be27845400 1580 * ADC external channel (LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...),
AnnaBridge 172:65be27845400 1581 * must not be a value from functions where a channel number is
AnnaBridge 172:65be27845400 1582 * returned from ADC registers,
AnnaBridge 172:65be27845400 1583 * because internal and external channels share the same channel
AnnaBridge 172:65be27845400 1584 * number in ADC registers. The differentiation is made only with
AnnaBridge 172:65be27845400 1585 * parameters definitions of driver.
AnnaBridge 172:65be27845400 1586 * @param __CHANNEL__ This parameter can be one of the following values:
AnnaBridge 172:65be27845400 1587 * @arg @ref LL_ADC_CHANNEL_0
AnnaBridge 172:65be27845400 1588 * @arg @ref LL_ADC_CHANNEL_1 (7)
AnnaBridge 172:65be27845400 1589 * @arg @ref LL_ADC_CHANNEL_2 (7)
AnnaBridge 172:65be27845400 1590 * @arg @ref LL_ADC_CHANNEL_3 (7)
AnnaBridge 172:65be27845400 1591 * @arg @ref LL_ADC_CHANNEL_4 (7)
AnnaBridge 172:65be27845400 1592 * @arg @ref LL_ADC_CHANNEL_5 (7)
AnnaBridge 172:65be27845400 1593 * @arg @ref LL_ADC_CHANNEL_6
AnnaBridge 172:65be27845400 1594 * @arg @ref LL_ADC_CHANNEL_7
AnnaBridge 172:65be27845400 1595 * @arg @ref LL_ADC_CHANNEL_8
AnnaBridge 172:65be27845400 1596 * @arg @ref LL_ADC_CHANNEL_9
AnnaBridge 172:65be27845400 1597 * @arg @ref LL_ADC_CHANNEL_10
AnnaBridge 172:65be27845400 1598 * @arg @ref LL_ADC_CHANNEL_11
AnnaBridge 172:65be27845400 1599 * @arg @ref LL_ADC_CHANNEL_12
AnnaBridge 172:65be27845400 1600 * @arg @ref LL_ADC_CHANNEL_13
AnnaBridge 172:65be27845400 1601 * @arg @ref LL_ADC_CHANNEL_14
AnnaBridge 172:65be27845400 1602 * @arg @ref LL_ADC_CHANNEL_15
AnnaBridge 172:65be27845400 1603 * @arg @ref LL_ADC_CHANNEL_16
AnnaBridge 172:65be27845400 1604 * @arg @ref LL_ADC_CHANNEL_17
AnnaBridge 172:65be27845400 1605 * @arg @ref LL_ADC_CHANNEL_18
AnnaBridge 172:65be27845400 1606 * @arg @ref LL_ADC_CHANNEL_VREFINT (1)
AnnaBridge 172:65be27845400 1607 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (4)
AnnaBridge 172:65be27845400 1608 * @arg @ref LL_ADC_CHANNEL_VBAT (4)
AnnaBridge 172:65be27845400 1609 * @arg @ref LL_ADC_CHANNEL_DAC1CH1 (5)
AnnaBridge 172:65be27845400 1610 * @arg @ref LL_ADC_CHANNEL_DAC1CH2 (5)
AnnaBridge 172:65be27845400 1611 * @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC2 (2)(6)
AnnaBridge 172:65be27845400 1612 * @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC2 (2)(6)
AnnaBridge 172:65be27845400 1613 * @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC3 (3)(6)
AnnaBridge 172:65be27845400 1614 * @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC3 (3)(6)
AnnaBridge 172:65be27845400 1615 *
AnnaBridge 172:65be27845400 1616 * (1) On STM32L4, parameter available only on ADC instance: ADC1.\n
AnnaBridge 172:65be27845400 1617 * (2) On STM32L4, parameter available only on ADC instance: ADC2.\n
AnnaBridge 172:65be27845400 1618 * (3) On STM32L4, parameter available only on ADC instance: ADC3.\n
AnnaBridge 172:65be27845400 1619 * (4) On STM32L4, parameter available only on ADC instances: ADC1, ADC3.\n
AnnaBridge 172:65be27845400 1620 * (5) On STM32L4, parameter available on devices with only 1 ADC instance.\n
AnnaBridge 172:65be27845400 1621 * (6) On STM32L4, parameter available on devices with several ADC instances.\n
AnnaBridge 172:65be27845400 1622 * (7) On STM32L4, fast channel (0.188 us for 12-bit resolution (ADC conversion rate up to 5.33 Ms/s)).
AnnaBridge 172:65be27845400 1623 * Other channels are slow channels (0.238 us for 12-bit resolution (ADC conversion rate up to 4.21 Ms/s)).
AnnaBridge 172:65be27845400 1624 * @retval Value "0" if the channel corresponds to a parameter definition of a ADC external channel (channel connected to a GPIO pin).
AnnaBridge 172:65be27845400 1625 * Value "1" if the channel corresponds to a parameter definition of a ADC internal channel.
AnnaBridge 172:65be27845400 1626 */
AnnaBridge 172:65be27845400 1627 #define __LL_ADC_IS_CHANNEL_INTERNAL(__CHANNEL__) \
AnnaBridge 172:65be27845400 1628 (((__CHANNEL__) & ADC_CHANNEL_ID_INTERNAL_CH_MASK) != 0U)
AnnaBridge 172:65be27845400 1629
AnnaBridge 172:65be27845400 1630 /**
AnnaBridge 172:65be27845400 1631 * @brief Helper macro to convert a channel defined from parameter
AnnaBridge 172:65be27845400 1632 * definition of a ADC internal channel (LL_ADC_CHANNEL_VREFINT,
AnnaBridge 172:65be27845400 1633 * LL_ADC_CHANNEL_TEMPSENSOR, ...),
AnnaBridge 172:65be27845400 1634 * to its equivalent parameter definition of a ADC external channel
AnnaBridge 172:65be27845400 1635 * (LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...).
AnnaBridge 172:65be27845400 1636 * @note The channel parameter can be, additionally to a value
AnnaBridge 172:65be27845400 1637 * defined from parameter definition of a ADC internal channel
AnnaBridge 172:65be27845400 1638 * (LL_ADC_CHANNEL_VREFINT, LL_ADC_CHANNEL_TEMPSENSOR, ...),
AnnaBridge 172:65be27845400 1639 * a value defined from parameter definition of
AnnaBridge 172:65be27845400 1640 * ADC external channel (LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...)
AnnaBridge 172:65be27845400 1641 * or a value from functions where a channel number is returned
AnnaBridge 172:65be27845400 1642 * from ADC registers.
AnnaBridge 172:65be27845400 1643 * @param __CHANNEL__ This parameter can be one of the following values:
AnnaBridge 172:65be27845400 1644 * @arg @ref LL_ADC_CHANNEL_0
AnnaBridge 172:65be27845400 1645 * @arg @ref LL_ADC_CHANNEL_1 (7)
AnnaBridge 172:65be27845400 1646 * @arg @ref LL_ADC_CHANNEL_2 (7)
AnnaBridge 172:65be27845400 1647 * @arg @ref LL_ADC_CHANNEL_3 (7)
AnnaBridge 172:65be27845400 1648 * @arg @ref LL_ADC_CHANNEL_4 (7)
AnnaBridge 172:65be27845400 1649 * @arg @ref LL_ADC_CHANNEL_5 (7)
AnnaBridge 172:65be27845400 1650 * @arg @ref LL_ADC_CHANNEL_6
AnnaBridge 172:65be27845400 1651 * @arg @ref LL_ADC_CHANNEL_7
AnnaBridge 172:65be27845400 1652 * @arg @ref LL_ADC_CHANNEL_8
AnnaBridge 172:65be27845400 1653 * @arg @ref LL_ADC_CHANNEL_9
AnnaBridge 172:65be27845400 1654 * @arg @ref LL_ADC_CHANNEL_10
AnnaBridge 172:65be27845400 1655 * @arg @ref LL_ADC_CHANNEL_11
AnnaBridge 172:65be27845400 1656 * @arg @ref LL_ADC_CHANNEL_12
AnnaBridge 172:65be27845400 1657 * @arg @ref LL_ADC_CHANNEL_13
AnnaBridge 172:65be27845400 1658 * @arg @ref LL_ADC_CHANNEL_14
AnnaBridge 172:65be27845400 1659 * @arg @ref LL_ADC_CHANNEL_15
AnnaBridge 172:65be27845400 1660 * @arg @ref LL_ADC_CHANNEL_16
AnnaBridge 172:65be27845400 1661 * @arg @ref LL_ADC_CHANNEL_17
AnnaBridge 172:65be27845400 1662 * @arg @ref LL_ADC_CHANNEL_18
AnnaBridge 172:65be27845400 1663 * @arg @ref LL_ADC_CHANNEL_VREFINT (1)
AnnaBridge 172:65be27845400 1664 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (4)
AnnaBridge 172:65be27845400 1665 * @arg @ref LL_ADC_CHANNEL_VBAT (4)
AnnaBridge 172:65be27845400 1666 * @arg @ref LL_ADC_CHANNEL_DAC1CH1 (5)
AnnaBridge 172:65be27845400 1667 * @arg @ref LL_ADC_CHANNEL_DAC1CH2 (5)
AnnaBridge 172:65be27845400 1668 * @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC2 (2)(6)
AnnaBridge 172:65be27845400 1669 * @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC2 (2)(6)
AnnaBridge 172:65be27845400 1670 * @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC3 (3)(6)
AnnaBridge 172:65be27845400 1671 * @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC3 (3)(6)
AnnaBridge 172:65be27845400 1672 *
AnnaBridge 172:65be27845400 1673 * (1) On STM32L4, parameter available only on ADC instance: ADC1.\n
AnnaBridge 172:65be27845400 1674 * (2) On STM32L4, parameter available only on ADC instance: ADC2.\n
AnnaBridge 172:65be27845400 1675 * (3) On STM32L4, parameter available only on ADC instance: ADC3.\n
AnnaBridge 172:65be27845400 1676 * (4) On STM32L4, parameter available only on ADC instances: ADC1, ADC3.\n
AnnaBridge 172:65be27845400 1677 * (5) On STM32L4, parameter available on devices with only 1 ADC instance.\n
AnnaBridge 172:65be27845400 1678 * (6) On STM32L4, parameter available on devices with several ADC instances.\n
AnnaBridge 172:65be27845400 1679 * (7) On STM32L4, fast channel (0.188 us for 12-bit resolution (ADC conversion rate up to 5.33 Ms/s)).
AnnaBridge 172:65be27845400 1680 * Other channels are slow channels (0.238 us for 12-bit resolution (ADC conversion rate up to 4.21 Ms/s)).
AnnaBridge 172:65be27845400 1681 * @retval Returned value can be one of the following values:
AnnaBridge 172:65be27845400 1682 * @arg @ref LL_ADC_CHANNEL_0
AnnaBridge 172:65be27845400 1683 * @arg @ref LL_ADC_CHANNEL_1
AnnaBridge 172:65be27845400 1684 * @arg @ref LL_ADC_CHANNEL_2
AnnaBridge 172:65be27845400 1685 * @arg @ref LL_ADC_CHANNEL_3
AnnaBridge 172:65be27845400 1686 * @arg @ref LL_ADC_CHANNEL_4
AnnaBridge 172:65be27845400 1687 * @arg @ref LL_ADC_CHANNEL_5
AnnaBridge 172:65be27845400 1688 * @arg @ref LL_ADC_CHANNEL_6
AnnaBridge 172:65be27845400 1689 * @arg @ref LL_ADC_CHANNEL_7
AnnaBridge 172:65be27845400 1690 * @arg @ref LL_ADC_CHANNEL_8
AnnaBridge 172:65be27845400 1691 * @arg @ref LL_ADC_CHANNEL_9
AnnaBridge 172:65be27845400 1692 * @arg @ref LL_ADC_CHANNEL_10
AnnaBridge 172:65be27845400 1693 * @arg @ref LL_ADC_CHANNEL_11
AnnaBridge 172:65be27845400 1694 * @arg @ref LL_ADC_CHANNEL_12
AnnaBridge 172:65be27845400 1695 * @arg @ref LL_ADC_CHANNEL_13
AnnaBridge 172:65be27845400 1696 * @arg @ref LL_ADC_CHANNEL_14
AnnaBridge 172:65be27845400 1697 * @arg @ref LL_ADC_CHANNEL_15
AnnaBridge 172:65be27845400 1698 * @arg @ref LL_ADC_CHANNEL_16
AnnaBridge 172:65be27845400 1699 * @arg @ref LL_ADC_CHANNEL_17
AnnaBridge 172:65be27845400 1700 * @arg @ref LL_ADC_CHANNEL_18
AnnaBridge 172:65be27845400 1701 */
AnnaBridge 172:65be27845400 1702 #define __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL(__CHANNEL__) \
AnnaBridge 172:65be27845400 1703 ((__CHANNEL__) & ~ADC_CHANNEL_ID_INTERNAL_CH_MASK)
AnnaBridge 172:65be27845400 1704
AnnaBridge 172:65be27845400 1705 /**
AnnaBridge 172:65be27845400 1706 * @brief Helper macro to determine whether the internal channel
AnnaBridge 172:65be27845400 1707 * selected is available on the ADC instance selected.
AnnaBridge 172:65be27845400 1708 * @note The channel parameter must be a value defined from parameter
AnnaBridge 172:65be27845400 1709 * definition of a ADC internal channel (LL_ADC_CHANNEL_VREFINT,
AnnaBridge 172:65be27845400 1710 * LL_ADC_CHANNEL_TEMPSENSOR, ...),
AnnaBridge 172:65be27845400 1711 * must not be a value defined from parameter definition of
AnnaBridge 172:65be27845400 1712 * ADC external channel (LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...)
AnnaBridge 172:65be27845400 1713 * or a value from functions where a channel number is
AnnaBridge 172:65be27845400 1714 * returned from ADC registers,
AnnaBridge 172:65be27845400 1715 * because internal and external channels share the same channel
AnnaBridge 172:65be27845400 1716 * number in ADC registers. The differentiation is made only with
AnnaBridge 172:65be27845400 1717 * parameters definitions of driver.
AnnaBridge 172:65be27845400 1718 * @param __ADC_INSTANCE__ ADC instance
AnnaBridge 172:65be27845400 1719 * @param __CHANNEL__ This parameter can be one of the following values:
AnnaBridge 172:65be27845400 1720 * @arg @ref LL_ADC_CHANNEL_VREFINT (1)
AnnaBridge 172:65be27845400 1721 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (4)
AnnaBridge 172:65be27845400 1722 * @arg @ref LL_ADC_CHANNEL_VBAT (4)
AnnaBridge 172:65be27845400 1723 * @arg @ref LL_ADC_CHANNEL_DAC1CH1 (5)
AnnaBridge 172:65be27845400 1724 * @arg @ref LL_ADC_CHANNEL_DAC1CH2 (5)
AnnaBridge 172:65be27845400 1725 * @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC2 (2)(6)
AnnaBridge 172:65be27845400 1726 * @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC2 (2)(6)
AnnaBridge 172:65be27845400 1727 * @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC3 (3)(6)
AnnaBridge 172:65be27845400 1728 * @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC3 (3)(6)
AnnaBridge 172:65be27845400 1729 *
AnnaBridge 172:65be27845400 1730 * (1) On STM32L4, parameter available only on ADC instance: ADC1.\n
AnnaBridge 172:65be27845400 1731 * (2) On STM32L4, parameter available only on ADC instance: ADC2.\n
AnnaBridge 172:65be27845400 1732 * (3) On STM32L4, parameter available only on ADC instance: ADC3.\n
AnnaBridge 172:65be27845400 1733 * (4) On STM32L4, parameter available only on ADC instances: ADC1, ADC3.\n
AnnaBridge 172:65be27845400 1734 * (5) On STM32L4, parameter available on devices with only 1 ADC instance.\n
AnnaBridge 172:65be27845400 1735 * (6) On STM32L4, parameter available on devices with several ADC instances.
AnnaBridge 172:65be27845400 1736 * @retval Value "0" if the internal channel selected is not available on the ADC instance selected.
AnnaBridge 172:65be27845400 1737 * Value "1" if the internal channel selected is available on the ADC instance selected.
AnnaBridge 172:65be27845400 1738 */
AnnaBridge 172:65be27845400 1739 #if defined (ADC1) && defined (ADC2) && defined (ADC3)
AnnaBridge 172:65be27845400 1740 #define __LL_ADC_IS_CHANNEL_INTERNAL_AVAILABLE(__ADC_INSTANCE__, __CHANNEL__) \
AnnaBridge 172:65be27845400 1741 (((__ADC_INSTANCE__) == ADC1) \
AnnaBridge 172:65be27845400 1742 ? ( \
AnnaBridge 172:65be27845400 1743 ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) || \
AnnaBridge 172:65be27845400 1744 ((__CHANNEL__) == LL_ADC_CHANNEL_TEMPSENSOR) || \
AnnaBridge 172:65be27845400 1745 ((__CHANNEL__) == LL_ADC_CHANNEL_VBAT) \
AnnaBridge 172:65be27845400 1746 ) \
AnnaBridge 172:65be27845400 1747 : \
AnnaBridge 172:65be27845400 1748 ((__ADC_INSTANCE__) == ADC2) \
AnnaBridge 172:65be27845400 1749 ? ( \
AnnaBridge 172:65be27845400 1750 ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) || \
AnnaBridge 172:65be27845400 1751 ((__CHANNEL__) == LL_ADC_CHANNEL_DAC1CH1_ADC2) || \
AnnaBridge 172:65be27845400 1752 ((__CHANNEL__) == LL_ADC_CHANNEL_DAC1CH2_ADC2) \
AnnaBridge 172:65be27845400 1753 ) \
AnnaBridge 172:65be27845400 1754 : \
AnnaBridge 172:65be27845400 1755 ((__ADC_INSTANCE__) == ADC3) \
AnnaBridge 172:65be27845400 1756 ? ( \
AnnaBridge 172:65be27845400 1757 ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) || \
AnnaBridge 172:65be27845400 1758 ((__CHANNEL__) == LL_ADC_CHANNEL_TEMPSENSOR) || \
AnnaBridge 172:65be27845400 1759 ((__CHANNEL__) == LL_ADC_CHANNEL_VBAT) || \
AnnaBridge 172:65be27845400 1760 ((__CHANNEL__) == LL_ADC_CHANNEL_DAC1CH1_ADC3) || \
AnnaBridge 172:65be27845400 1761 ((__CHANNEL__) == LL_ADC_CHANNEL_DAC1CH2_ADC3) \
AnnaBridge 172:65be27845400 1762 ) \
AnnaBridge 172:65be27845400 1763 : \
AnnaBridge 172:65be27845400 1764 (0U) \
AnnaBridge 172:65be27845400 1765 )
AnnaBridge 172:65be27845400 1766 #elif defined (ADC1) && defined (ADC2)
AnnaBridge 172:65be27845400 1767 #define __LL_ADC_IS_CHANNEL_INTERNAL_AVAILABLE(__ADC_INSTANCE__, __CHANNEL__) \
AnnaBridge 172:65be27845400 1768 (((__ADC_INSTANCE__) == ADC1) \
AnnaBridge 172:65be27845400 1769 ? ( \
AnnaBridge 172:65be27845400 1770 ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) || \
AnnaBridge 172:65be27845400 1771 ((__CHANNEL__) == LL_ADC_CHANNEL_TEMPSENSOR) || \
AnnaBridge 172:65be27845400 1772 ((__CHANNEL__) == LL_ADC_CHANNEL_VBAT) \
AnnaBridge 172:65be27845400 1773 ) \
AnnaBridge 172:65be27845400 1774 : \
AnnaBridge 172:65be27845400 1775 ((__ADC_INSTANCE__) == ADC2) \
AnnaBridge 172:65be27845400 1776 ? ( \
AnnaBridge 172:65be27845400 1777 ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) || \
AnnaBridge 172:65be27845400 1778 ((__CHANNEL__) == LL_ADC_CHANNEL_DAC1CH1_ADC2) || \
AnnaBridge 172:65be27845400 1779 ((__CHANNEL__) == LL_ADC_CHANNEL_DAC1CH2_ADC2) \
AnnaBridge 172:65be27845400 1780 ) \
AnnaBridge 172:65be27845400 1781 : \
AnnaBridge 172:65be27845400 1782 (0U) \
AnnaBridge 172:65be27845400 1783 )
AnnaBridge 172:65be27845400 1784 #elif defined (ADC1)
AnnaBridge 172:65be27845400 1785 #define __LL_ADC_IS_CHANNEL_INTERNAL_AVAILABLE(__ADC_INSTANCE__, __CHANNEL__) \
AnnaBridge 172:65be27845400 1786 ( \
AnnaBridge 172:65be27845400 1787 ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) || \
AnnaBridge 172:65be27845400 1788 ((__CHANNEL__) == LL_ADC_CHANNEL_TEMPSENSOR) || \
AnnaBridge 172:65be27845400 1789 ((__CHANNEL__) == LL_ADC_CHANNEL_VBAT) || \
AnnaBridge 172:65be27845400 1790 ((__CHANNEL__) == LL_ADC_CHANNEL_DAC1CH1) || \
AnnaBridge 172:65be27845400 1791 ((__CHANNEL__) == LL_ADC_CHANNEL_DAC1CH2) \
AnnaBridge 172:65be27845400 1792 )
AnnaBridge 172:65be27845400 1793 #endif
AnnaBridge 172:65be27845400 1794
AnnaBridge 172:65be27845400 1795 /**
AnnaBridge 172:65be27845400 1796 * @brief Helper macro to define ADC analog watchdog parameter:
AnnaBridge 172:65be27845400 1797 * define a single channel to monitor with analog watchdog
AnnaBridge 172:65be27845400 1798 * from sequencer channel and groups definition.
AnnaBridge 172:65be27845400 1799 * @note To be used with function @ref LL_ADC_SetAnalogWDMonitChannels().
AnnaBridge 172:65be27845400 1800 * Example:
AnnaBridge 172:65be27845400 1801 * LL_ADC_SetAnalogWDMonitChannels(
AnnaBridge 172:65be27845400 1802 * ADC1, LL_ADC_AWD1,
AnnaBridge 172:65be27845400 1803 * __LL_ADC_ANALOGWD_CHANNEL_GROUP(LL_ADC_CHANNEL4, LL_ADC_GROUP_REGULAR))
AnnaBridge 172:65be27845400 1804 * @param __CHANNEL__ This parameter can be one of the following values:
AnnaBridge 172:65be27845400 1805 * @arg @ref LL_ADC_CHANNEL_0
AnnaBridge 172:65be27845400 1806 * @arg @ref LL_ADC_CHANNEL_1 (7)
AnnaBridge 172:65be27845400 1807 * @arg @ref LL_ADC_CHANNEL_2 (7)
AnnaBridge 172:65be27845400 1808 * @arg @ref LL_ADC_CHANNEL_3 (7)
AnnaBridge 172:65be27845400 1809 * @arg @ref LL_ADC_CHANNEL_4 (7)
AnnaBridge 172:65be27845400 1810 * @arg @ref LL_ADC_CHANNEL_5 (7)
AnnaBridge 172:65be27845400 1811 * @arg @ref LL_ADC_CHANNEL_6
AnnaBridge 172:65be27845400 1812 * @arg @ref LL_ADC_CHANNEL_7
AnnaBridge 172:65be27845400 1813 * @arg @ref LL_ADC_CHANNEL_8
AnnaBridge 172:65be27845400 1814 * @arg @ref LL_ADC_CHANNEL_9
AnnaBridge 172:65be27845400 1815 * @arg @ref LL_ADC_CHANNEL_10
AnnaBridge 172:65be27845400 1816 * @arg @ref LL_ADC_CHANNEL_11
AnnaBridge 172:65be27845400 1817 * @arg @ref LL_ADC_CHANNEL_12
AnnaBridge 172:65be27845400 1818 * @arg @ref LL_ADC_CHANNEL_13
AnnaBridge 172:65be27845400 1819 * @arg @ref LL_ADC_CHANNEL_14
AnnaBridge 172:65be27845400 1820 * @arg @ref LL_ADC_CHANNEL_15
AnnaBridge 172:65be27845400 1821 * @arg @ref LL_ADC_CHANNEL_16
AnnaBridge 172:65be27845400 1822 * @arg @ref LL_ADC_CHANNEL_17
AnnaBridge 172:65be27845400 1823 * @arg @ref LL_ADC_CHANNEL_18
AnnaBridge 172:65be27845400 1824 * @arg @ref LL_ADC_CHANNEL_VREFINT (1)
AnnaBridge 172:65be27845400 1825 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (4)
AnnaBridge 172:65be27845400 1826 * @arg @ref LL_ADC_CHANNEL_VBAT (4)
AnnaBridge 172:65be27845400 1827 * @arg @ref LL_ADC_CHANNEL_DAC1CH1 (5)
AnnaBridge 172:65be27845400 1828 * @arg @ref LL_ADC_CHANNEL_DAC1CH2 (5)
AnnaBridge 172:65be27845400 1829 * @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC2 (2)(6)
AnnaBridge 172:65be27845400 1830 * @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC2 (2)(6)
AnnaBridge 172:65be27845400 1831 * @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC3 (3)(6)
AnnaBridge 172:65be27845400 1832 * @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC3 (3)(6)
AnnaBridge 172:65be27845400 1833 *
AnnaBridge 172:65be27845400 1834 * (1) On STM32L4, parameter available only on ADC instance: ADC1.\n
AnnaBridge 172:65be27845400 1835 * (2) On STM32L4, parameter available only on ADC instance: ADC2.\n
AnnaBridge 172:65be27845400 1836 * (3) On STM32L4, parameter available only on ADC instance: ADC3.\n
AnnaBridge 172:65be27845400 1837 * (4) On STM32L4, parameter available only on ADC instances: ADC1, ADC3.\n
AnnaBridge 172:65be27845400 1838 * (5) On STM32L4, parameter available on devices with only 1 ADC instance.\n
AnnaBridge 172:65be27845400 1839 * (6) On STM32L4, parameter available on devices with several ADC instances.\n
AnnaBridge 172:65be27845400 1840 * (7) On STM32L4, fast channel (0.188 us for 12-bit resolution (ADC conversion rate up to 5.33 Ms/s)).
AnnaBridge 172:65be27845400 1841 * Other channels are slow channels (0.238 us for 12-bit resolution (ADC conversion rate up to 4.21 Ms/s)).\n
AnnaBridge 172:65be27845400 1842 * (1, 2, 3, 4) For ADC channel read back from ADC register,
AnnaBridge 172:65be27845400 1843 * comparison with internal channel parameter to be done
AnnaBridge 172:65be27845400 1844 * using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL().
AnnaBridge 172:65be27845400 1845 * @param __GROUP__ This parameter can be one of the following values:
AnnaBridge 172:65be27845400 1846 * @arg @ref LL_ADC_GROUP_REGULAR
AnnaBridge 172:65be27845400 1847 * @arg @ref LL_ADC_GROUP_INJECTED
AnnaBridge 172:65be27845400 1848 * @arg @ref LL_ADC_GROUP_REGULAR_INJECTED
AnnaBridge 172:65be27845400 1849 * @retval Returned value can be one of the following values:
AnnaBridge 172:65be27845400 1850 * @arg @ref LL_ADC_AWD_DISABLE
AnnaBridge 172:65be27845400 1851 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG (0)
AnnaBridge 172:65be27845400 1852 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_INJ (0)
AnnaBridge 172:65be27845400 1853 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG_INJ
AnnaBridge 172:65be27845400 1854 * @arg @ref LL_ADC_AWD_CHANNEL_0_REG (0)
AnnaBridge 172:65be27845400 1855 * @arg @ref LL_ADC_AWD_CHANNEL_0_INJ (0)
AnnaBridge 172:65be27845400 1856 * @arg @ref LL_ADC_AWD_CHANNEL_0_REG_INJ
AnnaBridge 172:65be27845400 1857 * @arg @ref LL_ADC_AWD_CHANNEL_1_REG (0)
AnnaBridge 172:65be27845400 1858 * @arg @ref LL_ADC_AWD_CHANNEL_1_INJ (0)
AnnaBridge 172:65be27845400 1859 * @arg @ref LL_ADC_AWD_CHANNEL_1_REG_INJ
AnnaBridge 172:65be27845400 1860 * @arg @ref LL_ADC_AWD_CHANNEL_2_REG (0)
AnnaBridge 172:65be27845400 1861 * @arg @ref LL_ADC_AWD_CHANNEL_2_INJ (0)
AnnaBridge 172:65be27845400 1862 * @arg @ref LL_ADC_AWD_CHANNEL_2_REG_INJ
AnnaBridge 172:65be27845400 1863 * @arg @ref LL_ADC_AWD_CHANNEL_3_REG (0)
AnnaBridge 172:65be27845400 1864 * @arg @ref LL_ADC_AWD_CHANNEL_3_INJ (0)
AnnaBridge 172:65be27845400 1865 * @arg @ref LL_ADC_AWD_CHANNEL_3_REG_INJ
AnnaBridge 172:65be27845400 1866 * @arg @ref LL_ADC_AWD_CHANNEL_4_REG (0)
AnnaBridge 172:65be27845400 1867 * @arg @ref LL_ADC_AWD_CHANNEL_4_INJ (0)
AnnaBridge 172:65be27845400 1868 * @arg @ref LL_ADC_AWD_CHANNEL_4_REG_INJ
AnnaBridge 172:65be27845400 1869 * @arg @ref LL_ADC_AWD_CHANNEL_5_REG (0)
AnnaBridge 172:65be27845400 1870 * @arg @ref LL_ADC_AWD_CHANNEL_5_INJ (0)
AnnaBridge 172:65be27845400 1871 * @arg @ref LL_ADC_AWD_CHANNEL_5_REG_INJ
AnnaBridge 172:65be27845400 1872 * @arg @ref LL_ADC_AWD_CHANNEL_6_REG (0)
AnnaBridge 172:65be27845400 1873 * @arg @ref LL_ADC_AWD_CHANNEL_6_INJ (0)
AnnaBridge 172:65be27845400 1874 * @arg @ref LL_ADC_AWD_CHANNEL_6_REG_INJ
AnnaBridge 172:65be27845400 1875 * @arg @ref LL_ADC_AWD_CHANNEL_7_REG (0)
AnnaBridge 172:65be27845400 1876 * @arg @ref LL_ADC_AWD_CHANNEL_7_INJ (0)
AnnaBridge 172:65be27845400 1877 * @arg @ref LL_ADC_AWD_CHANNEL_7_REG_INJ
AnnaBridge 172:65be27845400 1878 * @arg @ref LL_ADC_AWD_CHANNEL_8_REG (0)
AnnaBridge 172:65be27845400 1879 * @arg @ref LL_ADC_AWD_CHANNEL_8_INJ (0)
AnnaBridge 172:65be27845400 1880 * @arg @ref LL_ADC_AWD_CHANNEL_8_REG_INJ
AnnaBridge 172:65be27845400 1881 * @arg @ref LL_ADC_AWD_CHANNEL_9_REG (0)
AnnaBridge 172:65be27845400 1882 * @arg @ref LL_ADC_AWD_CHANNEL_9_INJ (0)
AnnaBridge 172:65be27845400 1883 * @arg @ref LL_ADC_AWD_CHANNEL_9_REG_INJ
AnnaBridge 172:65be27845400 1884 * @arg @ref LL_ADC_AWD_CHANNEL_10_REG (0)
AnnaBridge 172:65be27845400 1885 * @arg @ref LL_ADC_AWD_CHANNEL_10_INJ (0)
AnnaBridge 172:65be27845400 1886 * @arg @ref LL_ADC_AWD_CHANNEL_10_REG_INJ
AnnaBridge 172:65be27845400 1887 * @arg @ref LL_ADC_AWD_CHANNEL_11_REG (0)
AnnaBridge 172:65be27845400 1888 * @arg @ref LL_ADC_AWD_CHANNEL_11_INJ (0)
AnnaBridge 172:65be27845400 1889 * @arg @ref LL_ADC_AWD_CHANNEL_11_REG_INJ
AnnaBridge 172:65be27845400 1890 * @arg @ref LL_ADC_AWD_CHANNEL_12_REG (0)
AnnaBridge 172:65be27845400 1891 * @arg @ref LL_ADC_AWD_CHANNEL_12_INJ (0)
AnnaBridge 172:65be27845400 1892 * @arg @ref LL_ADC_AWD_CHANNEL_12_REG_INJ
AnnaBridge 172:65be27845400 1893 * @arg @ref LL_ADC_AWD_CHANNEL_13_REG (0)
AnnaBridge 172:65be27845400 1894 * @arg @ref LL_ADC_AWD_CHANNEL_13_INJ (0)
AnnaBridge 172:65be27845400 1895 * @arg @ref LL_ADC_AWD_CHANNEL_13_REG_INJ
AnnaBridge 172:65be27845400 1896 * @arg @ref LL_ADC_AWD_CHANNEL_14_REG (0)
AnnaBridge 172:65be27845400 1897 * @arg @ref LL_ADC_AWD_CHANNEL_14_INJ (0)
AnnaBridge 172:65be27845400 1898 * @arg @ref LL_ADC_AWD_CHANNEL_14_REG_INJ
AnnaBridge 172:65be27845400 1899 * @arg @ref LL_ADC_AWD_CHANNEL_15_REG (0)
AnnaBridge 172:65be27845400 1900 * @arg @ref LL_ADC_AWD_CHANNEL_15_INJ (0)
AnnaBridge 172:65be27845400 1901 * @arg @ref LL_ADC_AWD_CHANNEL_15_REG_INJ
AnnaBridge 172:65be27845400 1902 * @arg @ref LL_ADC_AWD_CHANNEL_16_REG (0)
AnnaBridge 172:65be27845400 1903 * @arg @ref LL_ADC_AWD_CHANNEL_16_INJ (0)
AnnaBridge 172:65be27845400 1904 * @arg @ref LL_ADC_AWD_CHANNEL_16_REG_INJ
AnnaBridge 172:65be27845400 1905 * @arg @ref LL_ADC_AWD_CHANNEL_17_REG (0)
AnnaBridge 172:65be27845400 1906 * @arg @ref LL_ADC_AWD_CHANNEL_17_INJ (0)
AnnaBridge 172:65be27845400 1907 * @arg @ref LL_ADC_AWD_CHANNEL_17_REG_INJ
AnnaBridge 172:65be27845400 1908 * @arg @ref LL_ADC_AWD_CHANNEL_18_REG (0)
AnnaBridge 172:65be27845400 1909 * @arg @ref LL_ADC_AWD_CHANNEL_18_INJ (0)
AnnaBridge 172:65be27845400 1910 * @arg @ref LL_ADC_AWD_CHANNEL_18_REG_INJ
AnnaBridge 172:65be27845400 1911 * @arg @ref LL_ADC_AWD_CH_VREFINT_REG (0)(1)
AnnaBridge 172:65be27845400 1912 * @arg @ref LL_ADC_AWD_CH_VREFINT_INJ (0)(1)
AnnaBridge 172:65be27845400 1913 * @arg @ref LL_ADC_AWD_CH_VREFINT_REG_INJ (1)
AnnaBridge 172:65be27845400 1914 * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_REG (0)(4)
AnnaBridge 172:65be27845400 1915 * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_INJ (0)(4)
AnnaBridge 172:65be27845400 1916 * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_REG_INJ (4)
AnnaBridge 172:65be27845400 1917 * @arg @ref LL_ADC_AWD_CH_VBAT_REG (0)(4)
AnnaBridge 172:65be27845400 1918 * @arg @ref LL_ADC_AWD_CH_VBAT_INJ (0)(4)
AnnaBridge 172:65be27845400 1919 * @arg @ref LL_ADC_AWD_CH_VBAT_REG_INJ (4)
AnnaBridge 172:65be27845400 1920 * @arg @ref LL_ADC_AWD_CH_DAC1CH1_REG (0)(2)(5)
AnnaBridge 172:65be27845400 1921 * @arg @ref LL_ADC_AWD_CH_DAC1CH1_INJ (0)(2)(5)
AnnaBridge 172:65be27845400 1922 * @arg @ref LL_ADC_AWD_CH_DAC1CH1_REG_INJ (2)(5)
AnnaBridge 172:65be27845400 1923 * @arg @ref LL_ADC_AWD_CH_DAC1CH2_REG (0)(2)(5)
AnnaBridge 172:65be27845400 1924 * @arg @ref LL_ADC_AWD_CH_DAC1CH2_INJ (0)(2)(5)
AnnaBridge 172:65be27845400 1925 * @arg @ref LL_ADC_AWD_CH_DAC1CH2_REG_INJ (2)(5)
AnnaBridge 172:65be27845400 1926 * @arg @ref LL_ADC_AWD_CH_DAC1CH1_ADC2_REG (0)(2)(6)
AnnaBridge 172:65be27845400 1927 * @arg @ref LL_ADC_AWD_CH_DAC1CH1_ADC2_INJ (0)(2)(6)
AnnaBridge 172:65be27845400 1928 * @arg @ref LL_ADC_AWD_CH_DAC1CH1_ADC2_REG_INJ (2)(6)
AnnaBridge 172:65be27845400 1929 * @arg @ref LL_ADC_AWD_CH_DAC1CH2_ADC2_REG (0)(2)(6)
AnnaBridge 172:65be27845400 1930 * @arg @ref LL_ADC_AWD_CH_DAC1CH2_ADC2_INJ (0)(2)(6)
AnnaBridge 172:65be27845400 1931 * @arg @ref LL_ADC_AWD_CH_DAC1CH2_ADC2_REG_INJ (2)(6)
AnnaBridge 172:65be27845400 1932 * @arg @ref LL_ADC_AWD_CH_DAC1CH1_ADC3_REG (0)(3)(6)
AnnaBridge 172:65be27845400 1933 * @arg @ref LL_ADC_AWD_CH_DAC1CH1_ADC3_INJ (0)(3)(6)
AnnaBridge 172:65be27845400 1934 * @arg @ref LL_ADC_AWD_CH_DAC1CH1_ADC3_REG_INJ (3)(6)
AnnaBridge 172:65be27845400 1935 * @arg @ref LL_ADC_AWD_CH_DAC1CH2_ADC3_REG (0)(3)(6)
AnnaBridge 172:65be27845400 1936 * @arg @ref LL_ADC_AWD_CH_DAC1CH2_ADC3_INJ (0)(3)(6)
AnnaBridge 172:65be27845400 1937 * @arg @ref LL_ADC_AWD_CH_DAC1CH2_ADC3_REG_INJ (3)(6)
AnnaBridge 172:65be27845400 1938 *
AnnaBridge 172:65be27845400 1939 * (0) On STM32L4, parameter available only on analog watchdog number: AWD1.\n
AnnaBridge 172:65be27845400 1940 * (1) On STM32L4, parameter available only on ADC instance: ADC1.\n
AnnaBridge 172:65be27845400 1941 * (2) On STM32L4, parameter available only on ADC instance: ADC2.\n
AnnaBridge 172:65be27845400 1942 * (3) On STM32L4, parameter available only on ADC instance: ADC3.\n
AnnaBridge 172:65be27845400 1943 * (4) On STM32L4, parameter available only on ADC instances: ADC1, ADC3.
AnnaBridge 172:65be27845400 1944 * (5) On STM32L4, parameter available on devices with only 1 ADC instance.\n
AnnaBridge 172:65be27845400 1945 * (6) On STM32L4, parameter available on devices with several ADC instances.
AnnaBridge 172:65be27845400 1946 */
AnnaBridge 172:65be27845400 1947 #define __LL_ADC_ANALOGWD_CHANNEL_GROUP(__CHANNEL__, __GROUP__) \
AnnaBridge 172:65be27845400 1948 (((__GROUP__) == LL_ADC_GROUP_REGULAR) \
AnnaBridge 172:65be27845400 1949 ? (((__CHANNEL__) & ADC_CHANNEL_ID_MASK) | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) \
AnnaBridge 172:65be27845400 1950 : \
AnnaBridge 172:65be27845400 1951 ((__GROUP__) == LL_ADC_GROUP_INJECTED) \
AnnaBridge 172:65be27845400 1952 ? (((__CHANNEL__) & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL) \
AnnaBridge 172:65be27845400 1953 : \
AnnaBridge 172:65be27845400 1954 (((__CHANNEL__) & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL) \
AnnaBridge 172:65be27845400 1955 )
AnnaBridge 172:65be27845400 1956
AnnaBridge 172:65be27845400 1957 /**
AnnaBridge 172:65be27845400 1958 * @brief Helper macro to set the value of ADC analog watchdog threshold high
AnnaBridge 172:65be27845400 1959 * or low in function of ADC resolution, when ADC resolution is
AnnaBridge 172:65be27845400 1960 * different of 12 bits.
AnnaBridge 172:65be27845400 1961 * @note To be used with function @ref LL_ADC_ConfigAnalogWDThresholds()
AnnaBridge 172:65be27845400 1962 * or @ref LL_ADC_SetAnalogWDThresholds().
AnnaBridge 172:65be27845400 1963 * Example, with a ADC resolution of 8 bits, to set the value of
AnnaBridge 172:65be27845400 1964 * analog watchdog threshold high (on 8 bits):
AnnaBridge 172:65be27845400 1965 * LL_ADC_SetAnalogWDThresholds
AnnaBridge 172:65be27845400 1966 * (< ADCx param >,
AnnaBridge 172:65be27845400 1967 * __LL_ADC_ANALOGWD_SET_THRESHOLD_RESOLUTION(LL_ADC_RESOLUTION_8B, <threshold_value_8_bits>)
AnnaBridge 172:65be27845400 1968 * );
AnnaBridge 172:65be27845400 1969 * @param __ADC_RESOLUTION__ This parameter can be one of the following values:
AnnaBridge 172:65be27845400 1970 * @arg @ref LL_ADC_RESOLUTION_12B
AnnaBridge 172:65be27845400 1971 * @arg @ref LL_ADC_RESOLUTION_10B
AnnaBridge 172:65be27845400 1972 * @arg @ref LL_ADC_RESOLUTION_8B
AnnaBridge 172:65be27845400 1973 * @arg @ref LL_ADC_RESOLUTION_6B
AnnaBridge 172:65be27845400 1974 * @param __AWD_THRESHOLD__ Value between Min_Data=0x000 and Max_Data=0xFFF
AnnaBridge 172:65be27845400 1975 * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
AnnaBridge 172:65be27845400 1976 */
AnnaBridge 172:65be27845400 1977 #define __LL_ADC_ANALOGWD_SET_THRESHOLD_RESOLUTION(__ADC_RESOLUTION__, __AWD_THRESHOLD__) \
AnnaBridge 172:65be27845400 1978 ((__AWD_THRESHOLD__) << ((__ADC_RESOLUTION__) >> (ADC_CFGR_RES_BITOFFSET_POS - 1U )))
AnnaBridge 172:65be27845400 1979
AnnaBridge 172:65be27845400 1980 /**
AnnaBridge 172:65be27845400 1981 * @brief Helper macro to get the value of ADC analog watchdog threshold high
AnnaBridge 172:65be27845400 1982 * or low in function of ADC resolution, when ADC resolution is
AnnaBridge 172:65be27845400 1983 * different of 12 bits.
AnnaBridge 172:65be27845400 1984 * @note To be used with function @ref LL_ADC_GetAnalogWDThresholds().
AnnaBridge 172:65be27845400 1985 * Example, with a ADC resolution of 8 bits, to get the value of
AnnaBridge 172:65be27845400 1986 * analog watchdog threshold high (on 8 bits):
AnnaBridge 172:65be27845400 1987 * < threshold_value_6_bits > = __LL_ADC_ANALOGWD_GET_THRESHOLD_RESOLUTION
AnnaBridge 172:65be27845400 1988 * (LL_ADC_RESOLUTION_8B,
AnnaBridge 172:65be27845400 1989 * LL_ADC_GetAnalogWDThresholds(<ADCx param>, LL_ADC_AWD_THRESHOLD_HIGH)
AnnaBridge 172:65be27845400 1990 * );
AnnaBridge 172:65be27845400 1991 * @param __ADC_RESOLUTION__ This parameter can be one of the following values:
AnnaBridge 172:65be27845400 1992 * @arg @ref LL_ADC_RESOLUTION_12B
AnnaBridge 172:65be27845400 1993 * @arg @ref LL_ADC_RESOLUTION_10B
AnnaBridge 172:65be27845400 1994 * @arg @ref LL_ADC_RESOLUTION_8B
AnnaBridge 172:65be27845400 1995 * @arg @ref LL_ADC_RESOLUTION_6B
AnnaBridge 172:65be27845400 1996 * @param __AWD_THRESHOLD_12_BITS__ Value between Min_Data=0x000 and Max_Data=0xFFF
AnnaBridge 172:65be27845400 1997 * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
AnnaBridge 172:65be27845400 1998 */
AnnaBridge 172:65be27845400 1999 #define __LL_ADC_ANALOGWD_GET_THRESHOLD_RESOLUTION(__ADC_RESOLUTION__, __AWD_THRESHOLD_12_BITS__) \
AnnaBridge 172:65be27845400 2000 ((__AWD_THRESHOLD_12_BITS__) >> ((__ADC_RESOLUTION__) >> (ADC_CFGR_RES_BITOFFSET_POS - 1U )))
AnnaBridge 172:65be27845400 2001
AnnaBridge 172:65be27845400 2002 /**
AnnaBridge 172:65be27845400 2003 * @brief Helper macro to get the ADC analog watchdog threshold high
AnnaBridge 172:65be27845400 2004 * or low from raw value containing both thresholds concatenated.
AnnaBridge 172:65be27845400 2005 * @note To be used with function @ref LL_ADC_GetAnalogWDThresholds().
AnnaBridge 172:65be27845400 2006 * Example, to get analog watchdog threshold high from the register raw value:
AnnaBridge 172:65be27845400 2007 * __LL_ADC_ANALOGWD_THRESHOLDS_HIGH_LOW(LL_ADC_AWD_THRESHOLD_HIGH, <raw_value_with_both_thresholds>);
AnnaBridge 172:65be27845400 2008 * @param __AWD_THRESHOLD_TYPE__ This parameter can be one of the following values:
AnnaBridge 172:65be27845400 2009 * @arg @ref LL_ADC_AWD_THRESHOLD_HIGH
AnnaBridge 172:65be27845400 2010 * @arg @ref LL_ADC_AWD_THRESHOLD_LOW
AnnaBridge 172:65be27845400 2011 * @param __AWD_THRESHOLDS__ Value between Min_Data=0x00000000 and Max_Data=0xFFFFFFFF
AnnaBridge 172:65be27845400 2012 * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
AnnaBridge 172:65be27845400 2013 */
AnnaBridge 172:65be27845400 2014 #if defined(CORE_CM0PLUS)
AnnaBridge 172:65be27845400 2015 #define __LL_ADC_ANALOGWD_THRESHOLDS_HIGH_LOW(__AWD_THRESHOLD_TYPE__, __AWD_THRESHOLDS__) \
AnnaBridge 172:65be27845400 2016 (((__AWD_THRESHOLDS__) >> (((__AWD_THRESHOLD_TYPE__) & ADC_AWD_TRX_BIT_HIGH_MASK) >> ADC_AWD_TRX_BIT_HIGH_SHIFT4)) & LL_ADC_AWD_THRESHOLD_LOW)
AnnaBridge 172:65be27845400 2017 #else
AnnaBridge 172:65be27845400 2018 #define __LL_ADC_ANALOGWD_THRESHOLDS_HIGH_LOW(__AWD_THRESHOLD_TYPE__, __AWD_THRESHOLDS__) \
AnnaBridge 172:65be27845400 2019 (((__AWD_THRESHOLDS__) >> POSITION_VAL((__AWD_THRESHOLD_TYPE__))) & LL_ADC_AWD_THRESHOLD_LOW)
AnnaBridge 172:65be27845400 2020 #endif
AnnaBridge 172:65be27845400 2021
AnnaBridge 172:65be27845400 2022 /**
AnnaBridge 172:65be27845400 2023 * @brief Helper macro to set the ADC calibration value with both single ended
AnnaBridge 172:65be27845400 2024 * and differential modes calibration factors concatenated.
AnnaBridge 172:65be27845400 2025 * @note To be used with function @ref LL_ADC_SetCalibrationFactor().
AnnaBridge 172:65be27845400 2026 * Example, to set calibration factors single ended to 0x55
AnnaBridge 172:65be27845400 2027 * and differential ended to 0x2A:
AnnaBridge 172:65be27845400 2028 * LL_ADC_SetCalibrationFactor(
AnnaBridge 172:65be27845400 2029 * ADC1,
AnnaBridge 172:65be27845400 2030 * __LL_ADC_CALIB_FACTOR_SINGLE_DIFF(0x55, 0x2A))
AnnaBridge 172:65be27845400 2031 * @param __CALIB_FACTOR_SINGLE_ENDED__ Value between Min_Data=0x00 and Max_Data=0x7F
AnnaBridge 172:65be27845400 2032 * @param __CALIB_FACTOR_DIFFERENTIAL__ Value between Min_Data=0x00 and Max_Data=0x7F
AnnaBridge 172:65be27845400 2033 * @retval Value between Min_Data=0x00000000 and Max_Data=0xFFFFFFFF
AnnaBridge 172:65be27845400 2034 */
AnnaBridge 172:65be27845400 2035 #if defined(CORE_CM0PLUS)
AnnaBridge 172:65be27845400 2036 #define __LL_ADC_CALIB_FACTOR_SINGLE_DIFF(__CALIB_FACTOR_SINGLE_ENDED__, __CALIB_FACTOR_DIFFERENTIAL__) \
AnnaBridge 172:65be27845400 2037 (((__CALIB_FACTOR_DIFFERENTIAL__) << ADC_CALFACT_CALFACT_D_Pos) | (__CALIB_FACTOR_SINGLE_ENDED__))
AnnaBridge 172:65be27845400 2038 #else
AnnaBridge 172:65be27845400 2039 #define __LL_ADC_CALIB_FACTOR_SINGLE_DIFF(__CALIB_FACTOR_SINGLE_ENDED__, __CALIB_FACTOR_DIFFERENTIAL__) \
AnnaBridge 172:65be27845400 2040 (((__CALIB_FACTOR_DIFFERENTIAL__) << POSITION_VAL(ADC_CALFACT_CALFACT_D)) | (__CALIB_FACTOR_SINGLE_ENDED__))
AnnaBridge 172:65be27845400 2041 #endif
AnnaBridge 172:65be27845400 2042
AnnaBridge 172:65be27845400 2043 #if defined(ADC_MULTIMODE_SUPPORT)
AnnaBridge 172:65be27845400 2044 /**
AnnaBridge 172:65be27845400 2045 * @brief Helper macro to get the ADC multimode conversion data of ADC master
AnnaBridge 172:65be27845400 2046 * or ADC slave from raw value with both ADC conversion data concatenated.
AnnaBridge 172:65be27845400 2047 * @note This macro is intended to be used when multimode transfer by DMA
AnnaBridge 172:65be27845400 2048 * is enabled: refer to function @ref LL_ADC_SetMultiDMATransfer().
AnnaBridge 172:65be27845400 2049 * In this case the transferred data need to processed with this macro
AnnaBridge 172:65be27845400 2050 * to separate the conversion data of ADC master and ADC slave.
AnnaBridge 172:65be27845400 2051 * @param __ADC_MULTI_MASTER_SLAVE__ This parameter can be one of the following values:
AnnaBridge 172:65be27845400 2052 * @arg @ref LL_ADC_MULTI_MASTER
AnnaBridge 172:65be27845400 2053 * @arg @ref LL_ADC_MULTI_SLAVE
AnnaBridge 172:65be27845400 2054 * @param __ADC_MULTI_CONV_DATA__ Value between Min_Data=0x000 and Max_Data=0xFFF
AnnaBridge 172:65be27845400 2055 * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
AnnaBridge 172:65be27845400 2056 */
AnnaBridge 172:65be27845400 2057 #define __LL_ADC_MULTI_CONV_DATA_MASTER_SLAVE(__ADC_MULTI_MASTER_SLAVE__, __ADC_MULTI_CONV_DATA__) \
AnnaBridge 172:65be27845400 2058 (((__ADC_MULTI_CONV_DATA__) >> POSITION_VAL((__ADC_MULTI_MASTER_SLAVE__))) & ADC_CDR_RDATA_MST)
AnnaBridge 172:65be27845400 2059 #endif
AnnaBridge 172:65be27845400 2060
AnnaBridge 172:65be27845400 2061 /**
AnnaBridge 172:65be27845400 2062 * @brief Helper macro to select the ADC common instance
AnnaBridge 172:65be27845400 2063 * to which is belonging the selected ADC instance.
AnnaBridge 172:65be27845400 2064 * @note ADC common register instance can be used for:
AnnaBridge 172:65be27845400 2065 * - Set parameters common to several ADC instances
AnnaBridge 172:65be27845400 2066 * - Multimode (for devices with several ADC instances)
AnnaBridge 172:65be27845400 2067 * Refer to functions having argument "ADCxy_COMMON" as parameter.
AnnaBridge 172:65be27845400 2068 * @param __ADCx__ ADC instance
AnnaBridge 172:65be27845400 2069 * @retval ADC common register instance
AnnaBridge 172:65be27845400 2070 */
AnnaBridge 172:65be27845400 2071 #if defined(ADC1) && defined(ADC2) && defined(ADC3)
AnnaBridge 172:65be27845400 2072 #define __LL_ADC_COMMON_INSTANCE(__ADCx__) \
AnnaBridge 172:65be27845400 2073 (ADC123_COMMON)
AnnaBridge 172:65be27845400 2074 #elif defined(ADC1) && defined(ADC2)
AnnaBridge 172:65be27845400 2075 #define __LL_ADC_COMMON_INSTANCE(__ADCx__) \
AnnaBridge 172:65be27845400 2076 (ADC12_COMMON)
AnnaBridge 172:65be27845400 2077 #else
AnnaBridge 172:65be27845400 2078 #define __LL_ADC_COMMON_INSTANCE(__ADCx__) \
AnnaBridge 172:65be27845400 2079 (ADC1_COMMON)
AnnaBridge 172:65be27845400 2080 #endif
AnnaBridge 172:65be27845400 2081
AnnaBridge 172:65be27845400 2082 /**
AnnaBridge 172:65be27845400 2083 * @brief Helper macro to check if all ADC instances sharing the same
AnnaBridge 172:65be27845400 2084 * ADC common instance are disabled.
AnnaBridge 172:65be27845400 2085 * @note This check is required by functions with setting conditioned to
AnnaBridge 172:65be27845400 2086 * ADC state:
AnnaBridge 172:65be27845400 2087 * All ADC instances of the ADC common group must be disabled.
AnnaBridge 172:65be27845400 2088 * Refer to functions having argument "ADCxy_COMMON" as parameter.
AnnaBridge 172:65be27845400 2089 * @note On devices with only 1 ADC common instance, parameter of this macro
AnnaBridge 172:65be27845400 2090 * is useless and can be ignored (parameter kept for compatibility
AnnaBridge 172:65be27845400 2091 * with devices featuring several ADC common instances).
AnnaBridge 172:65be27845400 2092 * @param __ADCXY_COMMON__ ADC common instance
AnnaBridge 172:65be27845400 2093 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 172:65be27845400 2094 * @retval Value "0" if all ADC instances sharing the same ADC common instance
AnnaBridge 172:65be27845400 2095 * are disabled.
AnnaBridge 172:65be27845400 2096 * Value "1" if at least one ADC instance sharing the same ADC common instance
AnnaBridge 172:65be27845400 2097 * is enabled.
AnnaBridge 172:65be27845400 2098 */
AnnaBridge 172:65be27845400 2099 #if defined(ADC1) && defined(ADC2) && defined(ADC3)
AnnaBridge 172:65be27845400 2100 #define __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(__ADCXY_COMMON__) \
AnnaBridge 172:65be27845400 2101 (LL_ADC_IsEnabled(ADC1) | \
AnnaBridge 172:65be27845400 2102 LL_ADC_IsEnabled(ADC2) | \
AnnaBridge 172:65be27845400 2103 LL_ADC_IsEnabled(ADC3) )
AnnaBridge 172:65be27845400 2104 #elif defined(ADC1) && defined(ADC2)
AnnaBridge 172:65be27845400 2105 #define __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(__ADCXY_COMMON__) \
AnnaBridge 172:65be27845400 2106 (LL_ADC_IsEnabled(ADC1) | \
AnnaBridge 172:65be27845400 2107 LL_ADC_IsEnabled(ADC2) )
AnnaBridge 172:65be27845400 2108 #else
AnnaBridge 172:65be27845400 2109 #define __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(__ADCXY_COMMON__) \
AnnaBridge 172:65be27845400 2110 (LL_ADC_IsEnabled(ADC1))
AnnaBridge 172:65be27845400 2111 #endif
AnnaBridge 172:65be27845400 2112
AnnaBridge 172:65be27845400 2113 /**
AnnaBridge 172:65be27845400 2114 * @brief Helper macro to define the ADC conversion data full-scale digital
AnnaBridge 172:65be27845400 2115 * value corresponding to the selected ADC resolution.
AnnaBridge 172:65be27845400 2116 * @note ADC conversion data full-scale corresponds to voltage range
AnnaBridge 172:65be27845400 2117 * determined by analog voltage references Vref+ and Vref-
AnnaBridge 172:65be27845400 2118 * (refer to reference manual).
AnnaBridge 172:65be27845400 2119 * @param __ADC_RESOLUTION__ This parameter can be one of the following values:
AnnaBridge 172:65be27845400 2120 * @arg @ref LL_ADC_RESOLUTION_12B
AnnaBridge 172:65be27845400 2121 * @arg @ref LL_ADC_RESOLUTION_10B
AnnaBridge 172:65be27845400 2122 * @arg @ref LL_ADC_RESOLUTION_8B
AnnaBridge 172:65be27845400 2123 * @arg @ref LL_ADC_RESOLUTION_6B
AnnaBridge 172:65be27845400 2124 * @retval ADC conversion data equivalent voltage value (unit: mVolt)
AnnaBridge 172:65be27845400 2125 */
AnnaBridge 172:65be27845400 2126 #define __LL_ADC_DIGITAL_SCALE(__ADC_RESOLUTION__) \
AnnaBridge 172:65be27845400 2127 (0xFFFU >> ((__ADC_RESOLUTION__) >> (ADC_CFGR_RES_BITOFFSET_POS - 1U)))
AnnaBridge 172:65be27845400 2128
AnnaBridge 172:65be27845400 2129 /**
AnnaBridge 172:65be27845400 2130 * @brief Helper macro to convert the ADC conversion data from
AnnaBridge 172:65be27845400 2131 * a resolution to another resolution.
AnnaBridge 172:65be27845400 2132 * @param __DATA__ ADC conversion data to be converted
AnnaBridge 172:65be27845400 2133 * @param __ADC_RESOLUTION_CURRENT__ Resolution of to the data to be converted
AnnaBridge 172:65be27845400 2134 * This parameter can be one of the following values:
AnnaBridge 172:65be27845400 2135 * @arg @ref LL_ADC_RESOLUTION_12B
AnnaBridge 172:65be27845400 2136 * @arg @ref LL_ADC_RESOLUTION_10B
AnnaBridge 172:65be27845400 2137 * @arg @ref LL_ADC_RESOLUTION_8B
AnnaBridge 172:65be27845400 2138 * @arg @ref LL_ADC_RESOLUTION_6B
AnnaBridge 172:65be27845400 2139 * @param __ADC_RESOLUTION_TARGET__ Resolution of the data after conversion
AnnaBridge 172:65be27845400 2140 * This parameter can be one of the following values:
AnnaBridge 172:65be27845400 2141 * @arg @ref LL_ADC_RESOLUTION_12B
AnnaBridge 172:65be27845400 2142 * @arg @ref LL_ADC_RESOLUTION_10B
AnnaBridge 172:65be27845400 2143 * @arg @ref LL_ADC_RESOLUTION_8B
AnnaBridge 172:65be27845400 2144 * @arg @ref LL_ADC_RESOLUTION_6B
AnnaBridge 172:65be27845400 2145 * @retval ADC conversion data to the requested resolution
AnnaBridge 172:65be27845400 2146 */
AnnaBridge 172:65be27845400 2147 #define __LL_ADC_CONVERT_DATA_RESOLUTION(__DATA__,\
AnnaBridge 172:65be27845400 2148 __ADC_RESOLUTION_CURRENT__,\
AnnaBridge 172:65be27845400 2149 __ADC_RESOLUTION_TARGET__) \
AnnaBridge 172:65be27845400 2150 (((__DATA__) \
AnnaBridge 172:65be27845400 2151 << ((__ADC_RESOLUTION_CURRENT__) >> (ADC_CFGR_RES_BITOFFSET_POS - 1U))) \
AnnaBridge 172:65be27845400 2152 >> ((__ADC_RESOLUTION_TARGET__) >> (ADC_CFGR_RES_BITOFFSET_POS - 1U)) \
AnnaBridge 172:65be27845400 2153 )
AnnaBridge 172:65be27845400 2154
AnnaBridge 172:65be27845400 2155 /**
AnnaBridge 172:65be27845400 2156 * @brief Helper macro to calculate the voltage (unit: mVolt)
AnnaBridge 172:65be27845400 2157 * corresponding to a ADC conversion data (unit: digital value).
AnnaBridge 172:65be27845400 2158 * @note Analog reference voltage (Vref+) must be either known from
AnnaBridge 172:65be27845400 2159 * user board environment or can be calculated using ADC measurement
AnnaBridge 172:65be27845400 2160 * and ADC helper macro @ref __LL_ADC_CALC_VREFANALOG_VOLTAGE().
AnnaBridge 172:65be27845400 2161 * @param __VREFANALOG_VOLTAGE__ Analog reference voltage (unit: mV)
AnnaBridge 172:65be27845400 2162 * @param __ADC_DATA__ ADC conversion data (resolution 12 bits)
AnnaBridge 172:65be27845400 2163 * (unit: digital value).
AnnaBridge 172:65be27845400 2164 * @param __ADC_RESOLUTION__ This parameter can be one of the following values:
AnnaBridge 172:65be27845400 2165 * @arg @ref LL_ADC_RESOLUTION_12B
AnnaBridge 172:65be27845400 2166 * @arg @ref LL_ADC_RESOLUTION_10B
AnnaBridge 172:65be27845400 2167 * @arg @ref LL_ADC_RESOLUTION_8B
AnnaBridge 172:65be27845400 2168 * @arg @ref LL_ADC_RESOLUTION_6B
AnnaBridge 172:65be27845400 2169 * @retval ADC conversion data equivalent voltage value (unit: mVolt)
AnnaBridge 172:65be27845400 2170 */
AnnaBridge 172:65be27845400 2171 #define __LL_ADC_CALC_DATA_TO_VOLTAGE(__VREFANALOG_VOLTAGE__,\
AnnaBridge 172:65be27845400 2172 __ADC_DATA__,\
AnnaBridge 172:65be27845400 2173 __ADC_RESOLUTION__) \
AnnaBridge 172:65be27845400 2174 ((__ADC_DATA__) * (__VREFANALOG_VOLTAGE__) \
AnnaBridge 172:65be27845400 2175 / __LL_ADC_DIGITAL_SCALE(__ADC_RESOLUTION__) \
AnnaBridge 172:65be27845400 2176 )
AnnaBridge 172:65be27845400 2177
AnnaBridge 172:65be27845400 2178 /* Legacy define */
AnnaBridge 172:65be27845400 2179 #define __LL_ADC_CALC_DATA_VOLTAGE() __LL_ADC_CALC_DATA_TO_VOLTAGE()
AnnaBridge 172:65be27845400 2180
AnnaBridge 172:65be27845400 2181 /**
AnnaBridge 172:65be27845400 2182 * @brief Helper macro to calculate analog reference voltage (Vref+)
AnnaBridge 172:65be27845400 2183 * (unit: mVolt) from ADC conversion data of internal voltage
AnnaBridge 172:65be27845400 2184 * reference VrefInt.
AnnaBridge 172:65be27845400 2185 * @note Computation is using VrefInt calibration value
AnnaBridge 172:65be27845400 2186 * stored in system memory for each device during production.
AnnaBridge 172:65be27845400 2187 * @note This voltage depends on user board environment: voltage level
AnnaBridge 172:65be27845400 2188 * connected to pin Vref+.
AnnaBridge 172:65be27845400 2189 * On devices with small package, the pin Vref+ is not present
AnnaBridge 172:65be27845400 2190 * and internally bonded to pin Vdda.
AnnaBridge 172:65be27845400 2191 * @note On this STM32 serie, calibration data of internal voltage reference
AnnaBridge 172:65be27845400 2192 * VrefInt corresponds to a resolution of 12 bits,
AnnaBridge 172:65be27845400 2193 * this is the recommended ADC resolution to convert voltage of
AnnaBridge 172:65be27845400 2194 * internal voltage reference VrefInt.
AnnaBridge 172:65be27845400 2195 * Otherwise, this macro performs the processing to scale
AnnaBridge 172:65be27845400 2196 * ADC conversion data to 12 bits.
AnnaBridge 172:65be27845400 2197 * @param __VREFINT_ADC_DATA__ ADC conversion data (resolution 12 bits)
AnnaBridge 172:65be27845400 2198 * of internal voltage reference VrefInt (unit: digital value).
AnnaBridge 172:65be27845400 2199 * @param __ADC_RESOLUTION__ This parameter can be one of the following values:
AnnaBridge 172:65be27845400 2200 * @arg @ref LL_ADC_RESOLUTION_12B
AnnaBridge 172:65be27845400 2201 * @arg @ref LL_ADC_RESOLUTION_10B
AnnaBridge 172:65be27845400 2202 * @arg @ref LL_ADC_RESOLUTION_8B
AnnaBridge 172:65be27845400 2203 * @arg @ref LL_ADC_RESOLUTION_6B
AnnaBridge 172:65be27845400 2204 * @retval Analog reference voltage (unit: mV)
AnnaBridge 172:65be27845400 2205 */
AnnaBridge 172:65be27845400 2206 #define __LL_ADC_CALC_VREFANALOG_VOLTAGE(__VREFINT_ADC_DATA__,\
AnnaBridge 172:65be27845400 2207 __ADC_RESOLUTION__) \
AnnaBridge 172:65be27845400 2208 (((uint32_t)(*VREFINT_CAL_ADDR) * VREFINT_CAL_VREF) \
AnnaBridge 172:65be27845400 2209 / __LL_ADC_CONVERT_DATA_RESOLUTION((__VREFINT_ADC_DATA__), \
AnnaBridge 172:65be27845400 2210 (__ADC_RESOLUTION__), \
AnnaBridge 172:65be27845400 2211 LL_ADC_RESOLUTION_12B) \
AnnaBridge 172:65be27845400 2212 )
AnnaBridge 172:65be27845400 2213
AnnaBridge 172:65be27845400 2214 /**
AnnaBridge 172:65be27845400 2215 * @brief Helper macro to calculate the temperature (unit: degree Celsius)
AnnaBridge 172:65be27845400 2216 * from ADC conversion data of internal temperature sensor.
AnnaBridge 172:65be27845400 2217 * @note Computation is using temperature sensor calibration values
AnnaBridge 172:65be27845400 2218 * stored in system memory for each device during production.
AnnaBridge 172:65be27845400 2219 * @note Calculation formula:
AnnaBridge 172:65be27845400 2220 * Temperature = ((TS_ADC_DATA - TS_CAL1)
AnnaBridge 172:65be27845400 2221 * * (TS_CAL2_TEMP - TS_CAL1_TEMP))
AnnaBridge 172:65be27845400 2222 * / (TS_CAL2 - TS_CAL1) + TS_CAL1_TEMP
AnnaBridge 172:65be27845400 2223 * with TS_ADC_DATA = temperature sensor raw data measured by ADC
AnnaBridge 172:65be27845400 2224 * Avg_Slope = (TS_CAL2 - TS_CAL1)
AnnaBridge 172:65be27845400 2225 * / (TS_CAL2_TEMP - TS_CAL1_TEMP)
AnnaBridge 172:65be27845400 2226 * TS_CAL1 = equivalent TS_ADC_DATA at temperature
AnnaBridge 172:65be27845400 2227 * TEMP_DEGC_CAL1 (calibrated in factory)
AnnaBridge 172:65be27845400 2228 * TS_CAL2 = equivalent TS_ADC_DATA at temperature
AnnaBridge 172:65be27845400 2229 * TEMP_DEGC_CAL2 (calibrated in factory)
AnnaBridge 172:65be27845400 2230 * Caution: Calculation relevancy under reserve that calibration
AnnaBridge 172:65be27845400 2231 * parameters are correct (address and data).
AnnaBridge 172:65be27845400 2232 * To calculate temperature using temperature sensor
AnnaBridge 172:65be27845400 2233 * datasheet typical values (generic values less, therefore
AnnaBridge 172:65be27845400 2234 * less accurate than calibrated values),
AnnaBridge 172:65be27845400 2235 * use helper macro @ref __LL_ADC_CALC_TEMPERATURE_TYP_PARAMS().
AnnaBridge 172:65be27845400 2236 * @note As calculation input, the analog reference voltage (Vref+) must be
AnnaBridge 172:65be27845400 2237 * defined as it impacts the ADC LSB equivalent voltage.
AnnaBridge 172:65be27845400 2238 * @note Analog reference voltage (Vref+) must be either known from
AnnaBridge 172:65be27845400 2239 * user board environment or can be calculated using ADC measurement
AnnaBridge 172:65be27845400 2240 * and ADC helper macro @ref __LL_ADC_CALC_VREFANALOG_VOLTAGE().
AnnaBridge 172:65be27845400 2241 * @note On this STM32 serie, calibration data of temperature sensor
AnnaBridge 172:65be27845400 2242 * corresponds to a resolution of 12 bits,
AnnaBridge 172:65be27845400 2243 * this is the recommended ADC resolution to convert voltage of
AnnaBridge 172:65be27845400 2244 * temperature sensor.
AnnaBridge 172:65be27845400 2245 * Otherwise, this macro performs the processing to scale
AnnaBridge 172:65be27845400 2246 * ADC conversion data to 12 bits.
AnnaBridge 172:65be27845400 2247 * @param __VREFANALOG_VOLTAGE__ Analog reference voltage (unit: mV)
AnnaBridge 172:65be27845400 2248 * @param __TEMPSENSOR_ADC_DATA__ ADC conversion data of internal
AnnaBridge 172:65be27845400 2249 * temperature sensor (unit: digital value).
AnnaBridge 172:65be27845400 2250 * @param __ADC_RESOLUTION__ ADC resolution at which internal temperature
AnnaBridge 172:65be27845400 2251 * sensor voltage has been measured.
AnnaBridge 172:65be27845400 2252 * This parameter can be one of the following values:
AnnaBridge 172:65be27845400 2253 * @arg @ref LL_ADC_RESOLUTION_12B
AnnaBridge 172:65be27845400 2254 * @arg @ref LL_ADC_RESOLUTION_10B
AnnaBridge 172:65be27845400 2255 * @arg @ref LL_ADC_RESOLUTION_8B
AnnaBridge 172:65be27845400 2256 * @arg @ref LL_ADC_RESOLUTION_6B
AnnaBridge 172:65be27845400 2257 * @retval Temperature (unit: degree Celsius)
AnnaBridge 172:65be27845400 2258 */
AnnaBridge 172:65be27845400 2259 #define __LL_ADC_CALC_TEMPERATURE(__VREFANALOG_VOLTAGE__,\
AnnaBridge 172:65be27845400 2260 __TEMPSENSOR_ADC_DATA__,\
AnnaBridge 172:65be27845400 2261 __ADC_RESOLUTION__) \
AnnaBridge 172:65be27845400 2262 (((( ((int32_t)((__LL_ADC_CONVERT_DATA_RESOLUTION((__TEMPSENSOR_ADC_DATA__), \
AnnaBridge 172:65be27845400 2263 (__ADC_RESOLUTION__), \
AnnaBridge 172:65be27845400 2264 LL_ADC_RESOLUTION_12B) \
AnnaBridge 172:65be27845400 2265 * (__VREFANALOG_VOLTAGE__)) \
AnnaBridge 172:65be27845400 2266 / TEMPSENSOR_CAL_VREFANALOG) \
AnnaBridge 172:65be27845400 2267 - (int32_t) *TEMPSENSOR_CAL1_ADDR) \
AnnaBridge 172:65be27845400 2268 ) * (int32_t)(TEMPSENSOR_CAL2_TEMP - TEMPSENSOR_CAL1_TEMP) \
AnnaBridge 172:65be27845400 2269 ) / (int32_t)((int32_t)*TEMPSENSOR_CAL2_ADDR - (int32_t)*TEMPSENSOR_CAL1_ADDR) \
AnnaBridge 172:65be27845400 2270 ) + TEMPSENSOR_CAL1_TEMP \
AnnaBridge 172:65be27845400 2271 )
AnnaBridge 172:65be27845400 2272
AnnaBridge 172:65be27845400 2273 /**
AnnaBridge 172:65be27845400 2274 * @brief Helper macro to calculate the temperature (unit: degree Celsius)
AnnaBridge 172:65be27845400 2275 * from ADC conversion data of internal temperature sensor.
AnnaBridge 172:65be27845400 2276 * @note Computation is using temperature sensor typical values
AnnaBridge 172:65be27845400 2277 * (refer to device datasheet).
AnnaBridge 172:65be27845400 2278 * @note Calculation formula:
AnnaBridge 172:65be27845400 2279 * Temperature = (TS_TYP_CALx_VOLT(uV) - TS_ADC_DATA * Conversion_uV)
AnnaBridge 172:65be27845400 2280 * / Avg_Slope + CALx_TEMP
AnnaBridge 172:65be27845400 2281 * with TS_ADC_DATA = temperature sensor raw data measured by ADC
AnnaBridge 172:65be27845400 2282 * (unit: digital value)
AnnaBridge 172:65be27845400 2283 * Avg_Slope = temperature sensor slope
AnnaBridge 172:65be27845400 2284 * (unit: uV/Degree Celsius)
AnnaBridge 172:65be27845400 2285 * TS_TYP_CALx_VOLT = temperature sensor digital value at
AnnaBridge 172:65be27845400 2286 * temperature CALx_TEMP (unit: mV)
AnnaBridge 172:65be27845400 2287 * Caution: Calculation relevancy under reserve the temperature sensor
AnnaBridge 172:65be27845400 2288 * of the current device has characteristics in line with
AnnaBridge 172:65be27845400 2289 * datasheet typical values.
AnnaBridge 172:65be27845400 2290 * If temperature sensor calibration values are available on
AnnaBridge 172:65be27845400 2291 * on this device (presence of macro __LL_ADC_CALC_TEMPERATURE()),
AnnaBridge 172:65be27845400 2292 * temperature calculation will be more accurate using
AnnaBridge 172:65be27845400 2293 * helper macro @ref __LL_ADC_CALC_TEMPERATURE().
AnnaBridge 172:65be27845400 2294 * @note As calculation input, the analog reference voltage (Vref+) must be
AnnaBridge 172:65be27845400 2295 * defined as it impacts the ADC LSB equivalent voltage.
AnnaBridge 172:65be27845400 2296 * @note Analog reference voltage (Vref+) must be either known from
AnnaBridge 172:65be27845400 2297 * user board environment or can be calculated using ADC measurement
AnnaBridge 172:65be27845400 2298 * and ADC helper macro @ref __LL_ADC_CALC_VREFANALOG_VOLTAGE().
AnnaBridge 172:65be27845400 2299 * @note ADC measurement data must correspond to a resolution of 12bits
AnnaBridge 172:65be27845400 2300 * (full scale digital value 4095). If not the case, the data must be
AnnaBridge 172:65be27845400 2301 * preliminarily rescaled to an equivalent resolution of 12 bits.
AnnaBridge 172:65be27845400 2302 * @param __TEMPSENSOR_TYP_AVGSLOPE__ Device datasheet data: Temperature sensor slope typical value (unit: uV/DegCelsius).
AnnaBridge 172:65be27845400 2303 * On STM32L4, refer to device datasheet parameter "Avg_Slope".
AnnaBridge 172:65be27845400 2304 * @param __TEMPSENSOR_TYP_CALX_V__ Device datasheet data: Temperature sensor voltage typical value (at temperature and Vref+ defined in parameters below) (unit: mV).
AnnaBridge 172:65be27845400 2305 * On STM32L4, refer to device datasheet parameter "V30" (corresponding to TS_CAL1).
AnnaBridge 172:65be27845400 2306 * @param __TEMPSENSOR_CALX_TEMP__ Device datasheet data: Temperature at which temperature sensor voltage (see parameter above) is corresponding (unit: mV)
AnnaBridge 172:65be27845400 2307 * @param __VREFANALOG_VOLTAGE__ Analog voltage reference (Vref+) voltage (unit: mV)
AnnaBridge 172:65be27845400 2308 * @param __TEMPSENSOR_ADC_DATA__ ADC conversion data of internal temperature sensor (unit: digital value).
AnnaBridge 172:65be27845400 2309 * @param __ADC_RESOLUTION__ ADC resolution at which internal temperature sensor voltage has been measured.
AnnaBridge 172:65be27845400 2310 * This parameter can be one of the following values:
AnnaBridge 172:65be27845400 2311 * @arg @ref LL_ADC_RESOLUTION_12B
AnnaBridge 172:65be27845400 2312 * @arg @ref LL_ADC_RESOLUTION_10B
AnnaBridge 172:65be27845400 2313 * @arg @ref LL_ADC_RESOLUTION_8B
AnnaBridge 172:65be27845400 2314 * @arg @ref LL_ADC_RESOLUTION_6B
AnnaBridge 172:65be27845400 2315 * @retval Temperature (unit: degree Celsius)
AnnaBridge 172:65be27845400 2316 */
AnnaBridge 172:65be27845400 2317 #define __LL_ADC_CALC_TEMPERATURE_TYP_PARAMS(__TEMPSENSOR_TYP_AVGSLOPE__,\
AnnaBridge 172:65be27845400 2318 __TEMPSENSOR_TYP_CALX_V__,\
AnnaBridge 172:65be27845400 2319 __TEMPSENSOR_CALX_TEMP__,\
AnnaBridge 172:65be27845400 2320 __VREFANALOG_VOLTAGE__,\
AnnaBridge 172:65be27845400 2321 __TEMPSENSOR_ADC_DATA__,\
AnnaBridge 172:65be27845400 2322 __ADC_RESOLUTION__) \
AnnaBridge 172:65be27845400 2323 ((( ( \
AnnaBridge 172:65be27845400 2324 (int32_t)((((__TEMPSENSOR_ADC_DATA__) * (__VREFANALOG_VOLTAGE__)) \
AnnaBridge 172:65be27845400 2325 / __LL_ADC_DIGITAL_SCALE(__ADC_RESOLUTION__)) \
AnnaBridge 172:65be27845400 2326 * 1000) \
AnnaBridge 172:65be27845400 2327 - \
AnnaBridge 172:65be27845400 2328 (int32_t)(((__TEMPSENSOR_TYP_CALX_V__)) \
AnnaBridge 172:65be27845400 2329 * 1000) \
AnnaBridge 172:65be27845400 2330 ) \
AnnaBridge 172:65be27845400 2331 ) / (__TEMPSENSOR_TYP_AVGSLOPE__) \
AnnaBridge 172:65be27845400 2332 ) + (__TEMPSENSOR_CALX_TEMP__) \
AnnaBridge 172:65be27845400 2333 )
AnnaBridge 172:65be27845400 2334
AnnaBridge 172:65be27845400 2335 /**
AnnaBridge 172:65be27845400 2336 * @}
AnnaBridge 172:65be27845400 2337 */
AnnaBridge 172:65be27845400 2338
AnnaBridge 172:65be27845400 2339 /**
AnnaBridge 172:65be27845400 2340 * @}
AnnaBridge 172:65be27845400 2341 */
AnnaBridge 172:65be27845400 2342
AnnaBridge 172:65be27845400 2343
AnnaBridge 172:65be27845400 2344 /* Exported functions --------------------------------------------------------*/
AnnaBridge 172:65be27845400 2345 /** @defgroup ADC_LL_Exported_Functions ADC Exported Functions
AnnaBridge 172:65be27845400 2346 * @{
AnnaBridge 172:65be27845400 2347 */
AnnaBridge 172:65be27845400 2348
AnnaBridge 172:65be27845400 2349 /** @defgroup ADC_LL_EF_DMA_Management ADC DMA management
AnnaBridge 172:65be27845400 2350 * @{
AnnaBridge 172:65be27845400 2351 */
AnnaBridge 172:65be27845400 2352 /* Note: LL ADC functions to set DMA transfer are located into sections of */
AnnaBridge 172:65be27845400 2353 /* configuration of ADC instance, groups and multimode (if available): */
AnnaBridge 172:65be27845400 2354 /* @ref LL_ADC_REG_SetDMATransfer(), ... */
AnnaBridge 172:65be27845400 2355
AnnaBridge 172:65be27845400 2356 /**
AnnaBridge 172:65be27845400 2357 * @brief Function to help to configure DMA transfer from ADC: retrieve the
AnnaBridge 172:65be27845400 2358 * ADC register address from ADC instance and a list of ADC registers
AnnaBridge 172:65be27845400 2359 * intended to be used (most commonly) with DMA transfer.
AnnaBridge 172:65be27845400 2360 * @note These ADC registers are data registers:
AnnaBridge 172:65be27845400 2361 * when ADC conversion data is available in ADC data registers,
AnnaBridge 172:65be27845400 2362 * ADC generates a DMA transfer request.
AnnaBridge 172:65be27845400 2363 * @note This macro is intended to be used with LL DMA driver, refer to
AnnaBridge 172:65be27845400 2364 * function "LL_DMA_ConfigAddresses()".
AnnaBridge 172:65be27845400 2365 * Example:
AnnaBridge 172:65be27845400 2366 * LL_DMA_ConfigAddresses(DMA1,
AnnaBridge 172:65be27845400 2367 * LL_DMA_CHANNEL_1,
AnnaBridge 172:65be27845400 2368 * LL_ADC_DMA_GetRegAddr(ADC1, LL_ADC_DMA_REG_REGULAR_DATA),
AnnaBridge 172:65be27845400 2369 * (uint32_t)&< array or variable >,
AnnaBridge 172:65be27845400 2370 * LL_DMA_DIRECTION_PERIPH_TO_MEMORY);
AnnaBridge 172:65be27845400 2371 * @note For devices with several ADC: in multimode, some devices
AnnaBridge 172:65be27845400 2372 * use a different data register outside of ADC instance scope
AnnaBridge 172:65be27845400 2373 * (common data register). This macro manages this register difference,
AnnaBridge 172:65be27845400 2374 * only ADC instance has to be set as parameter.
AnnaBridge 172:65be27845400 2375 * @rmtoll DR RDATA LL_ADC_DMA_GetRegAddr\n
AnnaBridge 172:65be27845400 2376 * CDR RDATA_MST LL_ADC_DMA_GetRegAddr\n
AnnaBridge 172:65be27845400 2377 * CDR RDATA_SLV LL_ADC_DMA_GetRegAddr
AnnaBridge 172:65be27845400 2378 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 2379 * @param Register This parameter can be one of the following values:
AnnaBridge 172:65be27845400 2380 * @arg @ref LL_ADC_DMA_REG_REGULAR_DATA
AnnaBridge 172:65be27845400 2381 * @arg @ref LL_ADC_DMA_REG_REGULAR_DATA_MULTI (1)
AnnaBridge 172:65be27845400 2382 *
AnnaBridge 172:65be27845400 2383 * (1) Available on devices with several ADC instances.
AnnaBridge 172:65be27845400 2384 * @retval ADC register address
AnnaBridge 172:65be27845400 2385 */
AnnaBridge 172:65be27845400 2386 #if defined(ADC_MULTIMODE_SUPPORT)
AnnaBridge 172:65be27845400 2387 __STATIC_INLINE uint32_t LL_ADC_DMA_GetRegAddr(ADC_TypeDef *ADCx, uint32_t Register)
AnnaBridge 172:65be27845400 2388 {
AnnaBridge 172:65be27845400 2389 register uint32_t data_reg_addr = 0U;
AnnaBridge 172:65be27845400 2390
AnnaBridge 172:65be27845400 2391 if (Register == LL_ADC_DMA_REG_REGULAR_DATA)
AnnaBridge 172:65be27845400 2392 {
AnnaBridge 172:65be27845400 2393 /* Retrieve address of register DR */
AnnaBridge 172:65be27845400 2394 data_reg_addr = (uint32_t)&(ADCx->DR);
AnnaBridge 172:65be27845400 2395 }
AnnaBridge 172:65be27845400 2396 else /* (Register == LL_ADC_DMA_REG_REGULAR_DATA_MULTI) */
AnnaBridge 172:65be27845400 2397 {
AnnaBridge 172:65be27845400 2398 /* Retrieve address of register CDR */
AnnaBridge 172:65be27845400 2399 data_reg_addr = (uint32_t)&((__LL_ADC_COMMON_INSTANCE(ADCx))->CDR);
AnnaBridge 172:65be27845400 2400 }
AnnaBridge 172:65be27845400 2401
AnnaBridge 172:65be27845400 2402 return data_reg_addr;
AnnaBridge 172:65be27845400 2403 }
AnnaBridge 172:65be27845400 2404 #else
AnnaBridge 172:65be27845400 2405 __STATIC_INLINE uint32_t LL_ADC_DMA_GetRegAddr(ADC_TypeDef *ADCx, uint32_t Register)
AnnaBridge 172:65be27845400 2406 {
AnnaBridge 172:65be27845400 2407 /* Retrieve address of register DR */
AnnaBridge 172:65be27845400 2408 return (uint32_t)&(ADCx->DR);
AnnaBridge 172:65be27845400 2409 }
AnnaBridge 172:65be27845400 2410 #endif
AnnaBridge 172:65be27845400 2411
AnnaBridge 172:65be27845400 2412 /**
AnnaBridge 172:65be27845400 2413 * @}
AnnaBridge 172:65be27845400 2414 */
AnnaBridge 172:65be27845400 2415
AnnaBridge 172:65be27845400 2416 /** @defgroup ADC_LL_EF_Configuration_ADC_Common Configuration of ADC hierarchical scope: common to several ADC instances
AnnaBridge 172:65be27845400 2417 * @{
AnnaBridge 172:65be27845400 2418 */
AnnaBridge 172:65be27845400 2419
AnnaBridge 172:65be27845400 2420 /**
AnnaBridge 172:65be27845400 2421 * @brief Set parameter common to several ADC: Clock source and prescaler.
AnnaBridge 172:65be27845400 2422 * @note On this STM32 serie, if ADC group injected is used, some
AnnaBridge 172:65be27845400 2423 * clock ratio constraints between ADC clock and AHB clock
AnnaBridge 172:65be27845400 2424 * must be respected.
AnnaBridge 172:65be27845400 2425 * Refer to reference manual.
AnnaBridge 172:65be27845400 2426 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 2427 * ADC state:
AnnaBridge 172:65be27845400 2428 * All ADC instances of the ADC common group must be disabled.
AnnaBridge 172:65be27845400 2429 * This check can be done with function @ref LL_ADC_IsEnabled() for each
AnnaBridge 172:65be27845400 2430 * ADC instance or by using helper macro helper macro
AnnaBridge 172:65be27845400 2431 * @ref __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE().
AnnaBridge 172:65be27845400 2432 * @rmtoll CCR CKMODE LL_ADC_SetCommonClock\n
AnnaBridge 172:65be27845400 2433 * CCR PRESC LL_ADC_SetCommonClock
AnnaBridge 172:65be27845400 2434 * @param ADCxy_COMMON ADC common instance
AnnaBridge 172:65be27845400 2435 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 172:65be27845400 2436 * @param CommonClock This parameter can be one of the following values:
AnnaBridge 172:65be27845400 2437 * @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV1
AnnaBridge 172:65be27845400 2438 * @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV2
AnnaBridge 172:65be27845400 2439 * @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV4
AnnaBridge 172:65be27845400 2440 * @arg @ref LL_ADC_CLOCK_ASYNC_DIV1
AnnaBridge 172:65be27845400 2441 * @arg @ref LL_ADC_CLOCK_ASYNC_DIV2
AnnaBridge 172:65be27845400 2442 * @arg @ref LL_ADC_CLOCK_ASYNC_DIV4
AnnaBridge 172:65be27845400 2443 * @arg @ref LL_ADC_CLOCK_ASYNC_DIV6
AnnaBridge 172:65be27845400 2444 * @arg @ref LL_ADC_CLOCK_ASYNC_DIV8
AnnaBridge 172:65be27845400 2445 * @arg @ref LL_ADC_CLOCK_ASYNC_DIV10
AnnaBridge 172:65be27845400 2446 * @arg @ref LL_ADC_CLOCK_ASYNC_DIV12
AnnaBridge 172:65be27845400 2447 * @arg @ref LL_ADC_CLOCK_ASYNC_DIV16
AnnaBridge 172:65be27845400 2448 * @arg @ref LL_ADC_CLOCK_ASYNC_DIV32
AnnaBridge 172:65be27845400 2449 * @arg @ref LL_ADC_CLOCK_ASYNC_DIV64
AnnaBridge 172:65be27845400 2450 * @arg @ref LL_ADC_CLOCK_ASYNC_DIV128
AnnaBridge 172:65be27845400 2451 * @arg @ref LL_ADC_CLOCK_ASYNC_DIV256
AnnaBridge 172:65be27845400 2452 * @retval None
AnnaBridge 172:65be27845400 2453 */
AnnaBridge 172:65be27845400 2454 __STATIC_INLINE void LL_ADC_SetCommonClock(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t CommonClock)
AnnaBridge 172:65be27845400 2455 {
AnnaBridge 172:65be27845400 2456 MODIFY_REG(ADCxy_COMMON->CCR, ADC_CCR_CKMODE | ADC_CCR_PRESC, CommonClock);
AnnaBridge 172:65be27845400 2457 }
AnnaBridge 172:65be27845400 2458
AnnaBridge 172:65be27845400 2459 /**
AnnaBridge 172:65be27845400 2460 * @brief Get parameter common to several ADC: Clock source and prescaler.
AnnaBridge 172:65be27845400 2461 * @rmtoll CCR CKMODE LL_ADC_GetCommonClock\n
AnnaBridge 172:65be27845400 2462 * CCR PRESC LL_ADC_GetCommonClock
AnnaBridge 172:65be27845400 2463 * @param ADCxy_COMMON ADC common instance
AnnaBridge 172:65be27845400 2464 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 172:65be27845400 2465 * @retval Returned value can be one of the following values:
AnnaBridge 172:65be27845400 2466 * @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV1
AnnaBridge 172:65be27845400 2467 * @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV2
AnnaBridge 172:65be27845400 2468 * @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV4
AnnaBridge 172:65be27845400 2469 * @arg @ref LL_ADC_CLOCK_ASYNC_DIV1
AnnaBridge 172:65be27845400 2470 * @arg @ref LL_ADC_CLOCK_ASYNC_DIV2
AnnaBridge 172:65be27845400 2471 * @arg @ref LL_ADC_CLOCK_ASYNC_DIV4
AnnaBridge 172:65be27845400 2472 * @arg @ref LL_ADC_CLOCK_ASYNC_DIV6
AnnaBridge 172:65be27845400 2473 * @arg @ref LL_ADC_CLOCK_ASYNC_DIV8
AnnaBridge 172:65be27845400 2474 * @arg @ref LL_ADC_CLOCK_ASYNC_DIV10
AnnaBridge 172:65be27845400 2475 * @arg @ref LL_ADC_CLOCK_ASYNC_DIV12
AnnaBridge 172:65be27845400 2476 * @arg @ref LL_ADC_CLOCK_ASYNC_DIV16
AnnaBridge 172:65be27845400 2477 * @arg @ref LL_ADC_CLOCK_ASYNC_DIV32
AnnaBridge 172:65be27845400 2478 * @arg @ref LL_ADC_CLOCK_ASYNC_DIV64
AnnaBridge 172:65be27845400 2479 * @arg @ref LL_ADC_CLOCK_ASYNC_DIV128
AnnaBridge 172:65be27845400 2480 * @arg @ref LL_ADC_CLOCK_ASYNC_DIV256
AnnaBridge 172:65be27845400 2481 */
AnnaBridge 172:65be27845400 2482 __STATIC_INLINE uint32_t LL_ADC_GetCommonClock(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 172:65be27845400 2483 {
AnnaBridge 172:65be27845400 2484 return (uint32_t)(READ_BIT(ADCxy_COMMON->CCR, ADC_CCR_CKMODE | ADC_CCR_PRESC));
AnnaBridge 172:65be27845400 2485 }
AnnaBridge 172:65be27845400 2486
AnnaBridge 172:65be27845400 2487 /**
AnnaBridge 172:65be27845400 2488 * @brief Set parameter common to several ADC: measurement path to internal
AnnaBridge 172:65be27845400 2489 * channels (VrefInt, temperature sensor, ...).
AnnaBridge 172:65be27845400 2490 * @note One or several values can be selected.
AnnaBridge 172:65be27845400 2491 * Example: (LL_ADC_PATH_INTERNAL_VREFINT |
AnnaBridge 172:65be27845400 2492 * LL_ADC_PATH_INTERNAL_TEMPSENSOR)
AnnaBridge 172:65be27845400 2493 * @note Stabilization time of measurement path to internal channel:
AnnaBridge 172:65be27845400 2494 * After enabling internal paths, before starting ADC conversion,
AnnaBridge 172:65be27845400 2495 * a delay is required for internal voltage reference and
AnnaBridge 172:65be27845400 2496 * temperature sensor stabilization time.
AnnaBridge 172:65be27845400 2497 * Refer to device datasheet.
AnnaBridge 172:65be27845400 2498 * Refer to literal @ref LL_ADC_DELAY_VREFINT_STAB_US.
AnnaBridge 172:65be27845400 2499 * Refer to literal @ref LL_ADC_DELAY_TEMPSENSOR_STAB_US.
AnnaBridge 172:65be27845400 2500 * @note ADC internal channel sampling time constraint:
AnnaBridge 172:65be27845400 2501 * For ADC conversion of internal channels,
AnnaBridge 172:65be27845400 2502 * a sampling time minimum value is required.
AnnaBridge 172:65be27845400 2503 * Refer to device datasheet.
AnnaBridge 172:65be27845400 2504 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 2505 * ADC state:
AnnaBridge 172:65be27845400 2506 * All ADC instances of the ADC common group must be disabled.
AnnaBridge 172:65be27845400 2507 * This check can be done with function @ref LL_ADC_IsEnabled() for each
AnnaBridge 172:65be27845400 2508 * ADC instance or by using helper macro helper macro
AnnaBridge 172:65be27845400 2509 * @ref __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE().
AnnaBridge 172:65be27845400 2510 * @rmtoll CCR VREFEN LL_ADC_SetCommonPathInternalCh\n
AnnaBridge 172:65be27845400 2511 * CCR TSEN LL_ADC_SetCommonPathInternalCh\n
AnnaBridge 172:65be27845400 2512 * CCR VBATEN LL_ADC_SetCommonPathInternalCh
AnnaBridge 172:65be27845400 2513 * @param ADCxy_COMMON ADC common instance
AnnaBridge 172:65be27845400 2514 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 172:65be27845400 2515 * @param PathInternal This parameter can be a combination of the following values:
AnnaBridge 172:65be27845400 2516 * @arg @ref LL_ADC_PATH_INTERNAL_NONE
AnnaBridge 172:65be27845400 2517 * @arg @ref LL_ADC_PATH_INTERNAL_VREFINT
AnnaBridge 172:65be27845400 2518 * @arg @ref LL_ADC_PATH_INTERNAL_TEMPSENSOR
AnnaBridge 172:65be27845400 2519 * @arg @ref LL_ADC_PATH_INTERNAL_VBAT
AnnaBridge 172:65be27845400 2520 * @retval None
AnnaBridge 172:65be27845400 2521 */
AnnaBridge 172:65be27845400 2522 __STATIC_INLINE void LL_ADC_SetCommonPathInternalCh(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t PathInternal)
AnnaBridge 172:65be27845400 2523 {
AnnaBridge 172:65be27845400 2524 MODIFY_REG(ADCxy_COMMON->CCR, ADC_CCR_VREFEN | ADC_CCR_TSEN | ADC_CCR_VBATEN, PathInternal);
AnnaBridge 172:65be27845400 2525 }
AnnaBridge 172:65be27845400 2526
AnnaBridge 172:65be27845400 2527 /**
AnnaBridge 172:65be27845400 2528 * @brief Get parameter common to several ADC: measurement path to internal
AnnaBridge 172:65be27845400 2529 * channels (VrefInt, temperature sensor, ...).
AnnaBridge 172:65be27845400 2530 * @note One or several values can be selected.
AnnaBridge 172:65be27845400 2531 * Example: (LL_ADC_PATH_INTERNAL_VREFINT |
AnnaBridge 172:65be27845400 2532 * LL_ADC_PATH_INTERNAL_TEMPSENSOR)
AnnaBridge 172:65be27845400 2533 * @rmtoll CCR VREFEN LL_ADC_GetCommonPathInternalCh\n
AnnaBridge 172:65be27845400 2534 * CCR TSEN LL_ADC_GetCommonPathInternalCh\n
AnnaBridge 172:65be27845400 2535 * CCR VBATEN LL_ADC_GetCommonPathInternalCh
AnnaBridge 172:65be27845400 2536 * @param ADCxy_COMMON ADC common instance
AnnaBridge 172:65be27845400 2537 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 172:65be27845400 2538 * @retval Returned value can be a combination of the following values:
AnnaBridge 172:65be27845400 2539 * @arg @ref LL_ADC_PATH_INTERNAL_NONE
AnnaBridge 172:65be27845400 2540 * @arg @ref LL_ADC_PATH_INTERNAL_VREFINT
AnnaBridge 172:65be27845400 2541 * @arg @ref LL_ADC_PATH_INTERNAL_TEMPSENSOR
AnnaBridge 172:65be27845400 2542 * @arg @ref LL_ADC_PATH_INTERNAL_VBAT
AnnaBridge 172:65be27845400 2543 */
AnnaBridge 172:65be27845400 2544 __STATIC_INLINE uint32_t LL_ADC_GetCommonPathInternalCh(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 172:65be27845400 2545 {
AnnaBridge 172:65be27845400 2546 return (uint32_t)(READ_BIT(ADCxy_COMMON->CCR, ADC_CCR_VREFEN | ADC_CCR_TSEN | ADC_CCR_VBATEN));
AnnaBridge 172:65be27845400 2547 }
AnnaBridge 172:65be27845400 2548
AnnaBridge 172:65be27845400 2549 /**
AnnaBridge 172:65be27845400 2550 * @}
AnnaBridge 172:65be27845400 2551 */
AnnaBridge 172:65be27845400 2552
AnnaBridge 172:65be27845400 2553 /** @defgroup ADC_LL_EF_Configuration_ADC_Instance Configuration of ADC hierarchical scope: ADC instance
AnnaBridge 172:65be27845400 2554 * @{
AnnaBridge 172:65be27845400 2555 */
AnnaBridge 172:65be27845400 2556
AnnaBridge 172:65be27845400 2557 /**
AnnaBridge 172:65be27845400 2558 * @brief Set ADC calibration factor in the mode single-ended
AnnaBridge 172:65be27845400 2559 * or differential (for devices with differential mode available).
AnnaBridge 172:65be27845400 2560 * @note This function is intended to set calibration parameters
AnnaBridge 172:65be27845400 2561 * without having to perform a new calibration using
AnnaBridge 172:65be27845400 2562 * @ref LL_ADC_StartCalibration().
AnnaBridge 172:65be27845400 2563 * @note For devices with differential mode available:
AnnaBridge 172:65be27845400 2564 * Calibration of offset is specific to each of
AnnaBridge 172:65be27845400 2565 * single-ended and differential modes
AnnaBridge 172:65be27845400 2566 * (calibration factor must be specified for each of these
AnnaBridge 172:65be27845400 2567 * differential modes, if used afterwards and if the application
AnnaBridge 172:65be27845400 2568 * requires their calibration).
AnnaBridge 172:65be27845400 2569 * @note In case of setting calibration factors of both modes single ended
AnnaBridge 172:65be27845400 2570 * and differential (parameter LL_ADC_BOTH_SINGLE_DIFF_ENDED):
AnnaBridge 172:65be27845400 2571 * both calibration factors must be concatenated.
AnnaBridge 172:65be27845400 2572 * To perform this processing, use helper macro
AnnaBridge 172:65be27845400 2573 * @ref __LL_ADC_CALIB_FACTOR_SINGLE_DIFF().
AnnaBridge 172:65be27845400 2574 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 2575 * ADC state:
AnnaBridge 172:65be27845400 2576 * ADC must be enabled, without calibration on going, without conversion
AnnaBridge 172:65be27845400 2577 * on going on group regular.
AnnaBridge 172:65be27845400 2578 * @rmtoll CALFACT CALFACT_S LL_ADC_SetCalibrationFactor\n
AnnaBridge 172:65be27845400 2579 * CALFACT CALFACT_D LL_ADC_SetCalibrationFactor
AnnaBridge 172:65be27845400 2580 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 2581 * @param SingleDiff This parameter can be one of the following values:
AnnaBridge 172:65be27845400 2582 * @arg @ref LL_ADC_SINGLE_ENDED
AnnaBridge 172:65be27845400 2583 * @arg @ref LL_ADC_DIFFERENTIAL_ENDED
AnnaBridge 172:65be27845400 2584 * @arg @ref LL_ADC_BOTH_SINGLE_DIFF_ENDED
AnnaBridge 172:65be27845400 2585 * @param CalibrationFactor Value between Min_Data=0x00 and Max_Data=0x7F
AnnaBridge 172:65be27845400 2586 * @retval None
AnnaBridge 172:65be27845400 2587 */
AnnaBridge 172:65be27845400 2588 __STATIC_INLINE void LL_ADC_SetCalibrationFactor(ADC_TypeDef *ADCx, uint32_t SingleDiff, uint32_t CalibrationFactor)
AnnaBridge 172:65be27845400 2589 {
AnnaBridge 172:65be27845400 2590 #if defined(CORE_CM0PLUS)
AnnaBridge 172:65be27845400 2591 MODIFY_REG(ADCx->CALFACT,
AnnaBridge 172:65be27845400 2592 SingleDiff & ADC_SINGLEDIFF_CALIB_FACTOR_MASK,
AnnaBridge 172:65be27845400 2593 CalibrationFactor << (((SingleDiff & ADC_SINGLEDIFF_CALIB_F_BIT_D_MASK) >> ADC_SINGLEDIFF_CALIB_F_BIT_D_SHIFT4) & ~(SingleDiff & ADC_CALFACT_CALFACT_S)));
AnnaBridge 172:65be27845400 2594 #else
AnnaBridge 172:65be27845400 2595 MODIFY_REG(ADCx->CALFACT,
AnnaBridge 172:65be27845400 2596 SingleDiff & ADC_SINGLEDIFF_CALIB_FACTOR_MASK,
AnnaBridge 172:65be27845400 2597 CalibrationFactor << POSITION_VAL(SingleDiff & ADC_SINGLEDIFF_CALIB_FACTOR_MASK));
AnnaBridge 172:65be27845400 2598 #endif
AnnaBridge 172:65be27845400 2599 }
AnnaBridge 172:65be27845400 2600
AnnaBridge 172:65be27845400 2601 /**
AnnaBridge 172:65be27845400 2602 * @brief Get ADC calibration factor in the mode single-ended
AnnaBridge 172:65be27845400 2603 * or differential (for devices with differential mode available).
AnnaBridge 172:65be27845400 2604 * @note Calibration factors are set by hardware after performing
AnnaBridge 172:65be27845400 2605 * a calibration run using function @ref LL_ADC_StartCalibration().
AnnaBridge 172:65be27845400 2606 * @note For devices with differential mode available:
AnnaBridge 172:65be27845400 2607 * Calibration of offset is specific to each of
AnnaBridge 172:65be27845400 2608 * single-ended and differential modes
AnnaBridge 172:65be27845400 2609 * @rmtoll CALFACT CALFACT_S LL_ADC_GetCalibrationFactor\n
AnnaBridge 172:65be27845400 2610 * CALFACT CALFACT_D LL_ADC_GetCalibrationFactor
AnnaBridge 172:65be27845400 2611 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 2612 * @param SingleDiff This parameter can be one of the following values:
AnnaBridge 172:65be27845400 2613 * @arg @ref LL_ADC_SINGLE_ENDED
AnnaBridge 172:65be27845400 2614 * @arg @ref LL_ADC_DIFFERENTIAL_ENDED
AnnaBridge 172:65be27845400 2615 * @retval Value between Min_Data=0x00 and Max_Data=0x7F
AnnaBridge 172:65be27845400 2616 */
AnnaBridge 172:65be27845400 2617 __STATIC_INLINE uint32_t LL_ADC_GetCalibrationFactor(ADC_TypeDef *ADCx, uint32_t SingleDiff)
AnnaBridge 172:65be27845400 2618 {
AnnaBridge 172:65be27845400 2619 /* Retrieve bits with position in register depending on parameter */
AnnaBridge 172:65be27845400 2620 /* "SingleDiff". */
AnnaBridge 172:65be27845400 2621 /* Parameter used with mask "ADC_SINGLEDIFF_CALIB_FACTOR_MASK" because */
AnnaBridge 172:65be27845400 2622 /* containing other bits reserved for other purpose. */
AnnaBridge 172:65be27845400 2623 #if defined(CORE_CM0PLUS)
AnnaBridge 172:65be27845400 2624 return (uint32_t)(READ_BIT(ADCx->CALFACT, (SingleDiff & ADC_SINGLEDIFF_CALIB_FACTOR_MASK)) >> ((SingleDiff & ADC_SINGLEDIFF_CALIB_F_BIT_D_MASK) >> ADC_SINGLEDIFF_CALIB_F_BIT_D_SHIFT4));
AnnaBridge 172:65be27845400 2625 #else
AnnaBridge 172:65be27845400 2626 return (uint32_t)(READ_BIT(ADCx->CALFACT, (SingleDiff & ADC_SINGLEDIFF_CALIB_FACTOR_MASK)) >> POSITION_VAL(SingleDiff & ADC_SINGLEDIFF_CALIB_FACTOR_MASK));
AnnaBridge 172:65be27845400 2627 #endif
AnnaBridge 172:65be27845400 2628 }
AnnaBridge 172:65be27845400 2629
AnnaBridge 172:65be27845400 2630 /**
AnnaBridge 172:65be27845400 2631 * @brief Set ADC resolution.
AnnaBridge 172:65be27845400 2632 * Refer to reference manual for alignments formats
AnnaBridge 172:65be27845400 2633 * dependencies to ADC resolutions.
AnnaBridge 172:65be27845400 2634 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 2635 * ADC state:
AnnaBridge 172:65be27845400 2636 * ADC must be disabled or enabled without conversion on going
AnnaBridge 172:65be27845400 2637 * on either groups regular or injected.
AnnaBridge 172:65be27845400 2638 * @rmtoll CFGR RES LL_ADC_SetResolution
AnnaBridge 172:65be27845400 2639 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 2640 * @param Resolution This parameter can be one of the following values:
AnnaBridge 172:65be27845400 2641 * @arg @ref LL_ADC_RESOLUTION_12B
AnnaBridge 172:65be27845400 2642 * @arg @ref LL_ADC_RESOLUTION_10B
AnnaBridge 172:65be27845400 2643 * @arg @ref LL_ADC_RESOLUTION_8B
AnnaBridge 172:65be27845400 2644 * @arg @ref LL_ADC_RESOLUTION_6B
AnnaBridge 172:65be27845400 2645 * @retval None
AnnaBridge 172:65be27845400 2646 */
AnnaBridge 172:65be27845400 2647 __STATIC_INLINE void LL_ADC_SetResolution(ADC_TypeDef *ADCx, uint32_t Resolution)
AnnaBridge 172:65be27845400 2648 {
AnnaBridge 172:65be27845400 2649 MODIFY_REG(ADCx->CFGR, ADC_CFGR_RES, Resolution);
AnnaBridge 172:65be27845400 2650 }
AnnaBridge 172:65be27845400 2651
AnnaBridge 172:65be27845400 2652 /**
AnnaBridge 172:65be27845400 2653 * @brief Get ADC resolution.
AnnaBridge 172:65be27845400 2654 * Refer to reference manual for alignments formats
AnnaBridge 172:65be27845400 2655 * dependencies to ADC resolutions.
AnnaBridge 172:65be27845400 2656 * @rmtoll CFGR RES LL_ADC_GetResolution
AnnaBridge 172:65be27845400 2657 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 2658 * @retval Returned value can be one of the following values:
AnnaBridge 172:65be27845400 2659 * @arg @ref LL_ADC_RESOLUTION_12B
AnnaBridge 172:65be27845400 2660 * @arg @ref LL_ADC_RESOLUTION_10B
AnnaBridge 172:65be27845400 2661 * @arg @ref LL_ADC_RESOLUTION_8B
AnnaBridge 172:65be27845400 2662 * @arg @ref LL_ADC_RESOLUTION_6B
AnnaBridge 172:65be27845400 2663 */
AnnaBridge 172:65be27845400 2664 __STATIC_INLINE uint32_t LL_ADC_GetResolution(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 2665 {
AnnaBridge 172:65be27845400 2666 return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_RES));
AnnaBridge 172:65be27845400 2667 }
AnnaBridge 172:65be27845400 2668
AnnaBridge 172:65be27845400 2669 /**
AnnaBridge 172:65be27845400 2670 * @brief Set ADC conversion data alignment.
AnnaBridge 172:65be27845400 2671 * @note Refer to reference manual for alignments formats
AnnaBridge 172:65be27845400 2672 * dependencies to ADC resolutions.
AnnaBridge 172:65be27845400 2673 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 2674 * ADC state:
AnnaBridge 172:65be27845400 2675 * ADC must be disabled or enabled without conversion on going
AnnaBridge 172:65be27845400 2676 * on either groups regular or injected.
AnnaBridge 172:65be27845400 2677 * @rmtoll CFGR ALIGN LL_ADC_SetDataAlignment
AnnaBridge 172:65be27845400 2678 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 2679 * @param DataAlignment This parameter can be one of the following values:
AnnaBridge 172:65be27845400 2680 * @arg @ref LL_ADC_DATA_ALIGN_RIGHT
AnnaBridge 172:65be27845400 2681 * @arg @ref LL_ADC_DATA_ALIGN_LEFT
AnnaBridge 172:65be27845400 2682 * @retval None
AnnaBridge 172:65be27845400 2683 */
AnnaBridge 172:65be27845400 2684 __STATIC_INLINE void LL_ADC_SetDataAlignment(ADC_TypeDef *ADCx, uint32_t DataAlignment)
AnnaBridge 172:65be27845400 2685 {
AnnaBridge 172:65be27845400 2686 MODIFY_REG(ADCx->CFGR, ADC_CFGR_ALIGN, DataAlignment);
AnnaBridge 172:65be27845400 2687 }
AnnaBridge 172:65be27845400 2688
AnnaBridge 172:65be27845400 2689 /**
AnnaBridge 172:65be27845400 2690 * @brief Get ADC conversion data alignment.
AnnaBridge 172:65be27845400 2691 * @note Refer to reference manual for alignments formats
AnnaBridge 172:65be27845400 2692 * dependencies to ADC resolutions.
AnnaBridge 172:65be27845400 2693 * @rmtoll CFGR ALIGN LL_ADC_GetDataAlignment
AnnaBridge 172:65be27845400 2694 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 2695 * @retval Returned value can be one of the following values:
AnnaBridge 172:65be27845400 2696 * @arg @ref LL_ADC_DATA_ALIGN_RIGHT
AnnaBridge 172:65be27845400 2697 * @arg @ref LL_ADC_DATA_ALIGN_LEFT
AnnaBridge 172:65be27845400 2698 */
AnnaBridge 172:65be27845400 2699 __STATIC_INLINE uint32_t LL_ADC_GetDataAlignment(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 2700 {
AnnaBridge 172:65be27845400 2701 return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_ALIGN));
AnnaBridge 172:65be27845400 2702 }
AnnaBridge 172:65be27845400 2703
AnnaBridge 172:65be27845400 2704 /**
AnnaBridge 172:65be27845400 2705 * @brief Set ADC low power mode.
AnnaBridge 172:65be27845400 2706 * @note Description of ADC low power modes:
AnnaBridge 172:65be27845400 2707 * - ADC low power mode "auto wait": Dynamic low power mode,
AnnaBridge 172:65be27845400 2708 * ADC conversions occurrences are limited to the minimum necessary
AnnaBridge 172:65be27845400 2709 * in order to reduce power consumption.
AnnaBridge 172:65be27845400 2710 * New ADC conversion starts only when the previous
AnnaBridge 172:65be27845400 2711 * unitary conversion data (for ADC group regular)
AnnaBridge 172:65be27845400 2712 * or previous sequence conversions data (for ADC group injected)
AnnaBridge 172:65be27845400 2713 * has been retrieved by user software.
AnnaBridge 172:65be27845400 2714 * In the meantime, ADC remains idle: does not performs any
AnnaBridge 172:65be27845400 2715 * other conversion.
AnnaBridge 172:65be27845400 2716 * This mode allows to automatically adapt the ADC conversions
AnnaBridge 172:65be27845400 2717 * triggers to the speed of the software that reads the data.
AnnaBridge 172:65be27845400 2718 * Moreover, this avoids risk of overrun for low frequency
AnnaBridge 172:65be27845400 2719 * applications.
AnnaBridge 172:65be27845400 2720 * How to use this low power mode:
AnnaBridge 172:65be27845400 2721 * - Do not use with interruption or DMA since these modes
AnnaBridge 172:65be27845400 2722 * have to clear immediately the EOC flag to free the
AnnaBridge 172:65be27845400 2723 * IRQ vector sequencer.
AnnaBridge 172:65be27845400 2724 * - Do use with polling: 1. Start conversion,
AnnaBridge 172:65be27845400 2725 * 2. Later on, when conversion data is needed: poll for end of
AnnaBridge 172:65be27845400 2726 * conversion to ensure that conversion is completed and
AnnaBridge 172:65be27845400 2727 * retrieve ADC conversion data. This will trig another
AnnaBridge 172:65be27845400 2728 * ADC conversion start.
AnnaBridge 172:65be27845400 2729 * - ADC low power mode "auto power-off" (feature available on
AnnaBridge 172:65be27845400 2730 * this device if parameter LL_ADC_LP_MODE_AUTOOFF is available):
AnnaBridge 172:65be27845400 2731 * the ADC automatically powers-off after a conversion and
AnnaBridge 172:65be27845400 2732 * automatically wakes up when a new conversion is triggered
AnnaBridge 172:65be27845400 2733 * (with startup time between trigger and start of sampling).
AnnaBridge 172:65be27845400 2734 * This feature can be combined with low power mode "auto wait".
AnnaBridge 172:65be27845400 2735 * @note With ADC low power mode "auto wait", the ADC conversion data read
AnnaBridge 172:65be27845400 2736 * is corresponding to previous ADC conversion start, independently
AnnaBridge 172:65be27845400 2737 * of delay during which ADC was idle.
AnnaBridge 172:65be27845400 2738 * Therefore, the ADC conversion data may be outdated: does not
AnnaBridge 172:65be27845400 2739 * correspond to the current voltage level on the selected
AnnaBridge 172:65be27845400 2740 * ADC channel.
AnnaBridge 172:65be27845400 2741 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 2742 * ADC state:
AnnaBridge 172:65be27845400 2743 * ADC must be disabled or enabled without conversion on going
AnnaBridge 172:65be27845400 2744 * on either groups regular or injected.
AnnaBridge 172:65be27845400 2745 * @rmtoll CFGR AUTDLY LL_ADC_SetLowPowerMode
AnnaBridge 172:65be27845400 2746 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 2747 * @param LowPowerMode This parameter can be one of the following values:
AnnaBridge 172:65be27845400 2748 * @arg @ref LL_ADC_LP_MODE_NONE
AnnaBridge 172:65be27845400 2749 * @arg @ref LL_ADC_LP_AUTOWAIT
AnnaBridge 172:65be27845400 2750 * @retval None
AnnaBridge 172:65be27845400 2751 */
AnnaBridge 172:65be27845400 2752 __STATIC_INLINE void LL_ADC_SetLowPowerMode(ADC_TypeDef *ADCx, uint32_t LowPowerMode)
AnnaBridge 172:65be27845400 2753 {
AnnaBridge 172:65be27845400 2754 MODIFY_REG(ADCx->CFGR, ADC_CFGR_AUTDLY, LowPowerMode);
AnnaBridge 172:65be27845400 2755 }
AnnaBridge 172:65be27845400 2756
AnnaBridge 172:65be27845400 2757 /**
AnnaBridge 172:65be27845400 2758 * @brief Get ADC low power mode:
AnnaBridge 172:65be27845400 2759 * @note Description of ADC low power modes:
AnnaBridge 172:65be27845400 2760 * - ADC low power mode "auto wait": Dynamic low power mode,
AnnaBridge 172:65be27845400 2761 * ADC conversions occurrences are limited to the minimum necessary
AnnaBridge 172:65be27845400 2762 * in order to reduce power consumption.
AnnaBridge 172:65be27845400 2763 * New ADC conversion starts only when the previous
AnnaBridge 172:65be27845400 2764 * unitary conversion data (for ADC group regular)
AnnaBridge 172:65be27845400 2765 * or previous sequence conversions data (for ADC group injected)
AnnaBridge 172:65be27845400 2766 * has been retrieved by user software.
AnnaBridge 172:65be27845400 2767 * In the meantime, ADC remains idle: does not performs any
AnnaBridge 172:65be27845400 2768 * other conversion.
AnnaBridge 172:65be27845400 2769 * This mode allows to automatically adapt the ADC conversions
AnnaBridge 172:65be27845400 2770 * triggers to the speed of the software that reads the data.
AnnaBridge 172:65be27845400 2771 * Moreover, this avoids risk of overrun for low frequency
AnnaBridge 172:65be27845400 2772 * applications.
AnnaBridge 172:65be27845400 2773 * How to use this low power mode:
AnnaBridge 172:65be27845400 2774 * - Do not use with interruption or DMA since these modes
AnnaBridge 172:65be27845400 2775 * have to clear immediately the EOC flag to free the
AnnaBridge 172:65be27845400 2776 * IRQ vector sequencer.
AnnaBridge 172:65be27845400 2777 * - Do use with polling: 1. Start conversion,
AnnaBridge 172:65be27845400 2778 * 2. Later on, when conversion data is needed: poll for end of
AnnaBridge 172:65be27845400 2779 * conversion to ensure that conversion is completed and
AnnaBridge 172:65be27845400 2780 * retrieve ADC conversion data. This will trig another
AnnaBridge 172:65be27845400 2781 * ADC conversion start.
AnnaBridge 172:65be27845400 2782 * - ADC low power mode "auto power-off" (feature available on
AnnaBridge 172:65be27845400 2783 * this device if parameter LL_ADC_LP_MODE_AUTOOFF is available):
AnnaBridge 172:65be27845400 2784 * the ADC automatically powers-off after a conversion and
AnnaBridge 172:65be27845400 2785 * automatically wakes up when a new conversion is triggered
AnnaBridge 172:65be27845400 2786 * (with startup time between trigger and start of sampling).
AnnaBridge 172:65be27845400 2787 * This feature can be combined with low power mode "auto wait".
AnnaBridge 172:65be27845400 2788 * @note With ADC low power mode "auto wait", the ADC conversion data read
AnnaBridge 172:65be27845400 2789 * is corresponding to previous ADC conversion start, independently
AnnaBridge 172:65be27845400 2790 * of delay during which ADC was idle.
AnnaBridge 172:65be27845400 2791 * Therefore, the ADC conversion data may be outdated: does not
AnnaBridge 172:65be27845400 2792 * correspond to the current voltage level on the selected
AnnaBridge 172:65be27845400 2793 * ADC channel.
AnnaBridge 172:65be27845400 2794 * @rmtoll CFGR AUTDLY LL_ADC_GetLowPowerMode
AnnaBridge 172:65be27845400 2795 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 2796 * @retval Returned value can be one of the following values:
AnnaBridge 172:65be27845400 2797 * @arg @ref LL_ADC_LP_MODE_NONE
AnnaBridge 172:65be27845400 2798 * @arg @ref LL_ADC_LP_AUTOWAIT
AnnaBridge 172:65be27845400 2799 */
AnnaBridge 172:65be27845400 2800 __STATIC_INLINE uint32_t LL_ADC_GetLowPowerMode(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 2801 {
AnnaBridge 172:65be27845400 2802 return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_AUTDLY));
AnnaBridge 172:65be27845400 2803 }
AnnaBridge 172:65be27845400 2804
AnnaBridge 172:65be27845400 2805 /**
AnnaBridge 172:65be27845400 2806 * @brief Set ADC selected offset number 1, 2, 3 or 4.
AnnaBridge 172:65be27845400 2807 * @note This function set the 2 items of offset configuration:
AnnaBridge 172:65be27845400 2808 * - ADC channel to which the offset programmed will be applied
AnnaBridge 172:65be27845400 2809 * (independently of channel mapped on ADC group regular
AnnaBridge 172:65be27845400 2810 * or group injected)
AnnaBridge 172:65be27845400 2811 * - Offset level (offset to be subtracted from the raw
AnnaBridge 172:65be27845400 2812 * converted data).
AnnaBridge 172:65be27845400 2813 * @note Caution: Offset format is dependent to ADC resolution:
AnnaBridge 172:65be27845400 2814 * offset has to be left-aligned on bit 11, the LSB (right bits)
AnnaBridge 172:65be27845400 2815 * are set to 0.
AnnaBridge 172:65be27845400 2816 * @note This function enables the offset, by default. It can be forced
AnnaBridge 172:65be27845400 2817 * to disable state using function LL_ADC_SetOffsetState().
AnnaBridge 172:65be27845400 2818 * @note If a channel is mapped on several offsets numbers, only the offset
AnnaBridge 172:65be27845400 2819 * with the lowest value is considered for the subtraction.
AnnaBridge 172:65be27845400 2820 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 2821 * ADC state:
AnnaBridge 172:65be27845400 2822 * ADC must be disabled or enabled without conversion on going
AnnaBridge 172:65be27845400 2823 * on either groups regular or injected.
AnnaBridge 172:65be27845400 2824 * @note On STM32L4, some fast channels are available: fast analog inputs
AnnaBridge 172:65be27845400 2825 * coming from GPIO pads (ADC_IN1..5).
AnnaBridge 172:65be27845400 2826 * @rmtoll OFR1 OFFSET1_CH LL_ADC_SetOffset\n
AnnaBridge 172:65be27845400 2827 * OFR1 OFFSET1 LL_ADC_SetOffset\n
AnnaBridge 172:65be27845400 2828 * OFR1 OFFSET1_EN LL_ADC_SetOffset\n
AnnaBridge 172:65be27845400 2829 * OFR2 OFFSET2_CH LL_ADC_SetOffset\n
AnnaBridge 172:65be27845400 2830 * OFR2 OFFSET2 LL_ADC_SetOffset\n
AnnaBridge 172:65be27845400 2831 * OFR2 OFFSET2_EN LL_ADC_SetOffset\n
AnnaBridge 172:65be27845400 2832 * OFR3 OFFSET3_CH LL_ADC_SetOffset\n
AnnaBridge 172:65be27845400 2833 * OFR3 OFFSET3 LL_ADC_SetOffset\n
AnnaBridge 172:65be27845400 2834 * OFR3 OFFSET3_EN LL_ADC_SetOffset\n
AnnaBridge 172:65be27845400 2835 * OFR4 OFFSET4_CH LL_ADC_SetOffset\n
AnnaBridge 172:65be27845400 2836 * OFR4 OFFSET4 LL_ADC_SetOffset\n
AnnaBridge 172:65be27845400 2837 * OFR4 OFFSET4_EN LL_ADC_SetOffset
AnnaBridge 172:65be27845400 2838 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 2839 * @param Offsety This parameter can be one of the following values:
AnnaBridge 172:65be27845400 2840 * @arg @ref LL_ADC_OFFSET_1
AnnaBridge 172:65be27845400 2841 * @arg @ref LL_ADC_OFFSET_2
AnnaBridge 172:65be27845400 2842 * @arg @ref LL_ADC_OFFSET_3
AnnaBridge 172:65be27845400 2843 * @arg @ref LL_ADC_OFFSET_4
AnnaBridge 172:65be27845400 2844 * @param Channel This parameter can be one of the following values:
AnnaBridge 172:65be27845400 2845 * @arg @ref LL_ADC_CHANNEL_0
AnnaBridge 172:65be27845400 2846 * @arg @ref LL_ADC_CHANNEL_1 (7)
AnnaBridge 172:65be27845400 2847 * @arg @ref LL_ADC_CHANNEL_2 (7)
AnnaBridge 172:65be27845400 2848 * @arg @ref LL_ADC_CHANNEL_3 (7)
AnnaBridge 172:65be27845400 2849 * @arg @ref LL_ADC_CHANNEL_4 (7)
AnnaBridge 172:65be27845400 2850 * @arg @ref LL_ADC_CHANNEL_5 (7)
AnnaBridge 172:65be27845400 2851 * @arg @ref LL_ADC_CHANNEL_6
AnnaBridge 172:65be27845400 2852 * @arg @ref LL_ADC_CHANNEL_7
AnnaBridge 172:65be27845400 2853 * @arg @ref LL_ADC_CHANNEL_8
AnnaBridge 172:65be27845400 2854 * @arg @ref LL_ADC_CHANNEL_9
AnnaBridge 172:65be27845400 2855 * @arg @ref LL_ADC_CHANNEL_10
AnnaBridge 172:65be27845400 2856 * @arg @ref LL_ADC_CHANNEL_11
AnnaBridge 172:65be27845400 2857 * @arg @ref LL_ADC_CHANNEL_12
AnnaBridge 172:65be27845400 2858 * @arg @ref LL_ADC_CHANNEL_13
AnnaBridge 172:65be27845400 2859 * @arg @ref LL_ADC_CHANNEL_14
AnnaBridge 172:65be27845400 2860 * @arg @ref LL_ADC_CHANNEL_15
AnnaBridge 172:65be27845400 2861 * @arg @ref LL_ADC_CHANNEL_16
AnnaBridge 172:65be27845400 2862 * @arg @ref LL_ADC_CHANNEL_17
AnnaBridge 172:65be27845400 2863 * @arg @ref LL_ADC_CHANNEL_18
AnnaBridge 172:65be27845400 2864 * @arg @ref LL_ADC_CHANNEL_VREFINT (1)
AnnaBridge 172:65be27845400 2865 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (4)
AnnaBridge 172:65be27845400 2866 * @arg @ref LL_ADC_CHANNEL_VBAT (4)
AnnaBridge 172:65be27845400 2867 * @arg @ref LL_ADC_CHANNEL_DAC1CH1 (5)
AnnaBridge 172:65be27845400 2868 * @arg @ref LL_ADC_CHANNEL_DAC1CH2 (5)
AnnaBridge 172:65be27845400 2869 * @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC2 (2)(6)
AnnaBridge 172:65be27845400 2870 * @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC2 (2)(6)
AnnaBridge 172:65be27845400 2871 * @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC3 (3)(6)
AnnaBridge 172:65be27845400 2872 * @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC3 (3)(6)
AnnaBridge 172:65be27845400 2873 *
AnnaBridge 172:65be27845400 2874 * (1) On STM32L4, parameter available only on ADC instance: ADC1.\n
AnnaBridge 172:65be27845400 2875 * (2) On STM32L4, parameter available only on ADC instance: ADC2.\n
AnnaBridge 172:65be27845400 2876 * (3) On STM32L4, parameter available only on ADC instance: ADC3.\n
AnnaBridge 172:65be27845400 2877 * (4) On STM32L4, parameter available only on ADC instances: ADC1, ADC3.\n
AnnaBridge 172:65be27845400 2878 * (5) On STM32L4, parameter available on devices with only 1 ADC instance.\n
AnnaBridge 172:65be27845400 2879 * (6) On STM32L4, parameter available on devices with several ADC instances.\n
AnnaBridge 172:65be27845400 2880 * (7) On STM32L4, fast channel (0.188 us for 12-bit resolution (ADC conversion rate up to 5.33 Ms/s)).
AnnaBridge 172:65be27845400 2881 * Other channels are slow channels (0.238 us for 12-bit resolution (ADC conversion rate up to 4.21 Ms/s)).
AnnaBridge 172:65be27845400 2882 * @param OffsetLevel Value between Min_Data=0x000 and Max_Data=0xFFF
AnnaBridge 172:65be27845400 2883 * @retval None
AnnaBridge 172:65be27845400 2884 */
AnnaBridge 172:65be27845400 2885 __STATIC_INLINE void LL_ADC_SetOffset(ADC_TypeDef *ADCx, uint32_t Offsety, uint32_t Channel, uint32_t OffsetLevel)
AnnaBridge 172:65be27845400 2886 {
AnnaBridge 172:65be27845400 2887 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->OFR1, Offsety);
AnnaBridge 172:65be27845400 2888
AnnaBridge 172:65be27845400 2889 MODIFY_REG(*preg,
AnnaBridge 172:65be27845400 2890 ADC_OFR1_OFFSET1_EN | ADC_OFR1_OFFSET1_CH | ADC_OFR1_OFFSET1,
AnnaBridge 172:65be27845400 2891 ADC_OFR1_OFFSET1_EN | (Channel & ADC_CHANNEL_ID_NUMBER_MASK) | OffsetLevel);
AnnaBridge 172:65be27845400 2892 }
AnnaBridge 172:65be27845400 2893
AnnaBridge 172:65be27845400 2894 /**
AnnaBridge 172:65be27845400 2895 * @brief Get for the ADC selected offset number 1, 2, 3 or 4:
AnnaBridge 172:65be27845400 2896 * Channel to which the offset programmed will be applied
AnnaBridge 172:65be27845400 2897 * (independently of channel mapped on ADC group regular
AnnaBridge 172:65be27845400 2898 * or group injected)
AnnaBridge 172:65be27845400 2899 * @note Usage of the returned channel number:
AnnaBridge 172:65be27845400 2900 * - To reinject this channel into another function LL_ADC_xxx:
AnnaBridge 172:65be27845400 2901 * the returned channel number is only partly formatted on definition
AnnaBridge 172:65be27845400 2902 * of literals LL_ADC_CHANNEL_x. Therefore, it has to be compared
AnnaBridge 172:65be27845400 2903 * with parts of literals LL_ADC_CHANNEL_x or using
AnnaBridge 172:65be27845400 2904 * helper macro @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
AnnaBridge 172:65be27845400 2905 * Then the selected literal LL_ADC_CHANNEL_x can be used
AnnaBridge 172:65be27845400 2906 * as parameter for another function.
AnnaBridge 172:65be27845400 2907 * - To get the channel number in decimal format:
AnnaBridge 172:65be27845400 2908 * process the returned value with the helper macro
AnnaBridge 172:65be27845400 2909 * @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
AnnaBridge 172:65be27845400 2910 * @note On STM32L4, some fast channels are available: fast analog inputs
AnnaBridge 172:65be27845400 2911 * coming from GPIO pads (ADC_IN1..5).
AnnaBridge 172:65be27845400 2912 * @rmtoll OFR1 OFFSET1_CH LL_ADC_GetOffsetChannel\n
AnnaBridge 172:65be27845400 2913 * OFR2 OFFSET2_CH LL_ADC_GetOffsetChannel\n
AnnaBridge 172:65be27845400 2914 * OFR3 OFFSET3_CH LL_ADC_GetOffsetChannel\n
AnnaBridge 172:65be27845400 2915 * OFR4 OFFSET4_CH LL_ADC_GetOffsetChannel
AnnaBridge 172:65be27845400 2916 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 2917 * @param Offsety This parameter can be one of the following values:
AnnaBridge 172:65be27845400 2918 * @arg @ref LL_ADC_OFFSET_1
AnnaBridge 172:65be27845400 2919 * @arg @ref LL_ADC_OFFSET_2
AnnaBridge 172:65be27845400 2920 * @arg @ref LL_ADC_OFFSET_3
AnnaBridge 172:65be27845400 2921 * @arg @ref LL_ADC_OFFSET_4
AnnaBridge 172:65be27845400 2922 * @retval Returned value can be one of the following values:
AnnaBridge 172:65be27845400 2923 * @arg @ref LL_ADC_CHANNEL_0
AnnaBridge 172:65be27845400 2924 * @arg @ref LL_ADC_CHANNEL_1 (7)
AnnaBridge 172:65be27845400 2925 * @arg @ref LL_ADC_CHANNEL_2 (7)
AnnaBridge 172:65be27845400 2926 * @arg @ref LL_ADC_CHANNEL_3 (7)
AnnaBridge 172:65be27845400 2927 * @arg @ref LL_ADC_CHANNEL_4 (7)
AnnaBridge 172:65be27845400 2928 * @arg @ref LL_ADC_CHANNEL_5 (7)
AnnaBridge 172:65be27845400 2929 * @arg @ref LL_ADC_CHANNEL_6
AnnaBridge 172:65be27845400 2930 * @arg @ref LL_ADC_CHANNEL_7
AnnaBridge 172:65be27845400 2931 * @arg @ref LL_ADC_CHANNEL_8
AnnaBridge 172:65be27845400 2932 * @arg @ref LL_ADC_CHANNEL_9
AnnaBridge 172:65be27845400 2933 * @arg @ref LL_ADC_CHANNEL_10
AnnaBridge 172:65be27845400 2934 * @arg @ref LL_ADC_CHANNEL_11
AnnaBridge 172:65be27845400 2935 * @arg @ref LL_ADC_CHANNEL_12
AnnaBridge 172:65be27845400 2936 * @arg @ref LL_ADC_CHANNEL_13
AnnaBridge 172:65be27845400 2937 * @arg @ref LL_ADC_CHANNEL_14
AnnaBridge 172:65be27845400 2938 * @arg @ref LL_ADC_CHANNEL_15
AnnaBridge 172:65be27845400 2939 * @arg @ref LL_ADC_CHANNEL_16
AnnaBridge 172:65be27845400 2940 * @arg @ref LL_ADC_CHANNEL_17
AnnaBridge 172:65be27845400 2941 * @arg @ref LL_ADC_CHANNEL_18
AnnaBridge 172:65be27845400 2942 * @arg @ref LL_ADC_CHANNEL_VREFINT (1)
AnnaBridge 172:65be27845400 2943 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (4)
AnnaBridge 172:65be27845400 2944 * @arg @ref LL_ADC_CHANNEL_VBAT (4)
AnnaBridge 172:65be27845400 2945 * @arg @ref LL_ADC_CHANNEL_DAC1CH1 (5)
AnnaBridge 172:65be27845400 2946 * @arg @ref LL_ADC_CHANNEL_DAC1CH2 (5)
AnnaBridge 172:65be27845400 2947 * @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC2 (2)(6)
AnnaBridge 172:65be27845400 2948 * @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC2 (2)(6)
AnnaBridge 172:65be27845400 2949 * @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC3 (3)(6)
AnnaBridge 172:65be27845400 2950 * @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC3 (3)(6)
AnnaBridge 172:65be27845400 2951 *
AnnaBridge 172:65be27845400 2952 * (1) On STM32L4, parameter available only on ADC instance: ADC1.\n
AnnaBridge 172:65be27845400 2953 * (2) On STM32L4, parameter available only on ADC instance: ADC2.\n
AnnaBridge 172:65be27845400 2954 * (3) On STM32L4, parameter available only on ADC instance: ADC3.\n
AnnaBridge 172:65be27845400 2955 * (4) On STM32L4, parameter available only on ADC instances: ADC1, ADC3.\n
AnnaBridge 172:65be27845400 2956 * (5) On STM32L4, parameter available on devices with only 1 ADC instance.\n
AnnaBridge 172:65be27845400 2957 * (6) On STM32L4, parameter available on devices with several ADC instances.\n
AnnaBridge 172:65be27845400 2958 * (7) On STM32L4, fast channel (0.188 us for 12-bit resolution (ADC conversion rate up to 5.33 Ms/s)).
AnnaBridge 172:65be27845400 2959 * Other channels are slow channels (0.238 us for 12-bit resolution (ADC conversion rate up to 4.21 Ms/s)).\n
AnnaBridge 172:65be27845400 2960 * (1, 2, 3, 4) For ADC channel read back from ADC register,
AnnaBridge 172:65be27845400 2961 * comparison with internal channel parameter to be done
AnnaBridge 172:65be27845400 2962 * using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL().
AnnaBridge 172:65be27845400 2963 */
AnnaBridge 172:65be27845400 2964 __STATIC_INLINE uint32_t LL_ADC_GetOffsetChannel(ADC_TypeDef *ADCx, uint32_t Offsety)
AnnaBridge 172:65be27845400 2965 {
AnnaBridge 172:65be27845400 2966 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->OFR1, Offsety);
AnnaBridge 172:65be27845400 2967
AnnaBridge 172:65be27845400 2968 return (uint32_t) READ_BIT(*preg, ADC_OFR1_OFFSET1_CH);
AnnaBridge 172:65be27845400 2969 }
AnnaBridge 172:65be27845400 2970
AnnaBridge 172:65be27845400 2971 /**
AnnaBridge 172:65be27845400 2972 * @brief Get for the ADC selected offset number 1, 2, 3 or 4:
AnnaBridge 172:65be27845400 2973 * Offset level (offset to be subtracted from the raw
AnnaBridge 172:65be27845400 2974 * converted data).
AnnaBridge 172:65be27845400 2975 * @note Caution: Offset format is dependent to ADC resolution:
AnnaBridge 172:65be27845400 2976 * offset has to be left-aligned on bit 11, the LSB (right bits)
AnnaBridge 172:65be27845400 2977 * are set to 0.
AnnaBridge 172:65be27845400 2978 * @rmtoll OFR1 OFFSET1 LL_ADC_GetOffsetLevel\n
AnnaBridge 172:65be27845400 2979 * OFR2 OFFSET2 LL_ADC_GetOffsetLevel\n
AnnaBridge 172:65be27845400 2980 * OFR3 OFFSET3 LL_ADC_GetOffsetLevel\n
AnnaBridge 172:65be27845400 2981 * OFR4 OFFSET4 LL_ADC_GetOffsetLevel
AnnaBridge 172:65be27845400 2982 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 2983 * @param Offsety This parameter can be one of the following values:
AnnaBridge 172:65be27845400 2984 * @arg @ref LL_ADC_OFFSET_1
AnnaBridge 172:65be27845400 2985 * @arg @ref LL_ADC_OFFSET_2
AnnaBridge 172:65be27845400 2986 * @arg @ref LL_ADC_OFFSET_3
AnnaBridge 172:65be27845400 2987 * @arg @ref LL_ADC_OFFSET_4
AnnaBridge 172:65be27845400 2988 * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
AnnaBridge 172:65be27845400 2989 */
AnnaBridge 172:65be27845400 2990 __STATIC_INLINE uint32_t LL_ADC_GetOffsetLevel(ADC_TypeDef *ADCx, uint32_t Offsety)
AnnaBridge 172:65be27845400 2991 {
AnnaBridge 172:65be27845400 2992 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->OFR1, Offsety);
AnnaBridge 172:65be27845400 2993
AnnaBridge 172:65be27845400 2994 return (uint32_t) READ_BIT(*preg, ADC_OFR1_OFFSET1);
AnnaBridge 172:65be27845400 2995 }
AnnaBridge 172:65be27845400 2996
AnnaBridge 172:65be27845400 2997 /**
AnnaBridge 172:65be27845400 2998 * @brief Set for the ADC selected offset number 1, 2, 3 or 4:
AnnaBridge 172:65be27845400 2999 * force offset state disable or enable
AnnaBridge 172:65be27845400 3000 * without modifying offset channel or offset value.
AnnaBridge 172:65be27845400 3001 * @note This function should be needed only in case of offset to be
AnnaBridge 172:65be27845400 3002 * enabled-disabled dynamically, and should not be needed in other cases:
AnnaBridge 172:65be27845400 3003 * function LL_ADC_SetOffset() automatically enables the offset.
AnnaBridge 172:65be27845400 3004 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 3005 * ADC state:
AnnaBridge 172:65be27845400 3006 * ADC must be disabled or enabled without conversion on going
AnnaBridge 172:65be27845400 3007 * on either groups regular or injected.
AnnaBridge 172:65be27845400 3008 * @rmtoll OFR1 OFFSET1_EN LL_ADC_SetOffsetState\n
AnnaBridge 172:65be27845400 3009 * OFR2 OFFSET2_EN LL_ADC_SetOffsetState\n
AnnaBridge 172:65be27845400 3010 * OFR3 OFFSET3_EN LL_ADC_SetOffsetState\n
AnnaBridge 172:65be27845400 3011 * OFR4 OFFSET4_EN LL_ADC_SetOffsetState
AnnaBridge 172:65be27845400 3012 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 3013 * @param Offsety This parameter can be one of the following values:
AnnaBridge 172:65be27845400 3014 * @arg @ref LL_ADC_OFFSET_1
AnnaBridge 172:65be27845400 3015 * @arg @ref LL_ADC_OFFSET_2
AnnaBridge 172:65be27845400 3016 * @arg @ref LL_ADC_OFFSET_3
AnnaBridge 172:65be27845400 3017 * @arg @ref LL_ADC_OFFSET_4
AnnaBridge 172:65be27845400 3018 * @param OffsetState This parameter can be one of the following values:
AnnaBridge 172:65be27845400 3019 * @arg @ref LL_ADC_OFFSET_DISABLE
AnnaBridge 172:65be27845400 3020 * @arg @ref LL_ADC_OFFSET_ENABLE
AnnaBridge 172:65be27845400 3021 * @retval None
AnnaBridge 172:65be27845400 3022 */
AnnaBridge 172:65be27845400 3023 __STATIC_INLINE void LL_ADC_SetOffsetState(ADC_TypeDef *ADCx, uint32_t Offsety, uint32_t OffsetState)
AnnaBridge 172:65be27845400 3024 {
AnnaBridge 172:65be27845400 3025 register uint32_t *preg = (uint32_t *)((uint32_t)
AnnaBridge 172:65be27845400 3026 ((uint32_t)(&ADCx->OFR1) + (Offsety*4U)));
AnnaBridge 172:65be27845400 3027
AnnaBridge 172:65be27845400 3028 MODIFY_REG(*preg,
AnnaBridge 172:65be27845400 3029 ADC_OFR1_OFFSET1_EN,
AnnaBridge 172:65be27845400 3030 OffsetState);
AnnaBridge 172:65be27845400 3031 }
AnnaBridge 172:65be27845400 3032
AnnaBridge 172:65be27845400 3033 /**
AnnaBridge 172:65be27845400 3034 * @brief Get for the ADC selected offset number 1, 2, 3 or 4:
AnnaBridge 172:65be27845400 3035 * offset state disabled or enabled.
AnnaBridge 172:65be27845400 3036 * @rmtoll OFR1 OFFSET1_EN LL_ADC_GetOffsetState\n
AnnaBridge 172:65be27845400 3037 * OFR2 OFFSET2_EN LL_ADC_GetOffsetState\n
AnnaBridge 172:65be27845400 3038 * OFR3 OFFSET3_EN LL_ADC_GetOffsetState\n
AnnaBridge 172:65be27845400 3039 * OFR4 OFFSET4_EN LL_ADC_GetOffsetState
AnnaBridge 172:65be27845400 3040 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 3041 * @param Offsety This parameter can be one of the following values:
AnnaBridge 172:65be27845400 3042 * @arg @ref LL_ADC_OFFSET_1
AnnaBridge 172:65be27845400 3043 * @arg @ref LL_ADC_OFFSET_2
AnnaBridge 172:65be27845400 3044 * @arg @ref LL_ADC_OFFSET_3
AnnaBridge 172:65be27845400 3045 * @arg @ref LL_ADC_OFFSET_4
AnnaBridge 172:65be27845400 3046 * @retval Returned value can be one of the following values:
AnnaBridge 172:65be27845400 3047 * @arg @ref LL_ADC_OFFSET_DISABLE
AnnaBridge 172:65be27845400 3048 * @arg @ref LL_ADC_OFFSET_ENABLE
AnnaBridge 172:65be27845400 3049 */
AnnaBridge 172:65be27845400 3050 __STATIC_INLINE uint32_t LL_ADC_GetOffsetState(ADC_TypeDef *ADCx, uint32_t Offsety)
AnnaBridge 172:65be27845400 3051 {
AnnaBridge 172:65be27845400 3052 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->OFR1, Offsety);
AnnaBridge 172:65be27845400 3053
AnnaBridge 172:65be27845400 3054 return (uint32_t) READ_BIT(*preg, ADC_OFR1_OFFSET1_EN);
AnnaBridge 172:65be27845400 3055 }
AnnaBridge 172:65be27845400 3056
AnnaBridge 172:65be27845400 3057 #if defined(ADC_SMPR1_SMPPLUS)
AnnaBridge 172:65be27845400 3058 /**
AnnaBridge 172:65be27845400 3059 * @brief Set ADC sampling time common configuration impacting
AnnaBridge 172:65be27845400 3060 * settings of sampling time channel wise.
AnnaBridge 172:65be27845400 3061 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 3062 * ADC state:
AnnaBridge 172:65be27845400 3063 * ADC must be disabled or enabled without conversion on going
AnnaBridge 172:65be27845400 3064 * on either groups regular or injected.
AnnaBridge 172:65be27845400 3065 * @rmtoll SMPR1 SMPPLUS LL_ADC_SetSamplingTimeCommonConfig
AnnaBridge 172:65be27845400 3066 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 3067 * @param SamplingTimeCommonConfig This parameter can be one of the following values:
AnnaBridge 172:65be27845400 3068 * @arg @ref LL_ADC_SAMPLINGTIME_COMMON_DEFAULT
AnnaBridge 172:65be27845400 3069 * @arg @ref LL_ADC_SAMPLINGTIME_COMMON_3C5_REPL_2C5
AnnaBridge 172:65be27845400 3070 * @retval None
AnnaBridge 172:65be27845400 3071 */
AnnaBridge 172:65be27845400 3072 __STATIC_INLINE void LL_ADC_SetSamplingTimeCommonConfig(ADC_TypeDef *ADCx, uint32_t SamplingTimeCommonConfig)
AnnaBridge 172:65be27845400 3073 {
AnnaBridge 172:65be27845400 3074 MODIFY_REG(ADCx->SMPR1, ADC_SMPR1_SMPPLUS, SamplingTimeCommonConfig);
AnnaBridge 172:65be27845400 3075 }
AnnaBridge 172:65be27845400 3076
AnnaBridge 172:65be27845400 3077 /**
AnnaBridge 172:65be27845400 3078 * @brief Get ADC sampling time common configuration impacting
AnnaBridge 172:65be27845400 3079 * settings of sampling time channel wise.
AnnaBridge 172:65be27845400 3080 * @rmtoll SMPR1 SMPPLUS LL_ADC_GetSamplingTimeCommonConfig
AnnaBridge 172:65be27845400 3081 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 3082 * @retval Returned value can be one of the following values:
AnnaBridge 172:65be27845400 3083 * @arg @ref LL_ADC_SAMPLINGTIME_COMMON_DEFAULT
AnnaBridge 172:65be27845400 3084 * @arg @ref LL_ADC_SAMPLINGTIME_COMMON_3C5_REPL_2C5
AnnaBridge 172:65be27845400 3085 */
AnnaBridge 172:65be27845400 3086 __STATIC_INLINE uint32_t LL_ADC_GetSamplingTimeCommonConfig(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 3087 {
AnnaBridge 172:65be27845400 3088 return (uint32_t)(READ_BIT(ADCx->SMPR1, ADC_SMPR1_SMPPLUS));
AnnaBridge 172:65be27845400 3089 }
AnnaBridge 172:65be27845400 3090 #endif /* ADC_SMPR1_SMPPLUS */
AnnaBridge 172:65be27845400 3091
AnnaBridge 172:65be27845400 3092 /**
AnnaBridge 172:65be27845400 3093 * @}
AnnaBridge 172:65be27845400 3094 */
AnnaBridge 172:65be27845400 3095
AnnaBridge 172:65be27845400 3096 /** @defgroup ADC_LL_EF_Configuration_ADC_Group_Regular Configuration of ADC hierarchical scope: group regular
AnnaBridge 172:65be27845400 3097 * @{
AnnaBridge 172:65be27845400 3098 */
AnnaBridge 172:65be27845400 3099
AnnaBridge 172:65be27845400 3100 /**
AnnaBridge 172:65be27845400 3101 * @brief Set ADC group regular conversion trigger source:
AnnaBridge 172:65be27845400 3102 * internal (SW start) or from external IP (timer event,
AnnaBridge 172:65be27845400 3103 * external interrupt line).
AnnaBridge 172:65be27845400 3104 * @note On this STM32 serie, setting trigger source to external trigger
AnnaBridge 172:65be27845400 3105 * also set trigger polarity to rising edge
AnnaBridge 172:65be27845400 3106 * (default setting for compatibility with some ADC on other
AnnaBridge 172:65be27845400 3107 * STM32 families having this setting set by HW default value).
AnnaBridge 172:65be27845400 3108 * In case of need to modify trigger edge, use
AnnaBridge 172:65be27845400 3109 * function @ref LL_ADC_REG_SetTriggerEdge().
AnnaBridge 172:65be27845400 3110 * @note Availability of parameters of trigger sources from timer
AnnaBridge 172:65be27845400 3111 * depends on timers availability on the selected device.
AnnaBridge 172:65be27845400 3112 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 3113 * ADC state:
AnnaBridge 172:65be27845400 3114 * ADC must be disabled or enabled without conversion on going
AnnaBridge 172:65be27845400 3115 * on group regular.
AnnaBridge 172:65be27845400 3116 * @rmtoll CFGR EXTSEL LL_ADC_REG_SetTriggerSource\n
AnnaBridge 172:65be27845400 3117 * CFGR EXTEN LL_ADC_REG_SetTriggerSource
AnnaBridge 172:65be27845400 3118 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 3119 * @param TriggerSource This parameter can be one of the following values:
AnnaBridge 172:65be27845400 3120 * @arg @ref LL_ADC_REG_TRIG_SOFTWARE
AnnaBridge 172:65be27845400 3121 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_TRGO
AnnaBridge 172:65be27845400 3122 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_TRGO2
AnnaBridge 172:65be27845400 3123 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH1
AnnaBridge 172:65be27845400 3124 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH2
AnnaBridge 172:65be27845400 3125 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH3
AnnaBridge 172:65be27845400 3126 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_TRGO
AnnaBridge 172:65be27845400 3127 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_CH2
AnnaBridge 172:65be27845400 3128 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_TRGO
AnnaBridge 172:65be27845400 3129 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_CH4
AnnaBridge 172:65be27845400 3130 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_TRGO
AnnaBridge 172:65be27845400 3131 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_CH4
AnnaBridge 172:65be27845400 3132 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM6_TRGO
AnnaBridge 172:65be27845400 3133 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_TRGO
AnnaBridge 172:65be27845400 3134 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_TRGO2
AnnaBridge 172:65be27845400 3135 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM15_TRGO
AnnaBridge 172:65be27845400 3136 * @arg @ref LL_ADC_REG_TRIG_EXT_EXTI_LINE11
AnnaBridge 172:65be27845400 3137 * @retval None
AnnaBridge 172:65be27845400 3138 */
AnnaBridge 172:65be27845400 3139 __STATIC_INLINE void LL_ADC_REG_SetTriggerSource(ADC_TypeDef *ADCx, uint32_t TriggerSource)
AnnaBridge 172:65be27845400 3140 {
AnnaBridge 172:65be27845400 3141 MODIFY_REG(ADCx->CFGR, ADC_CFGR_EXTEN | ADC_CFGR_EXTSEL, TriggerSource);
AnnaBridge 172:65be27845400 3142 }
AnnaBridge 172:65be27845400 3143
AnnaBridge 172:65be27845400 3144 /**
AnnaBridge 172:65be27845400 3145 * @brief Get ADC group regular conversion trigger source:
AnnaBridge 172:65be27845400 3146 * internal (SW start) or from external IP (timer event,
AnnaBridge 172:65be27845400 3147 * external interrupt line).
AnnaBridge 172:65be27845400 3148 * @note To determine whether group regular trigger source is
AnnaBridge 172:65be27845400 3149 * internal (SW start) or external, without detail
AnnaBridge 172:65be27845400 3150 * of which peripheral is selected as external trigger,
AnnaBridge 172:65be27845400 3151 * (equivalent to
AnnaBridge 172:65be27845400 3152 * "if(LL_ADC_REG_GetTriggerSource(ADC1) == LL_ADC_REG_TRIG_SOFTWARE)")
AnnaBridge 172:65be27845400 3153 * use function @ref LL_ADC_REG_IsTriggerSourceSWStart.
AnnaBridge 172:65be27845400 3154 * @note Availability of parameters of trigger sources from timer
AnnaBridge 172:65be27845400 3155 * depends on timers availability on the selected device.
AnnaBridge 172:65be27845400 3156 * @rmtoll CFGR EXTSEL LL_ADC_REG_GetTriggerSource\n
AnnaBridge 172:65be27845400 3157 * CFGR EXTEN LL_ADC_REG_GetTriggerSource
AnnaBridge 172:65be27845400 3158 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 3159 * @retval Returned value can be one of the following values:
AnnaBridge 172:65be27845400 3160 * @arg @ref LL_ADC_REG_TRIG_SOFTWARE
AnnaBridge 172:65be27845400 3161 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_TRGO
AnnaBridge 172:65be27845400 3162 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_TRGO2
AnnaBridge 172:65be27845400 3163 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH1
AnnaBridge 172:65be27845400 3164 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH2
AnnaBridge 172:65be27845400 3165 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH3
AnnaBridge 172:65be27845400 3166 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_TRGO
AnnaBridge 172:65be27845400 3167 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_CH2
AnnaBridge 172:65be27845400 3168 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_TRGO
AnnaBridge 172:65be27845400 3169 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_CH4
AnnaBridge 172:65be27845400 3170 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_TRGO
AnnaBridge 172:65be27845400 3171 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_CH4
AnnaBridge 172:65be27845400 3172 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM6_TRGO
AnnaBridge 172:65be27845400 3173 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_TRGO
AnnaBridge 172:65be27845400 3174 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_TRGO2
AnnaBridge 172:65be27845400 3175 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM15_TRGO
AnnaBridge 172:65be27845400 3176 * @arg @ref LL_ADC_REG_TRIG_EXT_EXTI_LINE11
AnnaBridge 172:65be27845400 3177 */
AnnaBridge 172:65be27845400 3178 __STATIC_INLINE uint32_t LL_ADC_REG_GetTriggerSource(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 3179 {
AnnaBridge 172:65be27845400 3180 register uint32_t TriggerSource = READ_BIT(ADCx->CFGR, ADC_CFGR_EXTSEL | ADC_CFGR_EXTEN);
AnnaBridge 172:65be27845400 3181
AnnaBridge 172:65be27845400 3182 /* Value for shift of {0; 4; 8; 12} depending on value of bitfield */
AnnaBridge 172:65be27845400 3183 /* corresponding to ADC_CFGR_EXTEN {0; 1; 2; 3}. */
AnnaBridge 172:65be27845400 3184 register uint32_t ShiftExten = ((TriggerSource & ADC_CFGR_EXTEN) >> (ADC_REG_TRIG_EXTEN_BITOFFSET_POS - 2U));
AnnaBridge 172:65be27845400 3185
AnnaBridge 172:65be27845400 3186 /* Set bitfield corresponding to ADC_CFGR_EXTEN and ADC_CFGR_EXTSEL */
AnnaBridge 172:65be27845400 3187 /* to match with triggers literals definition. */
AnnaBridge 172:65be27845400 3188 return ((TriggerSource
AnnaBridge 172:65be27845400 3189 & (ADC_REG_TRIG_SOURCE_MASK >> ShiftExten) & ADC_CFGR_EXTSEL)
AnnaBridge 172:65be27845400 3190 | ((ADC_REG_TRIG_EDGE_MASK >> ShiftExten) & ADC_CFGR_EXTEN)
AnnaBridge 172:65be27845400 3191 );
AnnaBridge 172:65be27845400 3192 }
AnnaBridge 172:65be27845400 3193
AnnaBridge 172:65be27845400 3194 /**
AnnaBridge 172:65be27845400 3195 * @brief Get ADC group regular conversion trigger source internal (SW start)
AnnaBridge 172:65be27845400 3196 or external.
AnnaBridge 172:65be27845400 3197 * @note In case of group regular trigger source set to external trigger,
AnnaBridge 172:65be27845400 3198 * to determine which peripheral is selected as external trigger,
AnnaBridge 172:65be27845400 3199 * use function @ref LL_ADC_REG_GetTriggerSource().
AnnaBridge 172:65be27845400 3200 * @rmtoll CFGR EXTEN LL_ADC_REG_IsTriggerSourceSWStart
AnnaBridge 172:65be27845400 3201 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 3202 * @retval Value "0" if trigger source external trigger
AnnaBridge 172:65be27845400 3203 * Value "1" if trigger source SW start.
AnnaBridge 172:65be27845400 3204 */
AnnaBridge 172:65be27845400 3205 __STATIC_INLINE uint32_t LL_ADC_REG_IsTriggerSourceSWStart(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 3206 {
AnnaBridge 172:65be27845400 3207 return (READ_BIT(ADCx->CFGR, ADC_CFGR_EXTEN) == (LL_ADC_REG_TRIG_SOFTWARE & ADC_CFGR_EXTEN));
AnnaBridge 172:65be27845400 3208 }
AnnaBridge 172:65be27845400 3209
AnnaBridge 172:65be27845400 3210 /**
AnnaBridge 172:65be27845400 3211 * @brief Set ADC group regular conversion trigger polarity.
AnnaBridge 172:65be27845400 3212 * @note Applicable only for trigger source set to external trigger.
AnnaBridge 172:65be27845400 3213 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 3214 * ADC state:
AnnaBridge 172:65be27845400 3215 * ADC must be disabled or enabled without conversion on going
AnnaBridge 172:65be27845400 3216 * on group regular.
AnnaBridge 172:65be27845400 3217 * @rmtoll CFGR EXTEN LL_ADC_REG_SetTriggerEdge
AnnaBridge 172:65be27845400 3218 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 3219 * @param ExternalTriggerEdge This parameter can be one of the following values:
AnnaBridge 172:65be27845400 3220 * @arg @ref LL_ADC_REG_TRIG_EXT_RISING
AnnaBridge 172:65be27845400 3221 * @arg @ref LL_ADC_REG_TRIG_EXT_FALLING
AnnaBridge 172:65be27845400 3222 * @arg @ref LL_ADC_REG_TRIG_EXT_RISINGFALLING
AnnaBridge 172:65be27845400 3223 * @retval None
AnnaBridge 172:65be27845400 3224 */
AnnaBridge 172:65be27845400 3225 __STATIC_INLINE void LL_ADC_REG_SetTriggerEdge(ADC_TypeDef *ADCx, uint32_t ExternalTriggerEdge)
AnnaBridge 172:65be27845400 3226 {
AnnaBridge 172:65be27845400 3227 MODIFY_REG(ADCx->CFGR, ADC_CFGR_EXTEN, ExternalTriggerEdge);
AnnaBridge 172:65be27845400 3228 }
AnnaBridge 172:65be27845400 3229
AnnaBridge 172:65be27845400 3230 /**
AnnaBridge 172:65be27845400 3231 * @brief Get ADC group regular conversion trigger polarity.
AnnaBridge 172:65be27845400 3232 * @note Applicable only for trigger source set to external trigger.
AnnaBridge 172:65be27845400 3233 * @rmtoll CFGR EXTEN LL_ADC_REG_GetTriggerEdge
AnnaBridge 172:65be27845400 3234 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 3235 * @retval Returned value can be one of the following values:
AnnaBridge 172:65be27845400 3236 * @arg @ref LL_ADC_REG_TRIG_EXT_RISING
AnnaBridge 172:65be27845400 3237 * @arg @ref LL_ADC_REG_TRIG_EXT_FALLING
AnnaBridge 172:65be27845400 3238 * @arg @ref LL_ADC_REG_TRIG_EXT_RISINGFALLING
AnnaBridge 172:65be27845400 3239 */
AnnaBridge 172:65be27845400 3240 __STATIC_INLINE uint32_t LL_ADC_REG_GetTriggerEdge(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 3241 {
AnnaBridge 172:65be27845400 3242 return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_EXTEN));
AnnaBridge 172:65be27845400 3243 }
AnnaBridge 172:65be27845400 3244
AnnaBridge 172:65be27845400 3245 /**
AnnaBridge 172:65be27845400 3246 * @brief Set ADC group regular sequencer length and scan direction.
AnnaBridge 172:65be27845400 3247 * @note Description of ADC group regular sequencer features:
AnnaBridge 172:65be27845400 3248 * - For devices with sequencer fully configurable
AnnaBridge 172:65be27845400 3249 * (function "LL_ADC_REG_SetSequencerRanks()" available):
AnnaBridge 172:65be27845400 3250 * sequencer length and each rank affectation to a channel
AnnaBridge 172:65be27845400 3251 * are configurable.
AnnaBridge 172:65be27845400 3252 * This function performs configuration of:
AnnaBridge 172:65be27845400 3253 * - Sequence length: Number of ranks in the scan sequence.
AnnaBridge 172:65be27845400 3254 * - Sequence direction: Unless specified in parameters, sequencer
AnnaBridge 172:65be27845400 3255 * scan direction is forward (from rank 1 to rank n).
AnnaBridge 172:65be27845400 3256 * Sequencer ranks are selected using
AnnaBridge 172:65be27845400 3257 * function "LL_ADC_REG_SetSequencerRanks()".
AnnaBridge 172:65be27845400 3258 * - For devices with sequencer not fully configurable
AnnaBridge 172:65be27845400 3259 * (function "LL_ADC_REG_SetSequencerChannels()" available):
AnnaBridge 172:65be27845400 3260 * sequencer length and each rank affectation to a channel
AnnaBridge 172:65be27845400 3261 * are defined by channel number.
AnnaBridge 172:65be27845400 3262 * This function performs configuration of:
AnnaBridge 172:65be27845400 3263 * - Sequence length: Number of ranks in the scan sequence is
AnnaBridge 172:65be27845400 3264 * defined by number of channels set in the sequence,
AnnaBridge 172:65be27845400 3265 * rank of each channel is fixed by channel HW number.
AnnaBridge 172:65be27845400 3266 * (channel 0 fixed on rank 0, channel 1 fixed on rank1, ...).
AnnaBridge 172:65be27845400 3267 * - Sequence direction: Unless specified in parameters, sequencer
AnnaBridge 172:65be27845400 3268 * scan direction is forward (from lowest channel number to
AnnaBridge 172:65be27845400 3269 * highest channel number).
AnnaBridge 172:65be27845400 3270 * Sequencer ranks are selected using
AnnaBridge 172:65be27845400 3271 * function "LL_ADC_REG_SetSequencerChannels()".
AnnaBridge 172:65be27845400 3272 * @note Sequencer disabled is equivalent to sequencer of 1 rank:
AnnaBridge 172:65be27845400 3273 * ADC conversion on only 1 channel.
AnnaBridge 172:65be27845400 3274 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 3275 * ADC state:
AnnaBridge 172:65be27845400 3276 * ADC must be disabled or enabled without conversion on going
AnnaBridge 172:65be27845400 3277 * on group regular.
AnnaBridge 172:65be27845400 3278 * @rmtoll SQR1 L LL_ADC_REG_SetSequencerLength
AnnaBridge 172:65be27845400 3279 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 3280 * @param SequencerNbRanks This parameter can be one of the following values:
AnnaBridge 172:65be27845400 3281 * @arg @ref LL_ADC_REG_SEQ_SCAN_DISABLE
AnnaBridge 172:65be27845400 3282 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_2RANKS
AnnaBridge 172:65be27845400 3283 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_3RANKS
AnnaBridge 172:65be27845400 3284 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_4RANKS
AnnaBridge 172:65be27845400 3285 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_5RANKS
AnnaBridge 172:65be27845400 3286 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_6RANKS
AnnaBridge 172:65be27845400 3287 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_7RANKS
AnnaBridge 172:65be27845400 3288 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_8RANKS
AnnaBridge 172:65be27845400 3289 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_9RANKS
AnnaBridge 172:65be27845400 3290 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_10RANKS
AnnaBridge 172:65be27845400 3291 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_11RANKS
AnnaBridge 172:65be27845400 3292 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_12RANKS
AnnaBridge 172:65be27845400 3293 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_13RANKS
AnnaBridge 172:65be27845400 3294 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_14RANKS
AnnaBridge 172:65be27845400 3295 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_15RANKS
AnnaBridge 172:65be27845400 3296 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_16RANKS
AnnaBridge 172:65be27845400 3297 * @retval None
AnnaBridge 172:65be27845400 3298 */
AnnaBridge 172:65be27845400 3299 __STATIC_INLINE void LL_ADC_REG_SetSequencerLength(ADC_TypeDef *ADCx, uint32_t SequencerNbRanks)
AnnaBridge 172:65be27845400 3300 {
AnnaBridge 172:65be27845400 3301 MODIFY_REG(ADCx->SQR1, ADC_SQR1_L, SequencerNbRanks);
AnnaBridge 172:65be27845400 3302 }
AnnaBridge 172:65be27845400 3303
AnnaBridge 172:65be27845400 3304 /**
AnnaBridge 172:65be27845400 3305 * @brief Get ADC group regular sequencer length and scan direction.
AnnaBridge 172:65be27845400 3306 * @note Description of ADC group regular sequencer features:
AnnaBridge 172:65be27845400 3307 * - For devices with sequencer fully configurable
AnnaBridge 172:65be27845400 3308 * (function "LL_ADC_REG_SetSequencerRanks()" available):
AnnaBridge 172:65be27845400 3309 * sequencer length and each rank affectation to a channel
AnnaBridge 172:65be27845400 3310 * are configurable.
AnnaBridge 172:65be27845400 3311 * This function retrieves:
AnnaBridge 172:65be27845400 3312 * - Sequence length: Number of ranks in the scan sequence.
AnnaBridge 172:65be27845400 3313 * - Sequence direction: Unless specified in parameters, sequencer
AnnaBridge 172:65be27845400 3314 * scan direction is forward (from rank 1 to rank n).
AnnaBridge 172:65be27845400 3315 * Sequencer ranks are selected using
AnnaBridge 172:65be27845400 3316 * function "LL_ADC_REG_SetSequencerRanks()".
AnnaBridge 172:65be27845400 3317 * - For devices with sequencer not fully configurable
AnnaBridge 172:65be27845400 3318 * (function "LL_ADC_REG_SetSequencerChannels()" available):
AnnaBridge 172:65be27845400 3319 * sequencer length and each rank affectation to a channel
AnnaBridge 172:65be27845400 3320 * are defined by channel number.
AnnaBridge 172:65be27845400 3321 * This function retrieves:
AnnaBridge 172:65be27845400 3322 * - Sequence length: Number of ranks in the scan sequence is
AnnaBridge 172:65be27845400 3323 * defined by number of channels set in the sequence,
AnnaBridge 172:65be27845400 3324 * rank of each channel is fixed by channel HW number.
AnnaBridge 172:65be27845400 3325 * (channel 0 fixed on rank 0, channel 1 fixed on rank1, ...).
AnnaBridge 172:65be27845400 3326 * - Sequence direction: Unless specified in parameters, sequencer
AnnaBridge 172:65be27845400 3327 * scan direction is forward (from lowest channel number to
AnnaBridge 172:65be27845400 3328 * highest channel number).
AnnaBridge 172:65be27845400 3329 * Sequencer ranks are selected using
AnnaBridge 172:65be27845400 3330 * function "LL_ADC_REG_SetSequencerChannels()".
AnnaBridge 172:65be27845400 3331 * @note Sequencer disabled is equivalent to sequencer of 1 rank:
AnnaBridge 172:65be27845400 3332 * ADC conversion on only 1 channel.
AnnaBridge 172:65be27845400 3333 * @rmtoll SQR1 L LL_ADC_REG_GetSequencerLength
AnnaBridge 172:65be27845400 3334 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 3335 * @retval Returned value can be one of the following values:
AnnaBridge 172:65be27845400 3336 * @arg @ref LL_ADC_REG_SEQ_SCAN_DISABLE
AnnaBridge 172:65be27845400 3337 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_2RANKS
AnnaBridge 172:65be27845400 3338 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_3RANKS
AnnaBridge 172:65be27845400 3339 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_4RANKS
AnnaBridge 172:65be27845400 3340 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_5RANKS
AnnaBridge 172:65be27845400 3341 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_6RANKS
AnnaBridge 172:65be27845400 3342 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_7RANKS
AnnaBridge 172:65be27845400 3343 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_8RANKS
AnnaBridge 172:65be27845400 3344 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_9RANKS
AnnaBridge 172:65be27845400 3345 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_10RANKS
AnnaBridge 172:65be27845400 3346 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_11RANKS
AnnaBridge 172:65be27845400 3347 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_12RANKS
AnnaBridge 172:65be27845400 3348 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_13RANKS
AnnaBridge 172:65be27845400 3349 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_14RANKS
AnnaBridge 172:65be27845400 3350 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_15RANKS
AnnaBridge 172:65be27845400 3351 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_16RANKS
AnnaBridge 172:65be27845400 3352 */
AnnaBridge 172:65be27845400 3353 __STATIC_INLINE uint32_t LL_ADC_REG_GetSequencerLength(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 3354 {
AnnaBridge 172:65be27845400 3355 return (uint32_t)(READ_BIT(ADCx->SQR1, ADC_SQR1_L));
AnnaBridge 172:65be27845400 3356 }
AnnaBridge 172:65be27845400 3357
AnnaBridge 172:65be27845400 3358 /**
AnnaBridge 172:65be27845400 3359 * @brief Set ADC group regular sequencer discontinuous mode:
AnnaBridge 172:65be27845400 3360 * sequence subdivided and scan conversions interrupted every selected
AnnaBridge 172:65be27845400 3361 * number of ranks.
AnnaBridge 172:65be27845400 3362 * @note It is not possible to enable both ADC group regular
AnnaBridge 172:65be27845400 3363 * continuous mode and sequencer discontinuous mode.
AnnaBridge 172:65be27845400 3364 * @note It is not possible to enable both ADC auto-injected mode
AnnaBridge 172:65be27845400 3365 * and ADC group regular sequencer discontinuous mode.
AnnaBridge 172:65be27845400 3366 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 3367 * ADC state:
AnnaBridge 172:65be27845400 3368 * ADC must be disabled or enabled without conversion on going
AnnaBridge 172:65be27845400 3369 * on group regular.
AnnaBridge 172:65be27845400 3370 * @rmtoll CFGR DISCEN LL_ADC_REG_SetSequencerDiscont\n
AnnaBridge 172:65be27845400 3371 * CFGR DISCNUM LL_ADC_REG_SetSequencerDiscont
AnnaBridge 172:65be27845400 3372 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 3373 * @param SeqDiscont This parameter can be one of the following values:
AnnaBridge 172:65be27845400 3374 * @arg @ref LL_ADC_REG_SEQ_DISCONT_DISABLE
AnnaBridge 172:65be27845400 3375 * @arg @ref LL_ADC_REG_SEQ_DISCONT_1RANK
AnnaBridge 172:65be27845400 3376 * @arg @ref LL_ADC_REG_SEQ_DISCONT_2RANKS
AnnaBridge 172:65be27845400 3377 * @arg @ref LL_ADC_REG_SEQ_DISCONT_3RANKS
AnnaBridge 172:65be27845400 3378 * @arg @ref LL_ADC_REG_SEQ_DISCONT_4RANKS
AnnaBridge 172:65be27845400 3379 * @arg @ref LL_ADC_REG_SEQ_DISCONT_5RANKS
AnnaBridge 172:65be27845400 3380 * @arg @ref LL_ADC_REG_SEQ_DISCONT_6RANKS
AnnaBridge 172:65be27845400 3381 * @arg @ref LL_ADC_REG_SEQ_DISCONT_7RANKS
AnnaBridge 172:65be27845400 3382 * @arg @ref LL_ADC_REG_SEQ_DISCONT_8RANKS
AnnaBridge 172:65be27845400 3383 * @retval None
AnnaBridge 172:65be27845400 3384 */
AnnaBridge 172:65be27845400 3385 __STATIC_INLINE void LL_ADC_REG_SetSequencerDiscont(ADC_TypeDef *ADCx, uint32_t SeqDiscont)
AnnaBridge 172:65be27845400 3386 {
AnnaBridge 172:65be27845400 3387 MODIFY_REG(ADCx->CFGR, ADC_CFGR_DISCEN | ADC_CFGR_DISCNUM, SeqDiscont);
AnnaBridge 172:65be27845400 3388 }
AnnaBridge 172:65be27845400 3389
AnnaBridge 172:65be27845400 3390 /**
AnnaBridge 172:65be27845400 3391 * @brief Get ADC group regular sequencer discontinuous mode:
AnnaBridge 172:65be27845400 3392 * sequence subdivided and scan conversions interrupted every selected
AnnaBridge 172:65be27845400 3393 * number of ranks.
AnnaBridge 172:65be27845400 3394 * @rmtoll CFGR DISCEN LL_ADC_REG_GetSequencerDiscont\n
AnnaBridge 172:65be27845400 3395 * CFGR DISCNUM LL_ADC_REG_GetSequencerDiscont
AnnaBridge 172:65be27845400 3396 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 3397 * @retval Returned value can be one of the following values:
AnnaBridge 172:65be27845400 3398 * @arg @ref LL_ADC_REG_SEQ_DISCONT_DISABLE
AnnaBridge 172:65be27845400 3399 * @arg @ref LL_ADC_REG_SEQ_DISCONT_1RANK
AnnaBridge 172:65be27845400 3400 * @arg @ref LL_ADC_REG_SEQ_DISCONT_2RANKS
AnnaBridge 172:65be27845400 3401 * @arg @ref LL_ADC_REG_SEQ_DISCONT_3RANKS
AnnaBridge 172:65be27845400 3402 * @arg @ref LL_ADC_REG_SEQ_DISCONT_4RANKS
AnnaBridge 172:65be27845400 3403 * @arg @ref LL_ADC_REG_SEQ_DISCONT_5RANKS
AnnaBridge 172:65be27845400 3404 * @arg @ref LL_ADC_REG_SEQ_DISCONT_6RANKS
AnnaBridge 172:65be27845400 3405 * @arg @ref LL_ADC_REG_SEQ_DISCONT_7RANKS
AnnaBridge 172:65be27845400 3406 * @arg @ref LL_ADC_REG_SEQ_DISCONT_8RANKS
AnnaBridge 172:65be27845400 3407 */
AnnaBridge 172:65be27845400 3408 __STATIC_INLINE uint32_t LL_ADC_REG_GetSequencerDiscont(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 3409 {
AnnaBridge 172:65be27845400 3410 return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_DISCEN | ADC_CFGR_DISCNUM));
AnnaBridge 172:65be27845400 3411 }
AnnaBridge 172:65be27845400 3412
AnnaBridge 172:65be27845400 3413 /**
AnnaBridge 172:65be27845400 3414 * @brief Set ADC group regular sequence: channel on the selected
AnnaBridge 172:65be27845400 3415 * scan sequence rank.
AnnaBridge 172:65be27845400 3416 * @note This function performs configuration of:
AnnaBridge 172:65be27845400 3417 * - Channels ordering into each rank of scan sequence:
AnnaBridge 172:65be27845400 3418 * whatever channel can be placed into whatever rank.
AnnaBridge 172:65be27845400 3419 * @note On this STM32 serie, ADC group regular sequencer is
AnnaBridge 172:65be27845400 3420 * fully configurable: sequencer length and each rank
AnnaBridge 172:65be27845400 3421 * affectation to a channel are configurable.
AnnaBridge 172:65be27845400 3422 * Refer to description of function @ref LL_ADC_REG_SetSequencerLength().
AnnaBridge 172:65be27845400 3423 * @note Depending on devices and packages, some channels may not be available.
AnnaBridge 172:65be27845400 3424 * Refer to device datasheet for channels availability.
AnnaBridge 172:65be27845400 3425 * @note On this STM32 serie, to measure internal channels (VrefInt,
AnnaBridge 172:65be27845400 3426 * TempSensor, ...), measurement paths to internal channels must be
AnnaBridge 172:65be27845400 3427 * enabled separately.
AnnaBridge 172:65be27845400 3428 * This can be done using function @ref LL_ADC_SetCommonPathInternalCh().
AnnaBridge 172:65be27845400 3429 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 3430 * ADC state:
AnnaBridge 172:65be27845400 3431 * ADC must be disabled or enabled without conversion on going
AnnaBridge 172:65be27845400 3432 * on group regular.
AnnaBridge 172:65be27845400 3433 * @rmtoll SQR1 SQ1 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 172:65be27845400 3434 * SQR1 SQ2 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 172:65be27845400 3435 * SQR1 SQ3 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 172:65be27845400 3436 * SQR1 SQ4 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 172:65be27845400 3437 * SQR2 SQ5 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 172:65be27845400 3438 * SQR2 SQ6 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 172:65be27845400 3439 * SQR2 SQ7 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 172:65be27845400 3440 * SQR2 SQ8 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 172:65be27845400 3441 * SQR2 SQ9 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 172:65be27845400 3442 * SQR3 SQ10 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 172:65be27845400 3443 * SQR3 SQ11 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 172:65be27845400 3444 * SQR3 SQ12 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 172:65be27845400 3445 * SQR3 SQ13 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 172:65be27845400 3446 * SQR3 SQ14 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 172:65be27845400 3447 * SQR4 SQ15 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 172:65be27845400 3448 * SQR4 SQ16 LL_ADC_REG_SetSequencerRanks
AnnaBridge 172:65be27845400 3449 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 3450 * @param Rank This parameter can be one of the following values:
AnnaBridge 172:65be27845400 3451 * @arg @ref LL_ADC_REG_RANK_1
AnnaBridge 172:65be27845400 3452 * @arg @ref LL_ADC_REG_RANK_2
AnnaBridge 172:65be27845400 3453 * @arg @ref LL_ADC_REG_RANK_3
AnnaBridge 172:65be27845400 3454 * @arg @ref LL_ADC_REG_RANK_4
AnnaBridge 172:65be27845400 3455 * @arg @ref LL_ADC_REG_RANK_5
AnnaBridge 172:65be27845400 3456 * @arg @ref LL_ADC_REG_RANK_6
AnnaBridge 172:65be27845400 3457 * @arg @ref LL_ADC_REG_RANK_7
AnnaBridge 172:65be27845400 3458 * @arg @ref LL_ADC_REG_RANK_8
AnnaBridge 172:65be27845400 3459 * @arg @ref LL_ADC_REG_RANK_9
AnnaBridge 172:65be27845400 3460 * @arg @ref LL_ADC_REG_RANK_10
AnnaBridge 172:65be27845400 3461 * @arg @ref LL_ADC_REG_RANK_11
AnnaBridge 172:65be27845400 3462 * @arg @ref LL_ADC_REG_RANK_12
AnnaBridge 172:65be27845400 3463 * @arg @ref LL_ADC_REG_RANK_13
AnnaBridge 172:65be27845400 3464 * @arg @ref LL_ADC_REG_RANK_14
AnnaBridge 172:65be27845400 3465 * @arg @ref LL_ADC_REG_RANK_15
AnnaBridge 172:65be27845400 3466 * @arg @ref LL_ADC_REG_RANK_16
AnnaBridge 172:65be27845400 3467 * @param Channel This parameter can be one of the following values:
AnnaBridge 172:65be27845400 3468 * @arg @ref LL_ADC_CHANNEL_0
AnnaBridge 172:65be27845400 3469 * @arg @ref LL_ADC_CHANNEL_1 (7)
AnnaBridge 172:65be27845400 3470 * @arg @ref LL_ADC_CHANNEL_2 (7)
AnnaBridge 172:65be27845400 3471 * @arg @ref LL_ADC_CHANNEL_3 (7)
AnnaBridge 172:65be27845400 3472 * @arg @ref LL_ADC_CHANNEL_4 (7)
AnnaBridge 172:65be27845400 3473 * @arg @ref LL_ADC_CHANNEL_5 (7)
AnnaBridge 172:65be27845400 3474 * @arg @ref LL_ADC_CHANNEL_6
AnnaBridge 172:65be27845400 3475 * @arg @ref LL_ADC_CHANNEL_7
AnnaBridge 172:65be27845400 3476 * @arg @ref LL_ADC_CHANNEL_8
AnnaBridge 172:65be27845400 3477 * @arg @ref LL_ADC_CHANNEL_9
AnnaBridge 172:65be27845400 3478 * @arg @ref LL_ADC_CHANNEL_10
AnnaBridge 172:65be27845400 3479 * @arg @ref LL_ADC_CHANNEL_11
AnnaBridge 172:65be27845400 3480 * @arg @ref LL_ADC_CHANNEL_12
AnnaBridge 172:65be27845400 3481 * @arg @ref LL_ADC_CHANNEL_13
AnnaBridge 172:65be27845400 3482 * @arg @ref LL_ADC_CHANNEL_14
AnnaBridge 172:65be27845400 3483 * @arg @ref LL_ADC_CHANNEL_15
AnnaBridge 172:65be27845400 3484 * @arg @ref LL_ADC_CHANNEL_16
AnnaBridge 172:65be27845400 3485 * @arg @ref LL_ADC_CHANNEL_17
AnnaBridge 172:65be27845400 3486 * @arg @ref LL_ADC_CHANNEL_18
AnnaBridge 172:65be27845400 3487 * @arg @ref LL_ADC_CHANNEL_VREFINT (1)
AnnaBridge 172:65be27845400 3488 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (4)
AnnaBridge 172:65be27845400 3489 * @arg @ref LL_ADC_CHANNEL_VBAT (4)
AnnaBridge 172:65be27845400 3490 * @arg @ref LL_ADC_CHANNEL_DAC1CH1 (5)
AnnaBridge 172:65be27845400 3491 * @arg @ref LL_ADC_CHANNEL_DAC1CH2 (5)
AnnaBridge 172:65be27845400 3492 * @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC2 (2)(6)
AnnaBridge 172:65be27845400 3493 * @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC2 (2)(6)
AnnaBridge 172:65be27845400 3494 * @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC3 (3)(6)
AnnaBridge 172:65be27845400 3495 * @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC3 (3)(6)
AnnaBridge 172:65be27845400 3496 *
AnnaBridge 172:65be27845400 3497 * (1) On STM32L4, parameter available only on ADC instance: ADC1.\n
AnnaBridge 172:65be27845400 3498 * (2) On STM32L4, parameter available only on ADC instance: ADC2.\n
AnnaBridge 172:65be27845400 3499 * (3) On STM32L4, parameter available only on ADC instance: ADC3.\n
AnnaBridge 172:65be27845400 3500 * (4) On STM32L4, parameter available only on ADC instances: ADC1, ADC3.\n
AnnaBridge 172:65be27845400 3501 * (5) On STM32L4, parameter available on devices with only 1 ADC instance.\n
AnnaBridge 172:65be27845400 3502 * (6) On STM32L4, parameter available on devices with several ADC instances.\n
AnnaBridge 172:65be27845400 3503 * (7) On STM32L4, fast channel (0.188 us for 12-bit resolution (ADC conversion rate up to 5.33 Ms/s)).
AnnaBridge 172:65be27845400 3504 * Other channels are slow channels (0.238 us for 12-bit resolution (ADC conversion rate up to 4.21 Ms/s)).
AnnaBridge 172:65be27845400 3505 * @retval None
AnnaBridge 172:65be27845400 3506 */
AnnaBridge 172:65be27845400 3507 __STATIC_INLINE void LL_ADC_REG_SetSequencerRanks(ADC_TypeDef *ADCx, uint32_t Rank, uint32_t Channel)
AnnaBridge 172:65be27845400 3508 {
AnnaBridge 172:65be27845400 3509 /* Set bits with content of parameter "Channel" with bits position */
AnnaBridge 172:65be27845400 3510 /* in register and register position depending on parameter "Rank". */
AnnaBridge 172:65be27845400 3511 /* Parameters "Rank" and "Channel" are used with masks because containing */
AnnaBridge 172:65be27845400 3512 /* other bits reserved for other purpose. */
AnnaBridge 172:65be27845400 3513 #if defined(CORE_CM0PLUS)
AnnaBridge 172:65be27845400 3514 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->SQR1, ((Rank & ADC_REG_SQRX_REGOFFSET_MASK) >> ADC_SQRX_REGOFFSET_POS));
AnnaBridge 172:65be27845400 3515 #else
AnnaBridge 172:65be27845400 3516 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->SQR1, __ADC_MASK_SHIFT(Rank, ADC_REG_SQRX_REGOFFSET_MASK));
AnnaBridge 172:65be27845400 3517 #endif
AnnaBridge 172:65be27845400 3518
AnnaBridge 172:65be27845400 3519 MODIFY_REG(*preg,
AnnaBridge 172:65be27845400 3520 ADC_CHANNEL_ID_NUMBER_MASK_POSBIT0 << (Rank & ADC_REG_RANK_ID_SQRX_MASK),
AnnaBridge 172:65be27845400 3521 ((Channel & ADC_CHANNEL_ID_NUMBER_MASK) >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) << (Rank & ADC_REG_RANK_ID_SQRX_MASK));
AnnaBridge 172:65be27845400 3522 }
AnnaBridge 172:65be27845400 3523
AnnaBridge 172:65be27845400 3524 /**
AnnaBridge 172:65be27845400 3525 * @brief Get ADC group regular sequence: channel on the selected
AnnaBridge 172:65be27845400 3526 * scan sequence rank.
AnnaBridge 172:65be27845400 3527 * @note On this STM32 serie, ADC group regular sequencer is
AnnaBridge 172:65be27845400 3528 * fully configurable: sequencer length and each rank
AnnaBridge 172:65be27845400 3529 * affectation to a channel are configurable.
AnnaBridge 172:65be27845400 3530 * Refer to description of function @ref LL_ADC_REG_SetSequencerLength().
AnnaBridge 172:65be27845400 3531 * @note Depending on devices and packages, some channels may not be available.
AnnaBridge 172:65be27845400 3532 * Refer to device datasheet for channels availability.
AnnaBridge 172:65be27845400 3533 * @note Usage of the returned channel number:
AnnaBridge 172:65be27845400 3534 * - To reinject this channel into another function LL_ADC_xxx:
AnnaBridge 172:65be27845400 3535 * the returned channel number is only partly formatted on definition
AnnaBridge 172:65be27845400 3536 * of literals LL_ADC_CHANNEL_x. Therefore, it has to be compared
AnnaBridge 172:65be27845400 3537 * with parts of literals LL_ADC_CHANNEL_x or using
AnnaBridge 172:65be27845400 3538 * helper macro @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
AnnaBridge 172:65be27845400 3539 * Then the selected literal LL_ADC_CHANNEL_x can be used
AnnaBridge 172:65be27845400 3540 * as parameter for another function.
AnnaBridge 172:65be27845400 3541 * - To get the channel number in decimal format:
AnnaBridge 172:65be27845400 3542 * process the returned value with the helper macro
AnnaBridge 172:65be27845400 3543 * @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
AnnaBridge 172:65be27845400 3544 * @rmtoll SQR1 SQ1 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 172:65be27845400 3545 * SQR1 SQ2 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 172:65be27845400 3546 * SQR1 SQ3 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 172:65be27845400 3547 * SQR1 SQ4 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 172:65be27845400 3548 * SQR2 SQ5 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 172:65be27845400 3549 * SQR2 SQ6 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 172:65be27845400 3550 * SQR2 SQ7 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 172:65be27845400 3551 * SQR2 SQ8 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 172:65be27845400 3552 * SQR2 SQ9 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 172:65be27845400 3553 * SQR3 SQ10 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 172:65be27845400 3554 * SQR3 SQ11 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 172:65be27845400 3555 * SQR3 SQ12 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 172:65be27845400 3556 * SQR3 SQ13 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 172:65be27845400 3557 * SQR3 SQ14 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 172:65be27845400 3558 * SQR4 SQ15 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 172:65be27845400 3559 * SQR4 SQ16 LL_ADC_REG_GetSequencerRanks
AnnaBridge 172:65be27845400 3560 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 3561 * @param Rank This parameter can be one of the following values:
AnnaBridge 172:65be27845400 3562 * @arg @ref LL_ADC_REG_RANK_1
AnnaBridge 172:65be27845400 3563 * @arg @ref LL_ADC_REG_RANK_2
AnnaBridge 172:65be27845400 3564 * @arg @ref LL_ADC_REG_RANK_3
AnnaBridge 172:65be27845400 3565 * @arg @ref LL_ADC_REG_RANK_4
AnnaBridge 172:65be27845400 3566 * @arg @ref LL_ADC_REG_RANK_5
AnnaBridge 172:65be27845400 3567 * @arg @ref LL_ADC_REG_RANK_6
AnnaBridge 172:65be27845400 3568 * @arg @ref LL_ADC_REG_RANK_7
AnnaBridge 172:65be27845400 3569 * @arg @ref LL_ADC_REG_RANK_8
AnnaBridge 172:65be27845400 3570 * @arg @ref LL_ADC_REG_RANK_9
AnnaBridge 172:65be27845400 3571 * @arg @ref LL_ADC_REG_RANK_10
AnnaBridge 172:65be27845400 3572 * @arg @ref LL_ADC_REG_RANK_11
AnnaBridge 172:65be27845400 3573 * @arg @ref LL_ADC_REG_RANK_12
AnnaBridge 172:65be27845400 3574 * @arg @ref LL_ADC_REG_RANK_13
AnnaBridge 172:65be27845400 3575 * @arg @ref LL_ADC_REG_RANK_14
AnnaBridge 172:65be27845400 3576 * @arg @ref LL_ADC_REG_RANK_15
AnnaBridge 172:65be27845400 3577 * @arg @ref LL_ADC_REG_RANK_16
AnnaBridge 172:65be27845400 3578 * @retval Returned value can be one of the following values:
AnnaBridge 172:65be27845400 3579 * @arg @ref LL_ADC_CHANNEL_0
AnnaBridge 172:65be27845400 3580 * @arg @ref LL_ADC_CHANNEL_1 (7)
AnnaBridge 172:65be27845400 3581 * @arg @ref LL_ADC_CHANNEL_2 (7)
AnnaBridge 172:65be27845400 3582 * @arg @ref LL_ADC_CHANNEL_3 (7)
AnnaBridge 172:65be27845400 3583 * @arg @ref LL_ADC_CHANNEL_4 (7)
AnnaBridge 172:65be27845400 3584 * @arg @ref LL_ADC_CHANNEL_5 (7)
AnnaBridge 172:65be27845400 3585 * @arg @ref LL_ADC_CHANNEL_6
AnnaBridge 172:65be27845400 3586 * @arg @ref LL_ADC_CHANNEL_7
AnnaBridge 172:65be27845400 3587 * @arg @ref LL_ADC_CHANNEL_8
AnnaBridge 172:65be27845400 3588 * @arg @ref LL_ADC_CHANNEL_9
AnnaBridge 172:65be27845400 3589 * @arg @ref LL_ADC_CHANNEL_10
AnnaBridge 172:65be27845400 3590 * @arg @ref LL_ADC_CHANNEL_11
AnnaBridge 172:65be27845400 3591 * @arg @ref LL_ADC_CHANNEL_12
AnnaBridge 172:65be27845400 3592 * @arg @ref LL_ADC_CHANNEL_13
AnnaBridge 172:65be27845400 3593 * @arg @ref LL_ADC_CHANNEL_14
AnnaBridge 172:65be27845400 3594 * @arg @ref LL_ADC_CHANNEL_15
AnnaBridge 172:65be27845400 3595 * @arg @ref LL_ADC_CHANNEL_16
AnnaBridge 172:65be27845400 3596 * @arg @ref LL_ADC_CHANNEL_17
AnnaBridge 172:65be27845400 3597 * @arg @ref LL_ADC_CHANNEL_18
AnnaBridge 172:65be27845400 3598 * @arg @ref LL_ADC_CHANNEL_VREFINT (1)
AnnaBridge 172:65be27845400 3599 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (4)
AnnaBridge 172:65be27845400 3600 * @arg @ref LL_ADC_CHANNEL_VBAT (4)
AnnaBridge 172:65be27845400 3601 * @arg @ref LL_ADC_CHANNEL_DAC1CH1 (5)
AnnaBridge 172:65be27845400 3602 * @arg @ref LL_ADC_CHANNEL_DAC1CH2 (5)
AnnaBridge 172:65be27845400 3603 * @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC2 (2)(6)
AnnaBridge 172:65be27845400 3604 * @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC2 (2)(6)
AnnaBridge 172:65be27845400 3605 * @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC3 (3)(6)
AnnaBridge 172:65be27845400 3606 * @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC3 (3)(6)
AnnaBridge 172:65be27845400 3607 *
AnnaBridge 172:65be27845400 3608 * (1) On STM32L4, parameter available only on ADC instance: ADC1.\n
AnnaBridge 172:65be27845400 3609 * (2) On STM32L4, parameter available only on ADC instance: ADC2.\n
AnnaBridge 172:65be27845400 3610 * (3) On STM32L4, parameter available only on ADC instance: ADC3.\n
AnnaBridge 172:65be27845400 3611 * (4) On STM32L4, parameter available only on ADC instances: ADC1, ADC3.\n
AnnaBridge 172:65be27845400 3612 * (5) On STM32L4, parameter available on devices with only 1 ADC instance.\n
AnnaBridge 172:65be27845400 3613 * (6) On STM32L4, parameter available on devices with several ADC instances.\n
AnnaBridge 172:65be27845400 3614 * (7) On STM32L4, fast channel (0.188 us for 12-bit resolution (ADC conversion rate up to 5.33 Ms/s)).
AnnaBridge 172:65be27845400 3615 * Other channels are slow channels (0.238 us for 12-bit resolution (ADC conversion rate up to 4.21 Ms/s)).\n
AnnaBridge 172:65be27845400 3616 * (1, 2, 3, 4) For ADC channel read back from ADC register,
AnnaBridge 172:65be27845400 3617 * comparison with internal channel parameter to be done
AnnaBridge 172:65be27845400 3618 * using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL().
AnnaBridge 172:65be27845400 3619 */
AnnaBridge 172:65be27845400 3620 __STATIC_INLINE uint32_t LL_ADC_REG_GetSequencerRanks(ADC_TypeDef *ADCx, uint32_t Rank)
AnnaBridge 172:65be27845400 3621 {
AnnaBridge 172:65be27845400 3622 #if defined(CORE_CM0PLUS)
AnnaBridge 172:65be27845400 3623 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->SQR1, ((Rank & ADC_REG_SQRX_REGOFFSET_MASK) >> ADC_SQRX_REGOFFSET_POS));
AnnaBridge 172:65be27845400 3624 #else
AnnaBridge 172:65be27845400 3625 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->SQR1, __ADC_MASK_SHIFT(Rank, ADC_REG_SQRX_REGOFFSET_MASK));
AnnaBridge 172:65be27845400 3626 #endif
AnnaBridge 172:65be27845400 3627
AnnaBridge 172:65be27845400 3628 return (uint32_t) ((READ_BIT(*preg,
AnnaBridge 172:65be27845400 3629 ADC_CHANNEL_ID_NUMBER_MASK_POSBIT0 << (Rank & ADC_REG_RANK_ID_SQRX_MASK))
AnnaBridge 172:65be27845400 3630 >> (Rank & ADC_REG_RANK_ID_SQRX_MASK)) << ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS
AnnaBridge 172:65be27845400 3631 );
AnnaBridge 172:65be27845400 3632 }
AnnaBridge 172:65be27845400 3633
AnnaBridge 172:65be27845400 3634 /**
AnnaBridge 172:65be27845400 3635 * @brief Set ADC continuous conversion mode on ADC group regular.
AnnaBridge 172:65be27845400 3636 * @note Description of ADC continuous conversion mode:
AnnaBridge 172:65be27845400 3637 * - single mode: one conversion per trigger
AnnaBridge 172:65be27845400 3638 * - continuous mode: after the first trigger, following
AnnaBridge 172:65be27845400 3639 * conversions launched successively automatically.
AnnaBridge 172:65be27845400 3640 * @note It is not possible to enable both ADC group regular
AnnaBridge 172:65be27845400 3641 * continuous mode and sequencer discontinuous mode.
AnnaBridge 172:65be27845400 3642 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 3643 * ADC state:
AnnaBridge 172:65be27845400 3644 * ADC must be disabled or enabled without conversion on going
AnnaBridge 172:65be27845400 3645 * on group regular.
AnnaBridge 172:65be27845400 3646 * @rmtoll CFGR CONT LL_ADC_REG_SetContinuousMode
AnnaBridge 172:65be27845400 3647 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 3648 * @param Continuous This parameter can be one of the following values:
AnnaBridge 172:65be27845400 3649 * @arg @ref LL_ADC_REG_CONV_SINGLE
AnnaBridge 172:65be27845400 3650 * @arg @ref LL_ADC_REG_CONV_CONTINUOUS
AnnaBridge 172:65be27845400 3651 * @retval None
AnnaBridge 172:65be27845400 3652 */
AnnaBridge 172:65be27845400 3653 __STATIC_INLINE void LL_ADC_REG_SetContinuousMode(ADC_TypeDef *ADCx, uint32_t Continuous)
AnnaBridge 172:65be27845400 3654 {
AnnaBridge 172:65be27845400 3655 MODIFY_REG(ADCx->CFGR, ADC_CFGR_CONT, Continuous);
AnnaBridge 172:65be27845400 3656 }
AnnaBridge 172:65be27845400 3657
AnnaBridge 172:65be27845400 3658 /**
AnnaBridge 172:65be27845400 3659 * @brief Get ADC continuous conversion mode on ADC group regular.
AnnaBridge 172:65be27845400 3660 * @note Description of ADC continuous conversion mode:
AnnaBridge 172:65be27845400 3661 * - single mode: one conversion per trigger
AnnaBridge 172:65be27845400 3662 * - continuous mode: after the first trigger, following
AnnaBridge 172:65be27845400 3663 * conversions launched successively automatically.
AnnaBridge 172:65be27845400 3664 * @rmtoll CFGR CONT LL_ADC_REG_GetContinuousMode
AnnaBridge 172:65be27845400 3665 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 3666 * @retval Returned value can be one of the following values:
AnnaBridge 172:65be27845400 3667 * @arg @ref LL_ADC_REG_CONV_SINGLE
AnnaBridge 172:65be27845400 3668 * @arg @ref LL_ADC_REG_CONV_CONTINUOUS
AnnaBridge 172:65be27845400 3669 */
AnnaBridge 172:65be27845400 3670 __STATIC_INLINE uint32_t LL_ADC_REG_GetContinuousMode(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 3671 {
AnnaBridge 172:65be27845400 3672 return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_CONT));
AnnaBridge 172:65be27845400 3673 }
AnnaBridge 172:65be27845400 3674
AnnaBridge 172:65be27845400 3675 /**
AnnaBridge 172:65be27845400 3676 * @brief Set ADC group regular conversion data transfer: no transfer or
AnnaBridge 172:65be27845400 3677 * transfer by DMA, and DMA requests mode.
AnnaBridge 172:65be27845400 3678 * @note If transfer by DMA selected, specifies the DMA requests
AnnaBridge 172:65be27845400 3679 * mode:
AnnaBridge 172:65be27845400 3680 * - Limited mode (One shot mode): DMA transfer requests are stopped
AnnaBridge 172:65be27845400 3681 * when number of DMA data transfers (number of
AnnaBridge 172:65be27845400 3682 * ADC conversions) is reached.
AnnaBridge 172:65be27845400 3683 * This ADC mode is intended to be used with DMA mode non-circular.
AnnaBridge 172:65be27845400 3684 * - Unlimited mode: DMA transfer requests are unlimited,
AnnaBridge 172:65be27845400 3685 * whatever number of DMA data transfers (number of
AnnaBridge 172:65be27845400 3686 * ADC conversions).
AnnaBridge 172:65be27845400 3687 * This ADC mode is intended to be used with DMA mode circular.
AnnaBridge 172:65be27845400 3688 * @note If ADC DMA requests mode is set to unlimited and DMA is set to
AnnaBridge 172:65be27845400 3689 * mode non-circular:
AnnaBridge 172:65be27845400 3690 * when DMA transfers size will be reached, DMA will stop transfers of
AnnaBridge 172:65be27845400 3691 * ADC conversions data ADC will raise an overrun error
AnnaBridge 172:65be27845400 3692 * (overrun flag and interruption if enabled).
AnnaBridge 172:65be27845400 3693 * @note For devices with several ADC instances: ADC multimode DMA
AnnaBridge 172:65be27845400 3694 * settings are available using function @ref LL_ADC_SetMultiDMATransfer().
AnnaBridge 172:65be27845400 3695 * @note To configure DMA source address (peripheral address),
AnnaBridge 172:65be27845400 3696 * use function @ref LL_ADC_DMA_GetRegAddr().
AnnaBridge 172:65be27845400 3697 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 3698 * ADC state:
AnnaBridge 172:65be27845400 3699 * ADC must be disabled or enabled without conversion on going
AnnaBridge 172:65be27845400 3700 * on either groups regular or injected.
AnnaBridge 172:65be27845400 3701 * @rmtoll CFGR DMAEN LL_ADC_REG_SetDMATransfer\n
AnnaBridge 172:65be27845400 3702 * CFGR DMACFG LL_ADC_REG_SetDMATransfer
AnnaBridge 172:65be27845400 3703 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 3704 * @param DMATransfer This parameter can be one of the following values:
AnnaBridge 172:65be27845400 3705 * @arg @ref LL_ADC_REG_DMA_TRANSFER_NONE
AnnaBridge 172:65be27845400 3706 * @arg @ref LL_ADC_REG_DMA_TRANSFER_LIMITED
AnnaBridge 172:65be27845400 3707 * @arg @ref LL_ADC_REG_DMA_TRANSFER_UNLIMITED
AnnaBridge 172:65be27845400 3708 * @retval None
AnnaBridge 172:65be27845400 3709 */
AnnaBridge 172:65be27845400 3710 __STATIC_INLINE void LL_ADC_REG_SetDMATransfer(ADC_TypeDef *ADCx, uint32_t DMATransfer)
AnnaBridge 172:65be27845400 3711 {
AnnaBridge 172:65be27845400 3712 MODIFY_REG(ADCx->CFGR, ADC_CFGR_DMAEN | ADC_CFGR_DMACFG, DMATransfer);
AnnaBridge 172:65be27845400 3713 }
AnnaBridge 172:65be27845400 3714
AnnaBridge 172:65be27845400 3715 /**
AnnaBridge 172:65be27845400 3716 * @brief Get ADC group regular conversion data transfer: no transfer or
AnnaBridge 172:65be27845400 3717 * transfer by DMA, and DMA requests mode.
AnnaBridge 172:65be27845400 3718 * @note If transfer by DMA selected, specifies the DMA requests
AnnaBridge 172:65be27845400 3719 * mode:
AnnaBridge 172:65be27845400 3720 * - Limited mode (One shot mode): DMA transfer requests are stopped
AnnaBridge 172:65be27845400 3721 * when number of DMA data transfers (number of
AnnaBridge 172:65be27845400 3722 * ADC conversions) is reached.
AnnaBridge 172:65be27845400 3723 * This ADC mode is intended to be used with DMA mode non-circular.
AnnaBridge 172:65be27845400 3724 * - Unlimited mode: DMA transfer requests are unlimited,
AnnaBridge 172:65be27845400 3725 * whatever number of DMA data transfers (number of
AnnaBridge 172:65be27845400 3726 * ADC conversions).
AnnaBridge 172:65be27845400 3727 * This ADC mode is intended to be used with DMA mode circular.
AnnaBridge 172:65be27845400 3728 * @note If ADC DMA requests mode is set to unlimited and DMA is set to
AnnaBridge 172:65be27845400 3729 * mode non-circular:
AnnaBridge 172:65be27845400 3730 * when DMA transfers size will be reached, DMA will stop transfers of
AnnaBridge 172:65be27845400 3731 * ADC conversions data ADC will raise an overrun error
AnnaBridge 172:65be27845400 3732 * (overrun flag and interruption if enabled).
AnnaBridge 172:65be27845400 3733 * @note For devices with several ADC instances: ADC multimode DMA
AnnaBridge 172:65be27845400 3734 * settings are available using function @ref LL_ADC_GetMultiDMATransfer().
AnnaBridge 172:65be27845400 3735 * @note To configure DMA source address (peripheral address),
AnnaBridge 172:65be27845400 3736 * use function @ref LL_ADC_DMA_GetRegAddr().
AnnaBridge 172:65be27845400 3737 * @rmtoll CFGR DMAEN LL_ADC_REG_GetDMATransfer\n
AnnaBridge 172:65be27845400 3738 * CFGR DMACFG LL_ADC_REG_GetDMATransfer
AnnaBridge 172:65be27845400 3739 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 3740 * @retval Returned value can be one of the following values:
AnnaBridge 172:65be27845400 3741 * @arg @ref LL_ADC_REG_DMA_TRANSFER_NONE
AnnaBridge 172:65be27845400 3742 * @arg @ref LL_ADC_REG_DMA_TRANSFER_LIMITED
AnnaBridge 172:65be27845400 3743 * @arg @ref LL_ADC_REG_DMA_TRANSFER_UNLIMITED
AnnaBridge 172:65be27845400 3744 */
AnnaBridge 172:65be27845400 3745 __STATIC_INLINE uint32_t LL_ADC_REG_GetDMATransfer(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 3746 {
AnnaBridge 172:65be27845400 3747 return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_DMAEN | ADC_CFGR_DMACFG));
AnnaBridge 172:65be27845400 3748 }
AnnaBridge 172:65be27845400 3749
AnnaBridge 172:65be27845400 3750 #if defined(ADC_CFGR_DFSDMCFG) &&defined(DFSDM1_Channel0)
AnnaBridge 172:65be27845400 3751 /**
AnnaBridge 172:65be27845400 3752 * @brief Set ADC group regular conversion data transfer to DFSDM.
AnnaBridge 172:65be27845400 3753 * @note DFSDM transfer cannot be used if DMA transfer is enabled.
AnnaBridge 172:65be27845400 3754 * @note To configure DFSDM source address (peripheral address),
AnnaBridge 172:65be27845400 3755 * use the same function as for DMA transfer:
AnnaBridge 172:65be27845400 3756 * function @ref LL_ADC_DMA_GetRegAddr().
AnnaBridge 172:65be27845400 3757 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 3758 * ADC state:
AnnaBridge 172:65be27845400 3759 * ADC must be disabled or enabled without conversion on going
AnnaBridge 172:65be27845400 3760 * on either groups regular or injected.
AnnaBridge 172:65be27845400 3761 * @rmtoll CFGR DFSDMCFG LL_ADC_REG_GetDFSDMTransfer
AnnaBridge 172:65be27845400 3762 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 3763 * @param DFSDMTransfer This parameter can be one of the following values:
AnnaBridge 172:65be27845400 3764 * @arg @ref LL_ADC_REG_DFSDM_TRANSFER_NONE
AnnaBridge 172:65be27845400 3765 * @arg @ref LL_ADC_REG_DFSDM_TRANSFER_ENABLE
AnnaBridge 172:65be27845400 3766 * @retval None
AnnaBridge 172:65be27845400 3767 */
AnnaBridge 172:65be27845400 3768 __STATIC_INLINE void LL_ADC_REG_SetDFSDMTransfer(ADC_TypeDef *ADCx, uint32_t DFSDMTransfer)
AnnaBridge 172:65be27845400 3769 {
AnnaBridge 172:65be27845400 3770 MODIFY_REG(ADCx->CFGR, ADC_CFGR_DFSDMCFG, DFSDMTransfer);
AnnaBridge 172:65be27845400 3771 }
AnnaBridge 172:65be27845400 3772
AnnaBridge 172:65be27845400 3773 /**
AnnaBridge 172:65be27845400 3774 * @brief Get ADC group regular conversion data transfer to DFSDM.
AnnaBridge 172:65be27845400 3775 * @rmtoll CFGR DFSDMCFG LL_ADC_REG_GetDFSDMTransfer
AnnaBridge 172:65be27845400 3776 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 3777 * @retval Returned value can be one of the following values:
AnnaBridge 172:65be27845400 3778 * @arg @ref LL_ADC_REG_DFSDM_TRANSFER_NONE
AnnaBridge 172:65be27845400 3779 * @arg @ref LL_ADC_REG_DFSDM_TRANSFER_ENABLE
AnnaBridge 172:65be27845400 3780 */
AnnaBridge 172:65be27845400 3781 __STATIC_INLINE uint32_t LL_ADC_REG_GetDFSDMTransfer(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 3782 {
AnnaBridge 172:65be27845400 3783 return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_DFSDMCFG));
AnnaBridge 172:65be27845400 3784 }
AnnaBridge 172:65be27845400 3785 #endif
AnnaBridge 172:65be27845400 3786
AnnaBridge 172:65be27845400 3787 /**
AnnaBridge 172:65be27845400 3788 * @brief Set ADC group regular behavior in case of overrun:
AnnaBridge 172:65be27845400 3789 * data preserved or overwritten.
AnnaBridge 172:65be27845400 3790 * @note Compatibility with devices without feature overrun:
AnnaBridge 172:65be27845400 3791 * other devices without this feature have a behavior
AnnaBridge 172:65be27845400 3792 * equivalent to data overwritten.
AnnaBridge 172:65be27845400 3793 * The default setting of overrun is data preserved.
AnnaBridge 172:65be27845400 3794 * Therefore, for compatibility with all devices, parameter
AnnaBridge 172:65be27845400 3795 * overrun should be set to data overwritten.
AnnaBridge 172:65be27845400 3796 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 3797 * ADC state:
AnnaBridge 172:65be27845400 3798 * ADC must be disabled or enabled without conversion on going
AnnaBridge 172:65be27845400 3799 * on group regular.
AnnaBridge 172:65be27845400 3800 * @rmtoll CFGR OVRMOD LL_ADC_REG_SetOverrun
AnnaBridge 172:65be27845400 3801 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 3802 * @param Overrun This parameter can be one of the following values:
AnnaBridge 172:65be27845400 3803 * @arg @ref LL_ADC_REG_OVR_DATA_PRESERVED
AnnaBridge 172:65be27845400 3804 * @arg @ref LL_ADC_REG_OVR_DATA_OVERWRITTEN
AnnaBridge 172:65be27845400 3805 * @retval None
AnnaBridge 172:65be27845400 3806 */
AnnaBridge 172:65be27845400 3807 __STATIC_INLINE void LL_ADC_REG_SetOverrun(ADC_TypeDef *ADCx, uint32_t Overrun)
AnnaBridge 172:65be27845400 3808 {
AnnaBridge 172:65be27845400 3809 MODIFY_REG(ADCx->CFGR, ADC_CFGR_OVRMOD, Overrun);
AnnaBridge 172:65be27845400 3810 }
AnnaBridge 172:65be27845400 3811
AnnaBridge 172:65be27845400 3812 /**
AnnaBridge 172:65be27845400 3813 * @brief Get ADC group regular behavior in case of overrun:
AnnaBridge 172:65be27845400 3814 * data preserved or overwritten.
AnnaBridge 172:65be27845400 3815 * @rmtoll CFGR OVRMOD LL_ADC_REG_GetOverrun
AnnaBridge 172:65be27845400 3816 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 3817 * @retval Returned value can be one of the following values:
AnnaBridge 172:65be27845400 3818 * @arg @ref LL_ADC_REG_OVR_DATA_PRESERVED
AnnaBridge 172:65be27845400 3819 * @arg @ref LL_ADC_REG_OVR_DATA_OVERWRITTEN
AnnaBridge 172:65be27845400 3820 */
AnnaBridge 172:65be27845400 3821 __STATIC_INLINE uint32_t LL_ADC_REG_GetOverrun(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 3822 {
AnnaBridge 172:65be27845400 3823 return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_OVRMOD));
AnnaBridge 172:65be27845400 3824 }
AnnaBridge 172:65be27845400 3825
AnnaBridge 172:65be27845400 3826 /**
AnnaBridge 172:65be27845400 3827 * @}
AnnaBridge 172:65be27845400 3828 */
AnnaBridge 172:65be27845400 3829
AnnaBridge 172:65be27845400 3830 /** @defgroup ADC_LL_EF_Configuration_ADC_Group_Injected Configuration of ADC hierarchical scope: group injected
AnnaBridge 172:65be27845400 3831 * @{
AnnaBridge 172:65be27845400 3832 */
AnnaBridge 172:65be27845400 3833
AnnaBridge 172:65be27845400 3834 /**
AnnaBridge 172:65be27845400 3835 * @brief Set ADC group injected conversion trigger source:
AnnaBridge 172:65be27845400 3836 * internal (SW start) or from external IP (timer event,
AnnaBridge 172:65be27845400 3837 * external interrupt line).
AnnaBridge 172:65be27845400 3838 * @note On this STM32 serie, setting trigger source to external trigger
AnnaBridge 172:65be27845400 3839 * also set trigger polarity to rising edge
AnnaBridge 172:65be27845400 3840 * (default setting for compatibility with some ADC on other
AnnaBridge 172:65be27845400 3841 * STM32 families having this setting set by HW default value).
AnnaBridge 172:65be27845400 3842 * In case of need to modify trigger edge, use
AnnaBridge 172:65be27845400 3843 * function @ref LL_ADC_INJ_SetTriggerEdge().
AnnaBridge 172:65be27845400 3844 * @note Availability of parameters of trigger sources from timer
AnnaBridge 172:65be27845400 3845 * depends on timers availability on the selected device.
AnnaBridge 172:65be27845400 3846 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 3847 * ADC state:
AnnaBridge 172:65be27845400 3848 * ADC must not be disabled. Can be enabled with or without conversion
AnnaBridge 172:65be27845400 3849 * on going on either groups regular or injected.
AnnaBridge 172:65be27845400 3850 * @rmtoll JSQR JEXTSEL LL_ADC_INJ_SetTriggerSource\n
AnnaBridge 172:65be27845400 3851 * JSQR JEXTEN LL_ADC_INJ_SetTriggerSource
AnnaBridge 172:65be27845400 3852 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 3853 * @param TriggerSource This parameter can be one of the following values:
AnnaBridge 172:65be27845400 3854 * @arg @ref LL_ADC_INJ_TRIG_SOFTWARE
AnnaBridge 172:65be27845400 3855 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_TRGO
AnnaBridge 172:65be27845400 3856 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_TRGO2
AnnaBridge 172:65be27845400 3857 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_CH4
AnnaBridge 172:65be27845400 3858 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_TRGO
AnnaBridge 172:65be27845400 3859 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_CH1
AnnaBridge 172:65be27845400 3860 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_TRGO
AnnaBridge 172:65be27845400 3861 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH1
AnnaBridge 172:65be27845400 3862 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH3
AnnaBridge 172:65be27845400 3863 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH4
AnnaBridge 172:65be27845400 3864 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_TRGO
AnnaBridge 172:65be27845400 3865 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM6_TRGO
AnnaBridge 172:65be27845400 3866 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_CH4
AnnaBridge 172:65be27845400 3867 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_TRGO
AnnaBridge 172:65be27845400 3868 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_TRGO2
AnnaBridge 172:65be27845400 3869 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM15_TRGO
AnnaBridge 172:65be27845400 3870 * @arg @ref LL_ADC_INJ_TRIG_EXT_EXTI_LINE15
AnnaBridge 172:65be27845400 3871 * @retval None
AnnaBridge 172:65be27845400 3872 */
AnnaBridge 172:65be27845400 3873 __STATIC_INLINE void LL_ADC_INJ_SetTriggerSource(ADC_TypeDef *ADCx, uint32_t TriggerSource)
AnnaBridge 172:65be27845400 3874 {
AnnaBridge 172:65be27845400 3875 MODIFY_REG(ADCx->JSQR, ADC_JSQR_JEXTSEL | ADC_JSQR_JEXTEN, TriggerSource);
AnnaBridge 172:65be27845400 3876 }
AnnaBridge 172:65be27845400 3877
AnnaBridge 172:65be27845400 3878 /**
AnnaBridge 172:65be27845400 3879 * @brief Get ADC group injected conversion trigger source:
AnnaBridge 172:65be27845400 3880 * internal (SW start) or from external IP (timer event,
AnnaBridge 172:65be27845400 3881 * external interrupt line).
AnnaBridge 172:65be27845400 3882 * @note To determine whether group injected trigger source is
AnnaBridge 172:65be27845400 3883 * internal (SW start) or external, without detail
AnnaBridge 172:65be27845400 3884 * of which peripheral is selected as external trigger,
AnnaBridge 172:65be27845400 3885 * (equivalent to
AnnaBridge 172:65be27845400 3886 * "if(LL_ADC_INJ_GetTriggerSource(ADC1) == LL_ADC_INJ_TRIG_SOFTWARE)")
AnnaBridge 172:65be27845400 3887 * use function @ref LL_ADC_INJ_IsTriggerSourceSWStart.
AnnaBridge 172:65be27845400 3888 * @note Availability of parameters of trigger sources from timer
AnnaBridge 172:65be27845400 3889 * depends on timers availability on the selected device.
AnnaBridge 172:65be27845400 3890 * @rmtoll JSQR JEXTSEL LL_ADC_INJ_GetTriggerSource\n
AnnaBridge 172:65be27845400 3891 * JSQR JEXTEN LL_ADC_INJ_GetTriggerSource
AnnaBridge 172:65be27845400 3892 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 3893 * @retval Returned value can be one of the following values:
AnnaBridge 172:65be27845400 3894 * @arg @ref LL_ADC_INJ_TRIG_SOFTWARE
AnnaBridge 172:65be27845400 3895 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_TRGO
AnnaBridge 172:65be27845400 3896 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_TRGO2
AnnaBridge 172:65be27845400 3897 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_CH4
AnnaBridge 172:65be27845400 3898 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_TRGO
AnnaBridge 172:65be27845400 3899 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_CH1
AnnaBridge 172:65be27845400 3900 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_TRGO
AnnaBridge 172:65be27845400 3901 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH1
AnnaBridge 172:65be27845400 3902 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH3
AnnaBridge 172:65be27845400 3903 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH4
AnnaBridge 172:65be27845400 3904 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_TRGO
AnnaBridge 172:65be27845400 3905 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM6_TRGO
AnnaBridge 172:65be27845400 3906 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_CH4
AnnaBridge 172:65be27845400 3907 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_TRGO
AnnaBridge 172:65be27845400 3908 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_TRGO2
AnnaBridge 172:65be27845400 3909 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM15_TRGO
AnnaBridge 172:65be27845400 3910 * @arg @ref LL_ADC_INJ_TRIG_EXT_EXTI_LINE15
AnnaBridge 172:65be27845400 3911 */
AnnaBridge 172:65be27845400 3912 __STATIC_INLINE uint32_t LL_ADC_INJ_GetTriggerSource(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 3913 {
AnnaBridge 172:65be27845400 3914 register uint32_t TriggerSource = READ_BIT(ADCx->JSQR, ADC_JSQR_JEXTSEL | ADC_JSQR_JEXTEN);
AnnaBridge 172:65be27845400 3915
AnnaBridge 172:65be27845400 3916 /* Value for shift of {0; 4; 8; 12} depending on value of bitfield */
AnnaBridge 172:65be27845400 3917 /* corresponding to ADC_JSQR_JEXTEN {0; 1; 2; 3}. */
AnnaBridge 172:65be27845400 3918 register uint32_t ShiftJexten = ((TriggerSource & ADC_JSQR_JEXTEN) >> (ADC_INJ_TRIG_EXTEN_BITOFFSET_POS - 2U));
AnnaBridge 172:65be27845400 3919
AnnaBridge 172:65be27845400 3920 /* Set bitfield corresponding to ADC_JSQR_JEXTEN and ADC_JSQR_JEXTSEL */
AnnaBridge 172:65be27845400 3921 /* to match with triggers literals definition. */
AnnaBridge 172:65be27845400 3922 return ((TriggerSource
AnnaBridge 172:65be27845400 3923 & (ADC_INJ_TRIG_SOURCE_MASK >> ShiftJexten) & ADC_JSQR_JEXTSEL)
AnnaBridge 172:65be27845400 3924 | ((ADC_INJ_TRIG_EDGE_MASK >> ShiftJexten) & ADC_JSQR_JEXTEN)
AnnaBridge 172:65be27845400 3925 );
AnnaBridge 172:65be27845400 3926 }
AnnaBridge 172:65be27845400 3927
AnnaBridge 172:65be27845400 3928 /**
AnnaBridge 172:65be27845400 3929 * @brief Get ADC group injected conversion trigger source internal (SW start)
AnnaBridge 172:65be27845400 3930 or external
AnnaBridge 172:65be27845400 3931 * @note In case of group injected trigger source set to external trigger,
AnnaBridge 172:65be27845400 3932 * to determine which peripheral is selected as external trigger,
AnnaBridge 172:65be27845400 3933 * use function @ref LL_ADC_INJ_GetTriggerSource.
AnnaBridge 172:65be27845400 3934 * @rmtoll JSQR JEXTEN LL_ADC_INJ_IsTriggerSourceSWStart
AnnaBridge 172:65be27845400 3935 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 3936 * @retval Value "0" if trigger source external trigger
AnnaBridge 172:65be27845400 3937 * Value "1" if trigger source SW start.
AnnaBridge 172:65be27845400 3938 */
AnnaBridge 172:65be27845400 3939 __STATIC_INLINE uint32_t LL_ADC_INJ_IsTriggerSourceSWStart(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 3940 {
AnnaBridge 172:65be27845400 3941 return (READ_BIT(ADCx->JSQR, ADC_JSQR_JEXTEN) == (LL_ADC_INJ_TRIG_SOFTWARE & ADC_JSQR_JEXTEN));
AnnaBridge 172:65be27845400 3942 }
AnnaBridge 172:65be27845400 3943
AnnaBridge 172:65be27845400 3944 /**
AnnaBridge 172:65be27845400 3945 * @brief Set ADC group injected conversion trigger polarity.
AnnaBridge 172:65be27845400 3946 * Applicable only for trigger source set to external trigger.
AnnaBridge 172:65be27845400 3947 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 3948 * ADC state:
AnnaBridge 172:65be27845400 3949 * ADC must not be disabled. Can be enabled with or without conversion
AnnaBridge 172:65be27845400 3950 * on going on either groups regular or injected.
AnnaBridge 172:65be27845400 3951 * @rmtoll JSQR JEXTEN LL_ADC_INJ_SetTriggerEdge
AnnaBridge 172:65be27845400 3952 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 3953 * @param ExternalTriggerEdge This parameter can be one of the following values:
AnnaBridge 172:65be27845400 3954 * @arg @ref LL_ADC_INJ_TRIG_EXT_RISING
AnnaBridge 172:65be27845400 3955 * @arg @ref LL_ADC_INJ_TRIG_EXT_FALLING
AnnaBridge 172:65be27845400 3956 * @arg @ref LL_ADC_INJ_TRIG_EXT_RISINGFALLING
AnnaBridge 172:65be27845400 3957 * @retval None
AnnaBridge 172:65be27845400 3958 */
AnnaBridge 172:65be27845400 3959 __STATIC_INLINE void LL_ADC_INJ_SetTriggerEdge(ADC_TypeDef *ADCx, uint32_t ExternalTriggerEdge)
AnnaBridge 172:65be27845400 3960 {
AnnaBridge 172:65be27845400 3961 MODIFY_REG(ADCx->JSQR, ADC_JSQR_JEXTEN, ExternalTriggerEdge);
AnnaBridge 172:65be27845400 3962 }
AnnaBridge 172:65be27845400 3963
AnnaBridge 172:65be27845400 3964 /**
AnnaBridge 172:65be27845400 3965 * @brief Get ADC group injected conversion trigger polarity.
AnnaBridge 172:65be27845400 3966 * Applicable only for trigger source set to external trigger.
AnnaBridge 172:65be27845400 3967 * @rmtoll JSQR JEXTEN LL_ADC_INJ_GetTriggerEdge
AnnaBridge 172:65be27845400 3968 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 3969 * @retval Returned value can be one of the following values:
AnnaBridge 172:65be27845400 3970 * @arg @ref LL_ADC_INJ_TRIG_EXT_RISING
AnnaBridge 172:65be27845400 3971 * @arg @ref LL_ADC_INJ_TRIG_EXT_FALLING
AnnaBridge 172:65be27845400 3972 * @arg @ref LL_ADC_INJ_TRIG_EXT_RISINGFALLING
AnnaBridge 172:65be27845400 3973 */
AnnaBridge 172:65be27845400 3974 __STATIC_INLINE uint32_t LL_ADC_INJ_GetTriggerEdge(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 3975 {
AnnaBridge 172:65be27845400 3976 return (uint32_t)(READ_BIT(ADCx->JSQR, ADC_JSQR_JEXTEN));
AnnaBridge 172:65be27845400 3977 }
AnnaBridge 172:65be27845400 3978
AnnaBridge 172:65be27845400 3979 /**
AnnaBridge 172:65be27845400 3980 * @brief Set ADC group injected sequencer length and scan direction.
AnnaBridge 172:65be27845400 3981 * @note This function performs configuration of:
AnnaBridge 172:65be27845400 3982 * - Sequence length: Number of ranks in the scan sequence.
AnnaBridge 172:65be27845400 3983 * - Sequence direction: Unless specified in parameters, sequencer
AnnaBridge 172:65be27845400 3984 * scan direction is forward (from rank 1 to rank n).
AnnaBridge 172:65be27845400 3985 * @note Sequencer disabled is equivalent to sequencer of 1 rank:
AnnaBridge 172:65be27845400 3986 * ADC conversion on only 1 channel.
AnnaBridge 172:65be27845400 3987 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 3988 * ADC state:
AnnaBridge 172:65be27845400 3989 * ADC must not be disabled. Can be enabled with or without conversion
AnnaBridge 172:65be27845400 3990 * on going on either groups regular or injected.
AnnaBridge 172:65be27845400 3991 * @rmtoll JSQR JL LL_ADC_INJ_SetSequencerLength
AnnaBridge 172:65be27845400 3992 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 3993 * @param SequencerNbRanks This parameter can be one of the following values:
AnnaBridge 172:65be27845400 3994 * @arg @ref LL_ADC_INJ_SEQ_SCAN_DISABLE
AnnaBridge 172:65be27845400 3995 * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_2RANKS
AnnaBridge 172:65be27845400 3996 * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_3RANKS
AnnaBridge 172:65be27845400 3997 * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_4RANKS
AnnaBridge 172:65be27845400 3998 * @retval None
AnnaBridge 172:65be27845400 3999 */
AnnaBridge 172:65be27845400 4000 __STATIC_INLINE void LL_ADC_INJ_SetSequencerLength(ADC_TypeDef *ADCx, uint32_t SequencerNbRanks)
AnnaBridge 172:65be27845400 4001 {
AnnaBridge 172:65be27845400 4002 MODIFY_REG(ADCx->JSQR, ADC_JSQR_JL, SequencerNbRanks);
AnnaBridge 172:65be27845400 4003 }
AnnaBridge 172:65be27845400 4004
AnnaBridge 172:65be27845400 4005 /**
AnnaBridge 172:65be27845400 4006 * @brief Get ADC group injected sequencer length and scan direction.
AnnaBridge 172:65be27845400 4007 * @note This function retrieves:
AnnaBridge 172:65be27845400 4008 * - Sequence length: Number of ranks in the scan sequence.
AnnaBridge 172:65be27845400 4009 * - Sequence direction: Unless specified in parameters, sequencer
AnnaBridge 172:65be27845400 4010 * scan direction is forward (from rank 1 to rank n).
AnnaBridge 172:65be27845400 4011 * @note Sequencer disabled is equivalent to sequencer of 1 rank:
AnnaBridge 172:65be27845400 4012 * ADC conversion on only 1 channel.
AnnaBridge 172:65be27845400 4013 * @rmtoll JSQR JL LL_ADC_INJ_GetSequencerLength
AnnaBridge 172:65be27845400 4014 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 4015 * @retval Returned value can be one of the following values:
AnnaBridge 172:65be27845400 4016 * @arg @ref LL_ADC_INJ_SEQ_SCAN_DISABLE
AnnaBridge 172:65be27845400 4017 * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_2RANKS
AnnaBridge 172:65be27845400 4018 * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_3RANKS
AnnaBridge 172:65be27845400 4019 * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_4RANKS
AnnaBridge 172:65be27845400 4020 */
AnnaBridge 172:65be27845400 4021 __STATIC_INLINE uint32_t LL_ADC_INJ_GetSequencerLength(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 4022 {
AnnaBridge 172:65be27845400 4023 return (uint32_t)(READ_BIT(ADCx->JSQR, ADC_JSQR_JL));
AnnaBridge 172:65be27845400 4024 }
AnnaBridge 172:65be27845400 4025
AnnaBridge 172:65be27845400 4026 /**
AnnaBridge 172:65be27845400 4027 * @brief Set ADC group injected sequencer discontinuous mode:
AnnaBridge 172:65be27845400 4028 * sequence subdivided and scan conversions interrupted every selected
AnnaBridge 172:65be27845400 4029 * number of ranks.
AnnaBridge 172:65be27845400 4030 * @note It is not possible to enable both ADC group injected
AnnaBridge 172:65be27845400 4031 * auto-injected mode and sequencer discontinuous mode.
AnnaBridge 172:65be27845400 4032 * @rmtoll CFGR JDISCEN LL_ADC_INJ_SetSequencerDiscont
AnnaBridge 172:65be27845400 4033 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 4034 * @param SeqDiscont This parameter can be one of the following values:
AnnaBridge 172:65be27845400 4035 * @arg @ref LL_ADC_INJ_SEQ_DISCONT_DISABLE
AnnaBridge 172:65be27845400 4036 * @arg @ref LL_ADC_INJ_SEQ_DISCONT_1RANK
AnnaBridge 172:65be27845400 4037 * @retval None
AnnaBridge 172:65be27845400 4038 */
AnnaBridge 172:65be27845400 4039 __STATIC_INLINE void LL_ADC_INJ_SetSequencerDiscont(ADC_TypeDef *ADCx, uint32_t SeqDiscont)
AnnaBridge 172:65be27845400 4040 {
AnnaBridge 172:65be27845400 4041 MODIFY_REG(ADCx->CFGR, ADC_CFGR_JDISCEN, SeqDiscont);
AnnaBridge 172:65be27845400 4042 }
AnnaBridge 172:65be27845400 4043
AnnaBridge 172:65be27845400 4044 /**
AnnaBridge 172:65be27845400 4045 * @brief Get ADC group injected sequencer discontinuous mode:
AnnaBridge 172:65be27845400 4046 * sequence subdivided and scan conversions interrupted every selected
AnnaBridge 172:65be27845400 4047 * number of ranks.
AnnaBridge 172:65be27845400 4048 * @rmtoll CFGR JDISCEN LL_ADC_INJ_GetSequencerDiscont
AnnaBridge 172:65be27845400 4049 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 4050 * @retval Returned value can be one of the following values:
AnnaBridge 172:65be27845400 4051 * @arg @ref LL_ADC_INJ_SEQ_DISCONT_DISABLE
AnnaBridge 172:65be27845400 4052 * @arg @ref LL_ADC_INJ_SEQ_DISCONT_1RANK
AnnaBridge 172:65be27845400 4053 */
AnnaBridge 172:65be27845400 4054 __STATIC_INLINE uint32_t LL_ADC_INJ_GetSequencerDiscont(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 4055 {
AnnaBridge 172:65be27845400 4056 return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_JDISCEN));
AnnaBridge 172:65be27845400 4057 }
AnnaBridge 172:65be27845400 4058
AnnaBridge 172:65be27845400 4059 /**
AnnaBridge 172:65be27845400 4060 * @brief Set ADC group injected sequence: channel on the selected
AnnaBridge 172:65be27845400 4061 * sequence rank.
AnnaBridge 172:65be27845400 4062 * @note Depending on devices and packages, some channels may not be available.
AnnaBridge 172:65be27845400 4063 * Refer to device datasheet for channels availability.
AnnaBridge 172:65be27845400 4064 * @note On this STM32 serie, to measure internal channels (VrefInt,
AnnaBridge 172:65be27845400 4065 * TempSensor, ...), measurement paths to internal channels must be
AnnaBridge 172:65be27845400 4066 * enabled separately.
AnnaBridge 172:65be27845400 4067 * This can be done using function @ref LL_ADC_SetCommonPathInternalCh().
AnnaBridge 172:65be27845400 4068 * @note On STM32L4, some fast channels are available: fast analog inputs
AnnaBridge 172:65be27845400 4069 * coming from GPIO pads (ADC_IN1..5).
AnnaBridge 172:65be27845400 4070 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 4071 * ADC state:
AnnaBridge 172:65be27845400 4072 * ADC must not be disabled. Can be enabled with or without conversion
AnnaBridge 172:65be27845400 4073 * on going on either groups regular or injected.
AnnaBridge 172:65be27845400 4074 * @rmtoll JSQR JSQ1 LL_ADC_INJ_SetSequencerRanks\n
AnnaBridge 172:65be27845400 4075 * JSQR JSQ2 LL_ADC_INJ_SetSequencerRanks\n
AnnaBridge 172:65be27845400 4076 * JSQR JSQ3 LL_ADC_INJ_SetSequencerRanks\n
AnnaBridge 172:65be27845400 4077 * JSQR JSQ4 LL_ADC_INJ_SetSequencerRanks
AnnaBridge 172:65be27845400 4078 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 4079 * @param Rank This parameter can be one of the following values:
AnnaBridge 172:65be27845400 4080 * @arg @ref LL_ADC_INJ_RANK_1
AnnaBridge 172:65be27845400 4081 * @arg @ref LL_ADC_INJ_RANK_2
AnnaBridge 172:65be27845400 4082 * @arg @ref LL_ADC_INJ_RANK_3
AnnaBridge 172:65be27845400 4083 * @arg @ref LL_ADC_INJ_RANK_4
AnnaBridge 172:65be27845400 4084 * @param Channel This parameter can be one of the following values:
AnnaBridge 172:65be27845400 4085 * @arg @ref LL_ADC_CHANNEL_0
AnnaBridge 172:65be27845400 4086 * @arg @ref LL_ADC_CHANNEL_1 (7)
AnnaBridge 172:65be27845400 4087 * @arg @ref LL_ADC_CHANNEL_2 (7)
AnnaBridge 172:65be27845400 4088 * @arg @ref LL_ADC_CHANNEL_3 (7)
AnnaBridge 172:65be27845400 4089 * @arg @ref LL_ADC_CHANNEL_4 (7)
AnnaBridge 172:65be27845400 4090 * @arg @ref LL_ADC_CHANNEL_5 (7)
AnnaBridge 172:65be27845400 4091 * @arg @ref LL_ADC_CHANNEL_6
AnnaBridge 172:65be27845400 4092 * @arg @ref LL_ADC_CHANNEL_7
AnnaBridge 172:65be27845400 4093 * @arg @ref LL_ADC_CHANNEL_8
AnnaBridge 172:65be27845400 4094 * @arg @ref LL_ADC_CHANNEL_9
AnnaBridge 172:65be27845400 4095 * @arg @ref LL_ADC_CHANNEL_10
AnnaBridge 172:65be27845400 4096 * @arg @ref LL_ADC_CHANNEL_11
AnnaBridge 172:65be27845400 4097 * @arg @ref LL_ADC_CHANNEL_12
AnnaBridge 172:65be27845400 4098 * @arg @ref LL_ADC_CHANNEL_13
AnnaBridge 172:65be27845400 4099 * @arg @ref LL_ADC_CHANNEL_14
AnnaBridge 172:65be27845400 4100 * @arg @ref LL_ADC_CHANNEL_15
AnnaBridge 172:65be27845400 4101 * @arg @ref LL_ADC_CHANNEL_16
AnnaBridge 172:65be27845400 4102 * @arg @ref LL_ADC_CHANNEL_17
AnnaBridge 172:65be27845400 4103 * @arg @ref LL_ADC_CHANNEL_18
AnnaBridge 172:65be27845400 4104 * @arg @ref LL_ADC_CHANNEL_VREFINT (1)
AnnaBridge 172:65be27845400 4105 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (4)
AnnaBridge 172:65be27845400 4106 * @arg @ref LL_ADC_CHANNEL_VBAT (4)
AnnaBridge 172:65be27845400 4107 * @arg @ref LL_ADC_CHANNEL_DAC1CH1 (5)
AnnaBridge 172:65be27845400 4108 * @arg @ref LL_ADC_CHANNEL_DAC1CH2 (5)
AnnaBridge 172:65be27845400 4109 * @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC2 (2)(6)
AnnaBridge 172:65be27845400 4110 * @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC2 (2)(6)
AnnaBridge 172:65be27845400 4111 * @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC3 (3)(6)
AnnaBridge 172:65be27845400 4112 * @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC3 (3)(6)
AnnaBridge 172:65be27845400 4113 *
AnnaBridge 172:65be27845400 4114 * (1) On STM32L4, parameter available only on ADC instance: ADC1.\n
AnnaBridge 172:65be27845400 4115 * (2) On STM32L4, parameter available only on ADC instance: ADC2.\n
AnnaBridge 172:65be27845400 4116 * (3) On STM32L4, parameter available only on ADC instance: ADC3.\n
AnnaBridge 172:65be27845400 4117 * (4) On STM32L4, parameter available only on ADC instances: ADC1, ADC3.\n
AnnaBridge 172:65be27845400 4118 * (5) On STM32L4, parameter available on devices with only 1 ADC instance.\n
AnnaBridge 172:65be27845400 4119 * (6) On STM32L4, parameter available on devices with several ADC instances.\n
AnnaBridge 172:65be27845400 4120 * (7) On STM32L4, fast channel (0.188 us for 12-bit resolution (ADC conversion rate up to 5.33 Ms/s)).
AnnaBridge 172:65be27845400 4121 * Other channels are slow channels (0.238 us for 12-bit resolution (ADC conversion rate up to 4.21 Ms/s)).
AnnaBridge 172:65be27845400 4122 * @retval None
AnnaBridge 172:65be27845400 4123 */
AnnaBridge 172:65be27845400 4124 __STATIC_INLINE void LL_ADC_INJ_SetSequencerRanks(ADC_TypeDef *ADCx, uint32_t Rank, uint32_t Channel)
AnnaBridge 172:65be27845400 4125 {
AnnaBridge 172:65be27845400 4126 /* Set bits with content of parameter "Channel" with bits position */
AnnaBridge 172:65be27845400 4127 /* in register depending on parameter "Rank". */
AnnaBridge 172:65be27845400 4128 /* Parameters "Rank" and "Channel" are used with masks because containing */
AnnaBridge 172:65be27845400 4129 /* other bits reserved for other purpose. */
AnnaBridge 172:65be27845400 4130 MODIFY_REG(ADCx->JSQR,
AnnaBridge 172:65be27845400 4131 (ADC_CHANNEL_ID_NUMBER_MASK >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) << (Rank & ADC_INJ_RANK_ID_JSQR_MASK),
AnnaBridge 172:65be27845400 4132 ((Channel & ADC_CHANNEL_ID_NUMBER_MASK) >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) << (Rank & ADC_INJ_RANK_ID_JSQR_MASK));
AnnaBridge 172:65be27845400 4133 }
AnnaBridge 172:65be27845400 4134
AnnaBridge 172:65be27845400 4135 /**
AnnaBridge 172:65be27845400 4136 * @brief Get ADC group injected sequence: channel on the selected
AnnaBridge 172:65be27845400 4137 * sequence rank.
AnnaBridge 172:65be27845400 4138 * @note Depending on devices and packages, some channels may not be available.
AnnaBridge 172:65be27845400 4139 * Refer to device datasheet for channels availability.
AnnaBridge 172:65be27845400 4140 * @note Usage of the returned channel number:
AnnaBridge 172:65be27845400 4141 * - To reinject this channel into another function LL_ADC_xxx:
AnnaBridge 172:65be27845400 4142 * the returned channel number is only partly formatted on definition
AnnaBridge 172:65be27845400 4143 * of literals LL_ADC_CHANNEL_x. Therefore, it has to be compared
AnnaBridge 172:65be27845400 4144 * with parts of literals LL_ADC_CHANNEL_x or using
AnnaBridge 172:65be27845400 4145 * helper macro @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
AnnaBridge 172:65be27845400 4146 * Then the selected literal LL_ADC_CHANNEL_x can be used
AnnaBridge 172:65be27845400 4147 * as parameter for another function.
AnnaBridge 172:65be27845400 4148 * - To get the channel number in decimal format:
AnnaBridge 172:65be27845400 4149 * process the returned value with the helper macro
AnnaBridge 172:65be27845400 4150 * @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
AnnaBridge 172:65be27845400 4151 * @rmtoll JSQR JSQ1 LL_ADC_INJ_GetSequencerRanks\n
AnnaBridge 172:65be27845400 4152 * JSQR JSQ2 LL_ADC_INJ_GetSequencerRanks\n
AnnaBridge 172:65be27845400 4153 * JSQR JSQ3 LL_ADC_INJ_GetSequencerRanks\n
AnnaBridge 172:65be27845400 4154 * JSQR JSQ4 LL_ADC_INJ_GetSequencerRanks
AnnaBridge 172:65be27845400 4155 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 4156 * @param Rank This parameter can be one of the following values:
AnnaBridge 172:65be27845400 4157 * @arg @ref LL_ADC_INJ_RANK_1
AnnaBridge 172:65be27845400 4158 * @arg @ref LL_ADC_INJ_RANK_2
AnnaBridge 172:65be27845400 4159 * @arg @ref LL_ADC_INJ_RANK_3
AnnaBridge 172:65be27845400 4160 * @arg @ref LL_ADC_INJ_RANK_4
AnnaBridge 172:65be27845400 4161 * @retval Returned value can be one of the following values:
AnnaBridge 172:65be27845400 4162 * @arg @ref LL_ADC_CHANNEL_0
AnnaBridge 172:65be27845400 4163 * @arg @ref LL_ADC_CHANNEL_1 (7)
AnnaBridge 172:65be27845400 4164 * @arg @ref LL_ADC_CHANNEL_2 (7)
AnnaBridge 172:65be27845400 4165 * @arg @ref LL_ADC_CHANNEL_3 (7)
AnnaBridge 172:65be27845400 4166 * @arg @ref LL_ADC_CHANNEL_4 (7)
AnnaBridge 172:65be27845400 4167 * @arg @ref LL_ADC_CHANNEL_5 (7)
AnnaBridge 172:65be27845400 4168 * @arg @ref LL_ADC_CHANNEL_6
AnnaBridge 172:65be27845400 4169 * @arg @ref LL_ADC_CHANNEL_7
AnnaBridge 172:65be27845400 4170 * @arg @ref LL_ADC_CHANNEL_8
AnnaBridge 172:65be27845400 4171 * @arg @ref LL_ADC_CHANNEL_9
AnnaBridge 172:65be27845400 4172 * @arg @ref LL_ADC_CHANNEL_10
AnnaBridge 172:65be27845400 4173 * @arg @ref LL_ADC_CHANNEL_11
AnnaBridge 172:65be27845400 4174 * @arg @ref LL_ADC_CHANNEL_12
AnnaBridge 172:65be27845400 4175 * @arg @ref LL_ADC_CHANNEL_13
AnnaBridge 172:65be27845400 4176 * @arg @ref LL_ADC_CHANNEL_14
AnnaBridge 172:65be27845400 4177 * @arg @ref LL_ADC_CHANNEL_15
AnnaBridge 172:65be27845400 4178 * @arg @ref LL_ADC_CHANNEL_16
AnnaBridge 172:65be27845400 4179 * @arg @ref LL_ADC_CHANNEL_17
AnnaBridge 172:65be27845400 4180 * @arg @ref LL_ADC_CHANNEL_18
AnnaBridge 172:65be27845400 4181 * @arg @ref LL_ADC_CHANNEL_VREFINT (1)
AnnaBridge 172:65be27845400 4182 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (4)
AnnaBridge 172:65be27845400 4183 * @arg @ref LL_ADC_CHANNEL_VBAT (4)
AnnaBridge 172:65be27845400 4184 * @arg @ref LL_ADC_CHANNEL_DAC1CH1 (5)
AnnaBridge 172:65be27845400 4185 * @arg @ref LL_ADC_CHANNEL_DAC1CH2 (5)
AnnaBridge 172:65be27845400 4186 * @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC2 (2)(6)
AnnaBridge 172:65be27845400 4187 * @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC2 (2)(6)
AnnaBridge 172:65be27845400 4188 * @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC3 (3)(6)
AnnaBridge 172:65be27845400 4189 * @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC3 (3)(6)
AnnaBridge 172:65be27845400 4190 *
AnnaBridge 172:65be27845400 4191 * (1) On STM32L4, parameter available only on ADC instance: ADC1.\n
AnnaBridge 172:65be27845400 4192 * (2) On STM32L4, parameter available only on ADC instance: ADC2.\n
AnnaBridge 172:65be27845400 4193 * (3) On STM32L4, parameter available only on ADC instance: ADC3.\n
AnnaBridge 172:65be27845400 4194 * (4) On STM32L4, parameter available only on ADC instances: ADC1, ADC3.\n
AnnaBridge 172:65be27845400 4195 * (5) On STM32L4, parameter available on devices with only 1 ADC instance.\n
AnnaBridge 172:65be27845400 4196 * (6) On STM32L4, parameter available on devices with several ADC instances.\n
AnnaBridge 172:65be27845400 4197 * (7) On STM32L4, fast channel (0.188 us for 12-bit resolution (ADC conversion rate up to 5.33 Ms/s)).
AnnaBridge 172:65be27845400 4198 * Other channels are slow channels (0.238 us for 12-bit resolution (ADC conversion rate up to 4.21 Ms/s)).\n
AnnaBridge 172:65be27845400 4199 * (1, 2, 3, 4) For ADC channel read back from ADC register,
AnnaBridge 172:65be27845400 4200 * comparison with internal channel parameter to be done
AnnaBridge 172:65be27845400 4201 * using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL().
AnnaBridge 172:65be27845400 4202 */
AnnaBridge 172:65be27845400 4203 __STATIC_INLINE uint32_t LL_ADC_INJ_GetSequencerRanks(ADC_TypeDef *ADCx, uint32_t Rank)
AnnaBridge 172:65be27845400 4204 {
AnnaBridge 172:65be27845400 4205 return (uint32_t)((READ_BIT(ADCx->JSQR,
AnnaBridge 172:65be27845400 4206 (ADC_CHANNEL_ID_NUMBER_MASK >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) << (Rank & ADC_INJ_RANK_ID_JSQR_MASK))
AnnaBridge 172:65be27845400 4207 >> (Rank & ADC_INJ_RANK_ID_JSQR_MASK)) << ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS
AnnaBridge 172:65be27845400 4208 );
AnnaBridge 172:65be27845400 4209 }
AnnaBridge 172:65be27845400 4210
AnnaBridge 172:65be27845400 4211 /**
AnnaBridge 172:65be27845400 4212 * @brief Set ADC group injected conversion trigger:
AnnaBridge 172:65be27845400 4213 * independent or from ADC group regular.
AnnaBridge 172:65be27845400 4214 * @note This mode can be used to extend number of data registers
AnnaBridge 172:65be27845400 4215 * updated after one ADC conversion trigger and with data
AnnaBridge 172:65be27845400 4216 * permanently kept (not erased by successive conversions of scan of
AnnaBridge 172:65be27845400 4217 * ADC sequencer ranks), up to 5 data registers:
AnnaBridge 172:65be27845400 4218 * 1 data register on ADC group regular, 4 data registers
AnnaBridge 172:65be27845400 4219 * on ADC group injected.
AnnaBridge 172:65be27845400 4220 * @note If ADC group injected injected trigger source is set to an
AnnaBridge 172:65be27845400 4221 * external trigger, this feature must be must be set to
AnnaBridge 172:65be27845400 4222 * independent trigger.
AnnaBridge 172:65be27845400 4223 * ADC group injected automatic trigger is compliant only with
AnnaBridge 172:65be27845400 4224 * group injected trigger source set to SW start, without any
AnnaBridge 172:65be27845400 4225 * further action on ADC group injected conversion start or stop:
AnnaBridge 172:65be27845400 4226 * in this case, ADC group injected is controlled only
AnnaBridge 172:65be27845400 4227 * from ADC group regular.
AnnaBridge 172:65be27845400 4228 * @note It is not possible to enable both ADC group injected
AnnaBridge 172:65be27845400 4229 * auto-injected mode and sequencer discontinuous mode.
AnnaBridge 172:65be27845400 4230 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 4231 * ADC state:
AnnaBridge 172:65be27845400 4232 * ADC must be disabled or enabled without conversion on going
AnnaBridge 172:65be27845400 4233 * on either groups regular or injected.
AnnaBridge 172:65be27845400 4234 * @rmtoll CFGR JAUTO LL_ADC_INJ_SetTrigAuto
AnnaBridge 172:65be27845400 4235 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 4236 * @param TrigAuto This parameter can be one of the following values:
AnnaBridge 172:65be27845400 4237 * @arg @ref LL_ADC_INJ_TRIG_INDEPENDENT
AnnaBridge 172:65be27845400 4238 * @arg @ref LL_ADC_INJ_TRIG_FROM_GRP_REGULAR
AnnaBridge 172:65be27845400 4239 * @retval None
AnnaBridge 172:65be27845400 4240 */
AnnaBridge 172:65be27845400 4241 __STATIC_INLINE void LL_ADC_INJ_SetTrigAuto(ADC_TypeDef *ADCx, uint32_t TrigAuto)
AnnaBridge 172:65be27845400 4242 {
AnnaBridge 172:65be27845400 4243 MODIFY_REG(ADCx->CFGR, ADC_CFGR_JAUTO, TrigAuto);
AnnaBridge 172:65be27845400 4244 }
AnnaBridge 172:65be27845400 4245
AnnaBridge 172:65be27845400 4246 /**
AnnaBridge 172:65be27845400 4247 * @brief Get ADC group injected conversion trigger:
AnnaBridge 172:65be27845400 4248 * independent or from ADC group regular.
AnnaBridge 172:65be27845400 4249 * @rmtoll CFGR JAUTO LL_ADC_INJ_GetTrigAuto
AnnaBridge 172:65be27845400 4250 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 4251 * @retval Returned value can be one of the following values:
AnnaBridge 172:65be27845400 4252 * @arg @ref LL_ADC_INJ_TRIG_INDEPENDENT
AnnaBridge 172:65be27845400 4253 * @arg @ref LL_ADC_INJ_TRIG_FROM_GRP_REGULAR
AnnaBridge 172:65be27845400 4254 */
AnnaBridge 172:65be27845400 4255 __STATIC_INLINE uint32_t LL_ADC_INJ_GetTrigAuto(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 4256 {
AnnaBridge 172:65be27845400 4257 return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_JAUTO));
AnnaBridge 172:65be27845400 4258 }
AnnaBridge 172:65be27845400 4259
AnnaBridge 172:65be27845400 4260 /**
AnnaBridge 172:65be27845400 4261 * @brief Set ADC group injected contexts queue mode.
AnnaBridge 172:65be27845400 4262 * @note A context is a setting of group injected sequencer:
AnnaBridge 172:65be27845400 4263 * - group injected trigger
AnnaBridge 172:65be27845400 4264 * - sequencer length
AnnaBridge 172:65be27845400 4265 * - sequencer ranks
AnnaBridge 172:65be27845400 4266 * If contexts queue is disabled:
AnnaBridge 172:65be27845400 4267 * - only 1 sequence can be configured
AnnaBridge 172:65be27845400 4268 * and is active perpetually.
AnnaBridge 172:65be27845400 4269 * If contexts queue is enabled:
AnnaBridge 172:65be27845400 4270 * - up to 2 contexts can be queued
AnnaBridge 172:65be27845400 4271 * and are checked in and out as a FIFO stack (first-in, first-out).
AnnaBridge 172:65be27845400 4272 * - If a new context is set when queues is full, error is triggered
AnnaBridge 172:65be27845400 4273 * by interruption "Injected Queue Overflow".
AnnaBridge 172:65be27845400 4274 * - Two behaviors are possible when all contexts have been processed:
AnnaBridge 172:65be27845400 4275 * the contexts queue can maintain the last context active perpetually
AnnaBridge 172:65be27845400 4276 * or can be empty and injected group triggers are disabled.
AnnaBridge 172:65be27845400 4277 * - Triggers can be only external (not internal SW start)
AnnaBridge 172:65be27845400 4278 * - Caution: The sequence must be fully configured in one time
AnnaBridge 172:65be27845400 4279 * (one write of register JSQR makes a check-in of a new context
AnnaBridge 172:65be27845400 4280 * into the queue).
AnnaBridge 172:65be27845400 4281 * Therefore functions to set separately injected trigger and
AnnaBridge 172:65be27845400 4282 * sequencer channels cannot be used, register JSQR must be set
AnnaBridge 172:65be27845400 4283 * using function @ref LL_ADC_INJ_ConfigQueueContext().
AnnaBridge 172:65be27845400 4284 * @note This parameter can be modified only when no conversion is on going
AnnaBridge 172:65be27845400 4285 * on either groups regular or injected.
AnnaBridge 172:65be27845400 4286 * @note A modification of the context mode (bit JQDIS) causes the contexts
AnnaBridge 172:65be27845400 4287 * queue to be flushed and the register JSQR is cleared.
AnnaBridge 172:65be27845400 4288 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 4289 * ADC state:
AnnaBridge 172:65be27845400 4290 * ADC must be disabled or enabled without conversion on going
AnnaBridge 172:65be27845400 4291 * on either groups regular or injected.
AnnaBridge 172:65be27845400 4292 * @rmtoll CFGR JQM LL_ADC_INJ_SetQueueMode\n
AnnaBridge 172:65be27845400 4293 * CFGR JQDIS LL_ADC_INJ_SetQueueMode
AnnaBridge 172:65be27845400 4294 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 4295 * @param QueueMode This parameter can be one of the following values:
AnnaBridge 172:65be27845400 4296 * @arg @ref LL_ADC_INJ_QUEUE_DISABLE
AnnaBridge 172:65be27845400 4297 * @arg @ref LL_ADC_INJ_QUEUE_2CONTEXTS_LAST_ACTIVE
AnnaBridge 172:65be27845400 4298 * @arg @ref LL_ADC_INJ_QUEUE_2CONTEXTS_END_EMPTY
AnnaBridge 172:65be27845400 4299 * @retval None
AnnaBridge 172:65be27845400 4300 */
AnnaBridge 172:65be27845400 4301 __STATIC_INLINE void LL_ADC_INJ_SetQueueMode(ADC_TypeDef *ADCx, uint32_t QueueMode)
AnnaBridge 172:65be27845400 4302 {
AnnaBridge 172:65be27845400 4303 MODIFY_REG(ADCx->CFGR, ADC_CFGR_JQM | ADC_CFGR_JQDIS, QueueMode);
AnnaBridge 172:65be27845400 4304 }
AnnaBridge 172:65be27845400 4305
AnnaBridge 172:65be27845400 4306 /**
AnnaBridge 172:65be27845400 4307 * @brief Get ADC group injected context queue mode.
AnnaBridge 172:65be27845400 4308 * @rmtoll CFGR JQM LL_ADC_INJ_GetQueueMode\n
AnnaBridge 172:65be27845400 4309 * CFGR JQDIS LL_ADC_INJ_GetQueueMode
AnnaBridge 172:65be27845400 4310 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 4311 * @retval Returned value can be one of the following values:
AnnaBridge 172:65be27845400 4312 * @arg @ref LL_ADC_INJ_QUEUE_DISABLE
AnnaBridge 172:65be27845400 4313 * @arg @ref LL_ADC_INJ_QUEUE_2CONTEXTS_LAST_ACTIVE
AnnaBridge 172:65be27845400 4314 * @arg @ref LL_ADC_INJ_QUEUE_2CONTEXTS_END_EMPTY
AnnaBridge 172:65be27845400 4315 */
AnnaBridge 172:65be27845400 4316 __STATIC_INLINE uint32_t LL_ADC_INJ_GetQueueMode(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 4317 {
AnnaBridge 172:65be27845400 4318 return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_JQM | ADC_CFGR_JQDIS));
AnnaBridge 172:65be27845400 4319 }
AnnaBridge 172:65be27845400 4320
AnnaBridge 172:65be27845400 4321 /**
AnnaBridge 172:65be27845400 4322 * @brief Set one context on ADC group injected that will be checked in
AnnaBridge 172:65be27845400 4323 * contexts queue.
AnnaBridge 172:65be27845400 4324 * @note A context is a setting of group injected sequencer:
AnnaBridge 172:65be27845400 4325 * - group injected trigger
AnnaBridge 172:65be27845400 4326 * - sequencer length
AnnaBridge 172:65be27845400 4327 * - sequencer ranks
AnnaBridge 172:65be27845400 4328 * This function is intended to be used when contexts queue is enabled,
AnnaBridge 172:65be27845400 4329 * because the sequence must be fully configured in one time
AnnaBridge 172:65be27845400 4330 * (functions to set separately injected trigger and sequencer channels
AnnaBridge 172:65be27845400 4331 * cannot be used):
AnnaBridge 172:65be27845400 4332 * Refer to function @ref LL_ADC_INJ_SetQueueMode().
AnnaBridge 172:65be27845400 4333 * @note In the contexts queue, only the active context can be read.
AnnaBridge 172:65be27845400 4334 * The parameters of this function can be read using functions:
AnnaBridge 172:65be27845400 4335 * @arg @ref LL_ADC_INJ_GetTriggerSource()
AnnaBridge 172:65be27845400 4336 * @arg @ref LL_ADC_INJ_GetTriggerEdge()
AnnaBridge 172:65be27845400 4337 * @arg @ref LL_ADC_INJ_GetSequencerRanks()
AnnaBridge 172:65be27845400 4338 * @note On this STM32 serie, to measure internal channels (VrefInt,
AnnaBridge 172:65be27845400 4339 * TempSensor, ...), measurement paths to internal channels must be
AnnaBridge 172:65be27845400 4340 * enabled separately.
AnnaBridge 172:65be27845400 4341 * This can be done using function @ref LL_ADC_SetCommonPathInternalCh().
AnnaBridge 172:65be27845400 4342 * @note On STM32L4, some fast channels are available: fast analog inputs
AnnaBridge 172:65be27845400 4343 * coming from GPIO pads (ADC_IN1..5).
AnnaBridge 172:65be27845400 4344 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 4345 * ADC state:
AnnaBridge 172:65be27845400 4346 * ADC must not be disabled. Can be enabled with or without conversion
AnnaBridge 172:65be27845400 4347 * on going on either groups regular or injected.
AnnaBridge 172:65be27845400 4348 * @rmtoll JSQR JEXTSEL LL_ADC_INJ_ConfigQueueContext\n
AnnaBridge 172:65be27845400 4349 * JSQR JEXTEN LL_ADC_INJ_ConfigQueueContext\n
AnnaBridge 172:65be27845400 4350 * JSQR JL LL_ADC_INJ_ConfigQueueContext\n
AnnaBridge 172:65be27845400 4351 * JSQR JSQ1 LL_ADC_INJ_ConfigQueueContext\n
AnnaBridge 172:65be27845400 4352 * JSQR JSQ2 LL_ADC_INJ_ConfigQueueContext\n
AnnaBridge 172:65be27845400 4353 * JSQR JSQ3 LL_ADC_INJ_ConfigQueueContext\n
AnnaBridge 172:65be27845400 4354 * JSQR JSQ4 LL_ADC_INJ_ConfigQueueContext
AnnaBridge 172:65be27845400 4355 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 4356 * @param TriggerSource This parameter can be one of the following values:
AnnaBridge 172:65be27845400 4357 * @arg @ref LL_ADC_INJ_TRIG_SOFTWARE
AnnaBridge 172:65be27845400 4358 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_TRGO
AnnaBridge 172:65be27845400 4359 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_TRGO2
AnnaBridge 172:65be27845400 4360 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_CH4
AnnaBridge 172:65be27845400 4361 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_TRGO
AnnaBridge 172:65be27845400 4362 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_CH1
AnnaBridge 172:65be27845400 4363 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_TRGO
AnnaBridge 172:65be27845400 4364 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH1
AnnaBridge 172:65be27845400 4365 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH3
AnnaBridge 172:65be27845400 4366 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH4
AnnaBridge 172:65be27845400 4367 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_TRGO
AnnaBridge 172:65be27845400 4368 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM6_TRGO
AnnaBridge 172:65be27845400 4369 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_CH4
AnnaBridge 172:65be27845400 4370 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_TRGO
AnnaBridge 172:65be27845400 4371 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_TRGO2
AnnaBridge 172:65be27845400 4372 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM15_TRGO
AnnaBridge 172:65be27845400 4373 * @arg @ref LL_ADC_INJ_TRIG_EXT_EXTI_LINE15
AnnaBridge 172:65be27845400 4374 * @param ExternalTriggerEdge This parameter can be one of the following values:
AnnaBridge 172:65be27845400 4375 * @arg @ref LL_ADC_INJ_TRIG_EXT_RISING
AnnaBridge 172:65be27845400 4376 * @arg @ref LL_ADC_INJ_TRIG_EXT_FALLING
AnnaBridge 172:65be27845400 4377 * @arg @ref LL_ADC_INJ_TRIG_EXT_RISINGFALLING
AnnaBridge 172:65be27845400 4378 *
AnnaBridge 172:65be27845400 4379 * Note: This parameter is discarded in case of SW start:
AnnaBridge 172:65be27845400 4380 * parameter "TriggerSource" set to "LL_ADC_INJ_TRIG_SOFTWARE".
AnnaBridge 172:65be27845400 4381 * @param SequencerNbRanks This parameter can be one of the following values:
AnnaBridge 172:65be27845400 4382 * @arg @ref LL_ADC_INJ_SEQ_SCAN_DISABLE
AnnaBridge 172:65be27845400 4383 * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_2RANKS
AnnaBridge 172:65be27845400 4384 * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_3RANKS
AnnaBridge 172:65be27845400 4385 * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_4RANKS
AnnaBridge 172:65be27845400 4386 * @param Rank1_Channel This parameter can be one of the following values:
AnnaBridge 172:65be27845400 4387 * @arg @ref LL_ADC_CHANNEL_0
AnnaBridge 172:65be27845400 4388 * @arg @ref LL_ADC_CHANNEL_1 (7)
AnnaBridge 172:65be27845400 4389 * @arg @ref LL_ADC_CHANNEL_2 (7)
AnnaBridge 172:65be27845400 4390 * @arg @ref LL_ADC_CHANNEL_3 (7)
AnnaBridge 172:65be27845400 4391 * @arg @ref LL_ADC_CHANNEL_4 (7)
AnnaBridge 172:65be27845400 4392 * @arg @ref LL_ADC_CHANNEL_5 (7)
AnnaBridge 172:65be27845400 4393 * @arg @ref LL_ADC_CHANNEL_6
AnnaBridge 172:65be27845400 4394 * @arg @ref LL_ADC_CHANNEL_7
AnnaBridge 172:65be27845400 4395 * @arg @ref LL_ADC_CHANNEL_8
AnnaBridge 172:65be27845400 4396 * @arg @ref LL_ADC_CHANNEL_9
AnnaBridge 172:65be27845400 4397 * @arg @ref LL_ADC_CHANNEL_10
AnnaBridge 172:65be27845400 4398 * @arg @ref LL_ADC_CHANNEL_11
AnnaBridge 172:65be27845400 4399 * @arg @ref LL_ADC_CHANNEL_12
AnnaBridge 172:65be27845400 4400 * @arg @ref LL_ADC_CHANNEL_13
AnnaBridge 172:65be27845400 4401 * @arg @ref LL_ADC_CHANNEL_14
AnnaBridge 172:65be27845400 4402 * @arg @ref LL_ADC_CHANNEL_15
AnnaBridge 172:65be27845400 4403 * @arg @ref LL_ADC_CHANNEL_16
AnnaBridge 172:65be27845400 4404 * @arg @ref LL_ADC_CHANNEL_17
AnnaBridge 172:65be27845400 4405 * @arg @ref LL_ADC_CHANNEL_18
AnnaBridge 172:65be27845400 4406 * @arg @ref LL_ADC_CHANNEL_VREFINT (1)
AnnaBridge 172:65be27845400 4407 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (4)
AnnaBridge 172:65be27845400 4408 * @arg @ref LL_ADC_CHANNEL_VBAT (4)
AnnaBridge 172:65be27845400 4409 * @arg @ref LL_ADC_CHANNEL_DAC1CH1 (5)
AnnaBridge 172:65be27845400 4410 * @arg @ref LL_ADC_CHANNEL_DAC1CH2 (5)
AnnaBridge 172:65be27845400 4411 * @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC2 (2)(6)
AnnaBridge 172:65be27845400 4412 * @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC2 (2)(6)
AnnaBridge 172:65be27845400 4413 * @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC3 (3)(6)
AnnaBridge 172:65be27845400 4414 * @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC3 (3)(6)
AnnaBridge 172:65be27845400 4415 *
AnnaBridge 172:65be27845400 4416 * (1) On STM32L4, parameter available only on ADC instance: ADC1.\n
AnnaBridge 172:65be27845400 4417 * (2) On STM32L4, parameter available only on ADC instance: ADC2.\n
AnnaBridge 172:65be27845400 4418 * (3) On STM32L4, parameter available only on ADC instance: ADC3.\n
AnnaBridge 172:65be27845400 4419 * (4) On STM32L4, parameter available only on ADC instances: ADC1, ADC3.\n
AnnaBridge 172:65be27845400 4420 * (5) On STM32L4, parameter available on devices with only 1 ADC instance.\n
AnnaBridge 172:65be27845400 4421 * (6) On STM32L4, parameter available on devices with several ADC instances.\n
AnnaBridge 172:65be27845400 4422 * (7) On STM32L4, fast channel (0.188 us for 12-bit resolution (ADC conversion rate up to 5.33 Ms/s)).
AnnaBridge 172:65be27845400 4423 * Other channels are slow channels (0.238 us for 12-bit resolution (ADC conversion rate up to 4.21 Ms/s)).
AnnaBridge 172:65be27845400 4424 * @param Rank2_Channel This parameter can be one of the following values:
AnnaBridge 172:65be27845400 4425 * @arg @ref LL_ADC_CHANNEL_0
AnnaBridge 172:65be27845400 4426 * @arg @ref LL_ADC_CHANNEL_1 (7)
AnnaBridge 172:65be27845400 4427 * @arg @ref LL_ADC_CHANNEL_2 (7)
AnnaBridge 172:65be27845400 4428 * @arg @ref LL_ADC_CHANNEL_3 (7)
AnnaBridge 172:65be27845400 4429 * @arg @ref LL_ADC_CHANNEL_4 (7)
AnnaBridge 172:65be27845400 4430 * @arg @ref LL_ADC_CHANNEL_5 (7)
AnnaBridge 172:65be27845400 4431 * @arg @ref LL_ADC_CHANNEL_6
AnnaBridge 172:65be27845400 4432 * @arg @ref LL_ADC_CHANNEL_7
AnnaBridge 172:65be27845400 4433 * @arg @ref LL_ADC_CHANNEL_8
AnnaBridge 172:65be27845400 4434 * @arg @ref LL_ADC_CHANNEL_9
AnnaBridge 172:65be27845400 4435 * @arg @ref LL_ADC_CHANNEL_10
AnnaBridge 172:65be27845400 4436 * @arg @ref LL_ADC_CHANNEL_11
AnnaBridge 172:65be27845400 4437 * @arg @ref LL_ADC_CHANNEL_12
AnnaBridge 172:65be27845400 4438 * @arg @ref LL_ADC_CHANNEL_13
AnnaBridge 172:65be27845400 4439 * @arg @ref LL_ADC_CHANNEL_14
AnnaBridge 172:65be27845400 4440 * @arg @ref LL_ADC_CHANNEL_15
AnnaBridge 172:65be27845400 4441 * @arg @ref LL_ADC_CHANNEL_16
AnnaBridge 172:65be27845400 4442 * @arg @ref LL_ADC_CHANNEL_17
AnnaBridge 172:65be27845400 4443 * @arg @ref LL_ADC_CHANNEL_18
AnnaBridge 172:65be27845400 4444 * @arg @ref LL_ADC_CHANNEL_VREFINT (1)
AnnaBridge 172:65be27845400 4445 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (4)
AnnaBridge 172:65be27845400 4446 * @arg @ref LL_ADC_CHANNEL_VBAT (4)
AnnaBridge 172:65be27845400 4447 * @arg @ref LL_ADC_CHANNEL_DAC1CH1 (5)
AnnaBridge 172:65be27845400 4448 * @arg @ref LL_ADC_CHANNEL_DAC1CH2 (5)
AnnaBridge 172:65be27845400 4449 * @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC2 (2)(6)
AnnaBridge 172:65be27845400 4450 * @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC2 (2)(6)
AnnaBridge 172:65be27845400 4451 * @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC3 (3)(6)
AnnaBridge 172:65be27845400 4452 * @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC3 (3)(6)
AnnaBridge 172:65be27845400 4453 *
AnnaBridge 172:65be27845400 4454 * (1) On STM32L4, parameter available only on ADC instance: ADC1.\n
AnnaBridge 172:65be27845400 4455 * (2) On STM32L4, parameter available only on ADC instance: ADC2.\n
AnnaBridge 172:65be27845400 4456 * (3) On STM32L4, parameter available only on ADC instance: ADC3.\n
AnnaBridge 172:65be27845400 4457 * (4) On STM32L4, parameter available only on ADC instances: ADC1, ADC3.\n
AnnaBridge 172:65be27845400 4458 * (5) On STM32L4, parameter available on devices with only 1 ADC instance.\n
AnnaBridge 172:65be27845400 4459 * (6) On STM32L4, parameter available on devices with several ADC instances.\n
AnnaBridge 172:65be27845400 4460 * (7) On STM32L4, fast channel (0.188 us for 12-bit resolution (ADC conversion rate up to 5.33 Ms/s)).
AnnaBridge 172:65be27845400 4461 * Other channels are slow channels (0.238 us for 12-bit resolution (ADC conversion rate up to 4.21 Ms/s)).
AnnaBridge 172:65be27845400 4462 * @param Rank3_Channel This parameter can be one of the following values:
AnnaBridge 172:65be27845400 4463 * @arg @ref LL_ADC_CHANNEL_0
AnnaBridge 172:65be27845400 4464 * @arg @ref LL_ADC_CHANNEL_1 (7)
AnnaBridge 172:65be27845400 4465 * @arg @ref LL_ADC_CHANNEL_2 (7)
AnnaBridge 172:65be27845400 4466 * @arg @ref LL_ADC_CHANNEL_3 (7)
AnnaBridge 172:65be27845400 4467 * @arg @ref LL_ADC_CHANNEL_4 (7)
AnnaBridge 172:65be27845400 4468 * @arg @ref LL_ADC_CHANNEL_5 (7)
AnnaBridge 172:65be27845400 4469 * @arg @ref LL_ADC_CHANNEL_6
AnnaBridge 172:65be27845400 4470 * @arg @ref LL_ADC_CHANNEL_7
AnnaBridge 172:65be27845400 4471 * @arg @ref LL_ADC_CHANNEL_8
AnnaBridge 172:65be27845400 4472 * @arg @ref LL_ADC_CHANNEL_9
AnnaBridge 172:65be27845400 4473 * @arg @ref LL_ADC_CHANNEL_10
AnnaBridge 172:65be27845400 4474 * @arg @ref LL_ADC_CHANNEL_11
AnnaBridge 172:65be27845400 4475 * @arg @ref LL_ADC_CHANNEL_12
AnnaBridge 172:65be27845400 4476 * @arg @ref LL_ADC_CHANNEL_13
AnnaBridge 172:65be27845400 4477 * @arg @ref LL_ADC_CHANNEL_14
AnnaBridge 172:65be27845400 4478 * @arg @ref LL_ADC_CHANNEL_15
AnnaBridge 172:65be27845400 4479 * @arg @ref LL_ADC_CHANNEL_16
AnnaBridge 172:65be27845400 4480 * @arg @ref LL_ADC_CHANNEL_17
AnnaBridge 172:65be27845400 4481 * @arg @ref LL_ADC_CHANNEL_18
AnnaBridge 172:65be27845400 4482 * @arg @ref LL_ADC_CHANNEL_VREFINT (1)
AnnaBridge 172:65be27845400 4483 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (4)
AnnaBridge 172:65be27845400 4484 * @arg @ref LL_ADC_CHANNEL_VBAT (4)
AnnaBridge 172:65be27845400 4485 * @arg @ref LL_ADC_CHANNEL_DAC1CH1 (5)
AnnaBridge 172:65be27845400 4486 * @arg @ref LL_ADC_CHANNEL_DAC1CH2 (5)
AnnaBridge 172:65be27845400 4487 * @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC2 (2)(6)
AnnaBridge 172:65be27845400 4488 * @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC2 (2)(6)
AnnaBridge 172:65be27845400 4489 * @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC3 (3)(6)
AnnaBridge 172:65be27845400 4490 * @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC3 (3)(6)
AnnaBridge 172:65be27845400 4491 *
AnnaBridge 172:65be27845400 4492 * (1) On STM32L4, parameter available only on ADC instance: ADC1.\n
AnnaBridge 172:65be27845400 4493 * (2) On STM32L4, parameter available only on ADC instance: ADC2.\n
AnnaBridge 172:65be27845400 4494 * (3) On STM32L4, parameter available only on ADC instance: ADC3.\n
AnnaBridge 172:65be27845400 4495 * (4) On STM32L4, parameter available only on ADC instances: ADC1, ADC3.\n
AnnaBridge 172:65be27845400 4496 * (5) On STM32L4, parameter available on devices with only 1 ADC instance.\n
AnnaBridge 172:65be27845400 4497 * (6) On STM32L4, parameter available on devices with several ADC instances.\n
AnnaBridge 172:65be27845400 4498 * (7) On STM32L4, fast channel (0.188 us for 12-bit resolution (ADC conversion rate up to 5.33 Ms/s)).
AnnaBridge 172:65be27845400 4499 * Other channels are slow channels (0.238 us for 12-bit resolution (ADC conversion rate up to 4.21 Ms/s)).
AnnaBridge 172:65be27845400 4500 * @param Rank4_Channel This parameter can be one of the following values:
AnnaBridge 172:65be27845400 4501 * @arg @ref LL_ADC_CHANNEL_0
AnnaBridge 172:65be27845400 4502 * @arg @ref LL_ADC_CHANNEL_1 (7)
AnnaBridge 172:65be27845400 4503 * @arg @ref LL_ADC_CHANNEL_2 (7)
AnnaBridge 172:65be27845400 4504 * @arg @ref LL_ADC_CHANNEL_3 (7)
AnnaBridge 172:65be27845400 4505 * @arg @ref LL_ADC_CHANNEL_4 (7)
AnnaBridge 172:65be27845400 4506 * @arg @ref LL_ADC_CHANNEL_5 (7)
AnnaBridge 172:65be27845400 4507 * @arg @ref LL_ADC_CHANNEL_6
AnnaBridge 172:65be27845400 4508 * @arg @ref LL_ADC_CHANNEL_7
AnnaBridge 172:65be27845400 4509 * @arg @ref LL_ADC_CHANNEL_8
AnnaBridge 172:65be27845400 4510 * @arg @ref LL_ADC_CHANNEL_9
AnnaBridge 172:65be27845400 4511 * @arg @ref LL_ADC_CHANNEL_10
AnnaBridge 172:65be27845400 4512 * @arg @ref LL_ADC_CHANNEL_11
AnnaBridge 172:65be27845400 4513 * @arg @ref LL_ADC_CHANNEL_12
AnnaBridge 172:65be27845400 4514 * @arg @ref LL_ADC_CHANNEL_13
AnnaBridge 172:65be27845400 4515 * @arg @ref LL_ADC_CHANNEL_14
AnnaBridge 172:65be27845400 4516 * @arg @ref LL_ADC_CHANNEL_15
AnnaBridge 172:65be27845400 4517 * @arg @ref LL_ADC_CHANNEL_16
AnnaBridge 172:65be27845400 4518 * @arg @ref LL_ADC_CHANNEL_17
AnnaBridge 172:65be27845400 4519 * @arg @ref LL_ADC_CHANNEL_18
AnnaBridge 172:65be27845400 4520 * @arg @ref LL_ADC_CHANNEL_VREFINT (1)
AnnaBridge 172:65be27845400 4521 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (4)
AnnaBridge 172:65be27845400 4522 * @arg @ref LL_ADC_CHANNEL_VBAT (4)
AnnaBridge 172:65be27845400 4523 * @arg @ref LL_ADC_CHANNEL_DAC1CH1 (5)
AnnaBridge 172:65be27845400 4524 * @arg @ref LL_ADC_CHANNEL_DAC1CH2 (5)
AnnaBridge 172:65be27845400 4525 * @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC2 (2)(6)
AnnaBridge 172:65be27845400 4526 * @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC2 (2)(6)
AnnaBridge 172:65be27845400 4527 * @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC3 (3)(6)
AnnaBridge 172:65be27845400 4528 * @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC3 (3)(6)
AnnaBridge 172:65be27845400 4529 *
AnnaBridge 172:65be27845400 4530 * (1) On STM32L4, parameter available only on ADC instance: ADC1.\n
AnnaBridge 172:65be27845400 4531 * (2) On STM32L4, parameter available only on ADC instance: ADC2.\n
AnnaBridge 172:65be27845400 4532 * (3) On STM32L4, parameter available only on ADC instance: ADC3.\n
AnnaBridge 172:65be27845400 4533 * (4) On STM32L4, parameter available only on ADC instances: ADC1, ADC3.\n
AnnaBridge 172:65be27845400 4534 * (5) On STM32L4, parameter available on devices with only 1 ADC instance.\n
AnnaBridge 172:65be27845400 4535 * (6) On STM32L4, parameter available on devices with several ADC instances.\n
AnnaBridge 172:65be27845400 4536 * (7) On STM32L4, fast channel (0.188 us for 12-bit resolution (ADC conversion rate up to 5.33 Ms/s)).
AnnaBridge 172:65be27845400 4537 * Other channels are slow channels (0.238 us for 12-bit resolution (ADC conversion rate up to 4.21 Ms/s)).
AnnaBridge 172:65be27845400 4538 * @retval None
AnnaBridge 172:65be27845400 4539 */
AnnaBridge 172:65be27845400 4540 __STATIC_INLINE void LL_ADC_INJ_ConfigQueueContext(ADC_TypeDef *ADCx,
AnnaBridge 172:65be27845400 4541 uint32_t TriggerSource,
AnnaBridge 172:65be27845400 4542 uint32_t ExternalTriggerEdge,
AnnaBridge 172:65be27845400 4543 uint32_t SequencerNbRanks,
AnnaBridge 172:65be27845400 4544 uint32_t Rank1_Channel,
AnnaBridge 172:65be27845400 4545 uint32_t Rank2_Channel,
AnnaBridge 172:65be27845400 4546 uint32_t Rank3_Channel,
AnnaBridge 172:65be27845400 4547 uint32_t Rank4_Channel)
AnnaBridge 172:65be27845400 4548 {
AnnaBridge 172:65be27845400 4549 /* Set bits with content of parameter "Rankx_Channel" with bits position */
AnnaBridge 172:65be27845400 4550 /* in register depending on literal "LL_ADC_INJ_RANK_x". */
AnnaBridge 172:65be27845400 4551 /* Parameters "Rankx_Channel" and "LL_ADC_INJ_RANK_x" are used with masks */
AnnaBridge 172:65be27845400 4552 /* because containing other bits reserved for other purpose. */
AnnaBridge 172:65be27845400 4553 /* If parameter "TriggerSource" is set to SW start, then parameter */
AnnaBridge 172:65be27845400 4554 /* "ExternalTriggerEdge" is discarded. */
AnnaBridge 172:65be27845400 4555 MODIFY_REG(ADCx->JSQR ,
AnnaBridge 172:65be27845400 4556 ADC_JSQR_JEXTSEL |
AnnaBridge 172:65be27845400 4557 ADC_JSQR_JEXTEN |
AnnaBridge 172:65be27845400 4558 ADC_JSQR_JSQ4 |
AnnaBridge 172:65be27845400 4559 ADC_JSQR_JSQ3 |
AnnaBridge 172:65be27845400 4560 ADC_JSQR_JSQ2 |
AnnaBridge 172:65be27845400 4561 ADC_JSQR_JSQ1 |
AnnaBridge 172:65be27845400 4562 ADC_JSQR_JL ,
AnnaBridge 172:65be27845400 4563 TriggerSource |
AnnaBridge 172:65be27845400 4564 (ExternalTriggerEdge * ((TriggerSource != LL_ADC_INJ_TRIG_SOFTWARE))) |
AnnaBridge 172:65be27845400 4565 (((Rank4_Channel & ADC_CHANNEL_ID_NUMBER_MASK) >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) << (LL_ADC_INJ_RANK_4 & ADC_INJ_RANK_ID_JSQR_MASK)) |
AnnaBridge 172:65be27845400 4566 (((Rank3_Channel & ADC_CHANNEL_ID_NUMBER_MASK) >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) << (LL_ADC_INJ_RANK_3 & ADC_INJ_RANK_ID_JSQR_MASK)) |
AnnaBridge 172:65be27845400 4567 (((Rank2_Channel & ADC_CHANNEL_ID_NUMBER_MASK) >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) << (LL_ADC_INJ_RANK_2 & ADC_INJ_RANK_ID_JSQR_MASK)) |
AnnaBridge 172:65be27845400 4568 (((Rank1_Channel & ADC_CHANNEL_ID_NUMBER_MASK) >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) << (LL_ADC_INJ_RANK_1 & ADC_INJ_RANK_ID_JSQR_MASK)) |
AnnaBridge 172:65be27845400 4569 SequencerNbRanks
AnnaBridge 172:65be27845400 4570 );
AnnaBridge 172:65be27845400 4571 }
AnnaBridge 172:65be27845400 4572
AnnaBridge 172:65be27845400 4573 /**
AnnaBridge 172:65be27845400 4574 * @}
AnnaBridge 172:65be27845400 4575 */
AnnaBridge 172:65be27845400 4576
AnnaBridge 172:65be27845400 4577 /** @defgroup ADC_LL_EF_Configuration_Channels Configuration of ADC hierarchical scope: channels
AnnaBridge 172:65be27845400 4578 * @{
AnnaBridge 172:65be27845400 4579 */
AnnaBridge 172:65be27845400 4580
AnnaBridge 172:65be27845400 4581 /**
AnnaBridge 172:65be27845400 4582 * @brief Set sampling time of the selected ADC channel
AnnaBridge 172:65be27845400 4583 * Unit: ADC clock cycles.
AnnaBridge 172:65be27845400 4584 * @note On this device, sampling time is on channel scope: independently
AnnaBridge 172:65be27845400 4585 * of channel mapped on ADC group regular or injected.
AnnaBridge 172:65be27845400 4586 * @note In case of internal channel (VrefInt, TempSensor, ...) to be
AnnaBridge 172:65be27845400 4587 * converted:
AnnaBridge 172:65be27845400 4588 * sampling time constraints must be respected (sampling time can be
AnnaBridge 172:65be27845400 4589 * adjusted in function of ADC clock frequency and sampling time
AnnaBridge 172:65be27845400 4590 * setting).
AnnaBridge 172:65be27845400 4591 * Refer to device datasheet for timings values (parameters TS_vrefint,
AnnaBridge 172:65be27845400 4592 * TS_temp, ...).
AnnaBridge 172:65be27845400 4593 * @note Conversion time is the addition of sampling time and processing time.
AnnaBridge 172:65be27845400 4594 * On this STM32 serie, ADC processing time is:
AnnaBridge 172:65be27845400 4595 * - 12.5 ADC clock cycles at ADC resolution 12 bits
AnnaBridge 172:65be27845400 4596 * - 10.5 ADC clock cycles at ADC resolution 10 bits
AnnaBridge 172:65be27845400 4597 * - 8.5 ADC clock cycles at ADC resolution 8 bits
AnnaBridge 172:65be27845400 4598 * - 6.5 ADC clock cycles at ADC resolution 6 bits
AnnaBridge 172:65be27845400 4599 * @note In case of ADC conversion of internal channel (VrefInt,
AnnaBridge 172:65be27845400 4600 * temperature sensor, ...), a sampling time minimum value
AnnaBridge 172:65be27845400 4601 * is required.
AnnaBridge 172:65be27845400 4602 * Refer to device datasheet.
AnnaBridge 172:65be27845400 4603 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 4604 * ADC state:
AnnaBridge 172:65be27845400 4605 * ADC must be disabled or enabled without conversion on going
AnnaBridge 172:65be27845400 4606 * on either groups regular or injected.
AnnaBridge 172:65be27845400 4607 * @rmtoll SMPR1 SMP0 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 172:65be27845400 4608 * SMPR1 SMP1 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 172:65be27845400 4609 * SMPR1 SMP2 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 172:65be27845400 4610 * SMPR1 SMP3 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 172:65be27845400 4611 * SMPR1 SMP4 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 172:65be27845400 4612 * SMPR1 SMP5 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 172:65be27845400 4613 * SMPR1 SMP6 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 172:65be27845400 4614 * SMPR1 SMP7 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 172:65be27845400 4615 * SMPR1 SMP8 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 172:65be27845400 4616 * SMPR1 SMP9 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 172:65be27845400 4617 * SMPR2 SMP10 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 172:65be27845400 4618 * SMPR2 SMP11 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 172:65be27845400 4619 * SMPR2 SMP12 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 172:65be27845400 4620 * SMPR2 SMP13 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 172:65be27845400 4621 * SMPR2 SMP14 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 172:65be27845400 4622 * SMPR2 SMP15 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 172:65be27845400 4623 * SMPR2 SMP16 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 172:65be27845400 4624 * SMPR2 SMP17 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 172:65be27845400 4625 * SMPR2 SMP18 LL_ADC_SetChannelSamplingTime
AnnaBridge 172:65be27845400 4626 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 4627 * @param Channel This parameter can be one of the following values:
AnnaBridge 172:65be27845400 4628 * @arg @ref LL_ADC_CHANNEL_0
AnnaBridge 172:65be27845400 4629 * @arg @ref LL_ADC_CHANNEL_1 (7)
AnnaBridge 172:65be27845400 4630 * @arg @ref LL_ADC_CHANNEL_2 (7)
AnnaBridge 172:65be27845400 4631 * @arg @ref LL_ADC_CHANNEL_3 (7)
AnnaBridge 172:65be27845400 4632 * @arg @ref LL_ADC_CHANNEL_4 (7)
AnnaBridge 172:65be27845400 4633 * @arg @ref LL_ADC_CHANNEL_5 (7)
AnnaBridge 172:65be27845400 4634 * @arg @ref LL_ADC_CHANNEL_6
AnnaBridge 172:65be27845400 4635 * @arg @ref LL_ADC_CHANNEL_7
AnnaBridge 172:65be27845400 4636 * @arg @ref LL_ADC_CHANNEL_8
AnnaBridge 172:65be27845400 4637 * @arg @ref LL_ADC_CHANNEL_9
AnnaBridge 172:65be27845400 4638 * @arg @ref LL_ADC_CHANNEL_10
AnnaBridge 172:65be27845400 4639 * @arg @ref LL_ADC_CHANNEL_11
AnnaBridge 172:65be27845400 4640 * @arg @ref LL_ADC_CHANNEL_12
AnnaBridge 172:65be27845400 4641 * @arg @ref LL_ADC_CHANNEL_13
AnnaBridge 172:65be27845400 4642 * @arg @ref LL_ADC_CHANNEL_14
AnnaBridge 172:65be27845400 4643 * @arg @ref LL_ADC_CHANNEL_15
AnnaBridge 172:65be27845400 4644 * @arg @ref LL_ADC_CHANNEL_16
AnnaBridge 172:65be27845400 4645 * @arg @ref LL_ADC_CHANNEL_17
AnnaBridge 172:65be27845400 4646 * @arg @ref LL_ADC_CHANNEL_18
AnnaBridge 172:65be27845400 4647 * @arg @ref LL_ADC_CHANNEL_VREFINT (1)
AnnaBridge 172:65be27845400 4648 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (4)
AnnaBridge 172:65be27845400 4649 * @arg @ref LL_ADC_CHANNEL_VBAT (4)
AnnaBridge 172:65be27845400 4650 * @arg @ref LL_ADC_CHANNEL_DAC1CH1 (5)
AnnaBridge 172:65be27845400 4651 * @arg @ref LL_ADC_CHANNEL_DAC1CH2 (5)
AnnaBridge 172:65be27845400 4652 * @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC2 (2)(6)
AnnaBridge 172:65be27845400 4653 * @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC2 (2)(6)
AnnaBridge 172:65be27845400 4654 * @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC3 (3)(6)
AnnaBridge 172:65be27845400 4655 * @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC3 (3)(6)
AnnaBridge 172:65be27845400 4656 *
AnnaBridge 172:65be27845400 4657 * (1) On STM32L4, parameter available only on ADC instance: ADC1.\n
AnnaBridge 172:65be27845400 4658 * (2) On STM32L4, parameter available only on ADC instance: ADC2.\n
AnnaBridge 172:65be27845400 4659 * (3) On STM32L4, parameter available only on ADC instance: ADC3.\n
AnnaBridge 172:65be27845400 4660 * (4) On STM32L4, parameter available only on ADC instances: ADC1, ADC3.\n
AnnaBridge 172:65be27845400 4661 * (5) On STM32L4, parameter available on devices with only 1 ADC instance.\n
AnnaBridge 172:65be27845400 4662 * (6) On STM32L4, parameter available on devices with several ADC instances.\n
AnnaBridge 172:65be27845400 4663 * (7) On STM32L4, fast channel (0.188 us for 12-bit resolution (ADC conversion rate up to 5.33 Ms/s)).
AnnaBridge 172:65be27845400 4664 * Other channels are slow channels (0.238 us for 12-bit resolution (ADC conversion rate up to 4.21 Ms/s)).
AnnaBridge 172:65be27845400 4665 * @param SamplingTime This parameter can be one of the following values:
AnnaBridge 172:65be27845400 4666 * @arg @ref LL_ADC_SAMPLINGTIME_2CYCLES_5 (1)
AnnaBridge 172:65be27845400 4667 * @arg @ref LL_ADC_SAMPLINGTIME_6CYCLES_5
AnnaBridge 172:65be27845400 4668 * @arg @ref LL_ADC_SAMPLINGTIME_12CYCLES_5
AnnaBridge 172:65be27845400 4669 * @arg @ref LL_ADC_SAMPLINGTIME_24CYCLES_5
AnnaBridge 172:65be27845400 4670 * @arg @ref LL_ADC_SAMPLINGTIME_47CYCLES_5
AnnaBridge 172:65be27845400 4671 * @arg @ref LL_ADC_SAMPLINGTIME_92CYCLES_5
AnnaBridge 172:65be27845400 4672 * @arg @ref LL_ADC_SAMPLINGTIME_247CYCLES_5
AnnaBridge 172:65be27845400 4673 * @arg @ref LL_ADC_SAMPLINGTIME_640CYCLES_5
AnnaBridge 172:65be27845400 4674 *
AnnaBridge 172:65be27845400 4675 * (1) On some devices, ADC sampling time 2.5 ADC clock cycles
AnnaBridge 172:65be27845400 4676 * can be replaced by 3.5 ADC clock cycles.
AnnaBridge 172:65be27845400 4677 * Refer to function @ref LL_ADC_SetSamplingTimeCommonConfig().
AnnaBridge 172:65be27845400 4678 * @retval None
AnnaBridge 172:65be27845400 4679 */
AnnaBridge 172:65be27845400 4680 __STATIC_INLINE void LL_ADC_SetChannelSamplingTime(ADC_TypeDef *ADCx, uint32_t Channel, uint32_t SamplingTime)
AnnaBridge 172:65be27845400 4681 {
AnnaBridge 172:65be27845400 4682 /* Set bits with content of parameter "SamplingTime" with bits position */
AnnaBridge 172:65be27845400 4683 /* in register and register position depending on parameter "Channel". */
AnnaBridge 172:65be27845400 4684 /* Parameter "Channel" is used with masks because containing */
AnnaBridge 172:65be27845400 4685 /* other bits reserved for other purpose. */
AnnaBridge 172:65be27845400 4686 #if defined(CORE_CM0PLUS)
AnnaBridge 172:65be27845400 4687 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->SMPR1, ((Channel & ADC_CHANNEL_SMPRX_REGOFFSET_MASK) >> ADC_SMPRX_REGOFFSET_POS));
AnnaBridge 172:65be27845400 4688
AnnaBridge 172:65be27845400 4689 MODIFY_REG(*preg,
AnnaBridge 172:65be27845400 4690 ADC_SMPR1_SMP0 << ((Channel & ADC_CHANNEL_SMPx_BITOFFSET_MASK) >> ADC_CHANNEL_SMPx_BITOFFSET_POS),
AnnaBridge 172:65be27845400 4691 SamplingTime << ((Channel & ADC_CHANNEL_SMPx_BITOFFSET_MASK) >> ADC_CHANNEL_SMPx_BITOFFSET_POS));
AnnaBridge 172:65be27845400 4692 #else
AnnaBridge 172:65be27845400 4693 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->SMPR1, __ADC_MASK_SHIFT(Channel, ADC_CHANNEL_SMPRX_REGOFFSET_MASK));
AnnaBridge 172:65be27845400 4694
AnnaBridge 172:65be27845400 4695 MODIFY_REG(*preg,
AnnaBridge 172:65be27845400 4696 ADC_SMPR1_SMP0 << __ADC_MASK_SHIFT(Channel, ADC_CHANNEL_SMPx_BITOFFSET_MASK),
AnnaBridge 172:65be27845400 4697 SamplingTime << __ADC_MASK_SHIFT(Channel, ADC_CHANNEL_SMPx_BITOFFSET_MASK));
AnnaBridge 172:65be27845400 4698 #endif
AnnaBridge 172:65be27845400 4699 }
AnnaBridge 172:65be27845400 4700
AnnaBridge 172:65be27845400 4701 /**
AnnaBridge 172:65be27845400 4702 * @brief Get sampling time of the selected ADC channel
AnnaBridge 172:65be27845400 4703 * Unit: ADC clock cycles.
AnnaBridge 172:65be27845400 4704 * @note On this device, sampling time is on channel scope: independently
AnnaBridge 172:65be27845400 4705 * of channel mapped on ADC group regular or injected.
AnnaBridge 172:65be27845400 4706 * @note Conversion time is the addition of sampling time and processing time.
AnnaBridge 172:65be27845400 4707 * On this STM32 serie, ADC processing time is:
AnnaBridge 172:65be27845400 4708 * - 12.5 ADC clock cycles at ADC resolution 12 bits
AnnaBridge 172:65be27845400 4709 * - 10.5 ADC clock cycles at ADC resolution 10 bits
AnnaBridge 172:65be27845400 4710 * - 8.5 ADC clock cycles at ADC resolution 8 bits
AnnaBridge 172:65be27845400 4711 * - 6.5 ADC clock cycles at ADC resolution 6 bits
AnnaBridge 172:65be27845400 4712 * @rmtoll SMPR1 SMP0 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 172:65be27845400 4713 * SMPR1 SMP1 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 172:65be27845400 4714 * SMPR1 SMP2 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 172:65be27845400 4715 * SMPR1 SMP3 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 172:65be27845400 4716 * SMPR1 SMP4 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 172:65be27845400 4717 * SMPR1 SMP5 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 172:65be27845400 4718 * SMPR1 SMP6 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 172:65be27845400 4719 * SMPR1 SMP7 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 172:65be27845400 4720 * SMPR1 SMP8 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 172:65be27845400 4721 * SMPR1 SMP9 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 172:65be27845400 4722 * SMPR2 SMP10 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 172:65be27845400 4723 * SMPR2 SMP11 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 172:65be27845400 4724 * SMPR2 SMP12 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 172:65be27845400 4725 * SMPR2 SMP13 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 172:65be27845400 4726 * SMPR2 SMP14 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 172:65be27845400 4727 * SMPR2 SMP15 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 172:65be27845400 4728 * SMPR2 SMP16 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 172:65be27845400 4729 * SMPR2 SMP17 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 172:65be27845400 4730 * SMPR2 SMP18 LL_ADC_GetChannelSamplingTime
AnnaBridge 172:65be27845400 4731 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 4732 * @param Channel This parameter can be one of the following values:
AnnaBridge 172:65be27845400 4733 * @arg @ref LL_ADC_CHANNEL_0
AnnaBridge 172:65be27845400 4734 * @arg @ref LL_ADC_CHANNEL_1 (7)
AnnaBridge 172:65be27845400 4735 * @arg @ref LL_ADC_CHANNEL_2 (7)
AnnaBridge 172:65be27845400 4736 * @arg @ref LL_ADC_CHANNEL_3 (7)
AnnaBridge 172:65be27845400 4737 * @arg @ref LL_ADC_CHANNEL_4 (7)
AnnaBridge 172:65be27845400 4738 * @arg @ref LL_ADC_CHANNEL_5 (7)
AnnaBridge 172:65be27845400 4739 * @arg @ref LL_ADC_CHANNEL_6
AnnaBridge 172:65be27845400 4740 * @arg @ref LL_ADC_CHANNEL_7
AnnaBridge 172:65be27845400 4741 * @arg @ref LL_ADC_CHANNEL_8
AnnaBridge 172:65be27845400 4742 * @arg @ref LL_ADC_CHANNEL_9
AnnaBridge 172:65be27845400 4743 * @arg @ref LL_ADC_CHANNEL_10
AnnaBridge 172:65be27845400 4744 * @arg @ref LL_ADC_CHANNEL_11
AnnaBridge 172:65be27845400 4745 * @arg @ref LL_ADC_CHANNEL_12
AnnaBridge 172:65be27845400 4746 * @arg @ref LL_ADC_CHANNEL_13
AnnaBridge 172:65be27845400 4747 * @arg @ref LL_ADC_CHANNEL_14
AnnaBridge 172:65be27845400 4748 * @arg @ref LL_ADC_CHANNEL_15
AnnaBridge 172:65be27845400 4749 * @arg @ref LL_ADC_CHANNEL_16
AnnaBridge 172:65be27845400 4750 * @arg @ref LL_ADC_CHANNEL_17
AnnaBridge 172:65be27845400 4751 * @arg @ref LL_ADC_CHANNEL_18
AnnaBridge 172:65be27845400 4752 * @arg @ref LL_ADC_CHANNEL_VREFINT (1)
AnnaBridge 172:65be27845400 4753 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (4)
AnnaBridge 172:65be27845400 4754 * @arg @ref LL_ADC_CHANNEL_VBAT (4)
AnnaBridge 172:65be27845400 4755 * @arg @ref LL_ADC_CHANNEL_DAC1CH1 (5)
AnnaBridge 172:65be27845400 4756 * @arg @ref LL_ADC_CHANNEL_DAC1CH2 (5)
AnnaBridge 172:65be27845400 4757 * @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC2 (2)(6)
AnnaBridge 172:65be27845400 4758 * @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC2 (2)(6)
AnnaBridge 172:65be27845400 4759 * @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC3 (3)(6)
AnnaBridge 172:65be27845400 4760 * @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC3 (3)(6)
AnnaBridge 172:65be27845400 4761 *
AnnaBridge 172:65be27845400 4762 * (1) On STM32L4, parameter available only on ADC instance: ADC1.\n
AnnaBridge 172:65be27845400 4763 * (2) On STM32L4, parameter available only on ADC instance: ADC2.\n
AnnaBridge 172:65be27845400 4764 * (3) On STM32L4, parameter available only on ADC instance: ADC3.\n
AnnaBridge 172:65be27845400 4765 * (4) On STM32L4, parameter available only on ADC instances: ADC1, ADC3.\n
AnnaBridge 172:65be27845400 4766 * (5) On STM32L4, parameter available on devices with only 1 ADC instance.\n
AnnaBridge 172:65be27845400 4767 * (6) On STM32L4, parameter available on devices with several ADC instances.\n
AnnaBridge 172:65be27845400 4768 * (7) On STM32L4, fast channel (0.188 us for 12-bit resolution (ADC conversion rate up to 5.33 Ms/s)).
AnnaBridge 172:65be27845400 4769 * Other channels are slow channels (0.238 us for 12-bit resolution (ADC conversion rate up to 4.21 Ms/s)).
AnnaBridge 172:65be27845400 4770 * @retval Returned value can be one of the following values:
AnnaBridge 172:65be27845400 4771 * @arg @ref LL_ADC_SAMPLINGTIME_2CYCLES_5 (1)
AnnaBridge 172:65be27845400 4772 * @arg @ref LL_ADC_SAMPLINGTIME_6CYCLES_5
AnnaBridge 172:65be27845400 4773 * @arg @ref LL_ADC_SAMPLINGTIME_12CYCLES_5
AnnaBridge 172:65be27845400 4774 * @arg @ref LL_ADC_SAMPLINGTIME_24CYCLES_5
AnnaBridge 172:65be27845400 4775 * @arg @ref LL_ADC_SAMPLINGTIME_47CYCLES_5
AnnaBridge 172:65be27845400 4776 * @arg @ref LL_ADC_SAMPLINGTIME_92CYCLES_5
AnnaBridge 172:65be27845400 4777 * @arg @ref LL_ADC_SAMPLINGTIME_247CYCLES_5
AnnaBridge 172:65be27845400 4778 * @arg @ref LL_ADC_SAMPLINGTIME_640CYCLES_5
AnnaBridge 172:65be27845400 4779 *
AnnaBridge 172:65be27845400 4780 * (1) On some devices, ADC sampling time 2.5 ADC clock cycles
AnnaBridge 172:65be27845400 4781 * can be replaced by 3.5 ADC clock cycles.
AnnaBridge 172:65be27845400 4782 * Refer to function @ref LL_ADC_SetSamplingTimeCommonConfig().
AnnaBridge 172:65be27845400 4783 */
AnnaBridge 172:65be27845400 4784 __STATIC_INLINE uint32_t LL_ADC_GetChannelSamplingTime(ADC_TypeDef *ADCx, uint32_t Channel)
AnnaBridge 172:65be27845400 4785 {
AnnaBridge 172:65be27845400 4786 #if defined(CORE_CM0PLUS)
AnnaBridge 172:65be27845400 4787 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->SMPR1, ((Channel & ADC_CHANNEL_SMPRX_REGOFFSET_MASK) >> ADC_SMPRX_REGOFFSET_POS));
AnnaBridge 172:65be27845400 4788
AnnaBridge 172:65be27845400 4789 return (uint32_t)(READ_BIT(*preg,
AnnaBridge 172:65be27845400 4790 ADC_SMPR1_SMP0 << ((Channel & ADC_CHANNEL_SMPx_BITOFFSET_MASK) >> ADC_CHANNEL_SMPx_BITOFFSET_POS))
AnnaBridge 172:65be27845400 4791 >> ((Channel & ADC_CHANNEL_SMPx_BITOFFSET_MASK) >> ADC_CHANNEL_SMPx_BITOFFSET_POS)
AnnaBridge 172:65be27845400 4792 );
AnnaBridge 172:65be27845400 4793 #else
AnnaBridge 172:65be27845400 4794 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->SMPR1, __ADC_MASK_SHIFT(Channel, ADC_CHANNEL_SMPRX_REGOFFSET_MASK));
AnnaBridge 172:65be27845400 4795
AnnaBridge 172:65be27845400 4796 return (uint32_t)(READ_BIT(*preg,
AnnaBridge 172:65be27845400 4797 ADC_SMPR1_SMP0 << __ADC_MASK_SHIFT(Channel, ADC_CHANNEL_SMPx_BITOFFSET_MASK))
AnnaBridge 172:65be27845400 4798 >> __ADC_MASK_SHIFT(Channel, ADC_CHANNEL_SMPx_BITOFFSET_MASK)
AnnaBridge 172:65be27845400 4799 );
AnnaBridge 172:65be27845400 4800 #endif
AnnaBridge 172:65be27845400 4801 }
AnnaBridge 172:65be27845400 4802
AnnaBridge 172:65be27845400 4803 /**
AnnaBridge 172:65be27845400 4804 * @brief Set mode single-ended or differential input of the selected
AnnaBridge 172:65be27845400 4805 * ADC channel.
AnnaBridge 172:65be27845400 4806 * @note Channel ending is on channel scope: independently of channel mapped
AnnaBridge 172:65be27845400 4807 * on ADC group regular or injected.
AnnaBridge 172:65be27845400 4808 * In differential mode: Differential measurement is carried out
AnnaBridge 172:65be27845400 4809 * between the selected channel 'i' (positive input) and
AnnaBridge 172:65be27845400 4810 * channel 'i+1' (negative input). Only channel 'i' has to be
AnnaBridge 172:65be27845400 4811 * configured, channel 'i+1' is configured automatically.
AnnaBridge 172:65be27845400 4812 * @note Refer to Reference Manual to ensure the selected channel is
AnnaBridge 172:65be27845400 4813 * available in differential mode.
AnnaBridge 172:65be27845400 4814 * For example, internal channels (VrefInt, TempSensor, ...) are
AnnaBridge 172:65be27845400 4815 * not available in differential mode.
AnnaBridge 172:65be27845400 4816 * @note When configuring a channel 'i' in differential mode,
AnnaBridge 172:65be27845400 4817 * the channel 'i+1' is not usable separately.
AnnaBridge 172:65be27845400 4818 * @note On STM32L4, channels 16, 17, 18 of ADC1, ADC2, ADC3 (if available)
AnnaBridge 172:65be27845400 4819 * are internally fixed to single-ended inputs configuration.
AnnaBridge 172:65be27845400 4820 * @note For ADC channels configured in differential mode, both inputs
AnnaBridge 172:65be27845400 4821 * should be biased at (Vref+)/2 +/-200mV.
AnnaBridge 172:65be27845400 4822 * (Vref+ is the analog voltage reference)
AnnaBridge 172:65be27845400 4823 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 4824 * ADC state:
AnnaBridge 172:65be27845400 4825 * ADC must be ADC disabled.
AnnaBridge 172:65be27845400 4826 * @note One or several values can be selected.
AnnaBridge 172:65be27845400 4827 * Example: (LL_ADC_CHANNEL_4 | LL_ADC_CHANNEL_12 | ...)
AnnaBridge 172:65be27845400 4828 * @rmtoll DIFSEL DIFSEL LL_ADC_SetChannelSingleDiff
AnnaBridge 172:65be27845400 4829 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 4830 * @param Channel This parameter can be one of the following values:
AnnaBridge 172:65be27845400 4831 * @arg @ref LL_ADC_CHANNEL_1
AnnaBridge 172:65be27845400 4832 * @arg @ref LL_ADC_CHANNEL_2
AnnaBridge 172:65be27845400 4833 * @arg @ref LL_ADC_CHANNEL_3
AnnaBridge 172:65be27845400 4834 * @arg @ref LL_ADC_CHANNEL_4
AnnaBridge 172:65be27845400 4835 * @arg @ref LL_ADC_CHANNEL_5
AnnaBridge 172:65be27845400 4836 * @arg @ref LL_ADC_CHANNEL_6
AnnaBridge 172:65be27845400 4837 * @arg @ref LL_ADC_CHANNEL_7
AnnaBridge 172:65be27845400 4838 * @arg @ref LL_ADC_CHANNEL_8
AnnaBridge 172:65be27845400 4839 * @arg @ref LL_ADC_CHANNEL_9
AnnaBridge 172:65be27845400 4840 * @arg @ref LL_ADC_CHANNEL_10
AnnaBridge 172:65be27845400 4841 * @arg @ref LL_ADC_CHANNEL_11
AnnaBridge 172:65be27845400 4842 * @arg @ref LL_ADC_CHANNEL_12
AnnaBridge 172:65be27845400 4843 * @arg @ref LL_ADC_CHANNEL_13
AnnaBridge 172:65be27845400 4844 * @arg @ref LL_ADC_CHANNEL_14
AnnaBridge 172:65be27845400 4845 * @arg @ref LL_ADC_CHANNEL_15
AnnaBridge 172:65be27845400 4846 * @param SingleDiff This parameter can be a combination of the following values:
AnnaBridge 172:65be27845400 4847 * @arg @ref LL_ADC_SINGLE_ENDED
AnnaBridge 172:65be27845400 4848 * @arg @ref LL_ADC_DIFFERENTIAL_ENDED
AnnaBridge 172:65be27845400 4849 * @retval None
AnnaBridge 172:65be27845400 4850 */
AnnaBridge 172:65be27845400 4851 __STATIC_INLINE void LL_ADC_SetChannelSingleDiff(ADC_TypeDef *ADCx, uint32_t Channel, uint32_t SingleDiff)
AnnaBridge 172:65be27845400 4852 {
AnnaBridge 172:65be27845400 4853 /* Bits of channels in single or differential mode are set only for */
AnnaBridge 172:65be27845400 4854 /* differential mode (for single mode, mask of bits allowed to be set is */
AnnaBridge 172:65be27845400 4855 /* shifted out of range of bits of channels in single or differential mode. */
AnnaBridge 172:65be27845400 4856 MODIFY_REG(ADCx->DIFSEL,
AnnaBridge 172:65be27845400 4857 Channel & ADC_SINGLEDIFF_CHANNEL_MASK,
AnnaBridge 172:65be27845400 4858 (Channel & ADC_SINGLEDIFF_CHANNEL_MASK) & (ADC_DIFSEL_DIFSEL << (SingleDiff & ADC_SINGLEDIFF_CHANNEL_SHIFT_MASK)));
AnnaBridge 172:65be27845400 4859 }
AnnaBridge 172:65be27845400 4860
AnnaBridge 172:65be27845400 4861 /**
AnnaBridge 172:65be27845400 4862 * @brief Get mode single-ended or differential input of the selected
AnnaBridge 172:65be27845400 4863 * ADC channel.
AnnaBridge 172:65be27845400 4864 * @note When configuring a channel 'i' in differential mode,
AnnaBridge 172:65be27845400 4865 * the channel 'i+1' is not usable separately.
AnnaBridge 172:65be27845400 4866 * Therefore, to ensure a channel is configured in single-ended mode,
AnnaBridge 172:65be27845400 4867 * the configuration of channel itself and the channel 'i-1' must be
AnnaBridge 172:65be27845400 4868 * read back (to ensure that the selected channel channel has not been
AnnaBridge 172:65be27845400 4869 * configured in differential mode by the previous channel).
AnnaBridge 172:65be27845400 4870 * @note Refer to Reference Manual to ensure the selected channel is
AnnaBridge 172:65be27845400 4871 * available in differential mode.
AnnaBridge 172:65be27845400 4872 * For example, internal channels (VrefInt, TempSensor, ...) are
AnnaBridge 172:65be27845400 4873 * not available in differential mode.
AnnaBridge 172:65be27845400 4874 * @note When configuring a channel 'i' in differential mode,
AnnaBridge 172:65be27845400 4875 * the channel 'i+1' is not usable separately.
AnnaBridge 172:65be27845400 4876 * @note On STM32L4, channels 16, 17, 18 of ADC1, ADC2, ADC3 (if available)
AnnaBridge 172:65be27845400 4877 * are internally fixed to single-ended inputs configuration.
AnnaBridge 172:65be27845400 4878 * @note One or several values can be selected. In this case, the value
AnnaBridge 172:65be27845400 4879 * returned is null if all channels are in single ended-mode.
AnnaBridge 172:65be27845400 4880 * Example: (LL_ADC_CHANNEL_4 | LL_ADC_CHANNEL_12 | ...)
AnnaBridge 172:65be27845400 4881 * @rmtoll DIFSEL DIFSEL LL_ADC_GetChannelSingleDiff
AnnaBridge 172:65be27845400 4882 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 4883 * @param Channel This parameter can be a combination of the following values:
AnnaBridge 172:65be27845400 4884 * @arg @ref LL_ADC_CHANNEL_1
AnnaBridge 172:65be27845400 4885 * @arg @ref LL_ADC_CHANNEL_2
AnnaBridge 172:65be27845400 4886 * @arg @ref LL_ADC_CHANNEL_3
AnnaBridge 172:65be27845400 4887 * @arg @ref LL_ADC_CHANNEL_4
AnnaBridge 172:65be27845400 4888 * @arg @ref LL_ADC_CHANNEL_5
AnnaBridge 172:65be27845400 4889 * @arg @ref LL_ADC_CHANNEL_6
AnnaBridge 172:65be27845400 4890 * @arg @ref LL_ADC_CHANNEL_7
AnnaBridge 172:65be27845400 4891 * @arg @ref LL_ADC_CHANNEL_8
AnnaBridge 172:65be27845400 4892 * @arg @ref LL_ADC_CHANNEL_9
AnnaBridge 172:65be27845400 4893 * @arg @ref LL_ADC_CHANNEL_10
AnnaBridge 172:65be27845400 4894 * @arg @ref LL_ADC_CHANNEL_11
AnnaBridge 172:65be27845400 4895 * @arg @ref LL_ADC_CHANNEL_12
AnnaBridge 172:65be27845400 4896 * @arg @ref LL_ADC_CHANNEL_13
AnnaBridge 172:65be27845400 4897 * @arg @ref LL_ADC_CHANNEL_14
AnnaBridge 172:65be27845400 4898 * @arg @ref LL_ADC_CHANNEL_15
AnnaBridge 172:65be27845400 4899 * @retval 0: channel in single-ended mode, else: channel in differential mode
AnnaBridge 172:65be27845400 4900 */
AnnaBridge 172:65be27845400 4901 __STATIC_INLINE uint32_t LL_ADC_GetChannelSingleDiff(ADC_TypeDef *ADCx, uint32_t Channel)
AnnaBridge 172:65be27845400 4902 {
AnnaBridge 172:65be27845400 4903 return (uint32_t)(READ_BIT(ADCx->DIFSEL, (Channel & ADC_SINGLEDIFF_CHANNEL_MASK)));
AnnaBridge 172:65be27845400 4904 }
AnnaBridge 172:65be27845400 4905
AnnaBridge 172:65be27845400 4906 /**
AnnaBridge 172:65be27845400 4907 * @}
AnnaBridge 172:65be27845400 4908 */
AnnaBridge 172:65be27845400 4909
AnnaBridge 172:65be27845400 4910 /** @defgroup ADC_LL_EF_Configuration_ADC_AnalogWatchdog Configuration of ADC transversal scope: analog watchdog
AnnaBridge 172:65be27845400 4911 * @{
AnnaBridge 172:65be27845400 4912 */
AnnaBridge 172:65be27845400 4913
AnnaBridge 172:65be27845400 4914 /**
AnnaBridge 172:65be27845400 4915 * @brief Set ADC analog watchdog monitored channels:
AnnaBridge 172:65be27845400 4916 * a single channel, multiple channels or all channels,
AnnaBridge 172:65be27845400 4917 * on ADC groups regular and-or injected.
AnnaBridge 172:65be27845400 4918 * @note Once monitored channels are selected, analog watchdog
AnnaBridge 172:65be27845400 4919 * is enabled.
AnnaBridge 172:65be27845400 4920 * @note In case of need to define a single channel to monitor
AnnaBridge 172:65be27845400 4921 * with analog watchdog from sequencer channel definition,
AnnaBridge 172:65be27845400 4922 * use helper macro @ref __LL_ADC_ANALOGWD_CHANNEL_GROUP().
AnnaBridge 172:65be27845400 4923 * @note On this STM32 serie, there are 2 kinds of analog watchdog
AnnaBridge 172:65be27845400 4924 * instance:
AnnaBridge 172:65be27845400 4925 * - AWD standard (instance AWD1):
AnnaBridge 172:65be27845400 4926 * - channels monitored: can monitor 1 channel or all channels.
AnnaBridge 172:65be27845400 4927 * - groups monitored: ADC groups regular and-or injected.
AnnaBridge 172:65be27845400 4928 * - resolution: resolution is not limited (corresponds to
AnnaBridge 172:65be27845400 4929 * ADC resolution configured).
AnnaBridge 172:65be27845400 4930 * - AWD flexible (instances AWD2, AWD3):
AnnaBridge 172:65be27845400 4931 * - channels monitored: flexible on channels monitored, selection is
AnnaBridge 172:65be27845400 4932 * channel wise, from from 1 to all channels.
AnnaBridge 172:65be27845400 4933 * Specificity of this analog watchdog: Multiple channels can
AnnaBridge 172:65be27845400 4934 * be selected. For example:
AnnaBridge 172:65be27845400 4935 * (LL_ADC_AWD_CHANNEL4_REG_INJ | LL_ADC_AWD_CHANNEL5_REG_INJ | ...)
AnnaBridge 172:65be27845400 4936 * - groups monitored: not selection possible (monitoring on both
AnnaBridge 172:65be27845400 4937 * groups regular and injected).
AnnaBridge 172:65be27845400 4938 * Channels selected are monitored on groups regular and injected:
AnnaBridge 172:65be27845400 4939 * LL_ADC_AWD_CHANNELxx_REG_INJ (do not use parameters
AnnaBridge 172:65be27845400 4940 * LL_ADC_AWD_CHANNELxx_REG and LL_ADC_AWD_CHANNELxx_INJ)
AnnaBridge 172:65be27845400 4941 * - resolution: resolution is limited to 8 bits: if ADC resolution is
AnnaBridge 172:65be27845400 4942 * 12 bits the 4 LSB are ignored, if ADC resolution is 10 bits
AnnaBridge 172:65be27845400 4943 * the 2 LSB are ignored.
AnnaBridge 172:65be27845400 4944 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 4945 * ADC state:
AnnaBridge 172:65be27845400 4946 * ADC must be disabled or enabled without conversion on going
AnnaBridge 172:65be27845400 4947 * on either groups regular or injected.
AnnaBridge 172:65be27845400 4948 * @rmtoll CFGR AWD1CH LL_ADC_SetAnalogWDMonitChannels\n
AnnaBridge 172:65be27845400 4949 * CFGR AWD1SGL LL_ADC_SetAnalogWDMonitChannels\n
AnnaBridge 172:65be27845400 4950 * CFGR AWD1EN LL_ADC_SetAnalogWDMonitChannels\n
AnnaBridge 172:65be27845400 4951 * CFGR JAWD1EN LL_ADC_SetAnalogWDMonitChannels\n
AnnaBridge 172:65be27845400 4952 * AWD2CR AWD2CH LL_ADC_SetAnalogWDMonitChannels\n
AnnaBridge 172:65be27845400 4953 * AWD3CR AWD3CH LL_ADC_SetAnalogWDMonitChannels
AnnaBridge 172:65be27845400 4954 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 4955 * @param AWDy This parameter can be one of the following values:
AnnaBridge 172:65be27845400 4956 * @arg @ref LL_ADC_AWD1
AnnaBridge 172:65be27845400 4957 * @arg @ref LL_ADC_AWD2
AnnaBridge 172:65be27845400 4958 * @arg @ref LL_ADC_AWD3
AnnaBridge 172:65be27845400 4959 * @param AWDChannelGroup This parameter can be one of the following values:
AnnaBridge 172:65be27845400 4960 * @arg @ref LL_ADC_AWD_DISABLE
AnnaBridge 172:65be27845400 4961 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG (0)
AnnaBridge 172:65be27845400 4962 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_INJ (0)
AnnaBridge 172:65be27845400 4963 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG_INJ
AnnaBridge 172:65be27845400 4964 * @arg @ref LL_ADC_AWD_CHANNEL_0_REG (0)
AnnaBridge 172:65be27845400 4965 * @arg @ref LL_ADC_AWD_CHANNEL_0_INJ (0)
AnnaBridge 172:65be27845400 4966 * @arg @ref LL_ADC_AWD_CHANNEL_0_REG_INJ
AnnaBridge 172:65be27845400 4967 * @arg @ref LL_ADC_AWD_CHANNEL_1_REG (0)
AnnaBridge 172:65be27845400 4968 * @arg @ref LL_ADC_AWD_CHANNEL_1_INJ (0)
AnnaBridge 172:65be27845400 4969 * @arg @ref LL_ADC_AWD_CHANNEL_1_REG_INJ
AnnaBridge 172:65be27845400 4970 * @arg @ref LL_ADC_AWD_CHANNEL_2_REG (0)
AnnaBridge 172:65be27845400 4971 * @arg @ref LL_ADC_AWD_CHANNEL_2_INJ (0)
AnnaBridge 172:65be27845400 4972 * @arg @ref LL_ADC_AWD_CHANNEL_2_REG_INJ
AnnaBridge 172:65be27845400 4973 * @arg @ref LL_ADC_AWD_CHANNEL_3_REG (0)
AnnaBridge 172:65be27845400 4974 * @arg @ref LL_ADC_AWD_CHANNEL_3_INJ (0)
AnnaBridge 172:65be27845400 4975 * @arg @ref LL_ADC_AWD_CHANNEL_3_REG_INJ
AnnaBridge 172:65be27845400 4976 * @arg @ref LL_ADC_AWD_CHANNEL_4_REG (0)
AnnaBridge 172:65be27845400 4977 * @arg @ref LL_ADC_AWD_CHANNEL_4_INJ (0)
AnnaBridge 172:65be27845400 4978 * @arg @ref LL_ADC_AWD_CHANNEL_4_REG_INJ
AnnaBridge 172:65be27845400 4979 * @arg @ref LL_ADC_AWD_CHANNEL_5_REG (0)
AnnaBridge 172:65be27845400 4980 * @arg @ref LL_ADC_AWD_CHANNEL_5_INJ (0)
AnnaBridge 172:65be27845400 4981 * @arg @ref LL_ADC_AWD_CHANNEL_5_REG_INJ
AnnaBridge 172:65be27845400 4982 * @arg @ref LL_ADC_AWD_CHANNEL_6_REG (0)
AnnaBridge 172:65be27845400 4983 * @arg @ref LL_ADC_AWD_CHANNEL_6_INJ (0)
AnnaBridge 172:65be27845400 4984 * @arg @ref LL_ADC_AWD_CHANNEL_6_REG_INJ
AnnaBridge 172:65be27845400 4985 * @arg @ref LL_ADC_AWD_CHANNEL_7_REG (0)
AnnaBridge 172:65be27845400 4986 * @arg @ref LL_ADC_AWD_CHANNEL_7_INJ (0)
AnnaBridge 172:65be27845400 4987 * @arg @ref LL_ADC_AWD_CHANNEL_7_REG_INJ
AnnaBridge 172:65be27845400 4988 * @arg @ref LL_ADC_AWD_CHANNEL_8_REG (0)
AnnaBridge 172:65be27845400 4989 * @arg @ref LL_ADC_AWD_CHANNEL_8_INJ (0)
AnnaBridge 172:65be27845400 4990 * @arg @ref LL_ADC_AWD_CHANNEL_8_REG_INJ
AnnaBridge 172:65be27845400 4991 * @arg @ref LL_ADC_AWD_CHANNEL_9_REG (0)
AnnaBridge 172:65be27845400 4992 * @arg @ref LL_ADC_AWD_CHANNEL_9_INJ (0)
AnnaBridge 172:65be27845400 4993 * @arg @ref LL_ADC_AWD_CHANNEL_9_REG_INJ
AnnaBridge 172:65be27845400 4994 * @arg @ref LL_ADC_AWD_CHANNEL_10_REG (0)
AnnaBridge 172:65be27845400 4995 * @arg @ref LL_ADC_AWD_CHANNEL_10_INJ (0)
AnnaBridge 172:65be27845400 4996 * @arg @ref LL_ADC_AWD_CHANNEL_10_REG_INJ
AnnaBridge 172:65be27845400 4997 * @arg @ref LL_ADC_AWD_CHANNEL_11_REG (0)
AnnaBridge 172:65be27845400 4998 * @arg @ref LL_ADC_AWD_CHANNEL_11_INJ (0)
AnnaBridge 172:65be27845400 4999 * @arg @ref LL_ADC_AWD_CHANNEL_11_REG_INJ
AnnaBridge 172:65be27845400 5000 * @arg @ref LL_ADC_AWD_CHANNEL_12_REG (0)
AnnaBridge 172:65be27845400 5001 * @arg @ref LL_ADC_AWD_CHANNEL_12_INJ (0)
AnnaBridge 172:65be27845400 5002 * @arg @ref LL_ADC_AWD_CHANNEL_12_REG_INJ
AnnaBridge 172:65be27845400 5003 * @arg @ref LL_ADC_AWD_CHANNEL_13_REG (0)
AnnaBridge 172:65be27845400 5004 * @arg @ref LL_ADC_AWD_CHANNEL_13_INJ (0)
AnnaBridge 172:65be27845400 5005 * @arg @ref LL_ADC_AWD_CHANNEL_13_REG_INJ
AnnaBridge 172:65be27845400 5006 * @arg @ref LL_ADC_AWD_CHANNEL_14_REG (0)
AnnaBridge 172:65be27845400 5007 * @arg @ref LL_ADC_AWD_CHANNEL_14_INJ (0)
AnnaBridge 172:65be27845400 5008 * @arg @ref LL_ADC_AWD_CHANNEL_14_REG_INJ
AnnaBridge 172:65be27845400 5009 * @arg @ref LL_ADC_AWD_CHANNEL_15_REG (0)
AnnaBridge 172:65be27845400 5010 * @arg @ref LL_ADC_AWD_CHANNEL_15_INJ (0)
AnnaBridge 172:65be27845400 5011 * @arg @ref LL_ADC_AWD_CHANNEL_15_REG_INJ
AnnaBridge 172:65be27845400 5012 * @arg @ref LL_ADC_AWD_CHANNEL_16_REG (0)
AnnaBridge 172:65be27845400 5013 * @arg @ref LL_ADC_AWD_CHANNEL_16_INJ (0)
AnnaBridge 172:65be27845400 5014 * @arg @ref LL_ADC_AWD_CHANNEL_16_REG_INJ
AnnaBridge 172:65be27845400 5015 * @arg @ref LL_ADC_AWD_CHANNEL_17_REG (0)
AnnaBridge 172:65be27845400 5016 * @arg @ref LL_ADC_AWD_CHANNEL_17_INJ (0)
AnnaBridge 172:65be27845400 5017 * @arg @ref LL_ADC_AWD_CHANNEL_17_REG_INJ
AnnaBridge 172:65be27845400 5018 * @arg @ref LL_ADC_AWD_CHANNEL_18_REG (0)
AnnaBridge 172:65be27845400 5019 * @arg @ref LL_ADC_AWD_CHANNEL_18_INJ (0)
AnnaBridge 172:65be27845400 5020 * @arg @ref LL_ADC_AWD_CHANNEL_18_REG_INJ
AnnaBridge 172:65be27845400 5021 * @arg @ref LL_ADC_AWD_CH_VREFINT_REG (0)(1)
AnnaBridge 172:65be27845400 5022 * @arg @ref LL_ADC_AWD_CH_VREFINT_INJ (0)(1)
AnnaBridge 172:65be27845400 5023 * @arg @ref LL_ADC_AWD_CH_VREFINT_REG_INJ (1)
AnnaBridge 172:65be27845400 5024 * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_REG (0)(4)
AnnaBridge 172:65be27845400 5025 * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_INJ (0)(4)
AnnaBridge 172:65be27845400 5026 * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_REG_INJ (4)
AnnaBridge 172:65be27845400 5027 * @arg @ref LL_ADC_AWD_CH_VBAT_REG (0)(4)
AnnaBridge 172:65be27845400 5028 * @arg @ref LL_ADC_AWD_CH_VBAT_INJ (0)(4)
AnnaBridge 172:65be27845400 5029 * @arg @ref LL_ADC_AWD_CH_VBAT_REG_INJ (4)
AnnaBridge 172:65be27845400 5030 * @arg @ref LL_ADC_AWD_CH_DAC1CH1_REG (0)(2)(5)
AnnaBridge 172:65be27845400 5031 * @arg @ref LL_ADC_AWD_CH_DAC1CH1_INJ (0)(2)(5)
AnnaBridge 172:65be27845400 5032 * @arg @ref LL_ADC_AWD_CH_DAC1CH1_REG_INJ (2)(5)
AnnaBridge 172:65be27845400 5033 * @arg @ref LL_ADC_AWD_CH_DAC1CH2_REG (0)(2)(5)
AnnaBridge 172:65be27845400 5034 * @arg @ref LL_ADC_AWD_CH_DAC1CH2_INJ (0)(2)(5)
AnnaBridge 172:65be27845400 5035 * @arg @ref LL_ADC_AWD_CH_DAC1CH2_REG_INJ (2)(5)
AnnaBridge 172:65be27845400 5036 * @arg @ref LL_ADC_AWD_CH_DAC1CH1_ADC2_REG (0)(2)(6)
AnnaBridge 172:65be27845400 5037 * @arg @ref LL_ADC_AWD_CH_DAC1CH1_ADC2_INJ (0)(2)(6)
AnnaBridge 172:65be27845400 5038 * @arg @ref LL_ADC_AWD_CH_DAC1CH1_ADC2_REG_INJ (2)(6)
AnnaBridge 172:65be27845400 5039 * @arg @ref LL_ADC_AWD_CH_DAC1CH2_ADC2_REG (0)(2)(6)
AnnaBridge 172:65be27845400 5040 * @arg @ref LL_ADC_AWD_CH_DAC1CH2_ADC2_INJ (0)(2)(6)
AnnaBridge 172:65be27845400 5041 * @arg @ref LL_ADC_AWD_CH_DAC1CH2_ADC2_REG_INJ (2)(6)
AnnaBridge 172:65be27845400 5042 * @arg @ref LL_ADC_AWD_CH_DAC1CH1_ADC3_REG (0)(3)(6)
AnnaBridge 172:65be27845400 5043 * @arg @ref LL_ADC_AWD_CH_DAC1CH1_ADC3_INJ (0)(3)(6)
AnnaBridge 172:65be27845400 5044 * @arg @ref LL_ADC_AWD_CH_DAC1CH1_ADC3_REG_INJ (3)(6)
AnnaBridge 172:65be27845400 5045 * @arg @ref LL_ADC_AWD_CH_DAC1CH2_ADC3_REG (0)(3)(6)
AnnaBridge 172:65be27845400 5046 * @arg @ref LL_ADC_AWD_CH_DAC1CH2_ADC3_INJ (0)(3)(6)
AnnaBridge 172:65be27845400 5047 * @arg @ref LL_ADC_AWD_CH_DAC1CH2_ADC3_REG_INJ (3)(6)
AnnaBridge 172:65be27845400 5048 *
AnnaBridge 172:65be27845400 5049 * (0) On STM32L4, parameter available only on analog watchdog number: AWD1.\n
AnnaBridge 172:65be27845400 5050 * (1) On STM32L4, parameter available only on ADC instance: ADC1.\n
AnnaBridge 172:65be27845400 5051 * (2) On STM32L4, parameter available only on ADC instance: ADC2.\n
AnnaBridge 172:65be27845400 5052 * (3) On STM32L4, parameter available only on ADC instance: ADC3.\n
AnnaBridge 172:65be27845400 5053 * (4) On STM32L4, parameter available only on ADC instances: ADC1, ADC3.
AnnaBridge 172:65be27845400 5054 * (5) On STM32L4, parameter available on devices with only 1 ADC instance.\n
AnnaBridge 172:65be27845400 5055 * (6) On STM32L4, parameter available on devices with several ADC instances.
AnnaBridge 172:65be27845400 5056 * @retval None
AnnaBridge 172:65be27845400 5057 */
AnnaBridge 172:65be27845400 5058 __STATIC_INLINE void LL_ADC_SetAnalogWDMonitChannels(ADC_TypeDef *ADCx, uint32_t AWDy, uint32_t AWDChannelGroup)
AnnaBridge 172:65be27845400 5059 {
AnnaBridge 172:65be27845400 5060 /* Set bits with content of parameter "AWDChannelGroup" with bits position */
AnnaBridge 172:65be27845400 5061 /* in register and register position depending on parameter "AWDy". */
AnnaBridge 172:65be27845400 5062 /* Parameters "AWDChannelGroup" and "AWDy" are used with masks because */
AnnaBridge 172:65be27845400 5063 /* containing other bits reserved for other purpose. */
AnnaBridge 172:65be27845400 5064 #if defined(CORE_CM0PLUS)
AnnaBridge 172:65be27845400 5065 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->CFGR, ((AWDy & ADC_AWD_CRX_REGOFFSET_MASK) >> ADC_AWD_CRX_REGOFFSET_POS)
AnnaBridge 172:65be27845400 5066 + ((AWDy & ADC_AWD_CR12_REGOFFSETGAP_MASK) * ADC_AWD_CR12_REGOFFSETGAP_VAL));
AnnaBridge 172:65be27845400 5067
AnnaBridge 172:65be27845400 5068 MODIFY_REG(*preg,
AnnaBridge 172:65be27845400 5069 (AWDy & ADC_AWD_CR_ALL_CHANNEL_MASK),
AnnaBridge 172:65be27845400 5070 AWDChannelGroup & AWDy);
AnnaBridge 172:65be27845400 5071 #else
AnnaBridge 172:65be27845400 5072 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->CFGR, __ADC_MASK_SHIFT(AWDy, ADC_AWD_CRX_REGOFFSET_MASK)
AnnaBridge 172:65be27845400 5073 + ((AWDy & ADC_AWD_CR12_REGOFFSETGAP_MASK) * ADC_AWD_CR12_REGOFFSETGAP_VAL));
AnnaBridge 172:65be27845400 5074
AnnaBridge 172:65be27845400 5075 MODIFY_REG(*preg,
AnnaBridge 172:65be27845400 5076 (AWDy & ADC_AWD_CR_ALL_CHANNEL_MASK),
AnnaBridge 172:65be27845400 5077 AWDChannelGroup & AWDy);
AnnaBridge 172:65be27845400 5078 #endif
AnnaBridge 172:65be27845400 5079 }
AnnaBridge 172:65be27845400 5080
AnnaBridge 172:65be27845400 5081 /**
AnnaBridge 172:65be27845400 5082 * @brief Get ADC analog watchdog monitored channel.
AnnaBridge 172:65be27845400 5083 * @note Usage of the returned channel number:
AnnaBridge 172:65be27845400 5084 * - To reinject this channel into another function LL_ADC_xxx:
AnnaBridge 172:65be27845400 5085 * the returned channel number is only partly formatted on definition
AnnaBridge 172:65be27845400 5086 * of literals LL_ADC_CHANNEL_x. Therefore, it has to be compared
AnnaBridge 172:65be27845400 5087 * with parts of literals LL_ADC_CHANNEL_x or using
AnnaBridge 172:65be27845400 5088 * helper macro @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
AnnaBridge 172:65be27845400 5089 * Then the selected literal LL_ADC_CHANNEL_x can be used
AnnaBridge 172:65be27845400 5090 * as parameter for another function.
AnnaBridge 172:65be27845400 5091 * - To get the channel number in decimal format:
AnnaBridge 172:65be27845400 5092 * process the returned value with the helper macro
AnnaBridge 172:65be27845400 5093 * @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
AnnaBridge 172:65be27845400 5094 * Applicable only when the analog watchdog is set to monitor
AnnaBridge 172:65be27845400 5095 * one channel.
AnnaBridge 172:65be27845400 5096 * @note On this STM32 serie, there are 2 kinds of analog watchdog
AnnaBridge 172:65be27845400 5097 * instance:
AnnaBridge 172:65be27845400 5098 * - AWD standard (instance AWD1):
AnnaBridge 172:65be27845400 5099 * - channels monitored: can monitor 1 channel or all channels.
AnnaBridge 172:65be27845400 5100 * - groups monitored: ADC groups regular and-or injected.
AnnaBridge 172:65be27845400 5101 * - resolution: resolution is not limited (corresponds to
AnnaBridge 172:65be27845400 5102 * ADC resolution configured).
AnnaBridge 172:65be27845400 5103 * - AWD flexible (instances AWD2, AWD3):
AnnaBridge 172:65be27845400 5104 * - channels monitored: flexible on channels monitored, selection is
AnnaBridge 172:65be27845400 5105 * channel wise, from from 1 to all channels.
AnnaBridge 172:65be27845400 5106 * Specificity of this analog watchdog: Multiple channels can
AnnaBridge 172:65be27845400 5107 * be selected. For example:
AnnaBridge 172:65be27845400 5108 * (LL_ADC_AWD_CHANNEL4_REG_INJ | LL_ADC_AWD_CHANNEL5_REG_INJ | ...)
AnnaBridge 172:65be27845400 5109 * - groups monitored: not selection possible (monitoring on both
AnnaBridge 172:65be27845400 5110 * groups regular and injected).
AnnaBridge 172:65be27845400 5111 * Channels selected are monitored on groups regular and injected:
AnnaBridge 172:65be27845400 5112 * LL_ADC_AWD_CHANNELxx_REG_INJ (do not use parameters
AnnaBridge 172:65be27845400 5113 * LL_ADC_AWD_CHANNELxx_REG and LL_ADC_AWD_CHANNELxx_INJ)
AnnaBridge 172:65be27845400 5114 * - resolution: resolution is limited to 8 bits: if ADC resolution is
AnnaBridge 172:65be27845400 5115 * 12 bits the 4 LSB are ignored, if ADC resolution is 10 bits
AnnaBridge 172:65be27845400 5116 * the 2 LSB are ignored.
AnnaBridge 172:65be27845400 5117 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 5118 * ADC state:
AnnaBridge 172:65be27845400 5119 * ADC must be disabled or enabled without conversion on going
AnnaBridge 172:65be27845400 5120 * on either groups regular or injected.
AnnaBridge 172:65be27845400 5121 * @rmtoll CFGR AWD1CH LL_ADC_GetAnalogWDMonitChannels\n
AnnaBridge 172:65be27845400 5122 * CFGR AWD1SGL LL_ADC_GetAnalogWDMonitChannels\n
AnnaBridge 172:65be27845400 5123 * CFGR AWD1EN LL_ADC_GetAnalogWDMonitChannels\n
AnnaBridge 172:65be27845400 5124 * CFGR JAWD1EN LL_ADC_GetAnalogWDMonitChannels\n
AnnaBridge 172:65be27845400 5125 * AWD2CR AWD2CH LL_ADC_GetAnalogWDMonitChannels\n
AnnaBridge 172:65be27845400 5126 * AWD3CR AWD3CH LL_ADC_GetAnalogWDMonitChannels
AnnaBridge 172:65be27845400 5127 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 5128 * @param AWDy This parameter can be one of the following values:
AnnaBridge 172:65be27845400 5129 * @arg @ref LL_ADC_AWD1
AnnaBridge 172:65be27845400 5130 * @arg @ref LL_ADC_AWD2 (1)
AnnaBridge 172:65be27845400 5131 * @arg @ref LL_ADC_AWD3 (1)
AnnaBridge 172:65be27845400 5132 *
AnnaBridge 172:65be27845400 5133 * (1) On this AWD number, monitored channel can be retrieved
AnnaBridge 172:65be27845400 5134 * if only 1 channel is programmed (or none or all channels).
AnnaBridge 172:65be27845400 5135 * This function cannot retrieve monitored channel if
AnnaBridge 172:65be27845400 5136 * multiple channels are programmed simultaneously
AnnaBridge 172:65be27845400 5137 * by bitfield.
AnnaBridge 172:65be27845400 5138 * @retval Returned value can be one of the following values:
AnnaBridge 172:65be27845400 5139 * @arg @ref LL_ADC_AWD_DISABLE
AnnaBridge 172:65be27845400 5140 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG (0)
AnnaBridge 172:65be27845400 5141 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_INJ (0)
AnnaBridge 172:65be27845400 5142 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG_INJ
AnnaBridge 172:65be27845400 5143 * @arg @ref LL_ADC_AWD_CHANNEL_0_REG (0)
AnnaBridge 172:65be27845400 5144 * @arg @ref LL_ADC_AWD_CHANNEL_0_INJ (0)
AnnaBridge 172:65be27845400 5145 * @arg @ref LL_ADC_AWD_CHANNEL_0_REG_INJ
AnnaBridge 172:65be27845400 5146 * @arg @ref LL_ADC_AWD_CHANNEL_1_REG (0)
AnnaBridge 172:65be27845400 5147 * @arg @ref LL_ADC_AWD_CHANNEL_1_INJ (0)
AnnaBridge 172:65be27845400 5148 * @arg @ref LL_ADC_AWD_CHANNEL_1_REG_INJ
AnnaBridge 172:65be27845400 5149 * @arg @ref LL_ADC_AWD_CHANNEL_2_REG (0)
AnnaBridge 172:65be27845400 5150 * @arg @ref LL_ADC_AWD_CHANNEL_2_INJ (0)
AnnaBridge 172:65be27845400 5151 * @arg @ref LL_ADC_AWD_CHANNEL_2_REG_INJ
AnnaBridge 172:65be27845400 5152 * @arg @ref LL_ADC_AWD_CHANNEL_3_REG (0)
AnnaBridge 172:65be27845400 5153 * @arg @ref LL_ADC_AWD_CHANNEL_3_INJ (0)
AnnaBridge 172:65be27845400 5154 * @arg @ref LL_ADC_AWD_CHANNEL_3_REG_INJ
AnnaBridge 172:65be27845400 5155 * @arg @ref LL_ADC_AWD_CHANNEL_4_REG (0)
AnnaBridge 172:65be27845400 5156 * @arg @ref LL_ADC_AWD_CHANNEL_4_INJ (0)
AnnaBridge 172:65be27845400 5157 * @arg @ref LL_ADC_AWD_CHANNEL_4_REG_INJ
AnnaBridge 172:65be27845400 5158 * @arg @ref LL_ADC_AWD_CHANNEL_5_REG (0)
AnnaBridge 172:65be27845400 5159 * @arg @ref LL_ADC_AWD_CHANNEL_5_INJ (0)
AnnaBridge 172:65be27845400 5160 * @arg @ref LL_ADC_AWD_CHANNEL_5_REG_INJ
AnnaBridge 172:65be27845400 5161 * @arg @ref LL_ADC_AWD_CHANNEL_6_REG (0)
AnnaBridge 172:65be27845400 5162 * @arg @ref LL_ADC_AWD_CHANNEL_6_INJ (0)
AnnaBridge 172:65be27845400 5163 * @arg @ref LL_ADC_AWD_CHANNEL_6_REG_INJ
AnnaBridge 172:65be27845400 5164 * @arg @ref LL_ADC_AWD_CHANNEL_7_REG (0)
AnnaBridge 172:65be27845400 5165 * @arg @ref LL_ADC_AWD_CHANNEL_7_INJ (0)
AnnaBridge 172:65be27845400 5166 * @arg @ref LL_ADC_AWD_CHANNEL_7_REG_INJ
AnnaBridge 172:65be27845400 5167 * @arg @ref LL_ADC_AWD_CHANNEL_8_REG (0)
AnnaBridge 172:65be27845400 5168 * @arg @ref LL_ADC_AWD_CHANNEL_8_INJ (0)
AnnaBridge 172:65be27845400 5169 * @arg @ref LL_ADC_AWD_CHANNEL_8_REG_INJ
AnnaBridge 172:65be27845400 5170 * @arg @ref LL_ADC_AWD_CHANNEL_9_REG (0)
AnnaBridge 172:65be27845400 5171 * @arg @ref LL_ADC_AWD_CHANNEL_9_INJ (0)
AnnaBridge 172:65be27845400 5172 * @arg @ref LL_ADC_AWD_CHANNEL_9_REG_INJ
AnnaBridge 172:65be27845400 5173 * @arg @ref LL_ADC_AWD_CHANNEL_10_REG (0)
AnnaBridge 172:65be27845400 5174 * @arg @ref LL_ADC_AWD_CHANNEL_10_INJ (0)
AnnaBridge 172:65be27845400 5175 * @arg @ref LL_ADC_AWD_CHANNEL_10_REG_INJ
AnnaBridge 172:65be27845400 5176 * @arg @ref LL_ADC_AWD_CHANNEL_11_REG (0)
AnnaBridge 172:65be27845400 5177 * @arg @ref LL_ADC_AWD_CHANNEL_11_INJ (0)
AnnaBridge 172:65be27845400 5178 * @arg @ref LL_ADC_AWD_CHANNEL_11_REG_INJ
AnnaBridge 172:65be27845400 5179 * @arg @ref LL_ADC_AWD_CHANNEL_12_REG (0)
AnnaBridge 172:65be27845400 5180 * @arg @ref LL_ADC_AWD_CHANNEL_12_INJ (0)
AnnaBridge 172:65be27845400 5181 * @arg @ref LL_ADC_AWD_CHANNEL_12_REG_INJ
AnnaBridge 172:65be27845400 5182 * @arg @ref LL_ADC_AWD_CHANNEL_13_REG (0)
AnnaBridge 172:65be27845400 5183 * @arg @ref LL_ADC_AWD_CHANNEL_13_INJ (0)
AnnaBridge 172:65be27845400 5184 * @arg @ref LL_ADC_AWD_CHANNEL_13_REG_INJ
AnnaBridge 172:65be27845400 5185 * @arg @ref LL_ADC_AWD_CHANNEL_14_REG (0)
AnnaBridge 172:65be27845400 5186 * @arg @ref LL_ADC_AWD_CHANNEL_14_INJ (0)
AnnaBridge 172:65be27845400 5187 * @arg @ref LL_ADC_AWD_CHANNEL_14_REG_INJ
AnnaBridge 172:65be27845400 5188 * @arg @ref LL_ADC_AWD_CHANNEL_15_REG (0)
AnnaBridge 172:65be27845400 5189 * @arg @ref LL_ADC_AWD_CHANNEL_15_INJ (0)
AnnaBridge 172:65be27845400 5190 * @arg @ref LL_ADC_AWD_CHANNEL_15_REG_INJ
AnnaBridge 172:65be27845400 5191 * @arg @ref LL_ADC_AWD_CHANNEL_16_REG (0)
AnnaBridge 172:65be27845400 5192 * @arg @ref LL_ADC_AWD_CHANNEL_16_INJ (0)
AnnaBridge 172:65be27845400 5193 * @arg @ref LL_ADC_AWD_CHANNEL_16_REG_INJ
AnnaBridge 172:65be27845400 5194 * @arg @ref LL_ADC_AWD_CHANNEL_17_REG (0)
AnnaBridge 172:65be27845400 5195 * @arg @ref LL_ADC_AWD_CHANNEL_17_INJ (0)
AnnaBridge 172:65be27845400 5196 * @arg @ref LL_ADC_AWD_CHANNEL_17_REG_INJ
AnnaBridge 172:65be27845400 5197 * @arg @ref LL_ADC_AWD_CHANNEL_18_REG (0)
AnnaBridge 172:65be27845400 5198 * @arg @ref LL_ADC_AWD_CHANNEL_18_INJ (0)
AnnaBridge 172:65be27845400 5199 * @arg @ref LL_ADC_AWD_CHANNEL_18_REG_INJ
AnnaBridge 172:65be27845400 5200 *
AnnaBridge 172:65be27845400 5201 * (0) On STM32L4, parameter available only on analog watchdog number: AWD1.
AnnaBridge 172:65be27845400 5202 */
AnnaBridge 172:65be27845400 5203 __STATIC_INLINE uint32_t LL_ADC_GetAnalogWDMonitChannels(ADC_TypeDef *ADCx, uint32_t AWDy)
AnnaBridge 172:65be27845400 5204 {
AnnaBridge 172:65be27845400 5205 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->CFGR, ((AWDy & ADC_AWD_CRX_REGOFFSET_MASK) >> ADC_AWD_CRX_REGOFFSET_POS)
AnnaBridge 172:65be27845400 5206 + ((AWDy & ADC_AWD_CR12_REGOFFSETGAP_MASK) * ADC_AWD_CR12_REGOFFSETGAP_VAL));
AnnaBridge 172:65be27845400 5207
AnnaBridge 172:65be27845400 5208 register uint32_t AnalogWDMonitChannels = (READ_BIT(*preg, AWDy) & AWDy & ADC_AWD_CR_ALL_CHANNEL_MASK);
AnnaBridge 172:65be27845400 5209
AnnaBridge 172:65be27845400 5210 /* If "AnalogWDMonitChannels" == 0, then the selected AWD is disabled */
AnnaBridge 172:65be27845400 5211 /* (parameter value LL_ADC_AWD_DISABLE). */
AnnaBridge 172:65be27845400 5212 /* Else, the selected AWD is enabled and is monitoring a group of channels */
AnnaBridge 172:65be27845400 5213 /* or a single channel. */
AnnaBridge 172:65be27845400 5214 if(AnalogWDMonitChannels != 0)
AnnaBridge 172:65be27845400 5215 {
AnnaBridge 172:65be27845400 5216 if(AWDy == LL_ADC_AWD1)
AnnaBridge 172:65be27845400 5217 {
AnnaBridge 172:65be27845400 5218 if((AnalogWDMonitChannels & ADC_CFGR_AWD1SGL) == 0)
AnnaBridge 172:65be27845400 5219 {
AnnaBridge 172:65be27845400 5220 /* AWD monitoring a group of channels */
AnnaBridge 172:65be27845400 5221 AnalogWDMonitChannels = (( AnalogWDMonitChannels
AnnaBridge 172:65be27845400 5222 | (ADC_AWD_CR23_CHANNEL_MASK)
AnnaBridge 172:65be27845400 5223 )
AnnaBridge 172:65be27845400 5224 & (~(ADC_CFGR_AWD1CH))
AnnaBridge 172:65be27845400 5225 );
AnnaBridge 172:65be27845400 5226 }
AnnaBridge 172:65be27845400 5227 else
AnnaBridge 172:65be27845400 5228 {
AnnaBridge 172:65be27845400 5229 /* AWD monitoring a single channel */
AnnaBridge 172:65be27845400 5230 AnalogWDMonitChannels = (AnalogWDMonitChannels
AnnaBridge 172:65be27845400 5231 | (ADC_AWD2CR_AWD2CH_0 << (AnalogWDMonitChannels >> ADC_CFGR_AWD1CH_Pos))
AnnaBridge 172:65be27845400 5232 );
AnnaBridge 172:65be27845400 5233 }
AnnaBridge 172:65be27845400 5234 }
AnnaBridge 172:65be27845400 5235 else
AnnaBridge 172:65be27845400 5236 {
AnnaBridge 172:65be27845400 5237 if((AnalogWDMonitChannels & ADC_AWD_CR23_CHANNEL_MASK) == ADC_AWD_CR23_CHANNEL_MASK)
AnnaBridge 172:65be27845400 5238 {
AnnaBridge 172:65be27845400 5239 /* AWD monitoring a group of channels */
AnnaBridge 172:65be27845400 5240 AnalogWDMonitChannels = ( ADC_AWD_CR23_CHANNEL_MASK
AnnaBridge 172:65be27845400 5241 | ((ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN))
AnnaBridge 172:65be27845400 5242 );
AnnaBridge 172:65be27845400 5243 }
AnnaBridge 172:65be27845400 5244 else
AnnaBridge 172:65be27845400 5245 {
AnnaBridge 172:65be27845400 5246 /* AWD monitoring a single channel */
AnnaBridge 172:65be27845400 5247 /* AWD monitoring a group of channels */
AnnaBridge 172:65be27845400 5248 AnalogWDMonitChannels = ( AnalogWDMonitChannels
AnnaBridge 172:65be27845400 5249 | (ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL)
AnnaBridge 172:65be27845400 5250 | (__LL_ADC_CHANNEL_TO_DECIMAL_NB(AnalogWDMonitChannels) << ADC_CFGR_AWD1CH_Pos)
AnnaBridge 172:65be27845400 5251 );
AnnaBridge 172:65be27845400 5252 }
AnnaBridge 172:65be27845400 5253 }
AnnaBridge 172:65be27845400 5254 }
AnnaBridge 172:65be27845400 5255
AnnaBridge 172:65be27845400 5256 return AnalogWDMonitChannels;
AnnaBridge 172:65be27845400 5257
AnnaBridge 172:65be27845400 5258 }
AnnaBridge 172:65be27845400 5259
AnnaBridge 172:65be27845400 5260 /**
AnnaBridge 172:65be27845400 5261 * @brief Set ADC analog watchdog thresholds value of both thresholds
AnnaBridge 172:65be27845400 5262 * high and low.
AnnaBridge 172:65be27845400 5263 * @note If value of only one threshold high or low must be set,
AnnaBridge 172:65be27845400 5264 * use function @ref LL_ADC_SetAnalogWDThresholds().
AnnaBridge 172:65be27845400 5265 * @note In case of ADC resolution different of 12 bits,
AnnaBridge 172:65be27845400 5266 * analog watchdog thresholds data require a specific shift.
AnnaBridge 172:65be27845400 5267 * Use helper macro @ref __LL_ADC_ANALOGWD_SET_THRESHOLD_RESOLUTION().
AnnaBridge 172:65be27845400 5268 * @note On this STM32 serie, there are 2 kinds of analog watchdog
AnnaBridge 172:65be27845400 5269 * instance:
AnnaBridge 172:65be27845400 5270 * - AWD standard (instance AWD1):
AnnaBridge 172:65be27845400 5271 * - channels monitored: can monitor 1 channel or all channels.
AnnaBridge 172:65be27845400 5272 * - groups monitored: ADC groups regular and-or injected.
AnnaBridge 172:65be27845400 5273 * - resolution: resolution is not limited (corresponds to
AnnaBridge 172:65be27845400 5274 * ADC resolution configured).
AnnaBridge 172:65be27845400 5275 * - AWD flexible (instances AWD2, AWD3):
AnnaBridge 172:65be27845400 5276 * - channels monitored: flexible on channels monitored, selection is
AnnaBridge 172:65be27845400 5277 * channel wise, from from 1 to all channels.
AnnaBridge 172:65be27845400 5278 * Specificity of this analog watchdog: Multiple channels can
AnnaBridge 172:65be27845400 5279 * be selected. For example:
AnnaBridge 172:65be27845400 5280 * (LL_ADC_AWD_CHANNEL4_REG_INJ | LL_ADC_AWD_CHANNEL5_REG_INJ | ...)
AnnaBridge 172:65be27845400 5281 * - groups monitored: not selection possible (monitoring on both
AnnaBridge 172:65be27845400 5282 * groups regular and injected).
AnnaBridge 172:65be27845400 5283 * Channels selected are monitored on groups regular and injected:
AnnaBridge 172:65be27845400 5284 * LL_ADC_AWD_CHANNELxx_REG_INJ (do not use parameters
AnnaBridge 172:65be27845400 5285 * LL_ADC_AWD_CHANNELxx_REG and LL_ADC_AWD_CHANNELxx_INJ)
AnnaBridge 172:65be27845400 5286 * - resolution: resolution is limited to 8 bits: if ADC resolution is
AnnaBridge 172:65be27845400 5287 * 12 bits the 4 LSB are ignored, if ADC resolution is 10 bits
AnnaBridge 172:65be27845400 5288 * the 2 LSB are ignored.
AnnaBridge 172:65be27845400 5289 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 5290 * ADC state:
AnnaBridge 172:65be27845400 5291 * ADC must be disabled or enabled without conversion on going
AnnaBridge 172:65be27845400 5292 * on either groups regular or injected.
AnnaBridge 172:65be27845400 5293 * @rmtoll TR1 HT1 LL_ADC_ConfigAnalogWDThresholds\n
AnnaBridge 172:65be27845400 5294 * TR2 HT2 LL_ADC_ConfigAnalogWDThresholds\n
AnnaBridge 172:65be27845400 5295 * TR3 HT3 LL_ADC_ConfigAnalogWDThresholds\n
AnnaBridge 172:65be27845400 5296 * TR1 LT1 LL_ADC_ConfigAnalogWDThresholds\n
AnnaBridge 172:65be27845400 5297 * TR2 LT2 LL_ADC_ConfigAnalogWDThresholds\n
AnnaBridge 172:65be27845400 5298 * TR3 LT3 LL_ADC_ConfigAnalogWDThresholds
AnnaBridge 172:65be27845400 5299 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 5300 * @param AWDy This parameter can be one of the following values:
AnnaBridge 172:65be27845400 5301 * @arg @ref LL_ADC_AWD1
AnnaBridge 172:65be27845400 5302 * @arg @ref LL_ADC_AWD2
AnnaBridge 172:65be27845400 5303 * @arg @ref LL_ADC_AWD3
AnnaBridge 172:65be27845400 5304 * @param AWDThresholdHighValue Value between Min_Data=0x000 and Max_Data=0xFFF
AnnaBridge 172:65be27845400 5305 * @param AWDThresholdLowValue Value between Min_Data=0x000 and Max_Data=0xFFF
AnnaBridge 172:65be27845400 5306 * @retval None
AnnaBridge 172:65be27845400 5307 */
AnnaBridge 172:65be27845400 5308 __STATIC_INLINE void LL_ADC_ConfigAnalogWDThresholds(ADC_TypeDef *ADCx, uint32_t AWDy, uint32_t AWDThresholdHighValue, uint32_t AWDThresholdLowValue)
AnnaBridge 172:65be27845400 5309 {
AnnaBridge 172:65be27845400 5310 /* Set bits with content of parameter "AWDThresholdxxxValue" with bits */
AnnaBridge 172:65be27845400 5311 /* position in register and register position depending on parameter */
AnnaBridge 172:65be27845400 5312 /* "AWDy". */
AnnaBridge 172:65be27845400 5313 /* Parameters "AWDy" and "AWDThresholdxxxValue" are used with masks because */
AnnaBridge 172:65be27845400 5314 /* containing other bits reserved for other purpose. */
AnnaBridge 172:65be27845400 5315 #if defined(CORE_CM0PLUS)
AnnaBridge 172:65be27845400 5316 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->TR1, ((AWDy & ADC_AWD_TRX_REGOFFSET_MASK) >> ADC_AWD_TRX_REGOFFSET_POS));
AnnaBridge 172:65be27845400 5317 #else
AnnaBridge 172:65be27845400 5318 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->TR1, __ADC_MASK_SHIFT(AWDy, ADC_AWD_TRX_REGOFFSET_MASK));
AnnaBridge 172:65be27845400 5319 #endif
AnnaBridge 172:65be27845400 5320
AnnaBridge 172:65be27845400 5321 MODIFY_REG(*preg,
AnnaBridge 172:65be27845400 5322 ADC_TR1_HT1 | ADC_TR1_LT1,
AnnaBridge 172:65be27845400 5323 (AWDThresholdHighValue << ADC_TR1_HT1_BITOFFSET_POS) | AWDThresholdLowValue);
AnnaBridge 172:65be27845400 5324 }
AnnaBridge 172:65be27845400 5325
AnnaBridge 172:65be27845400 5326 /**
AnnaBridge 172:65be27845400 5327 * @brief Set ADC analog watchdog threshold value of threshold
AnnaBridge 172:65be27845400 5328 * high or low.
AnnaBridge 172:65be27845400 5329 * @note If values of both thresholds high or low must be set,
AnnaBridge 172:65be27845400 5330 * use function @ref LL_ADC_ConfigAnalogWDThresholds().
AnnaBridge 172:65be27845400 5331 * @note In case of ADC resolution different of 12 bits,
AnnaBridge 172:65be27845400 5332 * analog watchdog thresholds data require a specific shift.
AnnaBridge 172:65be27845400 5333 * Use helper macro @ref __LL_ADC_ANALOGWD_SET_THRESHOLD_RESOLUTION().
AnnaBridge 172:65be27845400 5334 * @note On this STM32 serie, there are 2 kinds of analog watchdog
AnnaBridge 172:65be27845400 5335 * instance:
AnnaBridge 172:65be27845400 5336 * - AWD standard (instance AWD1):
AnnaBridge 172:65be27845400 5337 * - channels monitored: can monitor 1 channel or all channels.
AnnaBridge 172:65be27845400 5338 * - groups monitored: ADC groups regular and-or injected.
AnnaBridge 172:65be27845400 5339 * - resolution: resolution is not limited (corresponds to
AnnaBridge 172:65be27845400 5340 * ADC resolution configured).
AnnaBridge 172:65be27845400 5341 * - AWD flexible (instances AWD2, AWD3):
AnnaBridge 172:65be27845400 5342 * - channels monitored: flexible on channels monitored, selection is
AnnaBridge 172:65be27845400 5343 * channel wise, from from 1 to all channels.
AnnaBridge 172:65be27845400 5344 * Specificity of this analog watchdog: Multiple channels can
AnnaBridge 172:65be27845400 5345 * be selected. For example:
AnnaBridge 172:65be27845400 5346 * (LL_ADC_AWD_CHANNEL4_REG_INJ | LL_ADC_AWD_CHANNEL5_REG_INJ | ...)
AnnaBridge 172:65be27845400 5347 * - groups monitored: not selection possible (monitoring on both
AnnaBridge 172:65be27845400 5348 * groups regular and injected).
AnnaBridge 172:65be27845400 5349 * Channels selected are monitored on groups regular and injected:
AnnaBridge 172:65be27845400 5350 * LL_ADC_AWD_CHANNELxx_REG_INJ (do not use parameters
AnnaBridge 172:65be27845400 5351 * LL_ADC_AWD_CHANNELxx_REG and LL_ADC_AWD_CHANNELxx_INJ)
AnnaBridge 172:65be27845400 5352 * - resolution: resolution is limited to 8 bits: if ADC resolution is
AnnaBridge 172:65be27845400 5353 * 12 bits the 4 LSB are ignored, if ADC resolution is 10 bits
AnnaBridge 172:65be27845400 5354 * the 2 LSB are ignored.
AnnaBridge 172:65be27845400 5355 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 5356 * ADC state:
AnnaBridge 172:65be27845400 5357 * ADC must be disabled or enabled without conversion on going
AnnaBridge 172:65be27845400 5358 * on either ADC groups regular or injected.
AnnaBridge 172:65be27845400 5359 * @rmtoll TR1 HT1 LL_ADC_SetAnalogWDThresholds\n
AnnaBridge 172:65be27845400 5360 * TR2 HT2 LL_ADC_SetAnalogWDThresholds\n
AnnaBridge 172:65be27845400 5361 * TR3 HT3 LL_ADC_SetAnalogWDThresholds\n
AnnaBridge 172:65be27845400 5362 * TR1 LT1 LL_ADC_SetAnalogWDThresholds\n
AnnaBridge 172:65be27845400 5363 * TR2 LT2 LL_ADC_SetAnalogWDThresholds\n
AnnaBridge 172:65be27845400 5364 * TR3 LT3 LL_ADC_SetAnalogWDThresholds
AnnaBridge 172:65be27845400 5365 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 5366 * @param AWDy This parameter can be one of the following values:
AnnaBridge 172:65be27845400 5367 * @arg @ref LL_ADC_AWD1
AnnaBridge 172:65be27845400 5368 * @arg @ref LL_ADC_AWD2
AnnaBridge 172:65be27845400 5369 * @arg @ref LL_ADC_AWD3
AnnaBridge 172:65be27845400 5370 * @param AWDThresholdsHighLow This parameter can be one of the following values:
AnnaBridge 172:65be27845400 5371 * @arg @ref LL_ADC_AWD_THRESHOLD_HIGH
AnnaBridge 172:65be27845400 5372 * @arg @ref LL_ADC_AWD_THRESHOLD_LOW
AnnaBridge 172:65be27845400 5373 * @param AWDThresholdValue Value between Min_Data=0x000 and Max_Data=0xFFF
AnnaBridge 172:65be27845400 5374 * @retval None
AnnaBridge 172:65be27845400 5375 */
AnnaBridge 172:65be27845400 5376 __STATIC_INLINE void LL_ADC_SetAnalogWDThresholds(ADC_TypeDef *ADCx, uint32_t AWDy, uint32_t AWDThresholdsHighLow, uint32_t AWDThresholdValue)
AnnaBridge 172:65be27845400 5377 {
AnnaBridge 172:65be27845400 5378 /* Set bits with content of parameter "AWDThresholdValue" with bits */
AnnaBridge 172:65be27845400 5379 /* position in register and register position depending on parameters */
AnnaBridge 172:65be27845400 5380 /* "AWDThresholdsHighLow" and "AWDy". */
AnnaBridge 172:65be27845400 5381 /* Parameters "AWDy" and "AWDThresholdValue" are used with masks because */
AnnaBridge 172:65be27845400 5382 /* containing other bits reserved for other purpose. */
AnnaBridge 172:65be27845400 5383 #if defined(CORE_CM0PLUS)
AnnaBridge 172:65be27845400 5384 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->TR1, ((AWDy & ADC_AWD_TRX_REGOFFSET_MASK) >> ADC_AWD_TRX_REGOFFSET_POS));
AnnaBridge 172:65be27845400 5385
AnnaBridge 172:65be27845400 5386 MODIFY_REG(*preg,
AnnaBridge 172:65be27845400 5387 AWDThresholdsHighLow,
AnnaBridge 172:65be27845400 5388 AWDThresholdValue << ((AWDThresholdsHighLow & ADC_AWD_TRX_BIT_HIGH_MASK) >> ADC_AWD_TRX_BIT_HIGH_SHIFT4));
AnnaBridge 172:65be27845400 5389 #else
AnnaBridge 172:65be27845400 5390 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->TR1, __ADC_MASK_SHIFT(AWDy, ADC_AWD_TRX_REGOFFSET_MASK));
AnnaBridge 172:65be27845400 5391
AnnaBridge 172:65be27845400 5392 MODIFY_REG(*preg,
AnnaBridge 172:65be27845400 5393 AWDThresholdsHighLow,
AnnaBridge 172:65be27845400 5394 AWDThresholdValue << POSITION_VAL(AWDThresholdsHighLow));
AnnaBridge 172:65be27845400 5395 #endif
AnnaBridge 172:65be27845400 5396 }
AnnaBridge 172:65be27845400 5397
AnnaBridge 172:65be27845400 5398 /**
AnnaBridge 172:65be27845400 5399 * @brief Get ADC analog watchdog threshold value of threshold high,
AnnaBridge 172:65be27845400 5400 * threshold low or raw data with ADC thresholds high and low
AnnaBridge 172:65be27845400 5401 * concatenated.
AnnaBridge 172:65be27845400 5402 * @note If raw data with ADC thresholds high and low is retrieved,
AnnaBridge 172:65be27845400 5403 * the data of each threshold high or low can be isolated
AnnaBridge 172:65be27845400 5404 * using helper macro:
AnnaBridge 172:65be27845400 5405 * @ref __LL_ADC_ANALOGWD_THRESHOLDS_HIGH_LOW().
AnnaBridge 172:65be27845400 5406 * @note In case of ADC resolution different of 12 bits,
AnnaBridge 172:65be27845400 5407 * analog watchdog thresholds data require a specific shift.
AnnaBridge 172:65be27845400 5408 * Use helper macro @ref __LL_ADC_ANALOGWD_GET_THRESHOLD_RESOLUTION().
AnnaBridge 172:65be27845400 5409 * @rmtoll TR1 HT1 LL_ADC_GetAnalogWDThresholds\n
AnnaBridge 172:65be27845400 5410 * TR2 HT2 LL_ADC_GetAnalogWDThresholds\n
AnnaBridge 172:65be27845400 5411 * TR3 HT3 LL_ADC_GetAnalogWDThresholds\n
AnnaBridge 172:65be27845400 5412 * TR1 LT1 LL_ADC_GetAnalogWDThresholds\n
AnnaBridge 172:65be27845400 5413 * TR2 LT2 LL_ADC_GetAnalogWDThresholds\n
AnnaBridge 172:65be27845400 5414 * TR3 LT3 LL_ADC_GetAnalogWDThresholds
AnnaBridge 172:65be27845400 5415 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 5416 * @param AWDy This parameter can be one of the following values:
AnnaBridge 172:65be27845400 5417 * @arg @ref LL_ADC_AWD1
AnnaBridge 172:65be27845400 5418 * @arg @ref LL_ADC_AWD2
AnnaBridge 172:65be27845400 5419 * @arg @ref LL_ADC_AWD3
AnnaBridge 172:65be27845400 5420 * @param AWDThresholdsHighLow This parameter can be one of the following values:
AnnaBridge 172:65be27845400 5421 * @arg @ref LL_ADC_AWD_THRESHOLD_HIGH
AnnaBridge 172:65be27845400 5422 * @arg @ref LL_ADC_AWD_THRESHOLD_LOW
AnnaBridge 172:65be27845400 5423 * @arg @ref LL_ADC_AWD_THRESHOLDS_HIGH_LOW
AnnaBridge 172:65be27845400 5424 * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
AnnaBridge 172:65be27845400 5425 */
AnnaBridge 172:65be27845400 5426 __STATIC_INLINE uint32_t LL_ADC_GetAnalogWDThresholds(ADC_TypeDef *ADCx, uint32_t AWDy, uint32_t AWDThresholdsHighLow)
AnnaBridge 172:65be27845400 5427 {
AnnaBridge 172:65be27845400 5428 #if defined(CORE_CM0PLUS)
AnnaBridge 172:65be27845400 5429 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->TR1, ((AWDy & ADC_AWD_TRX_REGOFFSET_MASK) >> ADC_AWD_TRX_REGOFFSET_POS));
AnnaBridge 172:65be27845400 5430
AnnaBridge 172:65be27845400 5431 return (uint32_t)(READ_BIT(*preg,
AnnaBridge 172:65be27845400 5432 (AWDThresholdsHighLow | ADC_TR1_LT1))
AnnaBridge 172:65be27845400 5433 >> (((AWDThresholdsHighLow & ADC_AWD_TRX_BIT_HIGH_MASK) >> ADC_AWD_TRX_BIT_HIGH_SHIFT4) & ~(AWDThresholdsHighLow & ADC_TR1_LT1))
AnnaBridge 172:65be27845400 5434 );
AnnaBridge 172:65be27845400 5435 #else
AnnaBridge 172:65be27845400 5436 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->TR1, __ADC_MASK_SHIFT(AWDy, ADC_AWD_TRX_REGOFFSET_MASK));
AnnaBridge 172:65be27845400 5437
AnnaBridge 172:65be27845400 5438 return (uint32_t)(READ_BIT(*preg,
AnnaBridge 172:65be27845400 5439 (AWDThresholdsHighLow | ADC_TR1_LT1))
AnnaBridge 172:65be27845400 5440 >> POSITION_VAL(AWDThresholdsHighLow)
AnnaBridge 172:65be27845400 5441 );
AnnaBridge 172:65be27845400 5442 #endif
AnnaBridge 172:65be27845400 5443 }
AnnaBridge 172:65be27845400 5444
AnnaBridge 172:65be27845400 5445 /**
AnnaBridge 172:65be27845400 5446 * @}
AnnaBridge 172:65be27845400 5447 */
AnnaBridge 172:65be27845400 5448
AnnaBridge 172:65be27845400 5449 /** @defgroup ADC_LL_EF_Configuration_ADC_oversampling Configuration of ADC transversal scope: oversampling
AnnaBridge 172:65be27845400 5450 * @{
AnnaBridge 172:65be27845400 5451 */
AnnaBridge 172:65be27845400 5452
AnnaBridge 172:65be27845400 5453 /**
AnnaBridge 172:65be27845400 5454 * @brief Set ADC oversampling scope: ADC groups regular and-or injected
AnnaBridge 172:65be27845400 5455 * (availability of ADC group injected depends on STM32 families).
AnnaBridge 172:65be27845400 5456 * @note If both groups regular and injected are selected,
AnnaBridge 172:65be27845400 5457 * specify behavior of ADC group injected interrupting
AnnaBridge 172:65be27845400 5458 * group regular: when ADC group injected is triggered,
AnnaBridge 172:65be27845400 5459 * the oversampling on ADC group regular is either
AnnaBridge 172:65be27845400 5460 * temporary stopped and continued, or resumed from start
AnnaBridge 172:65be27845400 5461 * (oversampler buffer reset).
AnnaBridge 172:65be27845400 5462 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 5463 * ADC state:
AnnaBridge 172:65be27845400 5464 * ADC must be disabled or enabled without conversion on going
AnnaBridge 172:65be27845400 5465 * on either groups regular or injected.
AnnaBridge 172:65be27845400 5466 * @rmtoll CFGR2 ROVSE LL_ADC_SetOverSamplingScope\n
AnnaBridge 172:65be27845400 5467 * CFGR2 JOVSE LL_ADC_SetOverSamplingScope\n
AnnaBridge 172:65be27845400 5468 * CFGR2 ROVSM LL_ADC_SetOverSamplingScope
AnnaBridge 172:65be27845400 5469 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 5470 * @param OvsScope This parameter can be one of the following values:
AnnaBridge 172:65be27845400 5471 * @arg @ref LL_ADC_OVS_DISABLE
AnnaBridge 172:65be27845400 5472 * @arg @ref LL_ADC_OVS_GRP_REGULAR_CONTINUED
AnnaBridge 172:65be27845400 5473 * @arg @ref LL_ADC_OVS_GRP_REGULAR_RESUMED
AnnaBridge 172:65be27845400 5474 * @arg @ref LL_ADC_OVS_GRP_INJECTED
AnnaBridge 172:65be27845400 5475 * @arg @ref LL_ADC_OVS_GRP_INJ_REG_RESUMED
AnnaBridge 172:65be27845400 5476 * @retval None
AnnaBridge 172:65be27845400 5477 */
AnnaBridge 172:65be27845400 5478 __STATIC_INLINE void LL_ADC_SetOverSamplingScope(ADC_TypeDef *ADCx, uint32_t OvsScope)
AnnaBridge 172:65be27845400 5479 {
AnnaBridge 172:65be27845400 5480 MODIFY_REG(ADCx->CFGR2, ADC_CFGR2_ROVSE | ADC_CFGR2_JOVSE | ADC_CFGR2_ROVSM, OvsScope);
AnnaBridge 172:65be27845400 5481 }
AnnaBridge 172:65be27845400 5482
AnnaBridge 172:65be27845400 5483 /**
AnnaBridge 172:65be27845400 5484 * @brief Get ADC oversampling scope: ADC groups regular and-or injected
AnnaBridge 172:65be27845400 5485 * (availability of ADC group injected depends on STM32 families).
AnnaBridge 172:65be27845400 5486 * @note If both groups regular and injected are selected,
AnnaBridge 172:65be27845400 5487 * specify behavior of ADC group injected interrupting
AnnaBridge 172:65be27845400 5488 * group regular: when ADC group injected is triggered,
AnnaBridge 172:65be27845400 5489 * the oversampling on ADC group regular is either
AnnaBridge 172:65be27845400 5490 * temporary stopped and continued, or resumed from start
AnnaBridge 172:65be27845400 5491 * (oversampler buffer reset).
AnnaBridge 172:65be27845400 5492 * @rmtoll CFGR2 ROVSE LL_ADC_GetOverSamplingScope\n
AnnaBridge 172:65be27845400 5493 * CFGR2 JOVSE LL_ADC_GetOverSamplingScope\n
AnnaBridge 172:65be27845400 5494 * CFGR2 ROVSM LL_ADC_GetOverSamplingScope
AnnaBridge 172:65be27845400 5495 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 5496 * @retval Returned value can be one of the following values:
AnnaBridge 172:65be27845400 5497 * @arg @ref LL_ADC_OVS_DISABLE
AnnaBridge 172:65be27845400 5498 * @arg @ref LL_ADC_OVS_GRP_REGULAR_CONTINUED
AnnaBridge 172:65be27845400 5499 * @arg @ref LL_ADC_OVS_GRP_REGULAR_RESUMED
AnnaBridge 172:65be27845400 5500 * @arg @ref LL_ADC_OVS_GRP_INJECTED
AnnaBridge 172:65be27845400 5501 * @arg @ref LL_ADC_OVS_GRP_INJ_REG_RESUMED
AnnaBridge 172:65be27845400 5502 */
AnnaBridge 172:65be27845400 5503 __STATIC_INLINE uint32_t LL_ADC_GetOverSamplingScope(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 5504 {
AnnaBridge 172:65be27845400 5505 return (uint32_t)(READ_BIT(ADCx->CFGR2, ADC_CFGR2_ROVSE | ADC_CFGR2_JOVSE | ADC_CFGR2_ROVSM));
AnnaBridge 172:65be27845400 5506 }
AnnaBridge 172:65be27845400 5507
AnnaBridge 172:65be27845400 5508 /**
AnnaBridge 172:65be27845400 5509 * @brief Set ADC oversampling discontinuous mode (triggered mode)
AnnaBridge 172:65be27845400 5510 * on the selected ADC group.
AnnaBridge 172:65be27845400 5511 * @note Number of oversampled conversions are done either in:
AnnaBridge 172:65be27845400 5512 * - continuous mode (all conversions of oversampling ratio
AnnaBridge 172:65be27845400 5513 * are done from 1 trigger)
AnnaBridge 172:65be27845400 5514 * - discontinuous mode (each conversion of oversampling ratio
AnnaBridge 172:65be27845400 5515 * needs a trigger)
AnnaBridge 172:65be27845400 5516 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 5517 * ADC state:
AnnaBridge 172:65be27845400 5518 * ADC must be disabled or enabled without conversion on going
AnnaBridge 172:65be27845400 5519 * on group regular.
AnnaBridge 172:65be27845400 5520 * @note On this STM32 serie, oversampling discontinuous mode
AnnaBridge 172:65be27845400 5521 * (triggered mode) can be used only when oversampling is
AnnaBridge 172:65be27845400 5522 * set on group regular only and in resumed mode.
AnnaBridge 172:65be27845400 5523 * @rmtoll CFGR2 TROVS LL_ADC_SetOverSamplingDiscont
AnnaBridge 172:65be27845400 5524 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 5525 * @param OverSamplingDiscont This parameter can be one of the following values:
AnnaBridge 172:65be27845400 5526 * @arg @ref LL_ADC_OVS_REG_CONT
AnnaBridge 172:65be27845400 5527 * @arg @ref LL_ADC_OVS_REG_DISCONT
AnnaBridge 172:65be27845400 5528 * @retval None
AnnaBridge 172:65be27845400 5529 */
AnnaBridge 172:65be27845400 5530 __STATIC_INLINE void LL_ADC_SetOverSamplingDiscont(ADC_TypeDef *ADCx, uint32_t OverSamplingDiscont)
AnnaBridge 172:65be27845400 5531 {
AnnaBridge 172:65be27845400 5532 MODIFY_REG(ADCx->CFGR2, ADC_CFGR2_TROVS, OverSamplingDiscont);
AnnaBridge 172:65be27845400 5533 }
AnnaBridge 172:65be27845400 5534
AnnaBridge 172:65be27845400 5535 /**
AnnaBridge 172:65be27845400 5536 * @brief Get ADC oversampling discontinuous mode (triggered mode)
AnnaBridge 172:65be27845400 5537 * on the selected ADC group.
AnnaBridge 172:65be27845400 5538 * @note Number of oversampled conversions are done either in:
AnnaBridge 172:65be27845400 5539 * - continuous mode (all conversions of oversampling ratio
AnnaBridge 172:65be27845400 5540 * are done from 1 trigger)
AnnaBridge 172:65be27845400 5541 * - discontinuous mode (each conversion of oversampling ratio
AnnaBridge 172:65be27845400 5542 * needs a trigger)
AnnaBridge 172:65be27845400 5543 * @rmtoll CFGR2 TROVS LL_ADC_GetOverSamplingDiscont
AnnaBridge 172:65be27845400 5544 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 5545 * @retval Returned value can be one of the following values:
AnnaBridge 172:65be27845400 5546 * @arg @ref LL_ADC_OVS_REG_CONT
AnnaBridge 172:65be27845400 5547 * @arg @ref LL_ADC_OVS_REG_DISCONT
AnnaBridge 172:65be27845400 5548 */
AnnaBridge 172:65be27845400 5549 __STATIC_INLINE uint32_t LL_ADC_GetOverSamplingDiscont(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 5550 {
AnnaBridge 172:65be27845400 5551 return (uint32_t)(READ_BIT(ADCx->CFGR2, ADC_CFGR2_TROVS));
AnnaBridge 172:65be27845400 5552 }
AnnaBridge 172:65be27845400 5553
AnnaBridge 172:65be27845400 5554 /**
AnnaBridge 172:65be27845400 5555 * @brief Set ADC oversampling
AnnaBridge 172:65be27845400 5556 * (impacting both ADC groups regular and injected)
AnnaBridge 172:65be27845400 5557 * @note This function set the 2 items of oversampling configuration:
AnnaBridge 172:65be27845400 5558 * - ratio
AnnaBridge 172:65be27845400 5559 * - shift
AnnaBridge 172:65be27845400 5560 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 5561 * ADC state:
AnnaBridge 172:65be27845400 5562 * ADC must be disabled or enabled without conversion on going
AnnaBridge 172:65be27845400 5563 * on either groups regular or injected.
AnnaBridge 172:65be27845400 5564 * @rmtoll CFGR2 OVSS LL_ADC_ConfigOverSamplingRatioShift\n
AnnaBridge 172:65be27845400 5565 * CFGR2 OVSR LL_ADC_ConfigOverSamplingRatioShift
AnnaBridge 172:65be27845400 5566 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 5567 * @param Ratio This parameter can be one of the following values:
AnnaBridge 172:65be27845400 5568 * @arg @ref LL_ADC_OVS_RATIO_2
AnnaBridge 172:65be27845400 5569 * @arg @ref LL_ADC_OVS_RATIO_4
AnnaBridge 172:65be27845400 5570 * @arg @ref LL_ADC_OVS_RATIO_8
AnnaBridge 172:65be27845400 5571 * @arg @ref LL_ADC_OVS_RATIO_16
AnnaBridge 172:65be27845400 5572 * @arg @ref LL_ADC_OVS_RATIO_32
AnnaBridge 172:65be27845400 5573 * @arg @ref LL_ADC_OVS_RATIO_64
AnnaBridge 172:65be27845400 5574 * @arg @ref LL_ADC_OVS_RATIO_128
AnnaBridge 172:65be27845400 5575 * @arg @ref LL_ADC_OVS_RATIO_256
AnnaBridge 172:65be27845400 5576 * @param Shift This parameter can be one of the following values:
AnnaBridge 172:65be27845400 5577 * @arg @ref LL_ADC_OVS_SHIFT_NONE
AnnaBridge 172:65be27845400 5578 * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_1
AnnaBridge 172:65be27845400 5579 * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_2
AnnaBridge 172:65be27845400 5580 * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_3
AnnaBridge 172:65be27845400 5581 * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_4
AnnaBridge 172:65be27845400 5582 * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_5
AnnaBridge 172:65be27845400 5583 * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_6
AnnaBridge 172:65be27845400 5584 * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_7
AnnaBridge 172:65be27845400 5585 * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_8
AnnaBridge 172:65be27845400 5586 * @retval None
AnnaBridge 172:65be27845400 5587 */
AnnaBridge 172:65be27845400 5588 __STATIC_INLINE void LL_ADC_ConfigOverSamplingRatioShift(ADC_TypeDef *ADCx, uint32_t Ratio, uint32_t Shift)
AnnaBridge 172:65be27845400 5589 {
AnnaBridge 172:65be27845400 5590 MODIFY_REG(ADCx->CFGR2, (ADC_CFGR2_OVSS | ADC_CFGR2_OVSR), (Shift | Ratio));
AnnaBridge 172:65be27845400 5591 }
AnnaBridge 172:65be27845400 5592
AnnaBridge 172:65be27845400 5593 /**
AnnaBridge 172:65be27845400 5594 * @brief Get ADC oversampling ratio
AnnaBridge 172:65be27845400 5595 * (impacting both ADC groups regular and injected)
AnnaBridge 172:65be27845400 5596 * @rmtoll CFGR2 OVSR LL_ADC_GetOverSamplingRatio
AnnaBridge 172:65be27845400 5597 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 5598 * @retval Ratio This parameter can be one of the following values:
AnnaBridge 172:65be27845400 5599 * @arg @ref LL_ADC_OVS_RATIO_2
AnnaBridge 172:65be27845400 5600 * @arg @ref LL_ADC_OVS_RATIO_4
AnnaBridge 172:65be27845400 5601 * @arg @ref LL_ADC_OVS_RATIO_8
AnnaBridge 172:65be27845400 5602 * @arg @ref LL_ADC_OVS_RATIO_16
AnnaBridge 172:65be27845400 5603 * @arg @ref LL_ADC_OVS_RATIO_32
AnnaBridge 172:65be27845400 5604 * @arg @ref LL_ADC_OVS_RATIO_64
AnnaBridge 172:65be27845400 5605 * @arg @ref LL_ADC_OVS_RATIO_128
AnnaBridge 172:65be27845400 5606 * @arg @ref LL_ADC_OVS_RATIO_256
AnnaBridge 172:65be27845400 5607 */
AnnaBridge 172:65be27845400 5608 __STATIC_INLINE uint32_t LL_ADC_GetOverSamplingRatio(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 5609 {
AnnaBridge 172:65be27845400 5610 return (uint32_t)(READ_BIT(ADCx->CFGR2, ADC_CFGR2_OVSR));
AnnaBridge 172:65be27845400 5611 }
AnnaBridge 172:65be27845400 5612
AnnaBridge 172:65be27845400 5613 /**
AnnaBridge 172:65be27845400 5614 * @brief Get ADC oversampling shift
AnnaBridge 172:65be27845400 5615 * (impacting both ADC groups regular and injected)
AnnaBridge 172:65be27845400 5616 * @rmtoll CFGR2 OVSS LL_ADC_GetOverSamplingShift
AnnaBridge 172:65be27845400 5617 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 5618 * @retval Shift This parameter can be one of the following values:
AnnaBridge 172:65be27845400 5619 * @arg @ref LL_ADC_OVS_SHIFT_NONE
AnnaBridge 172:65be27845400 5620 * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_1
AnnaBridge 172:65be27845400 5621 * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_2
AnnaBridge 172:65be27845400 5622 * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_3
AnnaBridge 172:65be27845400 5623 * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_4
AnnaBridge 172:65be27845400 5624 * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_5
AnnaBridge 172:65be27845400 5625 * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_6
AnnaBridge 172:65be27845400 5626 * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_7
AnnaBridge 172:65be27845400 5627 * @arg @ref LL_ADC_OVS_SHIFT_RIGHT_8
AnnaBridge 172:65be27845400 5628 */
AnnaBridge 172:65be27845400 5629 __STATIC_INLINE uint32_t LL_ADC_GetOverSamplingShift(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 5630 {
AnnaBridge 172:65be27845400 5631 return (uint32_t)(READ_BIT(ADCx->CFGR2, ADC_CFGR2_OVSS));
AnnaBridge 172:65be27845400 5632 }
AnnaBridge 172:65be27845400 5633
AnnaBridge 172:65be27845400 5634 /**
AnnaBridge 172:65be27845400 5635 * @}
AnnaBridge 172:65be27845400 5636 */
AnnaBridge 172:65be27845400 5637
AnnaBridge 172:65be27845400 5638 /** @defgroup ADC_LL_EF_Configuration_ADC_Multimode Configuration of ADC hierarchical scope: multimode
AnnaBridge 172:65be27845400 5639 * @{
AnnaBridge 172:65be27845400 5640 */
AnnaBridge 172:65be27845400 5641
AnnaBridge 172:65be27845400 5642 #if defined(ADC_MULTIMODE_SUPPORT)
AnnaBridge 172:65be27845400 5643 /**
AnnaBridge 172:65be27845400 5644 * @brief Set ADC multimode configuration to operate in independent mode
AnnaBridge 172:65be27845400 5645 * or multimode (for devices with several ADC instances).
AnnaBridge 172:65be27845400 5646 * @note If multimode configuration: the selected ADC instance is
AnnaBridge 172:65be27845400 5647 * either master or slave depending on hardware.
AnnaBridge 172:65be27845400 5648 * Refer to reference manual.
AnnaBridge 172:65be27845400 5649 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 5650 * ADC state:
AnnaBridge 172:65be27845400 5651 * All ADC instances of the ADC common group must be disabled.
AnnaBridge 172:65be27845400 5652 * This check can be done with function @ref LL_ADC_IsEnabled() for each
AnnaBridge 172:65be27845400 5653 * ADC instance or by using helper macro
AnnaBridge 172:65be27845400 5654 * @ref __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE().
AnnaBridge 172:65be27845400 5655 * @rmtoll CCR DUAL LL_ADC_SetMultimode
AnnaBridge 172:65be27845400 5656 * @param ADCxy_COMMON ADC common instance
AnnaBridge 172:65be27845400 5657 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 172:65be27845400 5658 * @param Multimode This parameter can be one of the following values:
AnnaBridge 172:65be27845400 5659 * @arg @ref LL_ADC_MULTI_INDEPENDENT
AnnaBridge 172:65be27845400 5660 * @arg @ref LL_ADC_MULTI_DUAL_REG_SIMULT
AnnaBridge 172:65be27845400 5661 * @arg @ref LL_ADC_MULTI_DUAL_REG_INTERL
AnnaBridge 172:65be27845400 5662 * @arg @ref LL_ADC_MULTI_DUAL_INJ_SIMULT
AnnaBridge 172:65be27845400 5663 * @arg @ref LL_ADC_MULTI_DUAL_INJ_ALTERN
AnnaBridge 172:65be27845400 5664 * @arg @ref LL_ADC_MULTI_DUAL_REG_SIM_INJ_SIM
AnnaBridge 172:65be27845400 5665 * @arg @ref LL_ADC_MULTI_DUAL_REG_SIM_INJ_ALT
AnnaBridge 172:65be27845400 5666 * @arg @ref LL_ADC_MULTI_DUAL_REG_INT_INJ_SIM
AnnaBridge 172:65be27845400 5667 * @retval None
AnnaBridge 172:65be27845400 5668 */
AnnaBridge 172:65be27845400 5669 __STATIC_INLINE void LL_ADC_SetMultimode(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t Multimode)
AnnaBridge 172:65be27845400 5670 {
AnnaBridge 172:65be27845400 5671 MODIFY_REG(ADCxy_COMMON->CCR, ADC_CCR_DUAL, Multimode);
AnnaBridge 172:65be27845400 5672 }
AnnaBridge 172:65be27845400 5673
AnnaBridge 172:65be27845400 5674 /**
AnnaBridge 172:65be27845400 5675 * @brief Get ADC multimode configuration to operate in independent mode
AnnaBridge 172:65be27845400 5676 * or multimode (for devices with several ADC instances).
AnnaBridge 172:65be27845400 5677 * @note If multimode configuration: the selected ADC instance is
AnnaBridge 172:65be27845400 5678 * either master or slave depending on hardware.
AnnaBridge 172:65be27845400 5679 * Refer to reference manual.
AnnaBridge 172:65be27845400 5680 * @rmtoll CCR DUAL LL_ADC_GetMultimode
AnnaBridge 172:65be27845400 5681 * @param ADCxy_COMMON ADC common instance
AnnaBridge 172:65be27845400 5682 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 172:65be27845400 5683 * @retval Returned value can be one of the following values:
AnnaBridge 172:65be27845400 5684 * @arg @ref LL_ADC_MULTI_INDEPENDENT
AnnaBridge 172:65be27845400 5685 * @arg @ref LL_ADC_MULTI_DUAL_REG_SIMULT
AnnaBridge 172:65be27845400 5686 * @arg @ref LL_ADC_MULTI_DUAL_REG_INTERL
AnnaBridge 172:65be27845400 5687 * @arg @ref LL_ADC_MULTI_DUAL_INJ_SIMULT
AnnaBridge 172:65be27845400 5688 * @arg @ref LL_ADC_MULTI_DUAL_INJ_ALTERN
AnnaBridge 172:65be27845400 5689 * @arg @ref LL_ADC_MULTI_DUAL_REG_SIM_INJ_SIM
AnnaBridge 172:65be27845400 5690 * @arg @ref LL_ADC_MULTI_DUAL_REG_SIM_INJ_ALT
AnnaBridge 172:65be27845400 5691 * @arg @ref LL_ADC_MULTI_DUAL_REG_INT_INJ_SIM
AnnaBridge 172:65be27845400 5692 */
AnnaBridge 172:65be27845400 5693 __STATIC_INLINE uint32_t LL_ADC_GetMultimode(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 172:65be27845400 5694 {
AnnaBridge 172:65be27845400 5695 return (uint32_t)(READ_BIT(ADCxy_COMMON->CCR, ADC_CCR_DUAL));
AnnaBridge 172:65be27845400 5696 }
AnnaBridge 172:65be27845400 5697
AnnaBridge 172:65be27845400 5698 /**
AnnaBridge 172:65be27845400 5699 * @brief Set ADC multimode conversion data transfer: no transfer
AnnaBridge 172:65be27845400 5700 * or transfer by DMA.
AnnaBridge 172:65be27845400 5701 * @note If ADC multimode transfer by DMA is not selected:
AnnaBridge 172:65be27845400 5702 * each ADC uses its own DMA channel, with its individual
AnnaBridge 172:65be27845400 5703 * DMA transfer settings.
AnnaBridge 172:65be27845400 5704 * If ADC multimode transfer by DMA is selected:
AnnaBridge 172:65be27845400 5705 * One DMA channel is used for both ADC (DMA of ADC master)
AnnaBridge 172:65be27845400 5706 * Specifies the DMA requests mode:
AnnaBridge 172:65be27845400 5707 * - Limited mode (One shot mode): DMA transfer requests are stopped
AnnaBridge 172:65be27845400 5708 * when number of DMA data transfers (number of
AnnaBridge 172:65be27845400 5709 * ADC conversions) is reached.
AnnaBridge 172:65be27845400 5710 * This ADC mode is intended to be used with DMA mode non-circular.
AnnaBridge 172:65be27845400 5711 * - Unlimited mode: DMA transfer requests are unlimited,
AnnaBridge 172:65be27845400 5712 * whatever number of DMA data transfers (number of
AnnaBridge 172:65be27845400 5713 * ADC conversions).
AnnaBridge 172:65be27845400 5714 * This ADC mode is intended to be used with DMA mode circular.
AnnaBridge 172:65be27845400 5715 * @note If ADC DMA requests mode is set to unlimited and DMA is set to
AnnaBridge 172:65be27845400 5716 * mode non-circular:
AnnaBridge 172:65be27845400 5717 * when DMA transfers size will be reached, DMA will stop transfers of
AnnaBridge 172:65be27845400 5718 * ADC conversions data ADC will raise an overrun error
AnnaBridge 172:65be27845400 5719 * (overrun flag and interruption if enabled).
AnnaBridge 172:65be27845400 5720 * @note How to retrieve multimode conversion data:
AnnaBridge 172:65be27845400 5721 * Whatever multimode transfer by DMA setting: using function
AnnaBridge 172:65be27845400 5722 * @ref LL_ADC_REG_ReadMultiConversionData32().
AnnaBridge 172:65be27845400 5723 * If ADC multimode transfer by DMA is selected: conversion data
AnnaBridge 172:65be27845400 5724 * is a raw data with ADC master and slave concatenated.
AnnaBridge 172:65be27845400 5725 * A macro is available to get the conversion data of
AnnaBridge 172:65be27845400 5726 * ADC master or ADC slave: see helper macro
AnnaBridge 172:65be27845400 5727 * @ref __LL_ADC_MULTI_CONV_DATA_MASTER_SLAVE().
AnnaBridge 172:65be27845400 5728 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 5729 * ADC state:
AnnaBridge 172:65be27845400 5730 * All ADC instances of the ADC common group must be disabled
AnnaBridge 172:65be27845400 5731 * or enabled without conversion on going on group regular.
AnnaBridge 172:65be27845400 5732 * @rmtoll CCR MDMA LL_ADC_SetMultiDMATransfer\n
AnnaBridge 172:65be27845400 5733 * CCR DMACFG LL_ADC_SetMultiDMATransfer
AnnaBridge 172:65be27845400 5734 * @param ADCxy_COMMON ADC common instance
AnnaBridge 172:65be27845400 5735 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 172:65be27845400 5736 * @param MultiDMATransfer This parameter can be one of the following values:
AnnaBridge 172:65be27845400 5737 * @arg @ref LL_ADC_MULTI_REG_DMA_EACH_ADC
AnnaBridge 172:65be27845400 5738 * @arg @ref LL_ADC_MULTI_REG_DMA_LIMIT_RES12_10B
AnnaBridge 172:65be27845400 5739 * @arg @ref LL_ADC_MULTI_REG_DMA_LIMIT_RES8_6B
AnnaBridge 172:65be27845400 5740 * @arg @ref LL_ADC_MULTI_REG_DMA_UNLMT_RES12_10B
AnnaBridge 172:65be27845400 5741 * @arg @ref LL_ADC_MULTI_REG_DMA_UNLMT_RES8_6B
AnnaBridge 172:65be27845400 5742 * @retval None
AnnaBridge 172:65be27845400 5743 */
AnnaBridge 172:65be27845400 5744 __STATIC_INLINE void LL_ADC_SetMultiDMATransfer(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t MultiDMATransfer)
AnnaBridge 172:65be27845400 5745 {
AnnaBridge 172:65be27845400 5746 MODIFY_REG(ADCxy_COMMON->CCR, ADC_CCR_MDMA | ADC_CCR_DMACFG, MultiDMATransfer);
AnnaBridge 172:65be27845400 5747 }
AnnaBridge 172:65be27845400 5748
AnnaBridge 172:65be27845400 5749 /**
AnnaBridge 172:65be27845400 5750 * @brief Get ADC multimode conversion data transfer: no transfer
AnnaBridge 172:65be27845400 5751 * or transfer by DMA.
AnnaBridge 172:65be27845400 5752 * @note If ADC multimode transfer by DMA is not selected:
AnnaBridge 172:65be27845400 5753 * each ADC uses its own DMA channel, with its individual
AnnaBridge 172:65be27845400 5754 * DMA transfer settings.
AnnaBridge 172:65be27845400 5755 * If ADC multimode transfer by DMA is selected:
AnnaBridge 172:65be27845400 5756 * One DMA channel is used for both ADC (DMA of ADC master)
AnnaBridge 172:65be27845400 5757 * Specifies the DMA requests mode:
AnnaBridge 172:65be27845400 5758 * - Limited mode (One shot mode): DMA transfer requests are stopped
AnnaBridge 172:65be27845400 5759 * when number of DMA data transfers (number of
AnnaBridge 172:65be27845400 5760 * ADC conversions) is reached.
AnnaBridge 172:65be27845400 5761 * This ADC mode is intended to be used with DMA mode non-circular.
AnnaBridge 172:65be27845400 5762 * - Unlimited mode: DMA transfer requests are unlimited,
AnnaBridge 172:65be27845400 5763 * whatever number of DMA data transfers (number of
AnnaBridge 172:65be27845400 5764 * ADC conversions).
AnnaBridge 172:65be27845400 5765 * This ADC mode is intended to be used with DMA mode circular.
AnnaBridge 172:65be27845400 5766 * @note If ADC DMA requests mode is set to unlimited and DMA is set to
AnnaBridge 172:65be27845400 5767 * mode non-circular:
AnnaBridge 172:65be27845400 5768 * when DMA transfers size will be reached, DMA will stop transfers of
AnnaBridge 172:65be27845400 5769 * ADC conversions data ADC will raise an overrun error
AnnaBridge 172:65be27845400 5770 * (overrun flag and interruption if enabled).
AnnaBridge 172:65be27845400 5771 * @note How to retrieve multimode conversion data:
AnnaBridge 172:65be27845400 5772 * Whatever multimode transfer by DMA setting: using function
AnnaBridge 172:65be27845400 5773 * @ref LL_ADC_REG_ReadMultiConversionData32().
AnnaBridge 172:65be27845400 5774 * If ADC multimode transfer by DMA is selected: conversion data
AnnaBridge 172:65be27845400 5775 * is a raw data with ADC master and slave concatenated.
AnnaBridge 172:65be27845400 5776 * A macro is available to get the conversion data of
AnnaBridge 172:65be27845400 5777 * ADC master or ADC slave: see helper macro
AnnaBridge 172:65be27845400 5778 * @ref __LL_ADC_MULTI_CONV_DATA_MASTER_SLAVE().
AnnaBridge 172:65be27845400 5779 * @rmtoll CCR MDMA LL_ADC_GetMultiDMATransfer\n
AnnaBridge 172:65be27845400 5780 * CCR DMACFG LL_ADC_GetMultiDMATransfer
AnnaBridge 172:65be27845400 5781 * @param ADCxy_COMMON ADC common instance
AnnaBridge 172:65be27845400 5782 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 172:65be27845400 5783 * @retval Returned value can be one of the following values:
AnnaBridge 172:65be27845400 5784 * @arg @ref LL_ADC_MULTI_REG_DMA_EACH_ADC
AnnaBridge 172:65be27845400 5785 * @arg @ref LL_ADC_MULTI_REG_DMA_LIMIT_RES12_10B
AnnaBridge 172:65be27845400 5786 * @arg @ref LL_ADC_MULTI_REG_DMA_LIMIT_RES8_6B
AnnaBridge 172:65be27845400 5787 * @arg @ref LL_ADC_MULTI_REG_DMA_UNLMT_RES12_10B
AnnaBridge 172:65be27845400 5788 * @arg @ref LL_ADC_MULTI_REG_DMA_UNLMT_RES8_6B
AnnaBridge 172:65be27845400 5789 */
AnnaBridge 172:65be27845400 5790 __STATIC_INLINE uint32_t LL_ADC_GetMultiDMATransfer(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 172:65be27845400 5791 {
AnnaBridge 172:65be27845400 5792 return (uint32_t)(READ_BIT(ADCxy_COMMON->CCR, ADC_CCR_MDMA | ADC_CCR_DMACFG));
AnnaBridge 172:65be27845400 5793 }
AnnaBridge 172:65be27845400 5794
AnnaBridge 172:65be27845400 5795 /**
AnnaBridge 172:65be27845400 5796 * @brief Set ADC multimode delay between 2 sampling phases.
AnnaBridge 172:65be27845400 5797 * @note The sampling delay range depends on ADC resolution:
AnnaBridge 172:65be27845400 5798 * - ADC resolution 12 bits can have maximum delay of 12 cycles.
AnnaBridge 172:65be27845400 5799 * - ADC resolution 10 bits can have maximum delay of 10 cycles.
AnnaBridge 172:65be27845400 5800 * - ADC resolution 8 bits can have maximum delay of 8 cycles.
AnnaBridge 172:65be27845400 5801 * - ADC resolution 6 bits can have maximum delay of 6 cycles.
AnnaBridge 172:65be27845400 5802 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 5803 * ADC state:
AnnaBridge 172:65be27845400 5804 * All ADC instances of the ADC common group must be disabled.
AnnaBridge 172:65be27845400 5805 * This check can be done with function @ref LL_ADC_IsEnabled() for each
AnnaBridge 172:65be27845400 5806 * ADC instance or by using helper macro helper macro
AnnaBridge 172:65be27845400 5807 * @ref __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE().
AnnaBridge 172:65be27845400 5808 * @rmtoll CCR DELAY LL_ADC_SetMultiTwoSamplingDelay
AnnaBridge 172:65be27845400 5809 * @param ADCxy_COMMON ADC common instance
AnnaBridge 172:65be27845400 5810 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 172:65be27845400 5811 * @param MultiTwoSamplingDelay This parameter can be one of the following values:
AnnaBridge 172:65be27845400 5812 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_1CYCLE
AnnaBridge 172:65be27845400 5813 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_2CYCLES
AnnaBridge 172:65be27845400 5814 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_3CYCLES
AnnaBridge 172:65be27845400 5815 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_4CYCLES
AnnaBridge 172:65be27845400 5816 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_5CYCLES
AnnaBridge 172:65be27845400 5817 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_6CYCLES (1)
AnnaBridge 172:65be27845400 5818 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_7CYCLES (1)
AnnaBridge 172:65be27845400 5819 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_8CYCLES (2)
AnnaBridge 172:65be27845400 5820 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_9CYCLES (2)
AnnaBridge 172:65be27845400 5821 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_10CYCLES (2)
AnnaBridge 172:65be27845400 5822 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_11CYCLES (3)
AnnaBridge 172:65be27845400 5823 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_12CYCLES (3)
AnnaBridge 172:65be27845400 5824 *
AnnaBridge 172:65be27845400 5825 * (1) Parameter available only if ADC resolution is 12, 10 or 8 bits.\n
AnnaBridge 172:65be27845400 5826 * (2) Parameter available only if ADC resolution is 12 or 10 bits.\n
AnnaBridge 172:65be27845400 5827 * (3) Parameter available only if ADC resolution is 12 bits.
AnnaBridge 172:65be27845400 5828 * @retval None
AnnaBridge 172:65be27845400 5829 */
AnnaBridge 172:65be27845400 5830 __STATIC_INLINE void LL_ADC_SetMultiTwoSamplingDelay(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t MultiTwoSamplingDelay)
AnnaBridge 172:65be27845400 5831 {
AnnaBridge 172:65be27845400 5832 MODIFY_REG(ADCxy_COMMON->CCR, ADC_CCR_DELAY, MultiTwoSamplingDelay);
AnnaBridge 172:65be27845400 5833 }
AnnaBridge 172:65be27845400 5834
AnnaBridge 172:65be27845400 5835 /**
AnnaBridge 172:65be27845400 5836 * @brief Get ADC multimode delay between 2 sampling phases.
AnnaBridge 172:65be27845400 5837 * @rmtoll CCR DELAY LL_ADC_GetMultiTwoSamplingDelay
AnnaBridge 172:65be27845400 5838 * @param ADCxy_COMMON ADC common instance
AnnaBridge 172:65be27845400 5839 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 172:65be27845400 5840 * @retval Returned value can be one of the following values:
AnnaBridge 172:65be27845400 5841 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_1CYCLE
AnnaBridge 172:65be27845400 5842 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_2CYCLES
AnnaBridge 172:65be27845400 5843 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_3CYCLES
AnnaBridge 172:65be27845400 5844 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_4CYCLES
AnnaBridge 172:65be27845400 5845 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_5CYCLES
AnnaBridge 172:65be27845400 5846 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_6CYCLES (1)
AnnaBridge 172:65be27845400 5847 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_7CYCLES (1)
AnnaBridge 172:65be27845400 5848 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_8CYCLES (2)
AnnaBridge 172:65be27845400 5849 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_9CYCLES (2)
AnnaBridge 172:65be27845400 5850 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_10CYCLES (2)
AnnaBridge 172:65be27845400 5851 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_11CYCLES (3)
AnnaBridge 172:65be27845400 5852 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_12CYCLES (3)
AnnaBridge 172:65be27845400 5853 *
AnnaBridge 172:65be27845400 5854 * (1) Parameter available only if ADC resolution is 12, 10 or 8 bits.\n
AnnaBridge 172:65be27845400 5855 * (2) Parameter available only if ADC resolution is 12 or 10 bits.\n
AnnaBridge 172:65be27845400 5856 * (3) Parameter available only if ADC resolution is 12 bits.
AnnaBridge 172:65be27845400 5857 */
AnnaBridge 172:65be27845400 5858 __STATIC_INLINE uint32_t LL_ADC_GetMultiTwoSamplingDelay(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 172:65be27845400 5859 {
AnnaBridge 172:65be27845400 5860 return (uint32_t)(READ_BIT(ADCxy_COMMON->CCR, ADC_CCR_DELAY));
AnnaBridge 172:65be27845400 5861 }
AnnaBridge 172:65be27845400 5862 #endif /* ADC_MULTIMODE_SUPPORT */
AnnaBridge 172:65be27845400 5863
AnnaBridge 172:65be27845400 5864 /**
AnnaBridge 172:65be27845400 5865 * @}
AnnaBridge 172:65be27845400 5866 */
AnnaBridge 172:65be27845400 5867 /** @defgroup ADC_LL_EF_Configuration_Leg_Functions Configuration of ADC alternate functions name
AnnaBridge 172:65be27845400 5868 * @{
AnnaBridge 172:65be27845400 5869 */
AnnaBridge 172:65be27845400 5870 /* Old functions name kept for legacy purpose, to be replaced by the */
AnnaBridge 172:65be27845400 5871 /* current functions name. */
AnnaBridge 172:65be27845400 5872 __STATIC_INLINE void LL_ADC_REG_SetTrigSource(ADC_TypeDef *ADCx, uint32_t TriggerSource)
AnnaBridge 172:65be27845400 5873 {
AnnaBridge 172:65be27845400 5874 LL_ADC_REG_SetTriggerSource(ADCx, TriggerSource);
AnnaBridge 172:65be27845400 5875 }
AnnaBridge 172:65be27845400 5876 __STATIC_INLINE void LL_ADC_INJ_SetTrigSource(ADC_TypeDef *ADCx, uint32_t TriggerSource)
AnnaBridge 172:65be27845400 5877 {
AnnaBridge 172:65be27845400 5878 LL_ADC_INJ_SetTriggerSource(ADCx, TriggerSource);
AnnaBridge 172:65be27845400 5879 }
AnnaBridge 172:65be27845400 5880
AnnaBridge 172:65be27845400 5881 /**
AnnaBridge 172:65be27845400 5882 * @}
AnnaBridge 172:65be27845400 5883 */
AnnaBridge 172:65be27845400 5884
AnnaBridge 172:65be27845400 5885 /** @defgroup ADC_LL_EF_Operation_ADC_Instance Operation on ADC hierarchical scope: ADC instance
AnnaBridge 172:65be27845400 5886 * @{
AnnaBridge 172:65be27845400 5887 */
AnnaBridge 172:65be27845400 5888
AnnaBridge 172:65be27845400 5889 /**
AnnaBridge 172:65be27845400 5890 * @brief Put ADC instance in deep power down state.
AnnaBridge 172:65be27845400 5891 * @note In case of ADC calibration necessary: When ADC is in deep-power-down
AnnaBridge 172:65be27845400 5892 * state, the internal analog calibration is lost. After exiting from
AnnaBridge 172:65be27845400 5893 * deep power down, calibration must be relaunched or calibration factor
AnnaBridge 172:65be27845400 5894 * (preliminarily saved) must be set back into calibration register.
AnnaBridge 172:65be27845400 5895 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 5896 * ADC state:
AnnaBridge 172:65be27845400 5897 * ADC must be ADC disabled.
AnnaBridge 172:65be27845400 5898 * @rmtoll CR DEEPPWD LL_ADC_EnableDeepPowerDown
AnnaBridge 172:65be27845400 5899 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 5900 * @retval None
AnnaBridge 172:65be27845400 5901 */
AnnaBridge 172:65be27845400 5902 __STATIC_INLINE void LL_ADC_EnableDeepPowerDown(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 5903 {
AnnaBridge 172:65be27845400 5904 /* Note: Write register with some additional bits forced to state reset */
AnnaBridge 172:65be27845400 5905 /* instead of modifying only the selected bit for this function, */
AnnaBridge 172:65be27845400 5906 /* to not interfere with bits with HW property "rs". */
AnnaBridge 172:65be27845400 5907 MODIFY_REG(ADCx->CR,
AnnaBridge 172:65be27845400 5908 ADC_CR_BITS_PROPERTY_RS,
AnnaBridge 172:65be27845400 5909 ADC_CR_DEEPPWD);
AnnaBridge 172:65be27845400 5910 }
AnnaBridge 172:65be27845400 5911
AnnaBridge 172:65be27845400 5912 /**
AnnaBridge 172:65be27845400 5913 * @brief Disable ADC deep power down mode.
AnnaBridge 172:65be27845400 5914 * @note In case of ADC calibration necessary: When ADC is in deep-power-down
AnnaBridge 172:65be27845400 5915 * state, the internal analog calibration is lost. After exiting from
AnnaBridge 172:65be27845400 5916 * deep power down, calibration must be relaunched or calibration factor
AnnaBridge 172:65be27845400 5917 * (preliminarily saved) must be set back into calibration register.
AnnaBridge 172:65be27845400 5918 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 5919 * ADC state:
AnnaBridge 172:65be27845400 5920 * ADC must be ADC disabled.
AnnaBridge 172:65be27845400 5921 * @rmtoll CR DEEPPWD LL_ADC_DisableDeepPowerDown
AnnaBridge 172:65be27845400 5922 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 5923 * @retval None
AnnaBridge 172:65be27845400 5924 */
AnnaBridge 172:65be27845400 5925 __STATIC_INLINE void LL_ADC_DisableDeepPowerDown(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 5926 {
AnnaBridge 172:65be27845400 5927 /* Note: Write register with some additional bits forced to state reset */
AnnaBridge 172:65be27845400 5928 /* instead of modifying only the selected bit for this function, */
AnnaBridge 172:65be27845400 5929 /* to not interfere with bits with HW property "rs". */
AnnaBridge 172:65be27845400 5930 CLEAR_BIT(ADCx->CR, (ADC_CR_DEEPPWD | ADC_CR_BITS_PROPERTY_RS));
AnnaBridge 172:65be27845400 5931 }
AnnaBridge 172:65be27845400 5932
AnnaBridge 172:65be27845400 5933 /**
AnnaBridge 172:65be27845400 5934 * @brief Get the selected ADC instance deep power down state.
AnnaBridge 172:65be27845400 5935 * @rmtoll CR DEEPPWD LL_ADC_IsDeepPowerDownEnabled
AnnaBridge 172:65be27845400 5936 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 5937 * @retval 0: deep power down is disabled, 1: deep power down is enabled.
AnnaBridge 172:65be27845400 5938 */
AnnaBridge 172:65be27845400 5939 __STATIC_INLINE uint32_t LL_ADC_IsDeepPowerDownEnabled(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 5940 {
AnnaBridge 172:65be27845400 5941 return (READ_BIT(ADCx->CR, ADC_CR_DEEPPWD) == (ADC_CR_DEEPPWD));
AnnaBridge 172:65be27845400 5942 }
AnnaBridge 172:65be27845400 5943
AnnaBridge 172:65be27845400 5944 /**
AnnaBridge 172:65be27845400 5945 * @brief Enable ADC instance internal voltage regulator.
AnnaBridge 172:65be27845400 5946 * @note On this STM32 serie, after ADC internal voltage regulator enable,
AnnaBridge 172:65be27845400 5947 * a delay for ADC internal voltage regulator stabilization
AnnaBridge 172:65be27845400 5948 * is required before performing a ADC calibration or ADC enable.
AnnaBridge 172:65be27845400 5949 * Refer to device datasheet, parameter tADCVREG_STUP.
AnnaBridge 172:65be27845400 5950 * Refer to literal @ref LL_ADC_DELAY_INTERNAL_REGUL_STAB_US.
AnnaBridge 172:65be27845400 5951 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 5952 * ADC state:
AnnaBridge 172:65be27845400 5953 * ADC must be ADC disabled.
AnnaBridge 172:65be27845400 5954 * @rmtoll CR ADVREGEN LL_ADC_EnableInternalRegulator
AnnaBridge 172:65be27845400 5955 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 5956 * @retval None
AnnaBridge 172:65be27845400 5957 */
AnnaBridge 172:65be27845400 5958 __STATIC_INLINE void LL_ADC_EnableInternalRegulator(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 5959 {
AnnaBridge 172:65be27845400 5960 /* Note: Write register with some additional bits forced to state reset */
AnnaBridge 172:65be27845400 5961 /* instead of modifying only the selected bit for this function, */
AnnaBridge 172:65be27845400 5962 /* to not interfere with bits with HW property "rs". */
AnnaBridge 172:65be27845400 5963 MODIFY_REG(ADCx->CR,
AnnaBridge 172:65be27845400 5964 ADC_CR_BITS_PROPERTY_RS,
AnnaBridge 172:65be27845400 5965 ADC_CR_ADVREGEN);
AnnaBridge 172:65be27845400 5966 }
AnnaBridge 172:65be27845400 5967
AnnaBridge 172:65be27845400 5968 /**
AnnaBridge 172:65be27845400 5969 * @brief Disable ADC internal voltage regulator.
AnnaBridge 172:65be27845400 5970 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 5971 * ADC state:
AnnaBridge 172:65be27845400 5972 * ADC must be ADC disabled.
AnnaBridge 172:65be27845400 5973 * @rmtoll CR ADVREGEN LL_ADC_DisableInternalRegulator
AnnaBridge 172:65be27845400 5974 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 5975 * @retval None
AnnaBridge 172:65be27845400 5976 */
AnnaBridge 172:65be27845400 5977 __STATIC_INLINE void LL_ADC_DisableInternalRegulator(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 5978 {
AnnaBridge 172:65be27845400 5979 CLEAR_BIT(ADCx->CR, (ADC_CR_ADVREGEN | ADC_CR_BITS_PROPERTY_RS));
AnnaBridge 172:65be27845400 5980 }
AnnaBridge 172:65be27845400 5981
AnnaBridge 172:65be27845400 5982 /**
AnnaBridge 172:65be27845400 5983 * @brief Get the selected ADC instance internal voltage regulator state.
AnnaBridge 172:65be27845400 5984 * @rmtoll CR ADVREGEN LL_ADC_IsInternalRegulatorEnabled
AnnaBridge 172:65be27845400 5985 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 5986 * @retval 0: internal regulator is disabled, 1: internal regulator is enabled.
AnnaBridge 172:65be27845400 5987 */
AnnaBridge 172:65be27845400 5988 __STATIC_INLINE uint32_t LL_ADC_IsInternalRegulatorEnabled(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 5989 {
AnnaBridge 172:65be27845400 5990 return (READ_BIT(ADCx->CR, ADC_CR_ADVREGEN) == (ADC_CR_ADVREGEN));
AnnaBridge 172:65be27845400 5991 }
AnnaBridge 172:65be27845400 5992
AnnaBridge 172:65be27845400 5993 /**
AnnaBridge 172:65be27845400 5994 * @brief Enable the selected ADC instance.
AnnaBridge 172:65be27845400 5995 * @note On this STM32 serie, after ADC enable, a delay for
AnnaBridge 172:65be27845400 5996 * ADC internal analog stabilization is required before performing a
AnnaBridge 172:65be27845400 5997 * ADC conversion start.
AnnaBridge 172:65be27845400 5998 * Refer to device datasheet, parameter tSTAB.
AnnaBridge 172:65be27845400 5999 * @note On this STM32 serie, flag LL_ADC_FLAG_ADRDY is raised when the ADC
AnnaBridge 172:65be27845400 6000 * is enabled and when conversion clock is active.
AnnaBridge 172:65be27845400 6001 * (not only core clock: this ADC has a dual clock domain)
AnnaBridge 172:65be27845400 6002 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 6003 * ADC state:
AnnaBridge 172:65be27845400 6004 * ADC must be ADC disabled and ADC internal voltage regulator enabled.
AnnaBridge 172:65be27845400 6005 * @rmtoll CR ADEN LL_ADC_Enable
AnnaBridge 172:65be27845400 6006 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6007 * @retval None
AnnaBridge 172:65be27845400 6008 */
AnnaBridge 172:65be27845400 6009 __STATIC_INLINE void LL_ADC_Enable(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 6010 {
AnnaBridge 172:65be27845400 6011 /* Note: Write register with some additional bits forced to state reset */
AnnaBridge 172:65be27845400 6012 /* instead of modifying only the selected bit for this function, */
AnnaBridge 172:65be27845400 6013 /* to not interfere with bits with HW property "rs". */
AnnaBridge 172:65be27845400 6014 MODIFY_REG(ADCx->CR,
AnnaBridge 172:65be27845400 6015 ADC_CR_BITS_PROPERTY_RS,
AnnaBridge 172:65be27845400 6016 ADC_CR_ADEN);
AnnaBridge 172:65be27845400 6017 }
AnnaBridge 172:65be27845400 6018
AnnaBridge 172:65be27845400 6019 /**
AnnaBridge 172:65be27845400 6020 * @brief Disable the selected ADC instance.
AnnaBridge 172:65be27845400 6021 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 6022 * ADC state:
AnnaBridge 172:65be27845400 6023 * ADC must be not disabled. Must be enabled without conversion on going
AnnaBridge 172:65be27845400 6024 * on either groups regular or injected.
AnnaBridge 172:65be27845400 6025 * @rmtoll CR ADDIS LL_ADC_Disable
AnnaBridge 172:65be27845400 6026 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6027 * @retval None
AnnaBridge 172:65be27845400 6028 */
AnnaBridge 172:65be27845400 6029 __STATIC_INLINE void LL_ADC_Disable(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 6030 {
AnnaBridge 172:65be27845400 6031 /* Note: Write register with some additional bits forced to state reset */
AnnaBridge 172:65be27845400 6032 /* instead of modifying only the selected bit for this function, */
AnnaBridge 172:65be27845400 6033 /* to not interfere with bits with HW property "rs". */
AnnaBridge 172:65be27845400 6034 MODIFY_REG(ADCx->CR,
AnnaBridge 172:65be27845400 6035 ADC_CR_BITS_PROPERTY_RS,
AnnaBridge 172:65be27845400 6036 ADC_CR_ADDIS);
AnnaBridge 172:65be27845400 6037 }
AnnaBridge 172:65be27845400 6038
AnnaBridge 172:65be27845400 6039 /**
AnnaBridge 172:65be27845400 6040 * @brief Get the selected ADC instance enable state.
AnnaBridge 172:65be27845400 6041 * @note On this STM32 serie, flag LL_ADC_FLAG_ADRDY is raised when the ADC
AnnaBridge 172:65be27845400 6042 * is enabled and when conversion clock is active.
AnnaBridge 172:65be27845400 6043 * (not only core clock: this ADC has a dual clock domain)
AnnaBridge 172:65be27845400 6044 * @rmtoll CR ADEN LL_ADC_IsEnabled
AnnaBridge 172:65be27845400 6045 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6046 * @retval 0: ADC is disabled, 1: ADC is enabled.
AnnaBridge 172:65be27845400 6047 */
AnnaBridge 172:65be27845400 6048 __STATIC_INLINE uint32_t LL_ADC_IsEnabled(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 6049 {
AnnaBridge 172:65be27845400 6050 return (READ_BIT(ADCx->CR, ADC_CR_ADEN) == (ADC_CR_ADEN));
AnnaBridge 172:65be27845400 6051 }
AnnaBridge 172:65be27845400 6052
AnnaBridge 172:65be27845400 6053 /**
AnnaBridge 172:65be27845400 6054 * @brief Get the selected ADC instance disable state.
AnnaBridge 172:65be27845400 6055 * @rmtoll CR ADDIS LL_ADC_IsDisableOngoing
AnnaBridge 172:65be27845400 6056 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6057 * @retval 0: no ADC disable command on going.
AnnaBridge 172:65be27845400 6058 */
AnnaBridge 172:65be27845400 6059 __STATIC_INLINE uint32_t LL_ADC_IsDisableOngoing(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 6060 {
AnnaBridge 172:65be27845400 6061 return (READ_BIT(ADCx->CR, ADC_CR_ADDIS) == (ADC_CR_ADDIS));
AnnaBridge 172:65be27845400 6062 }
AnnaBridge 172:65be27845400 6063
AnnaBridge 172:65be27845400 6064 /**
AnnaBridge 172:65be27845400 6065 * @brief Start ADC calibration in the mode single-ended
AnnaBridge 172:65be27845400 6066 * or differential (for devices with differential mode available).
AnnaBridge 172:65be27845400 6067 * @note On this STM32 serie, a minimum number of ADC clock cycles
AnnaBridge 172:65be27845400 6068 * are required between ADC end of calibration and ADC enable.
AnnaBridge 172:65be27845400 6069 * Refer to literal @ref LL_ADC_DELAY_CALIB_ENABLE_ADC_CYCLES.
AnnaBridge 172:65be27845400 6070 * @note For devices with differential mode available:
AnnaBridge 172:65be27845400 6071 * Calibration of offset is specific to each of
AnnaBridge 172:65be27845400 6072 * single-ended and differential modes
AnnaBridge 172:65be27845400 6073 * (calibration run must be performed for each of these
AnnaBridge 172:65be27845400 6074 * differential modes, if used afterwards and if the application
AnnaBridge 172:65be27845400 6075 * requires their calibration).
AnnaBridge 172:65be27845400 6076 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 6077 * ADC state:
AnnaBridge 172:65be27845400 6078 * ADC must be ADC disabled.
AnnaBridge 172:65be27845400 6079 * @rmtoll CR ADCAL LL_ADC_StartCalibration\n
AnnaBridge 172:65be27845400 6080 * CR ADCALDIF LL_ADC_StartCalibration
AnnaBridge 172:65be27845400 6081 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6082 * @param SingleDiff This parameter can be one of the following values:
AnnaBridge 172:65be27845400 6083 * @arg @ref LL_ADC_SINGLE_ENDED
AnnaBridge 172:65be27845400 6084 * @arg @ref LL_ADC_DIFFERENTIAL_ENDED
AnnaBridge 172:65be27845400 6085 * @retval None
AnnaBridge 172:65be27845400 6086 */
AnnaBridge 172:65be27845400 6087 __STATIC_INLINE void LL_ADC_StartCalibration(ADC_TypeDef *ADCx, uint32_t SingleDiff)
AnnaBridge 172:65be27845400 6088 {
AnnaBridge 172:65be27845400 6089 /* Note: Write register with some additional bits forced to state reset */
AnnaBridge 172:65be27845400 6090 /* instead of modifying only the selected bit for this function, */
AnnaBridge 172:65be27845400 6091 /* to not interfere with bits with HW property "rs". */
AnnaBridge 172:65be27845400 6092 MODIFY_REG(ADCx->CR,
AnnaBridge 172:65be27845400 6093 ADC_CR_ADCALDIF | ADC_CR_BITS_PROPERTY_RS,
AnnaBridge 172:65be27845400 6094 ADC_CR_ADCAL | (SingleDiff & ADC_SINGLEDIFF_CALIB_START_MASK));
AnnaBridge 172:65be27845400 6095 }
AnnaBridge 172:65be27845400 6096
AnnaBridge 172:65be27845400 6097 /**
AnnaBridge 172:65be27845400 6098 * @brief Get ADC calibration state.
AnnaBridge 172:65be27845400 6099 * @rmtoll CR ADCAL LL_ADC_IsCalibrationOnGoing
AnnaBridge 172:65be27845400 6100 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6101 * @retval 0: calibration complete, 1: calibration in progress.
AnnaBridge 172:65be27845400 6102 */
AnnaBridge 172:65be27845400 6103 __STATIC_INLINE uint32_t LL_ADC_IsCalibrationOnGoing(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 6104 {
AnnaBridge 172:65be27845400 6105 return (READ_BIT(ADCx->CR, ADC_CR_ADCAL) == (ADC_CR_ADCAL));
AnnaBridge 172:65be27845400 6106 }
AnnaBridge 172:65be27845400 6107
AnnaBridge 172:65be27845400 6108 /**
AnnaBridge 172:65be27845400 6109 * @}
AnnaBridge 172:65be27845400 6110 */
AnnaBridge 172:65be27845400 6111
AnnaBridge 172:65be27845400 6112 /** @defgroup ADC_LL_EF_Operation_ADC_Group_Regular Operation on ADC hierarchical scope: group regular
AnnaBridge 172:65be27845400 6113 * @{
AnnaBridge 172:65be27845400 6114 */
AnnaBridge 172:65be27845400 6115
AnnaBridge 172:65be27845400 6116 /**
AnnaBridge 172:65be27845400 6117 * @brief Start ADC group regular conversion.
AnnaBridge 172:65be27845400 6118 * @note On this STM32 serie, this function is relevant for both
AnnaBridge 172:65be27845400 6119 * internal trigger (SW start) and external trigger:
AnnaBridge 172:65be27845400 6120 * - If ADC trigger has been set to software start, ADC conversion
AnnaBridge 172:65be27845400 6121 * starts immediately.
AnnaBridge 172:65be27845400 6122 * - If ADC trigger has been set to external trigger, ADC conversion
AnnaBridge 172:65be27845400 6123 * will start at next trigger event (on the selected trigger edge)
AnnaBridge 172:65be27845400 6124 * following the ADC start conversion command.
AnnaBridge 172:65be27845400 6125 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 6126 * ADC state:
AnnaBridge 172:65be27845400 6127 * ADC must be enabled without conversion on going on group regular,
AnnaBridge 172:65be27845400 6128 * without conversion stop command on going on group regular,
AnnaBridge 172:65be27845400 6129 * without ADC disable command on going.
AnnaBridge 172:65be27845400 6130 * @rmtoll CR ADSTART LL_ADC_REG_StartConversion
AnnaBridge 172:65be27845400 6131 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6132 * @retval None
AnnaBridge 172:65be27845400 6133 */
AnnaBridge 172:65be27845400 6134 __STATIC_INLINE void LL_ADC_REG_StartConversion(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 6135 {
AnnaBridge 172:65be27845400 6136 /* Note: Write register with some additional bits forced to state reset */
AnnaBridge 172:65be27845400 6137 /* instead of modifying only the selected bit for this function, */
AnnaBridge 172:65be27845400 6138 /* to not interfere with bits with HW property "rs". */
AnnaBridge 172:65be27845400 6139 MODIFY_REG(ADCx->CR,
AnnaBridge 172:65be27845400 6140 ADC_CR_BITS_PROPERTY_RS,
AnnaBridge 172:65be27845400 6141 ADC_CR_ADSTART);
AnnaBridge 172:65be27845400 6142 }
AnnaBridge 172:65be27845400 6143
AnnaBridge 172:65be27845400 6144 /**
AnnaBridge 172:65be27845400 6145 * @brief Stop ADC group regular conversion.
AnnaBridge 172:65be27845400 6146 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 6147 * ADC state:
AnnaBridge 172:65be27845400 6148 * ADC must be enabled with conversion on going on group regular,
AnnaBridge 172:65be27845400 6149 * without ADC disable command on going.
AnnaBridge 172:65be27845400 6150 * @rmtoll CR ADSTP LL_ADC_REG_StopConversion
AnnaBridge 172:65be27845400 6151 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6152 * @retval None
AnnaBridge 172:65be27845400 6153 */
AnnaBridge 172:65be27845400 6154 __STATIC_INLINE void LL_ADC_REG_StopConversion(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 6155 {
AnnaBridge 172:65be27845400 6156 /* Note: Write register with some additional bits forced to state reset */
AnnaBridge 172:65be27845400 6157 /* instead of modifying only the selected bit for this function, */
AnnaBridge 172:65be27845400 6158 /* to not interfere with bits with HW property "rs". */
AnnaBridge 172:65be27845400 6159 MODIFY_REG(ADCx->CR,
AnnaBridge 172:65be27845400 6160 ADC_CR_BITS_PROPERTY_RS,
AnnaBridge 172:65be27845400 6161 ADC_CR_ADSTP);
AnnaBridge 172:65be27845400 6162 }
AnnaBridge 172:65be27845400 6163
AnnaBridge 172:65be27845400 6164 /**
AnnaBridge 172:65be27845400 6165 * @brief Get ADC group regular conversion state.
AnnaBridge 172:65be27845400 6166 * @rmtoll CR ADSTART LL_ADC_REG_IsConversionOngoing
AnnaBridge 172:65be27845400 6167 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6168 * @retval 0: no conversion is on going on ADC group regular.
AnnaBridge 172:65be27845400 6169 */
AnnaBridge 172:65be27845400 6170 __STATIC_INLINE uint32_t LL_ADC_REG_IsConversionOngoing(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 6171 {
AnnaBridge 172:65be27845400 6172 return (READ_BIT(ADCx->CR, ADC_CR_ADSTART) == (ADC_CR_ADSTART));
AnnaBridge 172:65be27845400 6173 }
AnnaBridge 172:65be27845400 6174
AnnaBridge 172:65be27845400 6175 /**
AnnaBridge 172:65be27845400 6176 * @brief Get ADC group regular command of conversion stop state
AnnaBridge 172:65be27845400 6177 * @rmtoll CR ADSTP LL_ADC_REG_IsStopConversionOngoing
AnnaBridge 172:65be27845400 6178 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6179 * @retval 0: no command of conversion stop is on going on ADC group regular.
AnnaBridge 172:65be27845400 6180 */
AnnaBridge 172:65be27845400 6181 __STATIC_INLINE uint32_t LL_ADC_REG_IsStopConversionOngoing(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 6182 {
AnnaBridge 172:65be27845400 6183 return (READ_BIT(ADCx->CR, ADC_CR_ADSTP) == (ADC_CR_ADSTP));
AnnaBridge 172:65be27845400 6184 }
AnnaBridge 172:65be27845400 6185
AnnaBridge 172:65be27845400 6186 /**
AnnaBridge 172:65be27845400 6187 * @brief Get ADC group regular conversion data, range fit for
AnnaBridge 172:65be27845400 6188 * all ADC configurations: all ADC resolutions and
AnnaBridge 172:65be27845400 6189 * all oversampling increased data width (for devices
AnnaBridge 172:65be27845400 6190 * with feature oversampling).
AnnaBridge 172:65be27845400 6191 * @rmtoll DR RDATA LL_ADC_REG_ReadConversionData32
AnnaBridge 172:65be27845400 6192 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6193 * @retval Value between Min_Data=0x00000000 and Max_Data=0xFFFFFFFF
AnnaBridge 172:65be27845400 6194 */
AnnaBridge 172:65be27845400 6195 __STATIC_INLINE uint32_t LL_ADC_REG_ReadConversionData32(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 6196 {
AnnaBridge 172:65be27845400 6197 return (uint32_t)(READ_BIT(ADCx->DR, ADC_DR_RDATA));
AnnaBridge 172:65be27845400 6198 }
AnnaBridge 172:65be27845400 6199
AnnaBridge 172:65be27845400 6200 /**
AnnaBridge 172:65be27845400 6201 * @brief Get ADC group regular conversion data, range fit for
AnnaBridge 172:65be27845400 6202 * ADC resolution 12 bits.
AnnaBridge 172:65be27845400 6203 * @note For devices with feature oversampling: Oversampling
AnnaBridge 172:65be27845400 6204 * can increase data width, function for extended range
AnnaBridge 172:65be27845400 6205 * may be needed: @ref LL_ADC_REG_ReadConversionData32.
AnnaBridge 172:65be27845400 6206 * @rmtoll DR RDATA LL_ADC_REG_ReadConversionData12
AnnaBridge 172:65be27845400 6207 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6208 * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
AnnaBridge 172:65be27845400 6209 */
AnnaBridge 172:65be27845400 6210 __STATIC_INLINE uint16_t LL_ADC_REG_ReadConversionData12(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 6211 {
AnnaBridge 172:65be27845400 6212 return (uint16_t)(READ_BIT(ADCx->DR, ADC_DR_RDATA));
AnnaBridge 172:65be27845400 6213 }
AnnaBridge 172:65be27845400 6214
AnnaBridge 172:65be27845400 6215 /**
AnnaBridge 172:65be27845400 6216 * @brief Get ADC group regular conversion data, range fit for
AnnaBridge 172:65be27845400 6217 * ADC resolution 10 bits.
AnnaBridge 172:65be27845400 6218 * @note For devices with feature oversampling: Oversampling
AnnaBridge 172:65be27845400 6219 * can increase data width, function for extended range
AnnaBridge 172:65be27845400 6220 * may be needed: @ref LL_ADC_REG_ReadConversionData32.
AnnaBridge 172:65be27845400 6221 * @rmtoll DR RDATA LL_ADC_REG_ReadConversionData10
AnnaBridge 172:65be27845400 6222 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6223 * @retval Value between Min_Data=0x000 and Max_Data=0x3FF
AnnaBridge 172:65be27845400 6224 */
AnnaBridge 172:65be27845400 6225 __STATIC_INLINE uint16_t LL_ADC_REG_ReadConversionData10(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 6226 {
AnnaBridge 172:65be27845400 6227 return (uint16_t)(READ_BIT(ADCx->DR, ADC_DR_RDATA));
AnnaBridge 172:65be27845400 6228 }
AnnaBridge 172:65be27845400 6229
AnnaBridge 172:65be27845400 6230 /**
AnnaBridge 172:65be27845400 6231 * @brief Get ADC group regular conversion data, range fit for
AnnaBridge 172:65be27845400 6232 * ADC resolution 8 bits.
AnnaBridge 172:65be27845400 6233 * @note For devices with feature oversampling: Oversampling
AnnaBridge 172:65be27845400 6234 * can increase data width, function for extended range
AnnaBridge 172:65be27845400 6235 * may be needed: @ref LL_ADC_REG_ReadConversionData32.
AnnaBridge 172:65be27845400 6236 * @rmtoll DR RDATA LL_ADC_REG_ReadConversionData8
AnnaBridge 172:65be27845400 6237 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6238 * @retval Value between Min_Data=0x00 and Max_Data=0xFF
AnnaBridge 172:65be27845400 6239 */
AnnaBridge 172:65be27845400 6240 __STATIC_INLINE uint8_t LL_ADC_REG_ReadConversionData8(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 6241 {
AnnaBridge 172:65be27845400 6242 return (uint8_t)(READ_BIT(ADCx->DR, ADC_DR_RDATA));
AnnaBridge 172:65be27845400 6243 }
AnnaBridge 172:65be27845400 6244
AnnaBridge 172:65be27845400 6245 /**
AnnaBridge 172:65be27845400 6246 * @brief Get ADC group regular conversion data, range fit for
AnnaBridge 172:65be27845400 6247 * ADC resolution 6 bits.
AnnaBridge 172:65be27845400 6248 * @note For devices with feature oversampling: Oversampling
AnnaBridge 172:65be27845400 6249 * can increase data width, function for extended range
AnnaBridge 172:65be27845400 6250 * may be needed: @ref LL_ADC_REG_ReadConversionData32.
AnnaBridge 172:65be27845400 6251 * @rmtoll DR RDATA LL_ADC_REG_ReadConversionData6
AnnaBridge 172:65be27845400 6252 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6253 * @retval Value between Min_Data=0x00 and Max_Data=0x3F
AnnaBridge 172:65be27845400 6254 */
AnnaBridge 172:65be27845400 6255 __STATIC_INLINE uint8_t LL_ADC_REG_ReadConversionData6(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 6256 {
AnnaBridge 172:65be27845400 6257 return (uint8_t)(READ_BIT(ADCx->DR, ADC_DR_RDATA));
AnnaBridge 172:65be27845400 6258 }
AnnaBridge 172:65be27845400 6259
AnnaBridge 172:65be27845400 6260 #if defined(ADC_MULTIMODE_SUPPORT)
AnnaBridge 172:65be27845400 6261 /**
AnnaBridge 172:65be27845400 6262 * @brief Get ADC multimode conversion data of ADC master, ADC slave
AnnaBridge 172:65be27845400 6263 * or raw data with ADC master and slave concatenated.
AnnaBridge 172:65be27845400 6264 * @note If raw data with ADC master and slave concatenated is retrieved,
AnnaBridge 172:65be27845400 6265 * a macro is available to get the conversion data of
AnnaBridge 172:65be27845400 6266 * ADC master or ADC slave: see helper macro
AnnaBridge 172:65be27845400 6267 * @ref __LL_ADC_MULTI_CONV_DATA_MASTER_SLAVE().
AnnaBridge 172:65be27845400 6268 * (however this macro is mainly intended for multimode
AnnaBridge 172:65be27845400 6269 * transfer by DMA, because this function can do the same
AnnaBridge 172:65be27845400 6270 * by getting multimode conversion data of ADC master or ADC slave
AnnaBridge 172:65be27845400 6271 * separately).
AnnaBridge 172:65be27845400 6272 * @rmtoll CDR RDATA_MST LL_ADC_REG_ReadMultiConversionData32\n
AnnaBridge 172:65be27845400 6273 * CDR RDATA_SLV LL_ADC_REG_ReadMultiConversionData32
AnnaBridge 172:65be27845400 6274 * @param ADCxy_COMMON ADC common instance
AnnaBridge 172:65be27845400 6275 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 172:65be27845400 6276 * @param ConversionData This parameter can be one of the following values:
AnnaBridge 172:65be27845400 6277 * @arg @ref LL_ADC_MULTI_MASTER
AnnaBridge 172:65be27845400 6278 * @arg @ref LL_ADC_MULTI_SLAVE
AnnaBridge 172:65be27845400 6279 * @arg @ref LL_ADC_MULTI_MASTER_SLAVE
AnnaBridge 172:65be27845400 6280 * @retval Value between Min_Data=0x00000000 and Max_Data=0xFFFFFFFF
AnnaBridge 172:65be27845400 6281 */
AnnaBridge 172:65be27845400 6282 __STATIC_INLINE uint32_t LL_ADC_REG_ReadMultiConversionData32(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t ConversionData)
AnnaBridge 172:65be27845400 6283 {
AnnaBridge 172:65be27845400 6284 return (uint32_t)(READ_BIT(ADCxy_COMMON->CDR,
AnnaBridge 172:65be27845400 6285 ConversionData)
AnnaBridge 172:65be27845400 6286 >> POSITION_VAL(ConversionData)
AnnaBridge 172:65be27845400 6287 );
AnnaBridge 172:65be27845400 6288 }
AnnaBridge 172:65be27845400 6289 #endif /* ADC_MULTIMODE_SUPPORT */
AnnaBridge 172:65be27845400 6290
AnnaBridge 172:65be27845400 6291 /**
AnnaBridge 172:65be27845400 6292 * @}
AnnaBridge 172:65be27845400 6293 */
AnnaBridge 172:65be27845400 6294
AnnaBridge 172:65be27845400 6295 /** @defgroup ADC_LL_EF_Operation_ADC_Group_Injected Operation on ADC hierarchical scope: group injected
AnnaBridge 172:65be27845400 6296 * @{
AnnaBridge 172:65be27845400 6297 */
AnnaBridge 172:65be27845400 6298
AnnaBridge 172:65be27845400 6299 /**
AnnaBridge 172:65be27845400 6300 * @brief Start ADC group injected conversion.
AnnaBridge 172:65be27845400 6301 * @note On this STM32 serie, this function is relevant for both
AnnaBridge 172:65be27845400 6302 * internal trigger (SW start) and external trigger:
AnnaBridge 172:65be27845400 6303 * - If ADC trigger has been set to software start, ADC conversion
AnnaBridge 172:65be27845400 6304 * starts immediately.
AnnaBridge 172:65be27845400 6305 * - If ADC trigger has been set to external trigger, ADC conversion
AnnaBridge 172:65be27845400 6306 * will start at next trigger event (on the selected trigger edge)
AnnaBridge 172:65be27845400 6307 * following the ADC start conversion command.
AnnaBridge 172:65be27845400 6308 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 6309 * ADC state:
AnnaBridge 172:65be27845400 6310 * ADC must be enabled without conversion on going on group injected,
AnnaBridge 172:65be27845400 6311 * without conversion stop command on going on group injected,
AnnaBridge 172:65be27845400 6312 * without ADC disable command on going.
AnnaBridge 172:65be27845400 6313 * @rmtoll CR JADSTART LL_ADC_INJ_StartConversion
AnnaBridge 172:65be27845400 6314 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6315 * @retval None
AnnaBridge 172:65be27845400 6316 */
AnnaBridge 172:65be27845400 6317 __STATIC_INLINE void LL_ADC_INJ_StartConversion(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 6318 {
AnnaBridge 172:65be27845400 6319 /* Note: Write register with some additional bits forced to state reset */
AnnaBridge 172:65be27845400 6320 /* instead of modifying only the selected bit for this function, */
AnnaBridge 172:65be27845400 6321 /* to not interfere with bits with HW property "rs". */
AnnaBridge 172:65be27845400 6322 MODIFY_REG(ADCx->CR,
AnnaBridge 172:65be27845400 6323 ADC_CR_BITS_PROPERTY_RS,
AnnaBridge 172:65be27845400 6324 ADC_CR_JADSTART);
AnnaBridge 172:65be27845400 6325 }
AnnaBridge 172:65be27845400 6326
AnnaBridge 172:65be27845400 6327 /**
AnnaBridge 172:65be27845400 6328 * @brief Stop ADC group injected conversion.
AnnaBridge 172:65be27845400 6329 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 172:65be27845400 6330 * ADC state:
AnnaBridge 172:65be27845400 6331 * ADC must be enabled with conversion on going on group injected,
AnnaBridge 172:65be27845400 6332 * without ADC disable command on going.
AnnaBridge 172:65be27845400 6333 * @rmtoll CR JADSTP LL_ADC_INJ_StopConversion
AnnaBridge 172:65be27845400 6334 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6335 * @retval None
AnnaBridge 172:65be27845400 6336 */
AnnaBridge 172:65be27845400 6337 __STATIC_INLINE void LL_ADC_INJ_StopConversion(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 6338 {
AnnaBridge 172:65be27845400 6339 /* Note: Write register with some additional bits forced to state reset */
AnnaBridge 172:65be27845400 6340 /* instead of modifying only the selected bit for this function, */
AnnaBridge 172:65be27845400 6341 /* to not interfere with bits with HW property "rs". */
AnnaBridge 172:65be27845400 6342 MODIFY_REG(ADCx->CR,
AnnaBridge 172:65be27845400 6343 ADC_CR_BITS_PROPERTY_RS,
AnnaBridge 172:65be27845400 6344 ADC_CR_JADSTP);
AnnaBridge 172:65be27845400 6345 }
AnnaBridge 172:65be27845400 6346
AnnaBridge 172:65be27845400 6347 /**
AnnaBridge 172:65be27845400 6348 * @brief Get ADC group injected conversion state.
AnnaBridge 172:65be27845400 6349 * @rmtoll CR JADSTART LL_ADC_INJ_IsConversionOngoing
AnnaBridge 172:65be27845400 6350 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6351 * @retval 0: no conversion is on going on ADC group injected.
AnnaBridge 172:65be27845400 6352 */
AnnaBridge 172:65be27845400 6353 __STATIC_INLINE uint32_t LL_ADC_INJ_IsConversionOngoing(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 6354 {
AnnaBridge 172:65be27845400 6355 return (READ_BIT(ADCx->CR, ADC_CR_JADSTART) == (ADC_CR_JADSTART));
AnnaBridge 172:65be27845400 6356 }
AnnaBridge 172:65be27845400 6357
AnnaBridge 172:65be27845400 6358 /**
AnnaBridge 172:65be27845400 6359 * @brief Get ADC group injected command of conversion stop state
AnnaBridge 172:65be27845400 6360 * @rmtoll CR JADSTP LL_ADC_INJ_IsStopConversionOngoing
AnnaBridge 172:65be27845400 6361 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6362 * @retval 0: no command of conversion stop is on going on ADC group injected.
AnnaBridge 172:65be27845400 6363 */
AnnaBridge 172:65be27845400 6364 __STATIC_INLINE uint32_t LL_ADC_INJ_IsStopConversionOngoing(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 6365 {
AnnaBridge 172:65be27845400 6366 return (READ_BIT(ADCx->CR, ADC_CR_JADSTP) == (ADC_CR_JADSTP));
AnnaBridge 172:65be27845400 6367 }
AnnaBridge 172:65be27845400 6368
AnnaBridge 172:65be27845400 6369 /**
AnnaBridge 172:65be27845400 6370 * @brief Get ADC group regular conversion data, range fit for
AnnaBridge 172:65be27845400 6371 * all ADC configurations: all ADC resolutions and
AnnaBridge 172:65be27845400 6372 * all oversampling increased data width (for devices
AnnaBridge 172:65be27845400 6373 * with feature oversampling).
AnnaBridge 172:65be27845400 6374 * @rmtoll JDR1 JDATA LL_ADC_INJ_ReadConversionData32\n
AnnaBridge 172:65be27845400 6375 * JDR2 JDATA LL_ADC_INJ_ReadConversionData32\n
AnnaBridge 172:65be27845400 6376 * JDR3 JDATA LL_ADC_INJ_ReadConversionData32\n
AnnaBridge 172:65be27845400 6377 * JDR4 JDATA LL_ADC_INJ_ReadConversionData32
AnnaBridge 172:65be27845400 6378 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6379 * @param Rank This parameter can be one of the following values:
AnnaBridge 172:65be27845400 6380 * @arg @ref LL_ADC_INJ_RANK_1
AnnaBridge 172:65be27845400 6381 * @arg @ref LL_ADC_INJ_RANK_2
AnnaBridge 172:65be27845400 6382 * @arg @ref LL_ADC_INJ_RANK_3
AnnaBridge 172:65be27845400 6383 * @arg @ref LL_ADC_INJ_RANK_4
AnnaBridge 172:65be27845400 6384 * @retval Value between Min_Data=0x00000000 and Max_Data=0xFFFFFFFF
AnnaBridge 172:65be27845400 6385 */
AnnaBridge 172:65be27845400 6386 __STATIC_INLINE uint32_t LL_ADC_INJ_ReadConversionData32(ADC_TypeDef *ADCx, uint32_t Rank)
AnnaBridge 172:65be27845400 6387 {
AnnaBridge 172:65be27845400 6388 #if defined(CORE_CM0PLUS)
AnnaBridge 172:65be27845400 6389 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JDR1, ((Rank & ADC_INJ_JDRX_REGOFFSET_MASK) >> ADC_JDRX_REGOFFSET_POS));
AnnaBridge 172:65be27845400 6390 #else
AnnaBridge 172:65be27845400 6391 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JDR1, __ADC_MASK_SHIFT(Rank, ADC_INJ_JDRX_REGOFFSET_MASK));
AnnaBridge 172:65be27845400 6392 #endif
AnnaBridge 172:65be27845400 6393
AnnaBridge 172:65be27845400 6394 return (uint32_t)(READ_BIT(*preg,
AnnaBridge 172:65be27845400 6395 ADC_JDR1_JDATA)
AnnaBridge 172:65be27845400 6396 );
AnnaBridge 172:65be27845400 6397 }
AnnaBridge 172:65be27845400 6398
AnnaBridge 172:65be27845400 6399 /**
AnnaBridge 172:65be27845400 6400 * @brief Get ADC group injected conversion data, range fit for
AnnaBridge 172:65be27845400 6401 * ADC resolution 12 bits.
AnnaBridge 172:65be27845400 6402 * @note For devices with feature oversampling: Oversampling
AnnaBridge 172:65be27845400 6403 * can increase data width, function for extended range
AnnaBridge 172:65be27845400 6404 * may be needed: @ref LL_ADC_INJ_ReadConversionData32.
AnnaBridge 172:65be27845400 6405 * @rmtoll JDR1 JDATA LL_ADC_INJ_ReadConversionData12\n
AnnaBridge 172:65be27845400 6406 * JDR2 JDATA LL_ADC_INJ_ReadConversionData12\n
AnnaBridge 172:65be27845400 6407 * JDR3 JDATA LL_ADC_INJ_ReadConversionData12\n
AnnaBridge 172:65be27845400 6408 * JDR4 JDATA LL_ADC_INJ_ReadConversionData12
AnnaBridge 172:65be27845400 6409 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6410 * @param Rank This parameter can be one of the following values:
AnnaBridge 172:65be27845400 6411 * @arg @ref LL_ADC_INJ_RANK_1
AnnaBridge 172:65be27845400 6412 * @arg @ref LL_ADC_INJ_RANK_2
AnnaBridge 172:65be27845400 6413 * @arg @ref LL_ADC_INJ_RANK_3
AnnaBridge 172:65be27845400 6414 * @arg @ref LL_ADC_INJ_RANK_4
AnnaBridge 172:65be27845400 6415 * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
AnnaBridge 172:65be27845400 6416 */
AnnaBridge 172:65be27845400 6417 __STATIC_INLINE uint16_t LL_ADC_INJ_ReadConversionData12(ADC_TypeDef *ADCx, uint32_t Rank)
AnnaBridge 172:65be27845400 6418 {
AnnaBridge 172:65be27845400 6419 #if defined(CORE_CM0PLUS)
AnnaBridge 172:65be27845400 6420 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JDR1, ((Rank & ADC_INJ_JDRX_REGOFFSET_MASK) >> ADC_JDRX_REGOFFSET_POS));
AnnaBridge 172:65be27845400 6421 #else
AnnaBridge 172:65be27845400 6422 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JDR1, __ADC_MASK_SHIFT(Rank, ADC_INJ_JDRX_REGOFFSET_MASK));
AnnaBridge 172:65be27845400 6423 #endif
AnnaBridge 172:65be27845400 6424
AnnaBridge 172:65be27845400 6425 return (uint16_t)(READ_BIT(*preg,
AnnaBridge 172:65be27845400 6426 ADC_JDR1_JDATA)
AnnaBridge 172:65be27845400 6427 );
AnnaBridge 172:65be27845400 6428 }
AnnaBridge 172:65be27845400 6429
AnnaBridge 172:65be27845400 6430 /**
AnnaBridge 172:65be27845400 6431 * @brief Get ADC group injected conversion data, range fit for
AnnaBridge 172:65be27845400 6432 * ADC resolution 10 bits.
AnnaBridge 172:65be27845400 6433 * @note For devices with feature oversampling: Oversampling
AnnaBridge 172:65be27845400 6434 * can increase data width, function for extended range
AnnaBridge 172:65be27845400 6435 * may be needed: @ref LL_ADC_INJ_ReadConversionData32.
AnnaBridge 172:65be27845400 6436 * @rmtoll JDR1 JDATA LL_ADC_INJ_ReadConversionData10\n
AnnaBridge 172:65be27845400 6437 * JDR2 JDATA LL_ADC_INJ_ReadConversionData10\n
AnnaBridge 172:65be27845400 6438 * JDR3 JDATA LL_ADC_INJ_ReadConversionData10\n
AnnaBridge 172:65be27845400 6439 * JDR4 JDATA LL_ADC_INJ_ReadConversionData10
AnnaBridge 172:65be27845400 6440 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6441 * @param Rank This parameter can be one of the following values:
AnnaBridge 172:65be27845400 6442 * @arg @ref LL_ADC_INJ_RANK_1
AnnaBridge 172:65be27845400 6443 * @arg @ref LL_ADC_INJ_RANK_2
AnnaBridge 172:65be27845400 6444 * @arg @ref LL_ADC_INJ_RANK_3
AnnaBridge 172:65be27845400 6445 * @arg @ref LL_ADC_INJ_RANK_4
AnnaBridge 172:65be27845400 6446 * @retval Value between Min_Data=0x000 and Max_Data=0x3FF
AnnaBridge 172:65be27845400 6447 */
AnnaBridge 172:65be27845400 6448 __STATIC_INLINE uint16_t LL_ADC_INJ_ReadConversionData10(ADC_TypeDef *ADCx, uint32_t Rank)
AnnaBridge 172:65be27845400 6449 {
AnnaBridge 172:65be27845400 6450 #if defined(CORE_CM0PLUS)
AnnaBridge 172:65be27845400 6451 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JDR1, ((Rank & ADC_INJ_JDRX_REGOFFSET_MASK) >> ADC_JDRX_REGOFFSET_POS));
AnnaBridge 172:65be27845400 6452 #else
AnnaBridge 172:65be27845400 6453 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JDR1, __ADC_MASK_SHIFT(Rank, ADC_INJ_JDRX_REGOFFSET_MASK));
AnnaBridge 172:65be27845400 6454 #endif
AnnaBridge 172:65be27845400 6455
AnnaBridge 172:65be27845400 6456 return (uint16_t)(READ_BIT(*preg,
AnnaBridge 172:65be27845400 6457 ADC_JDR1_JDATA)
AnnaBridge 172:65be27845400 6458 );
AnnaBridge 172:65be27845400 6459 }
AnnaBridge 172:65be27845400 6460
AnnaBridge 172:65be27845400 6461 /**
AnnaBridge 172:65be27845400 6462 * @brief Get ADC group injected conversion data, range fit for
AnnaBridge 172:65be27845400 6463 * ADC resolution 8 bits.
AnnaBridge 172:65be27845400 6464 * @note For devices with feature oversampling: Oversampling
AnnaBridge 172:65be27845400 6465 * can increase data width, function for extended range
AnnaBridge 172:65be27845400 6466 * may be needed: @ref LL_ADC_INJ_ReadConversionData32.
AnnaBridge 172:65be27845400 6467 * @rmtoll JDR1 JDATA LL_ADC_INJ_ReadConversionData8\n
AnnaBridge 172:65be27845400 6468 * JDR2 JDATA LL_ADC_INJ_ReadConversionData8\n
AnnaBridge 172:65be27845400 6469 * JDR3 JDATA LL_ADC_INJ_ReadConversionData8\n
AnnaBridge 172:65be27845400 6470 * JDR4 JDATA LL_ADC_INJ_ReadConversionData8
AnnaBridge 172:65be27845400 6471 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6472 * @param Rank This parameter can be one of the following values:
AnnaBridge 172:65be27845400 6473 * @arg @ref LL_ADC_INJ_RANK_1
AnnaBridge 172:65be27845400 6474 * @arg @ref LL_ADC_INJ_RANK_2
AnnaBridge 172:65be27845400 6475 * @arg @ref LL_ADC_INJ_RANK_3
AnnaBridge 172:65be27845400 6476 * @arg @ref LL_ADC_INJ_RANK_4
AnnaBridge 172:65be27845400 6477 * @retval Value between Min_Data=0x00 and Max_Data=0xFF
AnnaBridge 172:65be27845400 6478 */
AnnaBridge 172:65be27845400 6479 __STATIC_INLINE uint8_t LL_ADC_INJ_ReadConversionData8(ADC_TypeDef *ADCx, uint32_t Rank)
AnnaBridge 172:65be27845400 6480 {
AnnaBridge 172:65be27845400 6481 #if defined(CORE_CM0PLUS)
AnnaBridge 172:65be27845400 6482 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JDR1, ((Rank & ADC_INJ_JDRX_REGOFFSET_MASK) >> ADC_JDRX_REGOFFSET_POS));
AnnaBridge 172:65be27845400 6483 #else
AnnaBridge 172:65be27845400 6484 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JDR1, __ADC_MASK_SHIFT(Rank, ADC_INJ_JDRX_REGOFFSET_MASK));
AnnaBridge 172:65be27845400 6485 #endif
AnnaBridge 172:65be27845400 6486
AnnaBridge 172:65be27845400 6487 return (uint8_t)(READ_BIT(*preg,
AnnaBridge 172:65be27845400 6488 ADC_JDR1_JDATA)
AnnaBridge 172:65be27845400 6489 );
AnnaBridge 172:65be27845400 6490 }
AnnaBridge 172:65be27845400 6491
AnnaBridge 172:65be27845400 6492 /**
AnnaBridge 172:65be27845400 6493 * @brief Get ADC group injected conversion data, range fit for
AnnaBridge 172:65be27845400 6494 * ADC resolution 6 bits.
AnnaBridge 172:65be27845400 6495 * @note For devices with feature oversampling: Oversampling
AnnaBridge 172:65be27845400 6496 * can increase data width, function for extended range
AnnaBridge 172:65be27845400 6497 * may be needed: @ref LL_ADC_INJ_ReadConversionData32.
AnnaBridge 172:65be27845400 6498 * @rmtoll JDR1 JDATA LL_ADC_INJ_ReadConversionData6\n
AnnaBridge 172:65be27845400 6499 * JDR2 JDATA LL_ADC_INJ_ReadConversionData6\n
AnnaBridge 172:65be27845400 6500 * JDR3 JDATA LL_ADC_INJ_ReadConversionData6\n
AnnaBridge 172:65be27845400 6501 * JDR4 JDATA LL_ADC_INJ_ReadConversionData6
AnnaBridge 172:65be27845400 6502 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6503 * @param Rank This parameter can be one of the following values:
AnnaBridge 172:65be27845400 6504 * @arg @ref LL_ADC_INJ_RANK_1
AnnaBridge 172:65be27845400 6505 * @arg @ref LL_ADC_INJ_RANK_2
AnnaBridge 172:65be27845400 6506 * @arg @ref LL_ADC_INJ_RANK_3
AnnaBridge 172:65be27845400 6507 * @arg @ref LL_ADC_INJ_RANK_4
AnnaBridge 172:65be27845400 6508 * @retval Value between Min_Data=0x00 and Max_Data=0x3F
AnnaBridge 172:65be27845400 6509 */
AnnaBridge 172:65be27845400 6510 __STATIC_INLINE uint8_t LL_ADC_INJ_ReadConversionData6(ADC_TypeDef *ADCx, uint32_t Rank)
AnnaBridge 172:65be27845400 6511 {
AnnaBridge 172:65be27845400 6512 #if defined(CORE_CM0PLUS)
AnnaBridge 172:65be27845400 6513 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JDR1, ((Rank & ADC_INJ_JDRX_REGOFFSET_MASK) >> ADC_JDRX_REGOFFSET_POS));
AnnaBridge 172:65be27845400 6514 #else
AnnaBridge 172:65be27845400 6515 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JDR1, __ADC_MASK_SHIFT(Rank, ADC_INJ_JDRX_REGOFFSET_MASK));
AnnaBridge 172:65be27845400 6516 #endif
AnnaBridge 172:65be27845400 6517
AnnaBridge 172:65be27845400 6518 return (uint8_t)(READ_BIT(*preg,
AnnaBridge 172:65be27845400 6519 ADC_JDR1_JDATA)
AnnaBridge 172:65be27845400 6520 );
AnnaBridge 172:65be27845400 6521 }
AnnaBridge 172:65be27845400 6522
AnnaBridge 172:65be27845400 6523 /**
AnnaBridge 172:65be27845400 6524 * @}
AnnaBridge 172:65be27845400 6525 */
AnnaBridge 172:65be27845400 6526
AnnaBridge 172:65be27845400 6527 /** @defgroup ADC_LL_EF_FLAG_Management ADC flag management
AnnaBridge 172:65be27845400 6528 * @{
AnnaBridge 172:65be27845400 6529 */
AnnaBridge 172:65be27845400 6530
AnnaBridge 172:65be27845400 6531 /**
AnnaBridge 172:65be27845400 6532 * @brief Get flag ADC ready.
AnnaBridge 172:65be27845400 6533 * @note On this STM32 serie, flag LL_ADC_FLAG_ADRDY is raised when the ADC
AnnaBridge 172:65be27845400 6534 * is enabled and when conversion clock is active.
AnnaBridge 172:65be27845400 6535 * (not only core clock: this ADC has a dual clock domain)
AnnaBridge 172:65be27845400 6536 * @rmtoll ISR ADRDY LL_ADC_IsActiveFlag_ADRDY
AnnaBridge 172:65be27845400 6537 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6538 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 6539 */
AnnaBridge 172:65be27845400 6540 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_ADRDY(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 6541 {
AnnaBridge 172:65be27845400 6542 return (READ_BIT(ADCx->ISR, LL_ADC_FLAG_ADRDY) == (LL_ADC_FLAG_ADRDY));
AnnaBridge 172:65be27845400 6543 }
AnnaBridge 172:65be27845400 6544
AnnaBridge 172:65be27845400 6545 /**
AnnaBridge 172:65be27845400 6546 * @brief Get flag ADC group regular end of unitary conversion.
AnnaBridge 172:65be27845400 6547 * @rmtoll ISR EOC LL_ADC_IsActiveFlag_EOC
AnnaBridge 172:65be27845400 6548 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6549 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 6550 */
AnnaBridge 172:65be27845400 6551 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_EOC(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 6552 {
AnnaBridge 172:65be27845400 6553 return (READ_BIT(ADCx->ISR, ADC_ISR_EOC) == (ADC_ISR_EOC));
AnnaBridge 172:65be27845400 6554 }
AnnaBridge 172:65be27845400 6555
AnnaBridge 172:65be27845400 6556 /**
AnnaBridge 172:65be27845400 6557 * @brief Get flag ADC group regular end of sequence conversions.
AnnaBridge 172:65be27845400 6558 * @rmtoll ISR EOS LL_ADC_IsActiveFlag_EOS
AnnaBridge 172:65be27845400 6559 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6560 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 6561 */
AnnaBridge 172:65be27845400 6562 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_EOS(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 6563 {
AnnaBridge 172:65be27845400 6564 return (READ_BIT(ADCx->ISR, LL_ADC_FLAG_EOS) == (LL_ADC_FLAG_EOS));
AnnaBridge 172:65be27845400 6565 }
AnnaBridge 172:65be27845400 6566
AnnaBridge 172:65be27845400 6567 /**
AnnaBridge 172:65be27845400 6568 * @brief Get flag ADC group regular overrun.
AnnaBridge 172:65be27845400 6569 * @rmtoll ISR OVR LL_ADC_IsActiveFlag_OVR
AnnaBridge 172:65be27845400 6570 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6571 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 6572 */
AnnaBridge 172:65be27845400 6573 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_OVR(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 6574 {
AnnaBridge 172:65be27845400 6575 return (READ_BIT(ADCx->ISR, LL_ADC_FLAG_OVR) == (LL_ADC_FLAG_OVR));
AnnaBridge 172:65be27845400 6576 }
AnnaBridge 172:65be27845400 6577
AnnaBridge 172:65be27845400 6578 /**
AnnaBridge 172:65be27845400 6579 * @brief Get flag ADC group regular end of sampling phase.
AnnaBridge 172:65be27845400 6580 * @rmtoll ISR EOSMP LL_ADC_IsActiveFlag_EOSMP
AnnaBridge 172:65be27845400 6581 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6582 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 6583 */
AnnaBridge 172:65be27845400 6584 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_EOSMP(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 6585 {
AnnaBridge 172:65be27845400 6586 return (READ_BIT(ADCx->ISR, LL_ADC_FLAG_EOSMP) == (LL_ADC_FLAG_EOSMP));
AnnaBridge 172:65be27845400 6587 }
AnnaBridge 172:65be27845400 6588
AnnaBridge 172:65be27845400 6589 /**
AnnaBridge 172:65be27845400 6590 * @brief Get flag ADC group injected end of unitary conversion.
AnnaBridge 172:65be27845400 6591 * @rmtoll ISR JEOC LL_ADC_IsActiveFlag_JEOC
AnnaBridge 172:65be27845400 6592 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6593 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 6594 */
AnnaBridge 172:65be27845400 6595 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_JEOC(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 6596 {
AnnaBridge 172:65be27845400 6597 return (READ_BIT(ADCx->ISR, LL_ADC_FLAG_JEOC) == (LL_ADC_FLAG_JEOC));
AnnaBridge 172:65be27845400 6598 }
AnnaBridge 172:65be27845400 6599
AnnaBridge 172:65be27845400 6600 /**
AnnaBridge 172:65be27845400 6601 * @brief Get flag ADC group injected end of sequence conversions.
AnnaBridge 172:65be27845400 6602 * @rmtoll ISR JEOS LL_ADC_IsActiveFlag_JEOS
AnnaBridge 172:65be27845400 6603 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6604 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 6605 */
AnnaBridge 172:65be27845400 6606 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_JEOS(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 6607 {
AnnaBridge 172:65be27845400 6608 return (READ_BIT(ADCx->ISR, LL_ADC_FLAG_JEOS) == (LL_ADC_FLAG_JEOS));
AnnaBridge 172:65be27845400 6609 }
AnnaBridge 172:65be27845400 6610
AnnaBridge 172:65be27845400 6611 /**
AnnaBridge 172:65be27845400 6612 * @brief Get flag ADC group injected contexts queue overflow.
AnnaBridge 172:65be27845400 6613 * @rmtoll ISR JQOVF LL_ADC_IsActiveFlag_JQOVF
AnnaBridge 172:65be27845400 6614 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6615 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 6616 */
AnnaBridge 172:65be27845400 6617 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_JQOVF(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 6618 {
AnnaBridge 172:65be27845400 6619 return (READ_BIT(ADCx->ISR, LL_ADC_FLAG_JQOVF) == (LL_ADC_FLAG_JQOVF));
AnnaBridge 172:65be27845400 6620 }
AnnaBridge 172:65be27845400 6621
AnnaBridge 172:65be27845400 6622 /**
AnnaBridge 172:65be27845400 6623 * @brief Get flag ADC analog watchdog 1 flag
AnnaBridge 172:65be27845400 6624 * @rmtoll ISR AWD1 LL_ADC_IsActiveFlag_AWD1
AnnaBridge 172:65be27845400 6625 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6626 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 6627 */
AnnaBridge 172:65be27845400 6628 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_AWD1(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 6629 {
AnnaBridge 172:65be27845400 6630 return (READ_BIT(ADCx->ISR, LL_ADC_FLAG_AWD1) == (LL_ADC_FLAG_AWD1));
AnnaBridge 172:65be27845400 6631 }
AnnaBridge 172:65be27845400 6632
AnnaBridge 172:65be27845400 6633 /**
AnnaBridge 172:65be27845400 6634 * @brief Get flag ADC analog watchdog 2.
AnnaBridge 172:65be27845400 6635 * @rmtoll ISR AWD2 LL_ADC_IsActiveFlag_AWD2
AnnaBridge 172:65be27845400 6636 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6637 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 6638 */
AnnaBridge 172:65be27845400 6639 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_AWD2(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 6640 {
AnnaBridge 172:65be27845400 6641 return (READ_BIT(ADCx->ISR, LL_ADC_FLAG_AWD2) == (LL_ADC_FLAG_AWD2));
AnnaBridge 172:65be27845400 6642 }
AnnaBridge 172:65be27845400 6643
AnnaBridge 172:65be27845400 6644 /**
AnnaBridge 172:65be27845400 6645 * @brief Get flag ADC analog watchdog 3.
AnnaBridge 172:65be27845400 6646 * @rmtoll ISR AWD3 LL_ADC_IsActiveFlag_AWD3
AnnaBridge 172:65be27845400 6647 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6648 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 6649 */
AnnaBridge 172:65be27845400 6650 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_AWD3(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 6651 {
AnnaBridge 172:65be27845400 6652 return (READ_BIT(ADCx->ISR, LL_ADC_FLAG_AWD3) == (LL_ADC_FLAG_AWD3));
AnnaBridge 172:65be27845400 6653 }
AnnaBridge 172:65be27845400 6654
AnnaBridge 172:65be27845400 6655 /**
AnnaBridge 172:65be27845400 6656 * @brief Clear flag ADC ready.
AnnaBridge 172:65be27845400 6657 * @note On this STM32 serie, flag LL_ADC_FLAG_ADRDY is raised when the ADC
AnnaBridge 172:65be27845400 6658 * is enabled and when conversion clock is active.
AnnaBridge 172:65be27845400 6659 * (not only core clock: this ADC has a dual clock domain)
AnnaBridge 172:65be27845400 6660 * @rmtoll ISR ADRDY LL_ADC_ClearFlag_ADRDY
AnnaBridge 172:65be27845400 6661 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6662 * @retval None
AnnaBridge 172:65be27845400 6663 */
AnnaBridge 172:65be27845400 6664 __STATIC_INLINE void LL_ADC_ClearFlag_ADRDY(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 6665 {
AnnaBridge 172:65be27845400 6666 WRITE_REG(ADCx->ISR, LL_ADC_FLAG_ADRDY);
AnnaBridge 172:65be27845400 6667 }
AnnaBridge 172:65be27845400 6668
AnnaBridge 172:65be27845400 6669 /**
AnnaBridge 172:65be27845400 6670 * @brief Clear flag ADC group regular end of unitary conversion.
AnnaBridge 172:65be27845400 6671 * @rmtoll ISR EOC LL_ADC_ClearFlag_EOC
AnnaBridge 172:65be27845400 6672 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6673 * @retval None
AnnaBridge 172:65be27845400 6674 */
AnnaBridge 172:65be27845400 6675 __STATIC_INLINE void LL_ADC_ClearFlag_EOC(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 6676 {
AnnaBridge 172:65be27845400 6677 WRITE_REG(ADCx->ISR, LL_ADC_FLAG_EOC);
AnnaBridge 172:65be27845400 6678 }
AnnaBridge 172:65be27845400 6679
AnnaBridge 172:65be27845400 6680 /**
AnnaBridge 172:65be27845400 6681 * @brief Clear flag ADC group regular end of sequence conversions.
AnnaBridge 172:65be27845400 6682 * @rmtoll ISR EOS LL_ADC_ClearFlag_EOS
AnnaBridge 172:65be27845400 6683 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6684 * @retval None
AnnaBridge 172:65be27845400 6685 */
AnnaBridge 172:65be27845400 6686 __STATIC_INLINE void LL_ADC_ClearFlag_EOS(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 6687 {
AnnaBridge 172:65be27845400 6688 WRITE_REG(ADCx->ISR, LL_ADC_FLAG_EOS);
AnnaBridge 172:65be27845400 6689 }
AnnaBridge 172:65be27845400 6690
AnnaBridge 172:65be27845400 6691 /**
AnnaBridge 172:65be27845400 6692 * @brief Clear flag ADC group regular overrun.
AnnaBridge 172:65be27845400 6693 * @rmtoll ISR OVR LL_ADC_ClearFlag_OVR
AnnaBridge 172:65be27845400 6694 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6695 * @retval None
AnnaBridge 172:65be27845400 6696 */
AnnaBridge 172:65be27845400 6697 __STATIC_INLINE void LL_ADC_ClearFlag_OVR(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 6698 {
AnnaBridge 172:65be27845400 6699 WRITE_REG(ADCx->ISR, LL_ADC_FLAG_OVR);
AnnaBridge 172:65be27845400 6700 }
AnnaBridge 172:65be27845400 6701
AnnaBridge 172:65be27845400 6702 /**
AnnaBridge 172:65be27845400 6703 * @brief Clear flag ADC group regular end of sampling phase.
AnnaBridge 172:65be27845400 6704 * @rmtoll ISR EOSMP LL_ADC_ClearFlag_EOSMP
AnnaBridge 172:65be27845400 6705 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6706 * @retval None
AnnaBridge 172:65be27845400 6707 */
AnnaBridge 172:65be27845400 6708 __STATIC_INLINE void LL_ADC_ClearFlag_EOSMP(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 6709 {
AnnaBridge 172:65be27845400 6710 WRITE_REG(ADCx->ISR, LL_ADC_FLAG_EOSMP);
AnnaBridge 172:65be27845400 6711 }
AnnaBridge 172:65be27845400 6712
AnnaBridge 172:65be27845400 6713 /**
AnnaBridge 172:65be27845400 6714 * @brief Clear flag ADC group injected end of unitary conversion.
AnnaBridge 172:65be27845400 6715 * @rmtoll ISR JEOC LL_ADC_ClearFlag_JEOC
AnnaBridge 172:65be27845400 6716 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6717 * @retval None
AnnaBridge 172:65be27845400 6718 */
AnnaBridge 172:65be27845400 6719 __STATIC_INLINE void LL_ADC_ClearFlag_JEOC(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 6720 {
AnnaBridge 172:65be27845400 6721 WRITE_REG(ADCx->ISR, LL_ADC_FLAG_JEOC);
AnnaBridge 172:65be27845400 6722 }
AnnaBridge 172:65be27845400 6723
AnnaBridge 172:65be27845400 6724 /**
AnnaBridge 172:65be27845400 6725 * @brief Clear flag ADC group injected end of sequence conversions.
AnnaBridge 172:65be27845400 6726 * @rmtoll ISR JEOS LL_ADC_ClearFlag_JEOS
AnnaBridge 172:65be27845400 6727 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6728 * @retval None
AnnaBridge 172:65be27845400 6729 */
AnnaBridge 172:65be27845400 6730 __STATIC_INLINE void LL_ADC_ClearFlag_JEOS(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 6731 {
AnnaBridge 172:65be27845400 6732 WRITE_REG(ADCx->ISR, LL_ADC_FLAG_JEOS);
AnnaBridge 172:65be27845400 6733 }
AnnaBridge 172:65be27845400 6734
AnnaBridge 172:65be27845400 6735 /**
AnnaBridge 172:65be27845400 6736 * @brief Clear flag ADC group injected contexts queue overflow.
AnnaBridge 172:65be27845400 6737 * @rmtoll ISR JQOVF LL_ADC_ClearFlag_JQOVF
AnnaBridge 172:65be27845400 6738 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6739 * @retval None
AnnaBridge 172:65be27845400 6740 */
AnnaBridge 172:65be27845400 6741 __STATIC_INLINE void LL_ADC_ClearFlag_JQOVF(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 6742 {
AnnaBridge 172:65be27845400 6743 WRITE_REG(ADCx->ISR, LL_ADC_FLAG_JQOVF);
AnnaBridge 172:65be27845400 6744 }
AnnaBridge 172:65be27845400 6745
AnnaBridge 172:65be27845400 6746 /**
AnnaBridge 172:65be27845400 6747 * @brief Clear flag ADC analog watchdog 1.
AnnaBridge 172:65be27845400 6748 * @rmtoll ISR AWD1 LL_ADC_ClearFlag_AWD1
AnnaBridge 172:65be27845400 6749 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6750 * @retval None
AnnaBridge 172:65be27845400 6751 */
AnnaBridge 172:65be27845400 6752 __STATIC_INLINE void LL_ADC_ClearFlag_AWD1(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 6753 {
AnnaBridge 172:65be27845400 6754 WRITE_REG(ADCx->ISR, LL_ADC_FLAG_AWD1);
AnnaBridge 172:65be27845400 6755 }
AnnaBridge 172:65be27845400 6756
AnnaBridge 172:65be27845400 6757 /**
AnnaBridge 172:65be27845400 6758 * @brief Clear flag ADC analog watchdog 2.
AnnaBridge 172:65be27845400 6759 * @rmtoll ISR AWD2 LL_ADC_ClearFlag_AWD2
AnnaBridge 172:65be27845400 6760 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6761 * @retval None
AnnaBridge 172:65be27845400 6762 */
AnnaBridge 172:65be27845400 6763 __STATIC_INLINE void LL_ADC_ClearFlag_AWD2(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 6764 {
AnnaBridge 172:65be27845400 6765 WRITE_REG(ADCx->ISR, LL_ADC_FLAG_AWD2);
AnnaBridge 172:65be27845400 6766 }
AnnaBridge 172:65be27845400 6767
AnnaBridge 172:65be27845400 6768 /**
AnnaBridge 172:65be27845400 6769 * @brief Clear flag ADC analog watchdog 3.
AnnaBridge 172:65be27845400 6770 * @rmtoll ISR AWD3 LL_ADC_ClearFlag_AWD3
AnnaBridge 172:65be27845400 6771 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 6772 * @retval None
AnnaBridge 172:65be27845400 6773 */
AnnaBridge 172:65be27845400 6774 __STATIC_INLINE void LL_ADC_ClearFlag_AWD3(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 6775 {
AnnaBridge 172:65be27845400 6776 WRITE_REG(ADCx->ISR, LL_ADC_FLAG_AWD3);
AnnaBridge 172:65be27845400 6777 }
AnnaBridge 172:65be27845400 6778
AnnaBridge 172:65be27845400 6779 #if defined(ADC_MULTIMODE_SUPPORT)
AnnaBridge 172:65be27845400 6780 /**
AnnaBridge 172:65be27845400 6781 * @brief Get flag multimode ADC ready of the ADC master.
AnnaBridge 172:65be27845400 6782 * @rmtoll CSR ADRDY_MST LL_ADC_IsActiveFlag_MST_ADRDY
AnnaBridge 172:65be27845400 6783 * @param ADCxy_COMMON ADC common instance
AnnaBridge 172:65be27845400 6784 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 172:65be27845400 6785 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 6786 */
AnnaBridge 172:65be27845400 6787 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_ADRDY(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 172:65be27845400 6788 {
AnnaBridge 172:65be27845400 6789 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_ADRDY_MST) == (LL_ADC_FLAG_ADRDY_MST));
AnnaBridge 172:65be27845400 6790 }
AnnaBridge 172:65be27845400 6791
AnnaBridge 172:65be27845400 6792 /**
AnnaBridge 172:65be27845400 6793 * @brief Get flag multimode ADC ready of the ADC slave.
AnnaBridge 172:65be27845400 6794 * @rmtoll CSR ADRDY_SLV LL_ADC_IsActiveFlag_SLV_ADRDY
AnnaBridge 172:65be27845400 6795 * @param ADCxy_COMMON ADC common instance
AnnaBridge 172:65be27845400 6796 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 172:65be27845400 6797 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 6798 */
AnnaBridge 172:65be27845400 6799 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV_ADRDY(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 172:65be27845400 6800 {
AnnaBridge 172:65be27845400 6801 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_ADRDY_SLV) == (LL_ADC_FLAG_ADRDY_SLV));
AnnaBridge 172:65be27845400 6802 }
AnnaBridge 172:65be27845400 6803
AnnaBridge 172:65be27845400 6804 /**
AnnaBridge 172:65be27845400 6805 * @brief Get flag multimode ADC group regular end of unitary conversion of the ADC master.
AnnaBridge 172:65be27845400 6806 * @rmtoll CSR EOC_MST LL_ADC_IsActiveFlag_MST_EOC
AnnaBridge 172:65be27845400 6807 * @param ADCxy_COMMON ADC common instance
AnnaBridge 172:65be27845400 6808 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 172:65be27845400 6809 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 6810 */
AnnaBridge 172:65be27845400 6811 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_EOC(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 172:65be27845400 6812 {
AnnaBridge 172:65be27845400 6813 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_EOC_SLV) == (LL_ADC_FLAG_EOC_SLV));
AnnaBridge 172:65be27845400 6814 }
AnnaBridge 172:65be27845400 6815
AnnaBridge 172:65be27845400 6816 /**
AnnaBridge 172:65be27845400 6817 * @brief Get flag multimode ADC group regular end of unitary conversion of the ADC slave.
AnnaBridge 172:65be27845400 6818 * @rmtoll CSR EOC_SLV LL_ADC_IsActiveFlag_SLV_EOC
AnnaBridge 172:65be27845400 6819 * @param ADCxy_COMMON ADC common instance
AnnaBridge 172:65be27845400 6820 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 172:65be27845400 6821 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 6822 */
AnnaBridge 172:65be27845400 6823 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV_EOC(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 172:65be27845400 6824 {
AnnaBridge 172:65be27845400 6825 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_EOC_SLV) == (LL_ADC_FLAG_EOC_SLV));
AnnaBridge 172:65be27845400 6826 }
AnnaBridge 172:65be27845400 6827
AnnaBridge 172:65be27845400 6828 /**
AnnaBridge 172:65be27845400 6829 * @brief Get flag multimode ADC group regular end of sequence conversions of the ADC master.
AnnaBridge 172:65be27845400 6830 * @rmtoll CSR EOS_MST LL_ADC_IsActiveFlag_MST_EOS
AnnaBridge 172:65be27845400 6831 * @param ADCxy_COMMON ADC common instance
AnnaBridge 172:65be27845400 6832 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 172:65be27845400 6833 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 6834 */
AnnaBridge 172:65be27845400 6835 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_EOS(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 172:65be27845400 6836 {
AnnaBridge 172:65be27845400 6837 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_EOS_MST) == (LL_ADC_FLAG_EOS_MST));
AnnaBridge 172:65be27845400 6838 }
AnnaBridge 172:65be27845400 6839
AnnaBridge 172:65be27845400 6840 /**
AnnaBridge 172:65be27845400 6841 * @brief Get flag multimode ADC group regular end of sequence conversions of the ADC slave.
AnnaBridge 172:65be27845400 6842 * @rmtoll CSR EOS_SLV LL_ADC_IsActiveFlag_SLV_EOS
AnnaBridge 172:65be27845400 6843 * @param ADCxy_COMMON ADC common instance
AnnaBridge 172:65be27845400 6844 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 172:65be27845400 6845 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 6846 */
AnnaBridge 172:65be27845400 6847 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV_EOS(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 172:65be27845400 6848 {
AnnaBridge 172:65be27845400 6849 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_EOS_SLV) == (LL_ADC_FLAG_EOS_SLV));
AnnaBridge 172:65be27845400 6850 }
AnnaBridge 172:65be27845400 6851
AnnaBridge 172:65be27845400 6852 /**
AnnaBridge 172:65be27845400 6853 * @brief Get flag multimode ADC group regular overrun of the ADC master.
AnnaBridge 172:65be27845400 6854 * @rmtoll CSR OVR_MST LL_ADC_IsActiveFlag_MST_OVR
AnnaBridge 172:65be27845400 6855 * @param ADCxy_COMMON ADC common instance
AnnaBridge 172:65be27845400 6856 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 172:65be27845400 6857 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 6858 */
AnnaBridge 172:65be27845400 6859 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_OVR(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 172:65be27845400 6860 {
AnnaBridge 172:65be27845400 6861 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_OVR_MST) == (LL_ADC_FLAG_OVR_MST));
AnnaBridge 172:65be27845400 6862 }
AnnaBridge 172:65be27845400 6863
AnnaBridge 172:65be27845400 6864 /**
AnnaBridge 172:65be27845400 6865 * @brief Get flag multimode ADC group regular overrun of the ADC slave.
AnnaBridge 172:65be27845400 6866 * @rmtoll CSR OVR_SLV LL_ADC_IsActiveFlag_SLV_OVR
AnnaBridge 172:65be27845400 6867 * @param ADCxy_COMMON ADC common instance
AnnaBridge 172:65be27845400 6868 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 172:65be27845400 6869 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 6870 */
AnnaBridge 172:65be27845400 6871 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV_OVR(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 172:65be27845400 6872 {
AnnaBridge 172:65be27845400 6873 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_OVR_SLV) == (LL_ADC_FLAG_OVR_SLV));
AnnaBridge 172:65be27845400 6874 }
AnnaBridge 172:65be27845400 6875
AnnaBridge 172:65be27845400 6876 /**
AnnaBridge 172:65be27845400 6877 * @brief Get flag multimode ADC group regular end of sampling of the ADC master.
AnnaBridge 172:65be27845400 6878 * @rmtoll CSR EOSMP_MST LL_ADC_IsActiveFlag_MST_EOSMP
AnnaBridge 172:65be27845400 6879 * @param ADCxy_COMMON ADC common instance
AnnaBridge 172:65be27845400 6880 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 172:65be27845400 6881 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 6882 */
AnnaBridge 172:65be27845400 6883 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_EOSMP(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 172:65be27845400 6884 {
AnnaBridge 172:65be27845400 6885 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_EOSMP_MST) == (LL_ADC_FLAG_EOSMP_MST));
AnnaBridge 172:65be27845400 6886 }
AnnaBridge 172:65be27845400 6887
AnnaBridge 172:65be27845400 6888 /**
AnnaBridge 172:65be27845400 6889 * @brief Get flag multimode ADC group regular end of sampling of the ADC slave.
AnnaBridge 172:65be27845400 6890 * @rmtoll CSR EOSMP_SLV LL_ADC_IsActiveFlag_SLV_EOSMP
AnnaBridge 172:65be27845400 6891 * @param ADCxy_COMMON ADC common instance
AnnaBridge 172:65be27845400 6892 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 172:65be27845400 6893 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 6894 */
AnnaBridge 172:65be27845400 6895 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV_EOSMP(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 172:65be27845400 6896 {
AnnaBridge 172:65be27845400 6897 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_EOSMP_SLV) == (LL_ADC_FLAG_EOSMP_SLV));
AnnaBridge 172:65be27845400 6898 }
AnnaBridge 172:65be27845400 6899
AnnaBridge 172:65be27845400 6900 /**
AnnaBridge 172:65be27845400 6901 * @brief Get flag multimode ADC group injected end of unitary conversion of the ADC master.
AnnaBridge 172:65be27845400 6902 * @rmtoll CSR JEOC_MST LL_ADC_IsActiveFlag_MST_JEOC
AnnaBridge 172:65be27845400 6903 * @param ADCxy_COMMON ADC common instance
AnnaBridge 172:65be27845400 6904 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 172:65be27845400 6905 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 6906 */
AnnaBridge 172:65be27845400 6907 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_JEOC(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 172:65be27845400 6908 {
AnnaBridge 172:65be27845400 6909 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_JEOC_MST) == (LL_ADC_FLAG_JEOC_MST));
AnnaBridge 172:65be27845400 6910 }
AnnaBridge 172:65be27845400 6911
AnnaBridge 172:65be27845400 6912 /**
AnnaBridge 172:65be27845400 6913 * @brief Get flag multimode ADC group injected end of unitary conversion of the ADC slave.
AnnaBridge 172:65be27845400 6914 * @rmtoll CSR JEOC_SLV LL_ADC_IsActiveFlag_SLV_JEOC
AnnaBridge 172:65be27845400 6915 * @param ADCxy_COMMON ADC common instance
AnnaBridge 172:65be27845400 6916 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 172:65be27845400 6917 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 6918 */
AnnaBridge 172:65be27845400 6919 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV_JEOC(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 172:65be27845400 6920 {
AnnaBridge 172:65be27845400 6921 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_JEOC_SLV) == (LL_ADC_FLAG_JEOC_SLV));
AnnaBridge 172:65be27845400 6922 }
AnnaBridge 172:65be27845400 6923
AnnaBridge 172:65be27845400 6924 /**
AnnaBridge 172:65be27845400 6925 * @brief Get flag multimode ADC group injected end of sequence conversions of the ADC master.
AnnaBridge 172:65be27845400 6926 * @rmtoll CSR JEOS_MST LL_ADC_IsActiveFlag_MST_JEOS
AnnaBridge 172:65be27845400 6927 * @param ADCxy_COMMON ADC common instance
AnnaBridge 172:65be27845400 6928 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 172:65be27845400 6929 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 6930 */
AnnaBridge 172:65be27845400 6931 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_JEOS(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 172:65be27845400 6932 {
AnnaBridge 172:65be27845400 6933 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_JEOS_MST) == (LL_ADC_FLAG_JEOS_MST));
AnnaBridge 172:65be27845400 6934 }
AnnaBridge 172:65be27845400 6935
AnnaBridge 172:65be27845400 6936 /**
AnnaBridge 172:65be27845400 6937 * @brief Get flag multimode ADC group injected end of sequence conversions of the ADC slave.
AnnaBridge 172:65be27845400 6938 * @rmtoll CSR JEOS_SLV LL_ADC_IsActiveFlag_SLV_JEOS
AnnaBridge 172:65be27845400 6939 * @param ADCxy_COMMON ADC common instance
AnnaBridge 172:65be27845400 6940 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 172:65be27845400 6941 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 6942 */
AnnaBridge 172:65be27845400 6943 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV_JEOS(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 172:65be27845400 6944 {
AnnaBridge 172:65be27845400 6945 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_JEOS_SLV) == (LL_ADC_FLAG_JEOS_SLV));
AnnaBridge 172:65be27845400 6946 }
AnnaBridge 172:65be27845400 6947
AnnaBridge 172:65be27845400 6948 /**
AnnaBridge 172:65be27845400 6949 * @brief Get flag multimode ADC group injected context queue overflow of the ADC master.
AnnaBridge 172:65be27845400 6950 * @rmtoll CSR JQOVF_MST LL_ADC_IsActiveFlag_MST_JQOVF
AnnaBridge 172:65be27845400 6951 * @param ADCxy_COMMON ADC common instance
AnnaBridge 172:65be27845400 6952 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 172:65be27845400 6953 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 6954 */
AnnaBridge 172:65be27845400 6955 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_JQOVF(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 172:65be27845400 6956 {
AnnaBridge 172:65be27845400 6957 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_JQOVF_MST) == (LL_ADC_FLAG_JQOVF_MST));
AnnaBridge 172:65be27845400 6958 }
AnnaBridge 172:65be27845400 6959
AnnaBridge 172:65be27845400 6960 /**
AnnaBridge 172:65be27845400 6961 * @brief Get flag multimode ADC group injected context queue overflow of the ADC slave.
AnnaBridge 172:65be27845400 6962 * @rmtoll CSR JQOVF_SLV LL_ADC_IsActiveFlag_SLV_JQOVF
AnnaBridge 172:65be27845400 6963 * @param ADCxy_COMMON ADC common instance
AnnaBridge 172:65be27845400 6964 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 172:65be27845400 6965 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 6966 */
AnnaBridge 172:65be27845400 6967 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV_JQOVF(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 172:65be27845400 6968 {
AnnaBridge 172:65be27845400 6969 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_JQOVF_SLV) == (LL_ADC_FLAG_JQOVF_SLV));
AnnaBridge 172:65be27845400 6970 }
AnnaBridge 172:65be27845400 6971
AnnaBridge 172:65be27845400 6972 /**
AnnaBridge 172:65be27845400 6973 * @brief Get flag multimode ADC analog watchdog 1 of the ADC master.
AnnaBridge 172:65be27845400 6974 * @rmtoll CSR AWD1_MST LL_ADC_IsActiveFlag_MST_AWD1
AnnaBridge 172:65be27845400 6975 * @param ADCxy_COMMON ADC common instance
AnnaBridge 172:65be27845400 6976 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 172:65be27845400 6977 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 6978 */
AnnaBridge 172:65be27845400 6979 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_AWD1(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 172:65be27845400 6980 {
AnnaBridge 172:65be27845400 6981 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_AWD1_MST) == (LL_ADC_FLAG_AWD1_MST));
AnnaBridge 172:65be27845400 6982 }
AnnaBridge 172:65be27845400 6983
AnnaBridge 172:65be27845400 6984 /**
AnnaBridge 172:65be27845400 6985 * @brief Get flag multimode analog watchdog 1 of the ADC slave.
AnnaBridge 172:65be27845400 6986 * @rmtoll CSR AWD1_SLV LL_ADC_IsActiveFlag_SLV_AWD1
AnnaBridge 172:65be27845400 6987 * @param ADCxy_COMMON ADC common instance
AnnaBridge 172:65be27845400 6988 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 172:65be27845400 6989 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 6990 */
AnnaBridge 172:65be27845400 6991 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV_AWD1(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 172:65be27845400 6992 {
AnnaBridge 172:65be27845400 6993 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_AWD1_SLV) == (LL_ADC_FLAG_AWD1_SLV));
AnnaBridge 172:65be27845400 6994 }
AnnaBridge 172:65be27845400 6995
AnnaBridge 172:65be27845400 6996 /**
AnnaBridge 172:65be27845400 6997 * @brief Get flag multimode ADC analog watchdog 2 of the ADC master.
AnnaBridge 172:65be27845400 6998 * @rmtoll CSR AWD2_MST LL_ADC_IsActiveFlag_MST_AWD2
AnnaBridge 172:65be27845400 6999 * @param ADCxy_COMMON ADC common instance
AnnaBridge 172:65be27845400 7000 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 172:65be27845400 7001 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 7002 */
AnnaBridge 172:65be27845400 7003 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_AWD2(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 172:65be27845400 7004 {
AnnaBridge 172:65be27845400 7005 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_AWD2_MST) == (LL_ADC_FLAG_AWD2_MST));
AnnaBridge 172:65be27845400 7006 }
AnnaBridge 172:65be27845400 7007
AnnaBridge 172:65be27845400 7008 /**
AnnaBridge 172:65be27845400 7009 * @brief Get flag multimode ADC analog watchdog 2 of the ADC slave.
AnnaBridge 172:65be27845400 7010 * @rmtoll CSR AWD2_SLV LL_ADC_IsActiveFlag_SLV_AWD2
AnnaBridge 172:65be27845400 7011 * @param ADCxy_COMMON ADC common instance
AnnaBridge 172:65be27845400 7012 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 172:65be27845400 7013 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 7014 */
AnnaBridge 172:65be27845400 7015 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV_AWD2(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 172:65be27845400 7016 {
AnnaBridge 172:65be27845400 7017 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_AWD2_SLV) == (LL_ADC_FLAG_AWD2_SLV));
AnnaBridge 172:65be27845400 7018 }
AnnaBridge 172:65be27845400 7019
AnnaBridge 172:65be27845400 7020 /**
AnnaBridge 172:65be27845400 7021 * @brief Get flag multimode ADC analog watchdog 3 of the ADC master.
AnnaBridge 172:65be27845400 7022 * @rmtoll CSR AWD3_MST LL_ADC_IsActiveFlag_MST_AWD3
AnnaBridge 172:65be27845400 7023 * @param ADCxy_COMMON ADC common instance
AnnaBridge 172:65be27845400 7024 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 172:65be27845400 7025 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 7026 */
AnnaBridge 172:65be27845400 7027 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_AWD3(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 172:65be27845400 7028 {
AnnaBridge 172:65be27845400 7029 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_AWD3_MST) == (LL_ADC_FLAG_AWD3_MST));
AnnaBridge 172:65be27845400 7030 }
AnnaBridge 172:65be27845400 7031
AnnaBridge 172:65be27845400 7032 /**
AnnaBridge 172:65be27845400 7033 * @brief Get flag multimode ADC analog watchdog 3 of the ADC slave.
AnnaBridge 172:65be27845400 7034 * @rmtoll CSR AWD3_SLV LL_ADC_IsActiveFlag_SLV_AWD3
AnnaBridge 172:65be27845400 7035 * @param ADCxy_COMMON ADC common instance
AnnaBridge 172:65be27845400 7036 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 172:65be27845400 7037 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 7038 */
AnnaBridge 172:65be27845400 7039 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV_AWD3(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 172:65be27845400 7040 {
AnnaBridge 172:65be27845400 7041 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_AWD3_SLV) == (LL_ADC_FLAG_AWD3_SLV));
AnnaBridge 172:65be27845400 7042 }
AnnaBridge 172:65be27845400 7043 #endif /* ADC_MULTIMODE_SUPPORT */
AnnaBridge 172:65be27845400 7044
AnnaBridge 172:65be27845400 7045 /**
AnnaBridge 172:65be27845400 7046 * @}
AnnaBridge 172:65be27845400 7047 */
AnnaBridge 172:65be27845400 7048
AnnaBridge 172:65be27845400 7049 /** @defgroup ADC_LL_EF_IT_Management ADC IT management
AnnaBridge 172:65be27845400 7050 * @{
AnnaBridge 172:65be27845400 7051 */
AnnaBridge 172:65be27845400 7052
AnnaBridge 172:65be27845400 7053 /**
AnnaBridge 172:65be27845400 7054 * @brief Enable ADC ready.
AnnaBridge 172:65be27845400 7055 * @rmtoll IER ADRDYIE LL_ADC_EnableIT_ADRDY
AnnaBridge 172:65be27845400 7056 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 7057 * @retval None
AnnaBridge 172:65be27845400 7058 */
AnnaBridge 172:65be27845400 7059 __STATIC_INLINE void LL_ADC_EnableIT_ADRDY(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 7060 {
AnnaBridge 172:65be27845400 7061 SET_BIT(ADCx->IER, LL_ADC_IT_ADRDY);
AnnaBridge 172:65be27845400 7062 }
AnnaBridge 172:65be27845400 7063
AnnaBridge 172:65be27845400 7064 /**
AnnaBridge 172:65be27845400 7065 * @brief Enable interruption ADC group regular end of unitary conversion.
AnnaBridge 172:65be27845400 7066 * @rmtoll IER EOCIE LL_ADC_EnableIT_EOC
AnnaBridge 172:65be27845400 7067 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 7068 * @retval None
AnnaBridge 172:65be27845400 7069 */
AnnaBridge 172:65be27845400 7070 __STATIC_INLINE void LL_ADC_EnableIT_EOC(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 7071 {
AnnaBridge 172:65be27845400 7072 SET_BIT(ADCx->IER, LL_ADC_IT_EOC);
AnnaBridge 172:65be27845400 7073 }
AnnaBridge 172:65be27845400 7074
AnnaBridge 172:65be27845400 7075 /**
AnnaBridge 172:65be27845400 7076 * @brief Enable interruption ADC group regular end of sequence conversions.
AnnaBridge 172:65be27845400 7077 * @rmtoll IER EOSIE LL_ADC_EnableIT_EOS
AnnaBridge 172:65be27845400 7078 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 7079 * @retval None
AnnaBridge 172:65be27845400 7080 */
AnnaBridge 172:65be27845400 7081 __STATIC_INLINE void LL_ADC_EnableIT_EOS(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 7082 {
AnnaBridge 172:65be27845400 7083 SET_BIT(ADCx->IER, LL_ADC_IT_EOS);
AnnaBridge 172:65be27845400 7084 }
AnnaBridge 172:65be27845400 7085
AnnaBridge 172:65be27845400 7086 /**
AnnaBridge 172:65be27845400 7087 * @brief Enable ADC group regular interruption overrun.
AnnaBridge 172:65be27845400 7088 * @rmtoll IER OVRIE LL_ADC_EnableIT_OVR
AnnaBridge 172:65be27845400 7089 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 7090 * @retval None
AnnaBridge 172:65be27845400 7091 */
AnnaBridge 172:65be27845400 7092 __STATIC_INLINE void LL_ADC_EnableIT_OVR(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 7093 {
AnnaBridge 172:65be27845400 7094 SET_BIT(ADCx->IER, LL_ADC_IT_OVR);
AnnaBridge 172:65be27845400 7095 }
AnnaBridge 172:65be27845400 7096
AnnaBridge 172:65be27845400 7097 /**
AnnaBridge 172:65be27845400 7098 * @brief Enable interruption ADC group regular end of sampling.
AnnaBridge 172:65be27845400 7099 * @rmtoll IER EOSMPIE LL_ADC_EnableIT_EOSMP
AnnaBridge 172:65be27845400 7100 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 7101 * @retval None
AnnaBridge 172:65be27845400 7102 */
AnnaBridge 172:65be27845400 7103 __STATIC_INLINE void LL_ADC_EnableIT_EOSMP(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 7104 {
AnnaBridge 172:65be27845400 7105 SET_BIT(ADCx->IER, LL_ADC_IT_EOSMP);
AnnaBridge 172:65be27845400 7106 }
AnnaBridge 172:65be27845400 7107
AnnaBridge 172:65be27845400 7108 /**
AnnaBridge 172:65be27845400 7109 * @brief Enable interruption ADC group injected end of unitary conversion.
AnnaBridge 172:65be27845400 7110 * @rmtoll IER JEOCIE LL_ADC_EnableIT_JEOC
AnnaBridge 172:65be27845400 7111 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 7112 * @retval None
AnnaBridge 172:65be27845400 7113 */
AnnaBridge 172:65be27845400 7114 __STATIC_INLINE void LL_ADC_EnableIT_JEOC(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 7115 {
AnnaBridge 172:65be27845400 7116 SET_BIT(ADCx->IER, LL_ADC_IT_JEOC);
AnnaBridge 172:65be27845400 7117 }
AnnaBridge 172:65be27845400 7118
AnnaBridge 172:65be27845400 7119 /**
AnnaBridge 172:65be27845400 7120 * @brief Enable interruption ADC group injected end of sequence conversions.
AnnaBridge 172:65be27845400 7121 * @rmtoll IER JEOSIE LL_ADC_EnableIT_JEOS
AnnaBridge 172:65be27845400 7122 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 7123 * @retval None
AnnaBridge 172:65be27845400 7124 */
AnnaBridge 172:65be27845400 7125 __STATIC_INLINE void LL_ADC_EnableIT_JEOS(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 7126 {
AnnaBridge 172:65be27845400 7127 SET_BIT(ADCx->IER, LL_ADC_IT_JEOS);
AnnaBridge 172:65be27845400 7128 }
AnnaBridge 172:65be27845400 7129
AnnaBridge 172:65be27845400 7130 /**
AnnaBridge 172:65be27845400 7131 * @brief Enable interruption ADC group injected context queue overflow.
AnnaBridge 172:65be27845400 7132 * @rmtoll IER JQOVFIE LL_ADC_EnableIT_JQOVF
AnnaBridge 172:65be27845400 7133 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 7134 * @retval None
AnnaBridge 172:65be27845400 7135 */
AnnaBridge 172:65be27845400 7136 __STATIC_INLINE void LL_ADC_EnableIT_JQOVF(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 7137 {
AnnaBridge 172:65be27845400 7138 SET_BIT(ADCx->IER, LL_ADC_IT_JQOVF);
AnnaBridge 172:65be27845400 7139 }
AnnaBridge 172:65be27845400 7140
AnnaBridge 172:65be27845400 7141 /**
AnnaBridge 172:65be27845400 7142 * @brief Enable interruption ADC analog watchdog 1.
AnnaBridge 172:65be27845400 7143 * @rmtoll IER AWD1IE LL_ADC_EnableIT_AWD1
AnnaBridge 172:65be27845400 7144 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 7145 * @retval None
AnnaBridge 172:65be27845400 7146 */
AnnaBridge 172:65be27845400 7147 __STATIC_INLINE void LL_ADC_EnableIT_AWD1(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 7148 {
AnnaBridge 172:65be27845400 7149 SET_BIT(ADCx->IER, LL_ADC_IT_AWD1);
AnnaBridge 172:65be27845400 7150 }
AnnaBridge 172:65be27845400 7151
AnnaBridge 172:65be27845400 7152 /**
AnnaBridge 172:65be27845400 7153 * @brief Enable interruption ADC analog watchdog 2.
AnnaBridge 172:65be27845400 7154 * @rmtoll IER AWD2IE LL_ADC_EnableIT_AWD2
AnnaBridge 172:65be27845400 7155 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 7156 * @retval None
AnnaBridge 172:65be27845400 7157 */
AnnaBridge 172:65be27845400 7158 __STATIC_INLINE void LL_ADC_EnableIT_AWD2(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 7159 {
AnnaBridge 172:65be27845400 7160 SET_BIT(ADCx->IER, LL_ADC_IT_AWD2);
AnnaBridge 172:65be27845400 7161 }
AnnaBridge 172:65be27845400 7162
AnnaBridge 172:65be27845400 7163 /**
AnnaBridge 172:65be27845400 7164 * @brief Enable interruption ADC analog watchdog 3.
AnnaBridge 172:65be27845400 7165 * @rmtoll IER AWD3IE LL_ADC_EnableIT_AWD3
AnnaBridge 172:65be27845400 7166 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 7167 * @retval None
AnnaBridge 172:65be27845400 7168 */
AnnaBridge 172:65be27845400 7169 __STATIC_INLINE void LL_ADC_EnableIT_AWD3(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 7170 {
AnnaBridge 172:65be27845400 7171 SET_BIT(ADCx->IER, LL_ADC_IT_AWD3);
AnnaBridge 172:65be27845400 7172 }
AnnaBridge 172:65be27845400 7173
AnnaBridge 172:65be27845400 7174 /**
AnnaBridge 172:65be27845400 7175 * @brief Disable interruption ADC ready.
AnnaBridge 172:65be27845400 7176 * @rmtoll IER ADRDYIE LL_ADC_DisableIT_ADRDY
AnnaBridge 172:65be27845400 7177 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 7178 * @retval None
AnnaBridge 172:65be27845400 7179 */
AnnaBridge 172:65be27845400 7180 __STATIC_INLINE void LL_ADC_DisableIT_ADRDY(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 7181 {
AnnaBridge 172:65be27845400 7182 CLEAR_BIT(ADCx->IER, LL_ADC_IT_ADRDY);
AnnaBridge 172:65be27845400 7183 }
AnnaBridge 172:65be27845400 7184
AnnaBridge 172:65be27845400 7185 /**
AnnaBridge 172:65be27845400 7186 * @brief Disable interruption ADC group regular end of unitary conversion.
AnnaBridge 172:65be27845400 7187 * @rmtoll IER EOCIE LL_ADC_DisableIT_EOC
AnnaBridge 172:65be27845400 7188 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 7189 * @retval None
AnnaBridge 172:65be27845400 7190 */
AnnaBridge 172:65be27845400 7191 __STATIC_INLINE void LL_ADC_DisableIT_EOC(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 7192 {
AnnaBridge 172:65be27845400 7193 CLEAR_BIT(ADCx->IER, LL_ADC_IT_EOC);
AnnaBridge 172:65be27845400 7194 }
AnnaBridge 172:65be27845400 7195
AnnaBridge 172:65be27845400 7196 /**
AnnaBridge 172:65be27845400 7197 * @brief Disable interruption ADC group regular end of sequence conversions.
AnnaBridge 172:65be27845400 7198 * @rmtoll IER EOSIE LL_ADC_DisableIT_EOS
AnnaBridge 172:65be27845400 7199 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 7200 * @retval None
AnnaBridge 172:65be27845400 7201 */
AnnaBridge 172:65be27845400 7202 __STATIC_INLINE void LL_ADC_DisableIT_EOS(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 7203 {
AnnaBridge 172:65be27845400 7204 CLEAR_BIT(ADCx->IER, LL_ADC_IT_EOS);
AnnaBridge 172:65be27845400 7205 }
AnnaBridge 172:65be27845400 7206
AnnaBridge 172:65be27845400 7207 /**
AnnaBridge 172:65be27845400 7208 * @brief Disable interruption ADC group regular overrun.
AnnaBridge 172:65be27845400 7209 * @rmtoll IER OVRIE LL_ADC_DisableIT_OVR
AnnaBridge 172:65be27845400 7210 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 7211 * @retval None
AnnaBridge 172:65be27845400 7212 */
AnnaBridge 172:65be27845400 7213 __STATIC_INLINE void LL_ADC_DisableIT_OVR(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 7214 {
AnnaBridge 172:65be27845400 7215 CLEAR_BIT(ADCx->IER, LL_ADC_IT_OVR);
AnnaBridge 172:65be27845400 7216 }
AnnaBridge 172:65be27845400 7217
AnnaBridge 172:65be27845400 7218 /**
AnnaBridge 172:65be27845400 7219 * @brief Disable interruption ADC group regular end of sampling.
AnnaBridge 172:65be27845400 7220 * @rmtoll IER EOSMPIE LL_ADC_DisableIT_EOSMP
AnnaBridge 172:65be27845400 7221 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 7222 * @retval None
AnnaBridge 172:65be27845400 7223 */
AnnaBridge 172:65be27845400 7224 __STATIC_INLINE void LL_ADC_DisableIT_EOSMP(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 7225 {
AnnaBridge 172:65be27845400 7226 CLEAR_BIT(ADCx->IER, LL_ADC_IT_EOSMP);
AnnaBridge 172:65be27845400 7227 }
AnnaBridge 172:65be27845400 7228
AnnaBridge 172:65be27845400 7229 /**
AnnaBridge 172:65be27845400 7230 * @brief Disable interruption ADC group regular end of unitary conversion.
AnnaBridge 172:65be27845400 7231 * @rmtoll IER JEOCIE LL_ADC_DisableIT_JEOC
AnnaBridge 172:65be27845400 7232 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 7233 * @retval None
AnnaBridge 172:65be27845400 7234 */
AnnaBridge 172:65be27845400 7235 __STATIC_INLINE void LL_ADC_DisableIT_JEOC(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 7236 {
AnnaBridge 172:65be27845400 7237 CLEAR_BIT(ADCx->IER, LL_ADC_IT_JEOC);
AnnaBridge 172:65be27845400 7238 }
AnnaBridge 172:65be27845400 7239
AnnaBridge 172:65be27845400 7240 /**
AnnaBridge 172:65be27845400 7241 * @brief Disable interruption ADC group injected end of sequence conversions.
AnnaBridge 172:65be27845400 7242 * @rmtoll IER JEOSIE LL_ADC_DisableIT_JEOS
AnnaBridge 172:65be27845400 7243 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 7244 * @retval None
AnnaBridge 172:65be27845400 7245 */
AnnaBridge 172:65be27845400 7246 __STATIC_INLINE void LL_ADC_DisableIT_JEOS(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 7247 {
AnnaBridge 172:65be27845400 7248 CLEAR_BIT(ADCx->IER, LL_ADC_IT_JEOS);
AnnaBridge 172:65be27845400 7249 }
AnnaBridge 172:65be27845400 7250
AnnaBridge 172:65be27845400 7251 /**
AnnaBridge 172:65be27845400 7252 * @brief Disable interruption ADC group injected context queue overflow.
AnnaBridge 172:65be27845400 7253 * @rmtoll IER JQOVFIE LL_ADC_DisableIT_JQOVF
AnnaBridge 172:65be27845400 7254 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 7255 * @retval None
AnnaBridge 172:65be27845400 7256 */
AnnaBridge 172:65be27845400 7257 __STATIC_INLINE void LL_ADC_DisableIT_JQOVF(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 7258 {
AnnaBridge 172:65be27845400 7259 CLEAR_BIT(ADCx->IER, LL_ADC_IT_JQOVF);
AnnaBridge 172:65be27845400 7260 }
AnnaBridge 172:65be27845400 7261
AnnaBridge 172:65be27845400 7262 /**
AnnaBridge 172:65be27845400 7263 * @brief Disable interruption ADC analog watchdog 1.
AnnaBridge 172:65be27845400 7264 * @rmtoll IER AWD1IE LL_ADC_DisableIT_AWD1
AnnaBridge 172:65be27845400 7265 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 7266 * @retval None
AnnaBridge 172:65be27845400 7267 */
AnnaBridge 172:65be27845400 7268 __STATIC_INLINE void LL_ADC_DisableIT_AWD1(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 7269 {
AnnaBridge 172:65be27845400 7270 CLEAR_BIT(ADCx->IER, LL_ADC_IT_AWD1);
AnnaBridge 172:65be27845400 7271 }
AnnaBridge 172:65be27845400 7272
AnnaBridge 172:65be27845400 7273 /**
AnnaBridge 172:65be27845400 7274 * @brief Disable interruption ADC analog watchdog 2.
AnnaBridge 172:65be27845400 7275 * @rmtoll IER AWD2IE LL_ADC_DisableIT_AWD2
AnnaBridge 172:65be27845400 7276 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 7277 * @retval None
AnnaBridge 172:65be27845400 7278 */
AnnaBridge 172:65be27845400 7279 __STATIC_INLINE void LL_ADC_DisableIT_AWD2(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 7280 {
AnnaBridge 172:65be27845400 7281 CLEAR_BIT(ADCx->IER, LL_ADC_IT_AWD2);
AnnaBridge 172:65be27845400 7282 }
AnnaBridge 172:65be27845400 7283
AnnaBridge 172:65be27845400 7284 /**
AnnaBridge 172:65be27845400 7285 * @brief Disable interruption ADC analog watchdog 3.
AnnaBridge 172:65be27845400 7286 * @rmtoll IER AWD3IE LL_ADC_DisableIT_AWD3
AnnaBridge 172:65be27845400 7287 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 7288 * @retval None
AnnaBridge 172:65be27845400 7289 */
AnnaBridge 172:65be27845400 7290 __STATIC_INLINE void LL_ADC_DisableIT_AWD3(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 7291 {
AnnaBridge 172:65be27845400 7292 CLEAR_BIT(ADCx->IER, LL_ADC_IT_AWD3);
AnnaBridge 172:65be27845400 7293 }
AnnaBridge 172:65be27845400 7294
AnnaBridge 172:65be27845400 7295 /**
AnnaBridge 172:65be27845400 7296 * @brief Get state of interruption ADC ready
AnnaBridge 172:65be27845400 7297 * (0: interrupt disabled, 1: interrupt enabled).
AnnaBridge 172:65be27845400 7298 * @rmtoll IER ADRDYIE LL_ADC_IsEnabledIT_ADRDY
AnnaBridge 172:65be27845400 7299 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 7300 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 7301 */
AnnaBridge 172:65be27845400 7302 __STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_ADRDY(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 7303 {
AnnaBridge 172:65be27845400 7304 return (READ_BIT(ADCx->IER, LL_ADC_IT_ADRDY) == (LL_ADC_IT_ADRDY));
AnnaBridge 172:65be27845400 7305 }
AnnaBridge 172:65be27845400 7306
AnnaBridge 172:65be27845400 7307 /**
AnnaBridge 172:65be27845400 7308 * @brief Get state of interruption ADC group regular end of unitary conversion
AnnaBridge 172:65be27845400 7309 * (0: interrupt disabled, 1: interrupt enabled).
AnnaBridge 172:65be27845400 7310 * @rmtoll IER EOCIE LL_ADC_IsEnabledIT_EOC
AnnaBridge 172:65be27845400 7311 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 7312 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 7313 */
AnnaBridge 172:65be27845400 7314 __STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_EOC(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 7315 {
AnnaBridge 172:65be27845400 7316 return (READ_BIT(ADCx->IER, LL_ADC_IT_EOC) == (LL_ADC_IT_EOC));
AnnaBridge 172:65be27845400 7317 }
AnnaBridge 172:65be27845400 7318
AnnaBridge 172:65be27845400 7319 /**
AnnaBridge 172:65be27845400 7320 * @brief Get state of interruption ADC group regular end of sequence conversions
AnnaBridge 172:65be27845400 7321 * (0: interrupt disabled, 1: interrupt enabled).
AnnaBridge 172:65be27845400 7322 * @rmtoll IER EOSIE LL_ADC_IsEnabledIT_EOS
AnnaBridge 172:65be27845400 7323 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 7324 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 7325 */
AnnaBridge 172:65be27845400 7326 __STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_EOS(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 7327 {
AnnaBridge 172:65be27845400 7328 return (READ_BIT(ADCx->IER, LL_ADC_IT_EOS) == (LL_ADC_IT_EOS));
AnnaBridge 172:65be27845400 7329 }
AnnaBridge 172:65be27845400 7330
AnnaBridge 172:65be27845400 7331 /**
AnnaBridge 172:65be27845400 7332 * @brief Get state of interruption ADC group regular overrun
AnnaBridge 172:65be27845400 7333 * (0: interrupt disabled, 1: interrupt enabled).
AnnaBridge 172:65be27845400 7334 * @rmtoll IER OVRIE LL_ADC_IsEnabledIT_OVR
AnnaBridge 172:65be27845400 7335 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 7336 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 7337 */
AnnaBridge 172:65be27845400 7338 __STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_OVR(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 7339 {
AnnaBridge 172:65be27845400 7340 return (READ_BIT(ADCx->IER, LL_ADC_IT_OVR) == (LL_ADC_IT_OVR));
AnnaBridge 172:65be27845400 7341 }
AnnaBridge 172:65be27845400 7342
AnnaBridge 172:65be27845400 7343 /**
AnnaBridge 172:65be27845400 7344 * @brief Get state of interruption ADC group regular end of sampling
AnnaBridge 172:65be27845400 7345 * (0: interrupt disabled, 1: interrupt enabled).
AnnaBridge 172:65be27845400 7346 * @rmtoll IER EOSMPIE LL_ADC_IsEnabledIT_EOSMP
AnnaBridge 172:65be27845400 7347 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 7348 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 7349 */
AnnaBridge 172:65be27845400 7350 __STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_EOSMP(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 7351 {
AnnaBridge 172:65be27845400 7352 return (READ_BIT(ADCx->IER, LL_ADC_IT_EOSMP) == (LL_ADC_IT_EOSMP));
AnnaBridge 172:65be27845400 7353 }
AnnaBridge 172:65be27845400 7354
AnnaBridge 172:65be27845400 7355 /**
AnnaBridge 172:65be27845400 7356 * @brief Get state of interruption ADC group injected end of unitary conversion
AnnaBridge 172:65be27845400 7357 * (0: interrupt disabled, 1: interrupt enabled).
AnnaBridge 172:65be27845400 7358 * @rmtoll IER JEOCIE LL_ADC_IsEnabledIT_JEOC
AnnaBridge 172:65be27845400 7359 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 7360 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 7361 */
AnnaBridge 172:65be27845400 7362 __STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_JEOC(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 7363 {
AnnaBridge 172:65be27845400 7364 return (READ_BIT(ADCx->IER, LL_ADC_IT_JEOC) == (LL_ADC_IT_JEOC));
AnnaBridge 172:65be27845400 7365 }
AnnaBridge 172:65be27845400 7366
AnnaBridge 172:65be27845400 7367 /**
AnnaBridge 172:65be27845400 7368 * @brief Get state of interruption ADC group injected end of sequence conversions
AnnaBridge 172:65be27845400 7369 * (0: interrupt disabled, 1: interrupt enabled).
AnnaBridge 172:65be27845400 7370 * @rmtoll IER JEOSIE LL_ADC_IsEnabledIT_JEOS
AnnaBridge 172:65be27845400 7371 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 7372 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 7373 */
AnnaBridge 172:65be27845400 7374 __STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_JEOS(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 7375 {
AnnaBridge 172:65be27845400 7376 return (READ_BIT(ADCx->IER, LL_ADC_IT_JEOS) == (LL_ADC_IT_JEOS));
AnnaBridge 172:65be27845400 7377 }
AnnaBridge 172:65be27845400 7378
AnnaBridge 172:65be27845400 7379 /**
AnnaBridge 172:65be27845400 7380 * @brief Get state of interruption ADC group injected context queue overflow interrupt state
AnnaBridge 172:65be27845400 7381 * (0: interrupt disabled, 1: interrupt enabled).
AnnaBridge 172:65be27845400 7382 * @rmtoll IER JQOVFIE LL_ADC_IsEnabledIT_JQOVF
AnnaBridge 172:65be27845400 7383 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 7384 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 7385 */
AnnaBridge 172:65be27845400 7386 __STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_JQOVF(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 7387 {
AnnaBridge 172:65be27845400 7388 return (READ_BIT(ADCx->IER, LL_ADC_IT_JQOVF) == (LL_ADC_IT_JQOVF));
AnnaBridge 172:65be27845400 7389 }
AnnaBridge 172:65be27845400 7390
AnnaBridge 172:65be27845400 7391 /**
AnnaBridge 172:65be27845400 7392 * @brief Get state of interruption ADC analog watchdog 1
AnnaBridge 172:65be27845400 7393 * (0: interrupt disabled, 1: interrupt enabled).
AnnaBridge 172:65be27845400 7394 * @rmtoll IER AWD1IE LL_ADC_IsEnabledIT_AWD1
AnnaBridge 172:65be27845400 7395 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 7396 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 7397 */
AnnaBridge 172:65be27845400 7398 __STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_AWD1(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 7399 {
AnnaBridge 172:65be27845400 7400 return (READ_BIT(ADCx->IER, LL_ADC_IT_AWD1) == (LL_ADC_IT_AWD1));
AnnaBridge 172:65be27845400 7401 }
AnnaBridge 172:65be27845400 7402
AnnaBridge 172:65be27845400 7403 /**
AnnaBridge 172:65be27845400 7404 * @brief Get state of interruption Get ADC analog watchdog 2
AnnaBridge 172:65be27845400 7405 * (0: interrupt disabled, 1: interrupt enabled).
AnnaBridge 172:65be27845400 7406 * @rmtoll IER AWD2IE LL_ADC_IsEnabledIT_AWD2
AnnaBridge 172:65be27845400 7407 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 7408 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 7409 */
AnnaBridge 172:65be27845400 7410 __STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_AWD2(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 7411 {
AnnaBridge 172:65be27845400 7412 return (READ_BIT(ADCx->IER, LL_ADC_IT_AWD2) == (LL_ADC_IT_AWD2));
AnnaBridge 172:65be27845400 7413 }
AnnaBridge 172:65be27845400 7414
AnnaBridge 172:65be27845400 7415 /**
AnnaBridge 172:65be27845400 7416 * @brief Get state of interruption Get ADC analog watchdog 3
AnnaBridge 172:65be27845400 7417 * (0: interrupt disabled, 1: interrupt enabled).
AnnaBridge 172:65be27845400 7418 * @rmtoll IER AWD3IE LL_ADC_IsEnabledIT_AWD3
AnnaBridge 172:65be27845400 7419 * @param ADCx ADC instance
AnnaBridge 172:65be27845400 7420 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 7421 */
AnnaBridge 172:65be27845400 7422 __STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_AWD3(ADC_TypeDef *ADCx)
AnnaBridge 172:65be27845400 7423 {
AnnaBridge 172:65be27845400 7424 return (READ_BIT(ADCx->IER, LL_ADC_IT_AWD3) == (LL_ADC_IT_AWD3));
AnnaBridge 172:65be27845400 7425 }
AnnaBridge 172:65be27845400 7426
AnnaBridge 172:65be27845400 7427 /**
AnnaBridge 172:65be27845400 7428 * @}
AnnaBridge 172:65be27845400 7429 */
AnnaBridge 172:65be27845400 7430
AnnaBridge 172:65be27845400 7431 #if defined(USE_FULL_LL_DRIVER)
AnnaBridge 172:65be27845400 7432 /** @defgroup ADC_LL_EF_Init Initialization and de-initialization functions
AnnaBridge 172:65be27845400 7433 * @{
AnnaBridge 172:65be27845400 7434 */
AnnaBridge 172:65be27845400 7435
AnnaBridge 172:65be27845400 7436 /* Initialization of some features of ADC common parameters and multimode */
AnnaBridge 172:65be27845400 7437 ErrorStatus LL_ADC_CommonDeInit(ADC_Common_TypeDef *ADCxy_COMMON);
AnnaBridge 172:65be27845400 7438 ErrorStatus LL_ADC_CommonInit(ADC_Common_TypeDef *ADCxy_COMMON, LL_ADC_CommonInitTypeDef *ADC_CommonInitStruct);
AnnaBridge 172:65be27845400 7439 void LL_ADC_CommonStructInit(LL_ADC_CommonInitTypeDef *ADC_CommonInitStruct);
AnnaBridge 172:65be27845400 7440
AnnaBridge 172:65be27845400 7441 /* De-initialization of ADC instance, ADC group regular and ADC group injected */
AnnaBridge 172:65be27845400 7442 /* (availability of ADC group injected depends on STM32 families) */
AnnaBridge 172:65be27845400 7443 ErrorStatus LL_ADC_DeInit(ADC_TypeDef *ADCx);
AnnaBridge 172:65be27845400 7444
AnnaBridge 172:65be27845400 7445 /* Initialization of some features of ADC instance */
AnnaBridge 172:65be27845400 7446 ErrorStatus LL_ADC_Init(ADC_TypeDef *ADCx, LL_ADC_InitTypeDef *ADC_InitStruct);
AnnaBridge 172:65be27845400 7447 void LL_ADC_StructInit(LL_ADC_InitTypeDef *ADC_InitStruct);
AnnaBridge 172:65be27845400 7448
AnnaBridge 172:65be27845400 7449 /* Initialization of some features of ADC instance and ADC group regular */
AnnaBridge 172:65be27845400 7450 ErrorStatus LL_ADC_REG_Init(ADC_TypeDef *ADCx, LL_ADC_REG_InitTypeDef *ADC_REG_InitStruct);
AnnaBridge 172:65be27845400 7451 void LL_ADC_REG_StructInit(LL_ADC_REG_InitTypeDef *ADC_REG_InitStruct);
AnnaBridge 172:65be27845400 7452
AnnaBridge 172:65be27845400 7453 /* Initialization of some features of ADC instance and ADC group injected */
AnnaBridge 172:65be27845400 7454 ErrorStatus LL_ADC_INJ_Init(ADC_TypeDef *ADCx, LL_ADC_INJ_InitTypeDef *ADC_INJ_InitStruct);
AnnaBridge 172:65be27845400 7455 void LL_ADC_INJ_StructInit(LL_ADC_INJ_InitTypeDef *ADC_INJ_InitStruct);
AnnaBridge 172:65be27845400 7456
AnnaBridge 172:65be27845400 7457 /**
AnnaBridge 172:65be27845400 7458 * @}
AnnaBridge 172:65be27845400 7459 */
AnnaBridge 172:65be27845400 7460 #endif /* USE_FULL_LL_DRIVER */
AnnaBridge 172:65be27845400 7461
AnnaBridge 172:65be27845400 7462 /**
AnnaBridge 172:65be27845400 7463 * @}
AnnaBridge 172:65be27845400 7464 */
AnnaBridge 172:65be27845400 7465
AnnaBridge 172:65be27845400 7466 /**
AnnaBridge 172:65be27845400 7467 * @}
AnnaBridge 172:65be27845400 7468 */
AnnaBridge 172:65be27845400 7469
AnnaBridge 172:65be27845400 7470 #endif /* ADC1 || ADC2 || ADC3 */
AnnaBridge 172:65be27845400 7471
AnnaBridge 172:65be27845400 7472 /**
AnnaBridge 172:65be27845400 7473 * @}
AnnaBridge 172:65be27845400 7474 */
AnnaBridge 172:65be27845400 7475
AnnaBridge 172:65be27845400 7476 #ifdef __cplusplus
AnnaBridge 172:65be27845400 7477 }
AnnaBridge 172:65be27845400 7478 #endif
AnnaBridge 172:65be27845400 7479
AnnaBridge 172:65be27845400 7480 #endif /* __STM32L4xx_LL_ADC_H */
AnnaBridge 172:65be27845400 7481
AnnaBridge 172:65be27845400 7482 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/