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

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

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

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

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 171:3a7713b1edbc 1 /**
AnnaBridge 171:3a7713b1edbc 2 ******************************************************************************
AnnaBridge 171:3a7713b1edbc 3 * @file stm32f7xx_ll_adc.h
AnnaBridge 171:3a7713b1edbc 4 * @author MCD Application Team
AnnaBridge 171:3a7713b1edbc 5 * @brief Header file of ADC LL module.
AnnaBridge 171:3a7713b1edbc 6 ******************************************************************************
AnnaBridge 171:3a7713b1edbc 7 * @attention
AnnaBridge 171:3a7713b1edbc 8 *
AnnaBridge 171:3a7713b1edbc 9 * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
AnnaBridge 171:3a7713b1edbc 10 *
AnnaBridge 171:3a7713b1edbc 11 * Redistribution and use in source and binary forms, with or without modification,
AnnaBridge 171:3a7713b1edbc 12 * are permitted provided that the following conditions are met:
AnnaBridge 171:3a7713b1edbc 13 * 1. Redistributions of source code must retain the above copyright notice,
AnnaBridge 171:3a7713b1edbc 14 * this list of conditions and the following disclaimer.
AnnaBridge 171:3a7713b1edbc 15 * 2. Redistributions in binary form must reproduce the above copyright notice,
AnnaBridge 171:3a7713b1edbc 16 * this list of conditions and the following disclaimer in the documentation
AnnaBridge 171:3a7713b1edbc 17 * and/or other materials provided with the distribution.
AnnaBridge 171:3a7713b1edbc 18 * 3. Neither the name of STMicroelectronics nor the names of its contributors
AnnaBridge 171:3a7713b1edbc 19 * may be used to endorse or promote products derived from this software
AnnaBridge 171:3a7713b1edbc 20 * without specific prior written permission.
AnnaBridge 171:3a7713b1edbc 21 *
AnnaBridge 171:3a7713b1edbc 22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AnnaBridge 171:3a7713b1edbc 23 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
AnnaBridge 171:3a7713b1edbc 24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
AnnaBridge 171:3a7713b1edbc 25 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
AnnaBridge 171:3a7713b1edbc 26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
AnnaBridge 171:3a7713b1edbc 27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
AnnaBridge 171:3a7713b1edbc 28 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
AnnaBridge 171:3a7713b1edbc 29 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
AnnaBridge 171:3a7713b1edbc 30 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
AnnaBridge 171:3a7713b1edbc 31 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
AnnaBridge 171:3a7713b1edbc 32 *
AnnaBridge 171:3a7713b1edbc 33 ******************************************************************************
AnnaBridge 171:3a7713b1edbc 34 */
AnnaBridge 171:3a7713b1edbc 35
AnnaBridge 171:3a7713b1edbc 36 /* Define to prevent recursive inclusion -------------------------------------*/
AnnaBridge 171:3a7713b1edbc 37 #ifndef __STM32F7xx_LL_ADC_H
AnnaBridge 171:3a7713b1edbc 38 #define __STM32F7xx_LL_ADC_H
AnnaBridge 171:3a7713b1edbc 39
AnnaBridge 171:3a7713b1edbc 40 #ifdef __cplusplus
AnnaBridge 171:3a7713b1edbc 41 extern "C" {
AnnaBridge 171:3a7713b1edbc 42 #endif
AnnaBridge 171:3a7713b1edbc 43
AnnaBridge 171:3a7713b1edbc 44 /* Includes ------------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 45 #include "stm32f7xx.h"
AnnaBridge 171:3a7713b1edbc 46
AnnaBridge 171:3a7713b1edbc 47 /** @addtogroup STM32F7xx_LL_Driver
AnnaBridge 171:3a7713b1edbc 48 * @{
AnnaBridge 171:3a7713b1edbc 49 */
AnnaBridge 171:3a7713b1edbc 50
AnnaBridge 171:3a7713b1edbc 51 #if defined (ADC1) || defined (ADC2) || defined (ADC3)
AnnaBridge 171:3a7713b1edbc 52
AnnaBridge 171:3a7713b1edbc 53 /** @defgroup ADC_LL ADC
AnnaBridge 171:3a7713b1edbc 54 * @{
AnnaBridge 171:3a7713b1edbc 55 */
AnnaBridge 171:3a7713b1edbc 56
AnnaBridge 171:3a7713b1edbc 57 /* Private types -------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 58 /* Private variables ---------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 59
AnnaBridge 171:3a7713b1edbc 60 /* Private constants ---------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 61 /** @defgroup ADC_LL_Private_Constants ADC Private Constants
AnnaBridge 171:3a7713b1edbc 62 * @{
AnnaBridge 171:3a7713b1edbc 63 */
AnnaBridge 171:3a7713b1edbc 64
AnnaBridge 171:3a7713b1edbc 65 /* Internal mask for ADC group regular sequencer: */
AnnaBridge 171:3a7713b1edbc 66 /* To select into literal LL_ADC_REG_RANK_x the relevant bits for: */
AnnaBridge 171:3a7713b1edbc 67 /* - sequencer register offset */
AnnaBridge 171:3a7713b1edbc 68 /* - sequencer rank bits position into the selected register */
AnnaBridge 171:3a7713b1edbc 69
AnnaBridge 171:3a7713b1edbc 70 /* Internal register offset for ADC group regular sequencer configuration */
AnnaBridge 171:3a7713b1edbc 71 /* (offset placed into a spare area of literal definition) */
AnnaBridge 171:3a7713b1edbc 72 #define ADC_SQR1_REGOFFSET (0x00000000U)
AnnaBridge 171:3a7713b1edbc 73 #define ADC_SQR2_REGOFFSET (0x00000100U)
AnnaBridge 171:3a7713b1edbc 74 #define ADC_SQR3_REGOFFSET (0x00000200U)
AnnaBridge 171:3a7713b1edbc 75 #define ADC_SQR4_REGOFFSET (0x00000300U)
AnnaBridge 171:3a7713b1edbc 76
AnnaBridge 171:3a7713b1edbc 77 #define ADC_REG_SQRX_REGOFFSET_MASK (ADC_SQR1_REGOFFSET | ADC_SQR2_REGOFFSET | ADC_SQR3_REGOFFSET | ADC_SQR4_REGOFFSET)
AnnaBridge 171:3a7713b1edbc 78 #define ADC_REG_RANK_ID_SQRX_MASK (ADC_CHANNEL_ID_NUMBER_MASK_POSBIT0)
AnnaBridge 171:3a7713b1edbc 79
AnnaBridge 171:3a7713b1edbc 80 /* Definition of ADC group regular sequencer bits information to be inserted */
AnnaBridge 171:3a7713b1edbc 81 /* into ADC group regular sequencer ranks literals definition. */
AnnaBridge 171:3a7713b1edbc 82 #define ADC_REG_RANK_1_SQRX_BITOFFSET_POS ( 0U) /* Value equivalent to POSITION_VAL(ADC_SQR3_SQ1) */
AnnaBridge 171:3a7713b1edbc 83 #define ADC_REG_RANK_2_SQRX_BITOFFSET_POS ( 5U) /* Value equivalent to POSITION_VAL(ADC_SQR3_SQ2) */
AnnaBridge 171:3a7713b1edbc 84 #define ADC_REG_RANK_3_SQRX_BITOFFSET_POS (10U) /* Value equivalent to POSITION_VAL(ADC_SQR3_SQ3) */
AnnaBridge 171:3a7713b1edbc 85 #define ADC_REG_RANK_4_SQRX_BITOFFSET_POS (15U) /* Value equivalent to POSITION_VAL(ADC_SQR3_SQ4) */
AnnaBridge 171:3a7713b1edbc 86 #define ADC_REG_RANK_5_SQRX_BITOFFSET_POS (20U) /* Value equivalent to POSITION_VAL(ADC_SQR3_SQ5) */
AnnaBridge 171:3a7713b1edbc 87 #define ADC_REG_RANK_6_SQRX_BITOFFSET_POS (25U) /* Value equivalent to POSITION_VAL(ADC_SQR3_SQ6) */
AnnaBridge 171:3a7713b1edbc 88 #define ADC_REG_RANK_7_SQRX_BITOFFSET_POS ( 0U) /* Value equivalent to POSITION_VAL(ADC_SQR2_SQ7) */
AnnaBridge 171:3a7713b1edbc 89 #define ADC_REG_RANK_8_SQRX_BITOFFSET_POS ( 5U) /* Value equivalent to POSITION_VAL(ADC_SQR2_SQ8) */
AnnaBridge 171:3a7713b1edbc 90 #define ADC_REG_RANK_9_SQRX_BITOFFSET_POS (10U) /* Value equivalent to POSITION_VAL(ADC_SQR2_SQ9) */
AnnaBridge 171:3a7713b1edbc 91 #define ADC_REG_RANK_10_SQRX_BITOFFSET_POS (15U) /* Value equivalent to POSITION_VAL(ADC_SQR2_SQ10) */
AnnaBridge 171:3a7713b1edbc 92 #define ADC_REG_RANK_11_SQRX_BITOFFSET_POS (20U) /* Value equivalent to POSITION_VAL(ADC_SQR2_SQ11) */
AnnaBridge 171:3a7713b1edbc 93 #define ADC_REG_RANK_12_SQRX_BITOFFSET_POS (25U) /* Value equivalent to POSITION_VAL(ADC_SQR2_SQ12) */
AnnaBridge 171:3a7713b1edbc 94 #define ADC_REG_RANK_13_SQRX_BITOFFSET_POS ( 0U) /* Value equivalent to POSITION_VAL(ADC_SQR1_SQ13) */
AnnaBridge 171:3a7713b1edbc 95 #define ADC_REG_RANK_14_SQRX_BITOFFSET_POS ( 5U) /* Value equivalent to POSITION_VAL(ADC_SQR1_SQ14) */
AnnaBridge 171:3a7713b1edbc 96 #define ADC_REG_RANK_15_SQRX_BITOFFSET_POS (10U) /* Value equivalent to POSITION_VAL(ADC_SQR1_SQ15) */
AnnaBridge 171:3a7713b1edbc 97 #define ADC_REG_RANK_16_SQRX_BITOFFSET_POS (15U) /* Value equivalent to POSITION_VAL(ADC_SQR1_SQ16) */
AnnaBridge 171:3a7713b1edbc 98
AnnaBridge 171:3a7713b1edbc 99
AnnaBridge 171:3a7713b1edbc 100
AnnaBridge 171:3a7713b1edbc 101 /* Internal mask for ADC group injected sequencer: */
AnnaBridge 171:3a7713b1edbc 102 /* To select into literal LL_ADC_INJ_RANK_x the relevant bits for: */
AnnaBridge 171:3a7713b1edbc 103 /* - data register offset */
AnnaBridge 171:3a7713b1edbc 104 /* - offset register offset */
AnnaBridge 171:3a7713b1edbc 105 /* - sequencer rank bits position into the selected register */
AnnaBridge 171:3a7713b1edbc 106
AnnaBridge 171:3a7713b1edbc 107 /* Internal register offset for ADC group injected data register */
AnnaBridge 171:3a7713b1edbc 108 /* (offset placed into a spare area of literal definition) */
AnnaBridge 171:3a7713b1edbc 109 #define ADC_JDR1_REGOFFSET (0x00000000U)
AnnaBridge 171:3a7713b1edbc 110 #define ADC_JDR2_REGOFFSET (0x00000100U)
AnnaBridge 171:3a7713b1edbc 111 #define ADC_JDR3_REGOFFSET (0x00000200U)
AnnaBridge 171:3a7713b1edbc 112 #define ADC_JDR4_REGOFFSET (0x00000300U)
AnnaBridge 171:3a7713b1edbc 113
AnnaBridge 171:3a7713b1edbc 114 /* Internal register offset for ADC group injected offset configuration */
AnnaBridge 171:3a7713b1edbc 115 /* (offset placed into a spare area of literal definition) */
AnnaBridge 171:3a7713b1edbc 116 #define ADC_JOFR1_REGOFFSET (0x00000000U)
AnnaBridge 171:3a7713b1edbc 117 #define ADC_JOFR2_REGOFFSET (0x00001000U)
AnnaBridge 171:3a7713b1edbc 118 #define ADC_JOFR3_REGOFFSET (0x00002000U)
AnnaBridge 171:3a7713b1edbc 119 #define ADC_JOFR4_REGOFFSET (0x00003000U)
AnnaBridge 171:3a7713b1edbc 120
AnnaBridge 171:3a7713b1edbc 121 #define ADC_INJ_JDRX_REGOFFSET_MASK (ADC_JDR1_REGOFFSET | ADC_JDR2_REGOFFSET | ADC_JDR3_REGOFFSET | ADC_JDR4_REGOFFSET)
AnnaBridge 171:3a7713b1edbc 122 #define ADC_INJ_JOFRX_REGOFFSET_MASK (ADC_JOFR1_REGOFFSET | ADC_JOFR2_REGOFFSET | ADC_JOFR3_REGOFFSET | ADC_JOFR4_REGOFFSET)
AnnaBridge 171:3a7713b1edbc 123 #define ADC_INJ_RANK_ID_JSQR_MASK (ADC_CHANNEL_ID_NUMBER_MASK_POSBIT0)
AnnaBridge 171:3a7713b1edbc 124
AnnaBridge 171:3a7713b1edbc 125 /* Definition of ADC group injected sequencer bits information to be inserted */
AnnaBridge 171:3a7713b1edbc 126 /* into ADC group injected sequencer ranks literals definition. */
AnnaBridge 171:3a7713b1edbc 127 #define ADC_INJ_RANK_1_JSQR_BITOFFSET_POS ( 0U) /* Value equivalent to POSITION_VAL(ADC_JSQR_JSQ1) */
AnnaBridge 171:3a7713b1edbc 128 #define ADC_INJ_RANK_2_JSQR_BITOFFSET_POS ( 5U) /* Value equivalent to POSITION_VAL(ADC_JSQR_JSQ2) */
AnnaBridge 171:3a7713b1edbc 129 #define ADC_INJ_RANK_3_JSQR_BITOFFSET_POS (10U) /* Value equivalent to POSITION_VAL(ADC_JSQR_JSQ3) */
AnnaBridge 171:3a7713b1edbc 130 #define ADC_INJ_RANK_4_JSQR_BITOFFSET_POS (15U) /* Value equivalent to POSITION_VAL(ADC_JSQR_JSQ4) */
AnnaBridge 171:3a7713b1edbc 131
AnnaBridge 171:3a7713b1edbc 132
AnnaBridge 171:3a7713b1edbc 133
AnnaBridge 171:3a7713b1edbc 134 /* Internal mask for ADC group regular trigger: */
AnnaBridge 171:3a7713b1edbc 135 /* To select into literal LL_ADC_REG_TRIG_x the relevant bits for: */
AnnaBridge 171:3a7713b1edbc 136 /* - regular trigger source */
AnnaBridge 171:3a7713b1edbc 137 /* - regular trigger edge */
AnnaBridge 171:3a7713b1edbc 138 #define ADC_REG_TRIG_EXT_EDGE_DEFAULT (ADC_CR2_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 171:3a7713b1edbc 139
AnnaBridge 171:3a7713b1edbc 140 /* Mask containing trigger source masks for each of possible */
AnnaBridge 171:3a7713b1edbc 141 /* trigger edge selection duplicated with shifts [0; 4; 8; 12] */
AnnaBridge 171:3a7713b1edbc 142 /* corresponding to {SW start; ext trigger; ext trigger; ext trigger}. */
AnnaBridge 171:3a7713b1edbc 143 #define ADC_REG_TRIG_SOURCE_MASK (((LL_ADC_REG_TRIG_SOFTWARE & ADC_CR2_EXTSEL) >> (4U * 0U)) | \
AnnaBridge 171:3a7713b1edbc 144 ((ADC_CR2_EXTSEL) >> (4U * 1U)) | \
AnnaBridge 171:3a7713b1edbc 145 ((ADC_CR2_EXTSEL) >> (4U * 2U)) | \
AnnaBridge 171:3a7713b1edbc 146 ((ADC_CR2_EXTSEL) >> (4U * 3U)) )
AnnaBridge 171:3a7713b1edbc 147
AnnaBridge 171:3a7713b1edbc 148 /* Mask containing trigger edge masks for each of possible */
AnnaBridge 171:3a7713b1edbc 149 /* trigger edge selection duplicated with shifts [0; 4; 8; 12] */
AnnaBridge 171:3a7713b1edbc 150 /* corresponding to {SW start; ext trigger; ext trigger; ext trigger}. */
AnnaBridge 171:3a7713b1edbc 151 #define ADC_REG_TRIG_EDGE_MASK (((LL_ADC_REG_TRIG_SOFTWARE & ADC_CR2_EXTEN) >> (4U * 0U)) | \
AnnaBridge 171:3a7713b1edbc 152 ((ADC_REG_TRIG_EXT_EDGE_DEFAULT) >> (4U * 1U)) | \
AnnaBridge 171:3a7713b1edbc 153 ((ADC_REG_TRIG_EXT_EDGE_DEFAULT) >> (4U * 2U)) | \
AnnaBridge 171:3a7713b1edbc 154 ((ADC_REG_TRIG_EXT_EDGE_DEFAULT) >> (4U * 3U)) )
AnnaBridge 171:3a7713b1edbc 155
AnnaBridge 171:3a7713b1edbc 156 /* Definition of ADC group regular trigger bits information. */
AnnaBridge 171:3a7713b1edbc 157 #define ADC_REG_TRIG_EXTSEL_BITOFFSET_POS (24U) /* Value equivalent to POSITION_VAL(ADC_CR2_EXTSEL) */
AnnaBridge 171:3a7713b1edbc 158 #define ADC_REG_TRIG_EXTEN_BITOFFSET_POS (28U) /* Value equivalent to POSITION_VAL(ADC_CR2_EXTEN) */
AnnaBridge 171:3a7713b1edbc 159
AnnaBridge 171:3a7713b1edbc 160
AnnaBridge 171:3a7713b1edbc 161
AnnaBridge 171:3a7713b1edbc 162 /* Internal mask for ADC group injected trigger: */
AnnaBridge 171:3a7713b1edbc 163 /* To select into literal LL_ADC_INJ_TRIG_x the relevant bits for: */
AnnaBridge 171:3a7713b1edbc 164 /* - injected trigger source */
AnnaBridge 171:3a7713b1edbc 165 /* - injected trigger edge */
AnnaBridge 171:3a7713b1edbc 166 #define ADC_INJ_TRIG_EXT_EDGE_DEFAULT (ADC_CR2_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 171:3a7713b1edbc 167
AnnaBridge 171:3a7713b1edbc 168 /* Mask containing trigger source masks for each of possible */
AnnaBridge 171:3a7713b1edbc 169 /* trigger edge selection duplicated with shifts [0; 4; 8; 12] */
AnnaBridge 171:3a7713b1edbc 170 /* corresponding to {SW start; ext trigger; ext trigger; ext trigger}. */
AnnaBridge 171:3a7713b1edbc 171 #define ADC_INJ_TRIG_SOURCE_MASK (((LL_ADC_REG_TRIG_SOFTWARE & ADC_CR2_JEXTSEL) >> (4U * 0U)) | \
AnnaBridge 171:3a7713b1edbc 172 ((ADC_CR2_JEXTSEL) >> (4U * 1U)) | \
AnnaBridge 171:3a7713b1edbc 173 ((ADC_CR2_JEXTSEL) >> (4U * 2U)) | \
AnnaBridge 171:3a7713b1edbc 174 ((ADC_CR2_JEXTSEL) >> (4U * 3U)) )
AnnaBridge 171:3a7713b1edbc 175
AnnaBridge 171:3a7713b1edbc 176 /* Mask containing trigger edge masks for each of possible */
AnnaBridge 171:3a7713b1edbc 177 /* trigger edge selection duplicated with shifts [0; 4; 8; 12] */
AnnaBridge 171:3a7713b1edbc 178 /* corresponding to {SW start; ext trigger; ext trigger; ext trigger}. */
AnnaBridge 171:3a7713b1edbc 179 #define ADC_INJ_TRIG_EDGE_MASK (((LL_ADC_INJ_TRIG_SOFTWARE & ADC_CR2_JEXTEN) >> (4U * 0U)) | \
AnnaBridge 171:3a7713b1edbc 180 ((ADC_INJ_TRIG_EXT_EDGE_DEFAULT) >> (4U * 1U)) | \
AnnaBridge 171:3a7713b1edbc 181 ((ADC_INJ_TRIG_EXT_EDGE_DEFAULT) >> (4U * 2U)) | \
AnnaBridge 171:3a7713b1edbc 182 ((ADC_INJ_TRIG_EXT_EDGE_DEFAULT) >> (4U * 3U)) )
AnnaBridge 171:3a7713b1edbc 183
AnnaBridge 171:3a7713b1edbc 184 /* Definition of ADC group injected trigger bits information. */
AnnaBridge 171:3a7713b1edbc 185 #define ADC_INJ_TRIG_EXTSEL_BITOFFSET_POS (16U) /* Value equivalent to POSITION_VAL(ADC_CR2_JEXTSEL) */
AnnaBridge 171:3a7713b1edbc 186 #define ADC_INJ_TRIG_EXTEN_BITOFFSET_POS (20U) /* Value equivalent to POSITION_VAL(ADC_CR2_JEXTEN) */
AnnaBridge 171:3a7713b1edbc 187
AnnaBridge 171:3a7713b1edbc 188
AnnaBridge 171:3a7713b1edbc 189
AnnaBridge 171:3a7713b1edbc 190
AnnaBridge 171:3a7713b1edbc 191
AnnaBridge 171:3a7713b1edbc 192
AnnaBridge 171:3a7713b1edbc 193 /* Internal mask for ADC channel: */
AnnaBridge 171:3a7713b1edbc 194 /* To select into literal LL_ADC_CHANNEL_x the relevant bits for: */
AnnaBridge 171:3a7713b1edbc 195 /* - channel identifier defined by number */
AnnaBridge 171:3a7713b1edbc 196 /* - channel differentiation between external channels (connected to */
AnnaBridge 171:3a7713b1edbc 197 /* GPIO pins) and internal channels (connected to internal paths) */
AnnaBridge 171:3a7713b1edbc 198 /* - channel sampling time defined by SMPRx register offset */
AnnaBridge 171:3a7713b1edbc 199 /* and SMPx bits positions into SMPRx register */
AnnaBridge 171:3a7713b1edbc 200 #define ADC_CHANNEL_ID_NUMBER_MASK (ADC_CR1_AWDCH)
AnnaBridge 171:3a7713b1edbc 201 #define ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS ( 0U)/* Value equivalent to POSITION_VAL(ADC_CHANNEL_ID_NUMBER_MASK) */
AnnaBridge 171:3a7713b1edbc 202 #define ADC_CHANNEL_ID_MASK (ADC_CHANNEL_ID_NUMBER_MASK | ADC_CHANNEL_ID_INTERNAL_CH_MASK)
AnnaBridge 171:3a7713b1edbc 203 /* Equivalent mask of ADC_CHANNEL_NUMBER_MASK aligned on register LSB (bit 0) */
AnnaBridge 171:3a7713b1edbc 204 #define ADC_CHANNEL_ID_NUMBER_MASK_POSBIT0 (0x0000001FU) /* Equivalent to shift: (ADC_CHANNEL_NUMBER_MASK >> POSITION_VAL(ADC_CHANNEL_NUMBER_MASK)) */
AnnaBridge 171:3a7713b1edbc 205
AnnaBridge 171:3a7713b1edbc 206 /* Channel differentiation between external and internal channels */
AnnaBridge 171:3a7713b1edbc 207 #define ADC_CHANNEL_ID_INTERNAL_CH (0x80000000U) /* Marker of internal channel */
AnnaBridge 171:3a7713b1edbc 208 #define ADC_CHANNEL_ID_INTERNAL_CH_2 (0x40000000U) /* Marker of internal channel for other ADC instances, in case of different ADC internal channels mapped on same channel number on different ADC instances */
AnnaBridge 171:3a7713b1edbc 209 #define ADC_CHANNEL_DIFFERENCIATION_TEMPSENSOR_VBAT (0x10000000U) /* Dummy bit for driver internal usage, not used in ADC channel setting registers CR1 or SQRx */
AnnaBridge 171:3a7713b1edbc 210 #define ADC_CHANNEL_ID_INTERNAL_CH_MASK (ADC_CHANNEL_ID_INTERNAL_CH | ADC_CHANNEL_ID_INTERNAL_CH_2 | ADC_CHANNEL_DIFFERENCIATION_TEMPSENSOR_VBAT)
AnnaBridge 171:3a7713b1edbc 211
AnnaBridge 171:3a7713b1edbc 212 /* Internal register offset for ADC channel sampling time configuration */
AnnaBridge 171:3a7713b1edbc 213 /* (offset placed into a spare area of literal definition) */
AnnaBridge 171:3a7713b1edbc 214 #define ADC_SMPR1_REGOFFSET (0x00000000U)
AnnaBridge 171:3a7713b1edbc 215 #define ADC_SMPR2_REGOFFSET (0x02000000U)
AnnaBridge 171:3a7713b1edbc 216 #define ADC_CHANNEL_SMPRX_REGOFFSET_MASK (ADC_SMPR1_REGOFFSET | ADC_SMPR2_REGOFFSET)
AnnaBridge 171:3a7713b1edbc 217
AnnaBridge 171:3a7713b1edbc 218 #define ADC_CHANNEL_SMPx_BITOFFSET_MASK (0x01F00000U)
AnnaBridge 171:3a7713b1edbc 219 #define ADC_CHANNEL_SMPx_BITOFFSET_POS (20U) /* Value equivalent to POSITION_VAL(ADC_CHANNEL_SMPx_BITOFFSET_MASK) */
AnnaBridge 171:3a7713b1edbc 220
AnnaBridge 171:3a7713b1edbc 221 /* Definition of channels ID number information to be inserted into */
AnnaBridge 171:3a7713b1edbc 222 /* channels literals definition. */
AnnaBridge 171:3a7713b1edbc 223 #define ADC_CHANNEL_0_NUMBER (0x00000000U)
AnnaBridge 171:3a7713b1edbc 224 #define ADC_CHANNEL_1_NUMBER ( ADC_CR1_AWDCH_0)
AnnaBridge 171:3a7713b1edbc 225 #define ADC_CHANNEL_2_NUMBER ( ADC_CR1_AWDCH_1 )
AnnaBridge 171:3a7713b1edbc 226 #define ADC_CHANNEL_3_NUMBER ( ADC_CR1_AWDCH_1 | ADC_CR1_AWDCH_0)
AnnaBridge 171:3a7713b1edbc 227 #define ADC_CHANNEL_4_NUMBER ( ADC_CR1_AWDCH_2 )
AnnaBridge 171:3a7713b1edbc 228 #define ADC_CHANNEL_5_NUMBER ( ADC_CR1_AWDCH_2 | ADC_CR1_AWDCH_0)
AnnaBridge 171:3a7713b1edbc 229 #define ADC_CHANNEL_6_NUMBER ( ADC_CR1_AWDCH_2 | ADC_CR1_AWDCH_1 )
AnnaBridge 171:3a7713b1edbc 230 #define ADC_CHANNEL_7_NUMBER ( ADC_CR1_AWDCH_2 | ADC_CR1_AWDCH_1 | ADC_CR1_AWDCH_0)
AnnaBridge 171:3a7713b1edbc 231 #define ADC_CHANNEL_8_NUMBER ( ADC_CR1_AWDCH_3 )
AnnaBridge 171:3a7713b1edbc 232 #define ADC_CHANNEL_9_NUMBER ( ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_0)
AnnaBridge 171:3a7713b1edbc 233 #define ADC_CHANNEL_10_NUMBER ( ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_1 )
AnnaBridge 171:3a7713b1edbc 234 #define ADC_CHANNEL_11_NUMBER ( ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_1 | ADC_CR1_AWDCH_0)
AnnaBridge 171:3a7713b1edbc 235 #define ADC_CHANNEL_12_NUMBER ( ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_2 )
AnnaBridge 171:3a7713b1edbc 236 #define ADC_CHANNEL_13_NUMBER ( ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_2 | ADC_CR1_AWDCH_0)
AnnaBridge 171:3a7713b1edbc 237 #define ADC_CHANNEL_14_NUMBER ( ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_2 | ADC_CR1_AWDCH_1 )
AnnaBridge 171:3a7713b1edbc 238 #define ADC_CHANNEL_15_NUMBER ( ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_2 | ADC_CR1_AWDCH_1 | ADC_CR1_AWDCH_0)
AnnaBridge 171:3a7713b1edbc 239 #define ADC_CHANNEL_16_NUMBER (ADC_CR1_AWDCH_4 )
AnnaBridge 171:3a7713b1edbc 240 #define ADC_CHANNEL_17_NUMBER (ADC_CR1_AWDCH_4 | ADC_CR1_AWDCH_0)
AnnaBridge 171:3a7713b1edbc 241 #define ADC_CHANNEL_18_NUMBER (ADC_CR1_AWDCH_4 | ADC_CR1_AWDCH_1 )
AnnaBridge 171:3a7713b1edbc 242
AnnaBridge 171:3a7713b1edbc 243 /* Definition of channels sampling time information to be inserted into */
AnnaBridge 171:3a7713b1edbc 244 /* channels literals definition. */
AnnaBridge 171:3a7713b1edbc 245 #define ADC_CHANNEL_0_SMP (ADC_SMPR2_REGOFFSET | (( 0U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP0) */
AnnaBridge 171:3a7713b1edbc 246 #define ADC_CHANNEL_1_SMP (ADC_SMPR2_REGOFFSET | (( 3U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP1) */
AnnaBridge 171:3a7713b1edbc 247 #define ADC_CHANNEL_2_SMP (ADC_SMPR2_REGOFFSET | (( 6U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP2) */
AnnaBridge 171:3a7713b1edbc 248 #define ADC_CHANNEL_3_SMP (ADC_SMPR2_REGOFFSET | (( 9U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP3) */
AnnaBridge 171:3a7713b1edbc 249 #define ADC_CHANNEL_4_SMP (ADC_SMPR2_REGOFFSET | ((12U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP4) */
AnnaBridge 171:3a7713b1edbc 250 #define ADC_CHANNEL_5_SMP (ADC_SMPR2_REGOFFSET | ((15U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP5) */
AnnaBridge 171:3a7713b1edbc 251 #define ADC_CHANNEL_6_SMP (ADC_SMPR2_REGOFFSET | ((18U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP6) */
AnnaBridge 171:3a7713b1edbc 252 #define ADC_CHANNEL_7_SMP (ADC_SMPR2_REGOFFSET | ((21U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP7) */
AnnaBridge 171:3a7713b1edbc 253 #define ADC_CHANNEL_8_SMP (ADC_SMPR2_REGOFFSET | ((24U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP8) */
AnnaBridge 171:3a7713b1edbc 254 #define ADC_CHANNEL_9_SMP (ADC_SMPR2_REGOFFSET | ((27U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP9) */
AnnaBridge 171:3a7713b1edbc 255 #define ADC_CHANNEL_10_SMP (ADC_SMPR1_REGOFFSET | (( 0U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP10) */
AnnaBridge 171:3a7713b1edbc 256 #define ADC_CHANNEL_11_SMP (ADC_SMPR1_REGOFFSET | (( 3U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP11) */
AnnaBridge 171:3a7713b1edbc 257 #define ADC_CHANNEL_12_SMP (ADC_SMPR1_REGOFFSET | (( 6U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP12) */
AnnaBridge 171:3a7713b1edbc 258 #define ADC_CHANNEL_13_SMP (ADC_SMPR1_REGOFFSET | (( 9U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP13) */
AnnaBridge 171:3a7713b1edbc 259 #define ADC_CHANNEL_14_SMP (ADC_SMPR1_REGOFFSET | ((12U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP14) */
AnnaBridge 171:3a7713b1edbc 260 #define ADC_CHANNEL_15_SMP (ADC_SMPR1_REGOFFSET | ((15U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP15) */
AnnaBridge 171:3a7713b1edbc 261 #define ADC_CHANNEL_16_SMP (ADC_SMPR1_REGOFFSET | ((18U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP16) */
AnnaBridge 171:3a7713b1edbc 262 #define ADC_CHANNEL_17_SMP (ADC_SMPR1_REGOFFSET | ((21U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP17) */
AnnaBridge 171:3a7713b1edbc 263 #define ADC_CHANNEL_18_SMP (ADC_SMPR1_REGOFFSET | ((24U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP18) */
AnnaBridge 171:3a7713b1edbc 264
AnnaBridge 171:3a7713b1edbc 265
AnnaBridge 171:3a7713b1edbc 266 /* Internal mask for ADC analog watchdog: */
AnnaBridge 171:3a7713b1edbc 267 /* To select into literals LL_ADC_AWD_CHANNELx_xxx the relevant bits for: */
AnnaBridge 171:3a7713b1edbc 268 /* (concatenation of multiple bits used in different analog watchdogs, */
AnnaBridge 171:3a7713b1edbc 269 /* (feature of several watchdogs not available on all STM32 families)). */
AnnaBridge 171:3a7713b1edbc 270 /* - analog watchdog 1: monitored channel defined by number, */
AnnaBridge 171:3a7713b1edbc 271 /* selection of ADC group (ADC groups regular and-or injected). */
AnnaBridge 171:3a7713b1edbc 272
AnnaBridge 171:3a7713b1edbc 273 /* Internal register offset for ADC analog watchdog channel configuration */
AnnaBridge 171:3a7713b1edbc 274 #define ADC_AWD_CR1_REGOFFSET (0x00000000U)
AnnaBridge 171:3a7713b1edbc 275
AnnaBridge 171:3a7713b1edbc 276 #define ADC_AWD_CRX_REGOFFSET_MASK (ADC_AWD_CR1_REGOFFSET)
AnnaBridge 171:3a7713b1edbc 277
AnnaBridge 171:3a7713b1edbc 278 #define ADC_AWD_CR1_CHANNEL_MASK (ADC_CR1_AWDCH | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL)
AnnaBridge 171:3a7713b1edbc 279 #define ADC_AWD_CR_ALL_CHANNEL_MASK (ADC_AWD_CR1_CHANNEL_MASK)
AnnaBridge 171:3a7713b1edbc 280
AnnaBridge 171:3a7713b1edbc 281 /* Internal register offset for ADC analog watchdog threshold configuration */
AnnaBridge 171:3a7713b1edbc 282 #define ADC_AWD_TR1_HIGH_REGOFFSET (0x00000000U)
AnnaBridge 171:3a7713b1edbc 283 #define ADC_AWD_TR1_LOW_REGOFFSET (0x00000001U)
AnnaBridge 171:3a7713b1edbc 284 #define ADC_AWD_TRX_REGOFFSET_MASK (ADC_AWD_TR1_HIGH_REGOFFSET | ADC_AWD_TR1_LOW_REGOFFSET)
AnnaBridge 171:3a7713b1edbc 285
AnnaBridge 171:3a7713b1edbc 286
AnnaBridge 171:3a7713b1edbc 287 /* ADC registers bits positions */
AnnaBridge 171:3a7713b1edbc 288 #define ADC_CR1_RES_BITOFFSET_POS (24U) /* Value equivalent to POSITION_VAL(ADC_CR1_RES) */
AnnaBridge 171:3a7713b1edbc 289 #define ADC_TR_HT_BITOFFSET_POS (16U) /* Value equivalent to POSITION_VAL(ADC_TR_HT) */
AnnaBridge 171:3a7713b1edbc 290
AnnaBridge 171:3a7713b1edbc 291
AnnaBridge 171:3a7713b1edbc 292 /* ADC internal channels related definitions */
AnnaBridge 171:3a7713b1edbc 293 /* Internal voltage reference VrefInt */
AnnaBridge 171:3a7713b1edbc 294 #define VREFINT_CAL_ADDR ((uint16_t*) (0x1FF07A4A)) /* Internal voltage reference, address of parameter VREFINT_CAL: VrefInt ADC raw data acquired at temperature 30 DegC (tolerance: +-5 DegC), Vref+ = 3.3 V (tolerance: +-10 mV). */
AnnaBridge 171:3a7713b1edbc 295 #define VREFINT_CAL_VREF ( 3300U) /* Analog voltage reference (Vref+) value with which temperature sensor has been calibrated in production (tolerance: +-10 mV) (unit: mV). */
AnnaBridge 171:3a7713b1edbc 296 /* Temperature sensor */
AnnaBridge 171:3a7713b1edbc 297 #define TEMPSENSOR_CAL1_ADDR ((uint16_t*) (0x1FF07A4C)) /* Internal temperature sensor, address of parameter TS_CAL1: On STM32F7, temperature sensor ADC raw data acquired at temperature 30 DegC (tolerance: +-5 DegC), Vref+ = 3.3 V (tolerance: +-10 mV). */
AnnaBridge 171:3a7713b1edbc 298 #define TEMPSENSOR_CAL2_ADDR ((uint16_t*) (0x1FF07A4E)) /* Internal temperature sensor, address of parameter TS_CAL2: On STM32F7, temperature sensor ADC raw data acquired at temperature 110 DegC (tolerance: +-5 DegC), Vref+ = 3.3 V (tolerance: +-10 mV). */
AnnaBridge 171:3a7713b1edbc 299 #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 171:3a7713b1edbc 300 #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 171:3a7713b1edbc 301 #define TEMPSENSOR_CAL_VREFANALOG ( 3300U) /* Analog voltage reference (Vref+) voltage with which temperature sensor has been calibrated in production (+-10 mV) (unit: mV). */
AnnaBridge 171:3a7713b1edbc 302
AnnaBridge 171:3a7713b1edbc 303 /**
AnnaBridge 171:3a7713b1edbc 304 * @}
AnnaBridge 171:3a7713b1edbc 305 */
AnnaBridge 171:3a7713b1edbc 306
AnnaBridge 171:3a7713b1edbc 307
AnnaBridge 171:3a7713b1edbc 308 /* Private macros ------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 309 /** @defgroup ADC_LL_Private_Macros ADC Private Macros
AnnaBridge 171:3a7713b1edbc 310 * @{
AnnaBridge 171:3a7713b1edbc 311 */
AnnaBridge 171:3a7713b1edbc 312
AnnaBridge 171:3a7713b1edbc 313 /**
AnnaBridge 171:3a7713b1edbc 314 * @brief Driver macro reserved for internal use: isolate bits with the
AnnaBridge 171:3a7713b1edbc 315 * selected mask and shift them to the register LSB
AnnaBridge 171:3a7713b1edbc 316 * (shift mask on register position bit 0).
AnnaBridge 171:3a7713b1edbc 317 * @param __BITS__ Bits in register 32 bits
AnnaBridge 171:3a7713b1edbc 318 * @param __MASK__ Mask in register 32 bits
AnnaBridge 171:3a7713b1edbc 319 * @retval Bits in register 32 bits
AnnaBridge 171:3a7713b1edbc 320 */
AnnaBridge 171:3a7713b1edbc 321 #define __ADC_MASK_SHIFT(__BITS__, __MASK__) \
AnnaBridge 171:3a7713b1edbc 322 (((__BITS__) & (__MASK__)) >> POSITION_VAL((__MASK__)))
AnnaBridge 171:3a7713b1edbc 323
AnnaBridge 171:3a7713b1edbc 324 /**
AnnaBridge 171:3a7713b1edbc 325 * @brief Driver macro reserved for internal use: set a pointer to
AnnaBridge 171:3a7713b1edbc 326 * a register from a register basis from which an offset
AnnaBridge 171:3a7713b1edbc 327 * is applied.
AnnaBridge 171:3a7713b1edbc 328 * @param __REG__ Register basis from which the offset is applied.
AnnaBridge 171:3a7713b1edbc 329 * @param __REG_OFFFSET__ Offset to be applied (unit number of registers).
AnnaBridge 171:3a7713b1edbc 330 * @retval Pointer to register address
AnnaBridge 171:3a7713b1edbc 331 */
AnnaBridge 171:3a7713b1edbc 332 #define __ADC_PTR_REG_OFFSET(__REG__, __REG_OFFFSET__) \
AnnaBridge 171:3a7713b1edbc 333 ((uint32_t *)((uint32_t) ((uint32_t)(&(__REG__)) + ((__REG_OFFFSET__) << 2U))))
AnnaBridge 171:3a7713b1edbc 334
AnnaBridge 171:3a7713b1edbc 335 /**
AnnaBridge 171:3a7713b1edbc 336 * @}
AnnaBridge 171:3a7713b1edbc 337 */
AnnaBridge 171:3a7713b1edbc 338
AnnaBridge 171:3a7713b1edbc 339
AnnaBridge 171:3a7713b1edbc 340 /* Exported types ------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 341 #if defined(USE_FULL_LL_DRIVER)
AnnaBridge 171:3a7713b1edbc 342 /** @defgroup ADC_LL_ES_INIT ADC Exported Init structure
AnnaBridge 171:3a7713b1edbc 343 * @{
AnnaBridge 171:3a7713b1edbc 344 */
AnnaBridge 171:3a7713b1edbc 345
AnnaBridge 171:3a7713b1edbc 346 /**
AnnaBridge 171:3a7713b1edbc 347 * @brief Structure definition of some features of ADC common parameters
AnnaBridge 171:3a7713b1edbc 348 * and multimode
AnnaBridge 171:3a7713b1edbc 349 * (all ADC instances belonging to the same ADC common instance).
AnnaBridge 171:3a7713b1edbc 350 * @note The setting of these parameters by function @ref LL_ADC_CommonInit()
AnnaBridge 171:3a7713b1edbc 351 * is conditioned to ADC instances state (all ADC instances
AnnaBridge 171:3a7713b1edbc 352 * sharing the same ADC common instance):
AnnaBridge 171:3a7713b1edbc 353 * All ADC instances sharing the same ADC common instance must be
AnnaBridge 171:3a7713b1edbc 354 * disabled.
AnnaBridge 171:3a7713b1edbc 355 */
AnnaBridge 171:3a7713b1edbc 356 typedef struct
AnnaBridge 171:3a7713b1edbc 357 {
AnnaBridge 171:3a7713b1edbc 358 uint32_t CommonClock; /*!< Set parameter common to several ADC: Clock source and prescaler.
AnnaBridge 171:3a7713b1edbc 359 This parameter can be a value of @ref ADC_LL_EC_COMMON_CLOCK_SOURCE
AnnaBridge 171:3a7713b1edbc 360
AnnaBridge 171:3a7713b1edbc 361 This feature can be modified afterwards using unitary function @ref LL_ADC_SetCommonClock(). */
AnnaBridge 171:3a7713b1edbc 362
AnnaBridge 171:3a7713b1edbc 363 uint32_t Multimode; /*!< Set ADC multimode configuration to operate in independent mode or multimode (for devices with several ADC instances).
AnnaBridge 171:3a7713b1edbc 364 This parameter can be a value of @ref ADC_LL_EC_MULTI_MODE
AnnaBridge 171:3a7713b1edbc 365
AnnaBridge 171:3a7713b1edbc 366 This feature can be modified afterwards using unitary function @ref LL_ADC_SetMultimode(). */
AnnaBridge 171:3a7713b1edbc 367
AnnaBridge 171:3a7713b1edbc 368 uint32_t MultiDMATransfer; /*!< Set ADC multimode conversion data transfer: no transfer or transfer by DMA.
AnnaBridge 171:3a7713b1edbc 369 This parameter can be a value of @ref ADC_LL_EC_MULTI_DMA_TRANSFER
AnnaBridge 171:3a7713b1edbc 370
AnnaBridge 171:3a7713b1edbc 371 This feature can be modified afterwards using unitary function @ref LL_ADC_SetMultiDMATransfer(). */
AnnaBridge 171:3a7713b1edbc 372
AnnaBridge 171:3a7713b1edbc 373 uint32_t MultiTwoSamplingDelay; /*!< Set ADC multimode delay between 2 sampling phases.
AnnaBridge 171:3a7713b1edbc 374 This parameter can be a value of @ref ADC_LL_EC_MULTI_TWOSMP_DELAY
AnnaBridge 171:3a7713b1edbc 375
AnnaBridge 171:3a7713b1edbc 376 This feature can be modified afterwards using unitary function @ref LL_ADC_SetMultiTwoSamplingDelay(). */
AnnaBridge 171:3a7713b1edbc 377
AnnaBridge 171:3a7713b1edbc 378 } LL_ADC_CommonInitTypeDef;
AnnaBridge 171:3a7713b1edbc 379
AnnaBridge 171:3a7713b1edbc 380 /**
AnnaBridge 171:3a7713b1edbc 381 * @brief Structure definition of some features of ADC instance.
AnnaBridge 171:3a7713b1edbc 382 * @note These parameters have an impact on ADC scope: ADC instance.
AnnaBridge 171:3a7713b1edbc 383 * Affects both group regular and group injected (availability
AnnaBridge 171:3a7713b1edbc 384 * of ADC group injected depends on STM32 families).
AnnaBridge 171:3a7713b1edbc 385 * Refer to corresponding unitary functions into
AnnaBridge 171:3a7713b1edbc 386 * @ref ADC_LL_EF_Configuration_ADC_Instance .
AnnaBridge 171:3a7713b1edbc 387 * @note The setting of these parameters by function @ref LL_ADC_Init()
AnnaBridge 171:3a7713b1edbc 388 * is conditioned to ADC state:
AnnaBridge 171:3a7713b1edbc 389 * ADC instance must be disabled.
AnnaBridge 171:3a7713b1edbc 390 * This condition is applied to all ADC features, for efficiency
AnnaBridge 171:3a7713b1edbc 391 * and compatibility over all STM32 families. However, the different
AnnaBridge 171:3a7713b1edbc 392 * features can be set under different ADC state conditions
AnnaBridge 171:3a7713b1edbc 393 * (setting possible with ADC enabled without conversion on going,
AnnaBridge 171:3a7713b1edbc 394 * ADC enabled with conversion on going, ...)
AnnaBridge 171:3a7713b1edbc 395 * Each feature can be updated afterwards with a unitary function
AnnaBridge 171:3a7713b1edbc 396 * and potentially with ADC in a different state than disabled,
AnnaBridge 171:3a7713b1edbc 397 * refer to description of each function for setting
AnnaBridge 171:3a7713b1edbc 398 * conditioned to ADC state.
AnnaBridge 171:3a7713b1edbc 399 */
AnnaBridge 171:3a7713b1edbc 400 typedef struct
AnnaBridge 171:3a7713b1edbc 401 {
AnnaBridge 171:3a7713b1edbc 402 uint32_t Resolution; /*!< Set ADC resolution.
AnnaBridge 171:3a7713b1edbc 403 This parameter can be a value of @ref ADC_LL_EC_RESOLUTION
AnnaBridge 171:3a7713b1edbc 404
AnnaBridge 171:3a7713b1edbc 405 This feature can be modified afterwards using unitary function @ref LL_ADC_SetResolution(). */
AnnaBridge 171:3a7713b1edbc 406
AnnaBridge 171:3a7713b1edbc 407 uint32_t DataAlignment; /*!< Set ADC conversion data alignment.
AnnaBridge 171:3a7713b1edbc 408 This parameter can be a value of @ref ADC_LL_EC_DATA_ALIGN
AnnaBridge 171:3a7713b1edbc 409
AnnaBridge 171:3a7713b1edbc 410 This feature can be modified afterwards using unitary function @ref LL_ADC_SetDataAlignment(). */
AnnaBridge 171:3a7713b1edbc 411
AnnaBridge 171:3a7713b1edbc 412 uint32_t SequencersScanMode; /*!< Set ADC scan selection.
AnnaBridge 171:3a7713b1edbc 413 This parameter can be a value of @ref ADC_LL_EC_SCAN_SELECTION
AnnaBridge 171:3a7713b1edbc 414
AnnaBridge 171:3a7713b1edbc 415 This feature can be modified afterwards using unitary function @ref LL_ADC_SetSequencersScanMode(). */
AnnaBridge 171:3a7713b1edbc 416
AnnaBridge 171:3a7713b1edbc 417 } LL_ADC_InitTypeDef;
AnnaBridge 171:3a7713b1edbc 418
AnnaBridge 171:3a7713b1edbc 419 /**
AnnaBridge 171:3a7713b1edbc 420 * @brief Structure definition of some features of ADC group regular.
AnnaBridge 171:3a7713b1edbc 421 * @note These parameters have an impact on ADC scope: ADC group regular.
AnnaBridge 171:3a7713b1edbc 422 * Refer to corresponding unitary functions into
AnnaBridge 171:3a7713b1edbc 423 * @ref ADC_LL_EF_Configuration_ADC_Group_Regular
AnnaBridge 171:3a7713b1edbc 424 * (functions with prefix "REG").
AnnaBridge 171:3a7713b1edbc 425 * @note The setting of these parameters by function @ref LL_ADC_REG_Init()
AnnaBridge 171:3a7713b1edbc 426 * is conditioned to ADC state:
AnnaBridge 171:3a7713b1edbc 427 * ADC instance must be disabled.
AnnaBridge 171:3a7713b1edbc 428 * This condition is applied to all ADC features, for efficiency
AnnaBridge 171:3a7713b1edbc 429 * and compatibility over all STM32 families. However, the different
AnnaBridge 171:3a7713b1edbc 430 * features can be set under different ADC state conditions
AnnaBridge 171:3a7713b1edbc 431 * (setting possible with ADC enabled without conversion on going,
AnnaBridge 171:3a7713b1edbc 432 * ADC enabled with conversion on going, ...)
AnnaBridge 171:3a7713b1edbc 433 * Each feature can be updated afterwards with a unitary function
AnnaBridge 171:3a7713b1edbc 434 * and potentially with ADC in a different state than disabled,
AnnaBridge 171:3a7713b1edbc 435 * refer to description of each function for setting
AnnaBridge 171:3a7713b1edbc 436 * conditioned to ADC state.
AnnaBridge 171:3a7713b1edbc 437 */
AnnaBridge 171:3a7713b1edbc 438 typedef struct
AnnaBridge 171:3a7713b1edbc 439 {
AnnaBridge 171:3a7713b1edbc 440 uint32_t TriggerSource; /*!< Set ADC group regular conversion trigger source: internal (SW start) or from external IP (timer event, external interrupt line).
AnnaBridge 171:3a7713b1edbc 441 This parameter can be a value of @ref ADC_LL_EC_REG_TRIGGER_SOURCE
AnnaBridge 171:3a7713b1edbc 442 @note On this STM32 serie, setting of external trigger edge is performed
AnnaBridge 171:3a7713b1edbc 443 using function @ref LL_ADC_REG_StartConversionExtTrig().
AnnaBridge 171:3a7713b1edbc 444
AnnaBridge 171:3a7713b1edbc 445 This feature can be modified afterwards using unitary function @ref LL_ADC_REG_SetTriggerSource(). */
AnnaBridge 171:3a7713b1edbc 446
AnnaBridge 171:3a7713b1edbc 447 uint32_t SequencerLength; /*!< Set ADC group regular sequencer length.
AnnaBridge 171:3a7713b1edbc 448 This parameter can be a value of @ref ADC_LL_EC_REG_SEQ_SCAN_LENGTH
AnnaBridge 171:3a7713b1edbc 449 @note This parameter is discarded if scan mode is disabled (refer to parameter 'ADC_SequencersScanMode').
AnnaBridge 171:3a7713b1edbc 450
AnnaBridge 171:3a7713b1edbc 451 This feature can be modified afterwards using unitary function @ref LL_ADC_REG_SetSequencerLength(). */
AnnaBridge 171:3a7713b1edbc 452
AnnaBridge 171:3a7713b1edbc 453 uint32_t SequencerDiscont; /*!< Set ADC group regular sequencer discontinuous mode: sequence subdivided and scan conversions interrupted every selected number of ranks.
AnnaBridge 171:3a7713b1edbc 454 This parameter can be a value of @ref ADC_LL_EC_REG_SEQ_DISCONT_MODE
AnnaBridge 171:3a7713b1edbc 455 @note This parameter has an effect only if group regular sequencer is enabled
AnnaBridge 171:3a7713b1edbc 456 (scan length of 2 ranks or more).
AnnaBridge 171:3a7713b1edbc 457
AnnaBridge 171:3a7713b1edbc 458 This feature can be modified afterwards using unitary function @ref LL_ADC_REG_SetSequencerDiscont(). */
AnnaBridge 171:3a7713b1edbc 459
AnnaBridge 171:3a7713b1edbc 460 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 171:3a7713b1edbc 461 This parameter can be a value of @ref ADC_LL_EC_REG_CONTINUOUS_MODE
AnnaBridge 171:3a7713b1edbc 462 Note: It is not possible to enable both ADC group regular continuous mode and discontinuous mode.
AnnaBridge 171:3a7713b1edbc 463
AnnaBridge 171:3a7713b1edbc 464 This feature can be modified afterwards using unitary function @ref LL_ADC_REG_SetContinuousMode(). */
AnnaBridge 171:3a7713b1edbc 465
AnnaBridge 171:3a7713b1edbc 466 uint32_t DMATransfer; /*!< Set ADC group regular conversion data transfer: no transfer or transfer by DMA, and DMA requests mode.
AnnaBridge 171:3a7713b1edbc 467 This parameter can be a value of @ref ADC_LL_EC_REG_DMA_TRANSFER
AnnaBridge 171:3a7713b1edbc 468
AnnaBridge 171:3a7713b1edbc 469 This feature can be modified afterwards using unitary function @ref LL_ADC_REG_SetDMATransfer(). */
AnnaBridge 171:3a7713b1edbc 470
AnnaBridge 171:3a7713b1edbc 471 } LL_ADC_REG_InitTypeDef;
AnnaBridge 171:3a7713b1edbc 472
AnnaBridge 171:3a7713b1edbc 473 /**
AnnaBridge 171:3a7713b1edbc 474 * @brief Structure definition of some features of ADC group injected.
AnnaBridge 171:3a7713b1edbc 475 * @note These parameters have an impact on ADC scope: ADC group injected.
AnnaBridge 171:3a7713b1edbc 476 * Refer to corresponding unitary functions into
AnnaBridge 171:3a7713b1edbc 477 * @ref ADC_LL_EF_Configuration_ADC_Group_Regular
AnnaBridge 171:3a7713b1edbc 478 * (functions with prefix "INJ").
AnnaBridge 171:3a7713b1edbc 479 * @note The setting of these parameters by function @ref LL_ADC_INJ_Init()
AnnaBridge 171:3a7713b1edbc 480 * is conditioned to ADC state:
AnnaBridge 171:3a7713b1edbc 481 * ADC instance must be disabled.
AnnaBridge 171:3a7713b1edbc 482 * This condition is applied to all ADC features, for efficiency
AnnaBridge 171:3a7713b1edbc 483 * and compatibility over all STM32 families. However, the different
AnnaBridge 171:3a7713b1edbc 484 * features can be set under different ADC state conditions
AnnaBridge 171:3a7713b1edbc 485 * (setting possible with ADC enabled without conversion on going,
AnnaBridge 171:3a7713b1edbc 486 * ADC enabled with conversion on going, ...)
AnnaBridge 171:3a7713b1edbc 487 * Each feature can be updated afterwards with a unitary function
AnnaBridge 171:3a7713b1edbc 488 * and potentially with ADC in a different state than disabled,
AnnaBridge 171:3a7713b1edbc 489 * refer to description of each function for setting
AnnaBridge 171:3a7713b1edbc 490 * conditioned to ADC state.
AnnaBridge 171:3a7713b1edbc 491 */
AnnaBridge 171:3a7713b1edbc 492 typedef struct
AnnaBridge 171:3a7713b1edbc 493 {
AnnaBridge 171:3a7713b1edbc 494 uint32_t TriggerSource; /*!< Set ADC group injected conversion trigger source: internal (SW start) or from external IP (timer event, external interrupt line).
AnnaBridge 171:3a7713b1edbc 495 This parameter can be a value of @ref ADC_LL_EC_INJ_TRIGGER_SOURCE
AnnaBridge 171:3a7713b1edbc 496 @note On this STM32 serie, setting of external trigger edge is performed
AnnaBridge 171:3a7713b1edbc 497 using function @ref LL_ADC_INJ_StartConversionExtTrig().
AnnaBridge 171:3a7713b1edbc 498
AnnaBridge 171:3a7713b1edbc 499 This feature can be modified afterwards using unitary function @ref LL_ADC_INJ_SetTriggerSource(). */
AnnaBridge 171:3a7713b1edbc 500
AnnaBridge 171:3a7713b1edbc 501 uint32_t SequencerLength; /*!< Set ADC group injected sequencer length.
AnnaBridge 171:3a7713b1edbc 502 This parameter can be a value of @ref ADC_LL_EC_INJ_SEQ_SCAN_LENGTH
AnnaBridge 171:3a7713b1edbc 503 @note This parameter is discarded if scan mode is disabled (refer to parameter 'ADC_SequencersScanMode').
AnnaBridge 171:3a7713b1edbc 504
AnnaBridge 171:3a7713b1edbc 505 This feature can be modified afterwards using unitary function @ref LL_ADC_INJ_SetSequencerLength(). */
AnnaBridge 171:3a7713b1edbc 506
AnnaBridge 171:3a7713b1edbc 507 uint32_t SequencerDiscont; /*!< Set ADC group injected sequencer discontinuous mode: sequence subdivided and scan conversions interrupted every selected number of ranks.
AnnaBridge 171:3a7713b1edbc 508 This parameter can be a value of @ref ADC_LL_EC_INJ_SEQ_DISCONT_MODE
AnnaBridge 171:3a7713b1edbc 509 @note This parameter has an effect only if group injected sequencer is enabled
AnnaBridge 171:3a7713b1edbc 510 (scan length of 2 ranks or more).
AnnaBridge 171:3a7713b1edbc 511
AnnaBridge 171:3a7713b1edbc 512 This feature can be modified afterwards using unitary function @ref LL_ADC_INJ_SetSequencerDiscont(). */
AnnaBridge 171:3a7713b1edbc 513
AnnaBridge 171:3a7713b1edbc 514 uint32_t TrigAuto; /*!< Set ADC group injected conversion trigger: independent or from ADC group regular.
AnnaBridge 171:3a7713b1edbc 515 This parameter can be a value of @ref ADC_LL_EC_INJ_TRIG_AUTO
AnnaBridge 171:3a7713b1edbc 516 Note: This parameter must be set to set to independent trigger if injected trigger source is set to an external trigger.
AnnaBridge 171:3a7713b1edbc 517
AnnaBridge 171:3a7713b1edbc 518 This feature can be modified afterwards using unitary function @ref LL_ADC_INJ_SetTrigAuto(). */
AnnaBridge 171:3a7713b1edbc 519
AnnaBridge 171:3a7713b1edbc 520 } LL_ADC_INJ_InitTypeDef;
AnnaBridge 171:3a7713b1edbc 521
AnnaBridge 171:3a7713b1edbc 522 /**
AnnaBridge 171:3a7713b1edbc 523 * @}
AnnaBridge 171:3a7713b1edbc 524 */
AnnaBridge 171:3a7713b1edbc 525 #endif /* USE_FULL_LL_DRIVER */
AnnaBridge 171:3a7713b1edbc 526
AnnaBridge 171:3a7713b1edbc 527 /* Exported constants --------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 528 /** @defgroup ADC_LL_Exported_Constants ADC Exported Constants
AnnaBridge 171:3a7713b1edbc 529 * @{
AnnaBridge 171:3a7713b1edbc 530 */
AnnaBridge 171:3a7713b1edbc 531
AnnaBridge 171:3a7713b1edbc 532 /** @defgroup ADC_LL_EC_FLAG ADC flags
AnnaBridge 171:3a7713b1edbc 533 * @brief Flags defines which can be used with LL_ADC_ReadReg function
AnnaBridge 171:3a7713b1edbc 534 * @{
AnnaBridge 171:3a7713b1edbc 535 */
AnnaBridge 171:3a7713b1edbc 536 #define LL_ADC_FLAG_STRT ADC_SR_STRT /*!< ADC flag ADC group regular conversion start */
AnnaBridge 171:3a7713b1edbc 537 #define LL_ADC_FLAG_EOCS ADC_SR_EOC /*!< ADC flag ADC group regular end of unitary conversion or sequence conversions (to configure flag of end of conversion, use function @ref LL_ADC_REG_SetFlagEndOfConversion() ) */
AnnaBridge 171:3a7713b1edbc 538 #define LL_ADC_FLAG_OVR ADC_SR_OVR /*!< ADC flag ADC group regular overrun */
AnnaBridge 171:3a7713b1edbc 539 #define LL_ADC_FLAG_JSTRT ADC_SR_JSTRT /*!< ADC flag ADC group injected conversion start */
AnnaBridge 171:3a7713b1edbc 540 #define LL_ADC_FLAG_JEOS ADC_SR_JEOC /*!< ADC flag ADC group injected end of sequence conversions (Note: on this STM32 serie, there is no flag ADC group injected end of unitary conversion. Flag noted as "JEOC" is corresponding to flag "JEOS" in other STM32 families) */
AnnaBridge 171:3a7713b1edbc 541 #define LL_ADC_FLAG_AWD1 ADC_SR_AWD /*!< ADC flag ADC analog watchdog 1 */
AnnaBridge 171:3a7713b1edbc 542 #define LL_ADC_FLAG_EOCS_MST ADC_CSR_EOC1 /*!< ADC flag ADC multimode master group regular end of unitary conversion or sequence conversions (to configure flag of end of conversion, use function @ref LL_ADC_REG_SetFlagEndOfConversion() ) */
AnnaBridge 171:3a7713b1edbc 543 #define LL_ADC_FLAG_EOCS_SLV1 ADC_CSR_EOC2 /*!< ADC flag ADC multimode slave 1 group regular end of unitary conversion or sequence conversions (to configure flag of end of conversion, use function @ref LL_ADC_REG_SetFlagEndOfConversion() ) */
AnnaBridge 171:3a7713b1edbc 544 #define LL_ADC_FLAG_EOCS_SLV2 ADC_CSR_EOC3 /*!< ADC flag ADC multimode slave 2 group regular end of unitary conversion or sequence conversions (to configure flag of end of conversion, use function @ref LL_ADC_REG_SetFlagEndOfConversion() ) */
AnnaBridge 171:3a7713b1edbc 545 #define LL_ADC_FLAG_OVR_MST ADC_CSR_OVR1 /*!< ADC flag ADC multimode master group regular overrun */
AnnaBridge 171:3a7713b1edbc 546 #define LL_ADC_FLAG_OVR_SLV1 ADC_CSR_OVR2 /*!< ADC flag ADC multimode slave 1 group regular overrun */
AnnaBridge 171:3a7713b1edbc 547 #define LL_ADC_FLAG_OVR_SLV2 ADC_CSR_OVR3 /*!< ADC flag ADC multimode slave 2 group regular overrun */
AnnaBridge 171:3a7713b1edbc 548 #define LL_ADC_FLAG_JEOS_MST ADC_CSR_JEOC1 /*!< ADC flag ADC multimode master group injected end of sequence conversions (Note: on this STM32 serie, there is no flag ADC group injected end of unitary conversion. Flag noted as "JEOC" is corresponding to flag "JEOS" in other STM32 families) */
AnnaBridge 171:3a7713b1edbc 549 #define LL_ADC_FLAG_JEOS_SLV1 ADC_CSR_JEOC2 /*!< ADC flag ADC multimode slave 1 group injected end of sequence conversions (Note: on this STM32 serie, there is no flag ADC group injected end of unitary conversion. Flag noted as "JEOC" is corresponding to flag "JEOS" in other STM32 families) */
AnnaBridge 171:3a7713b1edbc 550 #define LL_ADC_FLAG_JEOS_SLV2 ADC_CSR_JEOC3 /*!< ADC flag ADC multimode slave 2 group injected end of sequence conversions (Note: on this STM32 serie, there is no flag ADC group injected end of unitary conversion. Flag noted as "JEOC" is corresponding to flag "JEOS" in other STM32 families) */
AnnaBridge 171:3a7713b1edbc 551 #define LL_ADC_FLAG_AWD1_MST ADC_CSR_AWD1 /*!< ADC flag ADC multimode master analog watchdog 1 of the ADC master */
AnnaBridge 171:3a7713b1edbc 552 #define LL_ADC_FLAG_AWD1_SLV1 ADC_CSR_AWD2 /*!< ADC flag ADC multimode slave 1 analog watchdog 1 */
AnnaBridge 171:3a7713b1edbc 553 #define LL_ADC_FLAG_AWD1_SLV2 ADC_CSR_AWD3 /*!< ADC flag ADC multimode slave 2 analog watchdog 1 */
AnnaBridge 171:3a7713b1edbc 554 /**
AnnaBridge 171:3a7713b1edbc 555 * @}
AnnaBridge 171:3a7713b1edbc 556 */
AnnaBridge 171:3a7713b1edbc 557
AnnaBridge 171:3a7713b1edbc 558 /** @defgroup ADC_LL_EC_IT ADC interruptions for configuration (interruption enable or disable)
AnnaBridge 171:3a7713b1edbc 559 * @brief IT defines which can be used with LL_ADC_ReadReg and LL_ADC_WriteReg functions
AnnaBridge 171:3a7713b1edbc 560 * @{
AnnaBridge 171:3a7713b1edbc 561 */
AnnaBridge 171:3a7713b1edbc 562 #define LL_ADC_IT_EOCS ADC_CR1_EOCIE /*!< ADC interruption ADC group regular end of unitary conversion or sequence conversions (to configure flag of end of conversion, use function @ref LL_ADC_REG_SetFlagEndOfConversion() ) */
AnnaBridge 171:3a7713b1edbc 563 #define LL_ADC_IT_OVR ADC_CR1_OVRIE /*!< ADC interruption ADC group regular overrun */
AnnaBridge 171:3a7713b1edbc 564 #define LL_ADC_IT_JEOS ADC_CR1_JEOCIE /*!< ADC interruption ADC group injected end of sequence conversions (Note: on this STM32 serie, there is no flag ADC group injected end of unitary conversion. Flag noted as "JEOC" is corresponding to flag "JEOS" in other STM32 families) */
AnnaBridge 171:3a7713b1edbc 565 #define LL_ADC_IT_AWD1 ADC_CR1_AWDIE /*!< ADC interruption ADC analog watchdog 1 */
AnnaBridge 171:3a7713b1edbc 566 /**
AnnaBridge 171:3a7713b1edbc 567 * @}
AnnaBridge 171:3a7713b1edbc 568 */
AnnaBridge 171:3a7713b1edbc 569
AnnaBridge 171:3a7713b1edbc 570 /** @defgroup ADC_LL_EC_REGISTERS ADC registers compliant with specific purpose
AnnaBridge 171:3a7713b1edbc 571 * @{
AnnaBridge 171:3a7713b1edbc 572 */
AnnaBridge 171:3a7713b1edbc 573 /* List of ADC registers intended to be used (most commonly) with */
AnnaBridge 171:3a7713b1edbc 574 /* DMA transfer. */
AnnaBridge 171:3a7713b1edbc 575 /* Refer to function @ref LL_ADC_DMA_GetRegAddr(). */
AnnaBridge 171:3a7713b1edbc 576 #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 171:3a7713b1edbc 577 #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 171:3a7713b1edbc 578 /**
AnnaBridge 171:3a7713b1edbc 579 * @}
AnnaBridge 171:3a7713b1edbc 580 */
AnnaBridge 171:3a7713b1edbc 581
AnnaBridge 171:3a7713b1edbc 582 /** @defgroup ADC_LL_EC_COMMON_CLOCK_SOURCE ADC common - Clock source
AnnaBridge 171:3a7713b1edbc 583 * @{
AnnaBridge 171:3a7713b1edbc 584 */
AnnaBridge 171:3a7713b1edbc 585 #define LL_ADC_CLOCK_SYNC_PCLK_DIV2 (0x00000000U) /*!< ADC synchronous clock derived from AHB clock with prescaler division by 2 */
AnnaBridge 171:3a7713b1edbc 586 #define LL_ADC_CLOCK_SYNC_PCLK_DIV4 ( ADC_CCR_ADCPRE_0) /*!< ADC synchronous clock derived from AHB clock with prescaler division by 4 */
AnnaBridge 171:3a7713b1edbc 587 #define LL_ADC_CLOCK_SYNC_PCLK_DIV6 (ADC_CCR_ADCPRE_1 ) /*!< ADC synchronous clock derived from AHB clock with prescaler division by 6 */
AnnaBridge 171:3a7713b1edbc 588 #define LL_ADC_CLOCK_SYNC_PCLK_DIV8 (ADC_CCR_ADCPRE_1 | ADC_CCR_ADCPRE_0) /*!< ADC synchronous clock derived from AHB clock with prescaler division by 8 */
AnnaBridge 171:3a7713b1edbc 589 /**
AnnaBridge 171:3a7713b1edbc 590 * @}
AnnaBridge 171:3a7713b1edbc 591 */
AnnaBridge 171:3a7713b1edbc 592
AnnaBridge 171:3a7713b1edbc 593 /** @defgroup ADC_LL_EC_COMMON_PATH_INTERNAL ADC common - Measurement path to internal channels
AnnaBridge 171:3a7713b1edbc 594 * @{
AnnaBridge 171:3a7713b1edbc 595 */
AnnaBridge 171:3a7713b1edbc 596 /* Note: Other measurement paths to internal channels may be available */
AnnaBridge 171:3a7713b1edbc 597 /* (connections to other peripherals). */
AnnaBridge 171:3a7713b1edbc 598 /* If they are not listed below, they do not require any specific */
AnnaBridge 171:3a7713b1edbc 599 /* path enable. In this case, Access to measurement path is done */
AnnaBridge 171:3a7713b1edbc 600 /* only by selecting the corresponding ADC internal channel. */
AnnaBridge 171:3a7713b1edbc 601 #define LL_ADC_PATH_INTERNAL_NONE (0x00000000U)/*!< ADC measurement pathes all disabled */
AnnaBridge 171:3a7713b1edbc 602 #define LL_ADC_PATH_INTERNAL_VREFINT (ADC_CCR_TSVREFE) /*!< ADC measurement path to internal channel VrefInt */
AnnaBridge 171:3a7713b1edbc 603 #define LL_ADC_PATH_INTERNAL_TEMPSENSOR (ADC_CCR_TSVREFE) /*!< ADC measurement path to internal channel temperature sensor */
AnnaBridge 171:3a7713b1edbc 604 #define LL_ADC_PATH_INTERNAL_VBAT (ADC_CCR_VBATE) /*!< ADC measurement path to internal channel Vbat */
AnnaBridge 171:3a7713b1edbc 605 /**
AnnaBridge 171:3a7713b1edbc 606 * @}
AnnaBridge 171:3a7713b1edbc 607 */
AnnaBridge 171:3a7713b1edbc 608
AnnaBridge 171:3a7713b1edbc 609 /** @defgroup ADC_LL_EC_RESOLUTION ADC instance - Resolution
AnnaBridge 171:3a7713b1edbc 610 * @{
AnnaBridge 171:3a7713b1edbc 611 */
AnnaBridge 171:3a7713b1edbc 612 #define LL_ADC_RESOLUTION_12B (0x00000000U) /*!< ADC resolution 12 bits */
AnnaBridge 171:3a7713b1edbc 613 #define LL_ADC_RESOLUTION_10B ( ADC_CR1_RES_0) /*!< ADC resolution 10 bits */
AnnaBridge 171:3a7713b1edbc 614 #define LL_ADC_RESOLUTION_8B (ADC_CR1_RES_1 ) /*!< ADC resolution 8 bits */
AnnaBridge 171:3a7713b1edbc 615 #define LL_ADC_RESOLUTION_6B (ADC_CR1_RES_1 | ADC_CR1_RES_0) /*!< ADC resolution 6 bits */
AnnaBridge 171:3a7713b1edbc 616 /**
AnnaBridge 171:3a7713b1edbc 617 * @}
AnnaBridge 171:3a7713b1edbc 618 */
AnnaBridge 171:3a7713b1edbc 619
AnnaBridge 171:3a7713b1edbc 620 /** @defgroup ADC_LL_EC_DATA_ALIGN ADC instance - Data alignment
AnnaBridge 171:3a7713b1edbc 621 * @{
AnnaBridge 171:3a7713b1edbc 622 */
AnnaBridge 171:3a7713b1edbc 623 #define LL_ADC_DATA_ALIGN_RIGHT (0x00000000U)/*!< ADC conversion data alignment: right aligned (alignment on data register LSB bit 0)*/
AnnaBridge 171:3a7713b1edbc 624 #define LL_ADC_DATA_ALIGN_LEFT (ADC_CR2_ALIGN) /*!< ADC conversion data alignment: left aligned (aligment on data register MSB bit 15)*/
AnnaBridge 171:3a7713b1edbc 625 /**
AnnaBridge 171:3a7713b1edbc 626 * @}
AnnaBridge 171:3a7713b1edbc 627 */
AnnaBridge 171:3a7713b1edbc 628
AnnaBridge 171:3a7713b1edbc 629 /** @defgroup ADC_LL_EC_SCAN_SELECTION ADC instance - Scan selection
AnnaBridge 171:3a7713b1edbc 630 * @{
AnnaBridge 171:3a7713b1edbc 631 */
AnnaBridge 171:3a7713b1edbc 632 #define LL_ADC_SEQ_SCAN_DISABLE (0x00000000U) /*!< ADC conversion is performed in unitary conversion mode (one channel converted, that defined in rank 1). Configuration of both groups regular and injected sequencers (sequence length, ...) is discarded: equivalent to length of 1 rank.*/
AnnaBridge 171:3a7713b1edbc 633 #define LL_ADC_SEQ_SCAN_ENABLE (ADC_CR1_SCAN) /*!< ADC conversions are performed in sequence conversions mode, according to configuration of both groups regular and injected sequencers (sequence length, ...). */
AnnaBridge 171:3a7713b1edbc 634 /**
AnnaBridge 171:3a7713b1edbc 635 * @}
AnnaBridge 171:3a7713b1edbc 636 */
AnnaBridge 171:3a7713b1edbc 637
AnnaBridge 171:3a7713b1edbc 638 /** @defgroup ADC_LL_EC_GROUPS ADC instance - Groups
AnnaBridge 171:3a7713b1edbc 639 * @{
AnnaBridge 171:3a7713b1edbc 640 */
AnnaBridge 171:3a7713b1edbc 641 #define LL_ADC_GROUP_REGULAR (0x00000001U) /*!< ADC group regular (available on all STM32 devices) */
AnnaBridge 171:3a7713b1edbc 642 #define LL_ADC_GROUP_INJECTED (0x00000002U) /*!< ADC group injected (not available on all STM32 devices)*/
AnnaBridge 171:3a7713b1edbc 643 #define LL_ADC_GROUP_REGULAR_INJECTED (0x00000003U) /*!< ADC both groups regular and injected */
AnnaBridge 171:3a7713b1edbc 644 /**
AnnaBridge 171:3a7713b1edbc 645 * @}
AnnaBridge 171:3a7713b1edbc 646 */
AnnaBridge 171:3a7713b1edbc 647
AnnaBridge 171:3a7713b1edbc 648 /** @defgroup ADC_LL_EC_CHANNEL ADC instance - Channel number
AnnaBridge 171:3a7713b1edbc 649 * @{
AnnaBridge 171:3a7713b1edbc 650 */
AnnaBridge 171:3a7713b1edbc 651 #define LL_ADC_CHANNEL_0 (ADC_CHANNEL_0_NUMBER | ADC_CHANNEL_0_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN0 */
AnnaBridge 171:3a7713b1edbc 652 #define LL_ADC_CHANNEL_1 (ADC_CHANNEL_1_NUMBER | ADC_CHANNEL_1_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN1 */
AnnaBridge 171:3a7713b1edbc 653 #define LL_ADC_CHANNEL_2 (ADC_CHANNEL_2_NUMBER | ADC_CHANNEL_2_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN2 */
AnnaBridge 171:3a7713b1edbc 654 #define LL_ADC_CHANNEL_3 (ADC_CHANNEL_3_NUMBER | ADC_CHANNEL_3_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN3 */
AnnaBridge 171:3a7713b1edbc 655 #define LL_ADC_CHANNEL_4 (ADC_CHANNEL_4_NUMBER | ADC_CHANNEL_4_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN4 */
AnnaBridge 171:3a7713b1edbc 656 #define LL_ADC_CHANNEL_5 (ADC_CHANNEL_5_NUMBER | ADC_CHANNEL_5_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN5 */
AnnaBridge 171:3a7713b1edbc 657 #define LL_ADC_CHANNEL_6 (ADC_CHANNEL_6_NUMBER | ADC_CHANNEL_6_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN6 */
AnnaBridge 171:3a7713b1edbc 658 #define LL_ADC_CHANNEL_7 (ADC_CHANNEL_7_NUMBER | ADC_CHANNEL_7_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN7 */
AnnaBridge 171:3a7713b1edbc 659 #define LL_ADC_CHANNEL_8 (ADC_CHANNEL_8_NUMBER | ADC_CHANNEL_8_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN8 */
AnnaBridge 171:3a7713b1edbc 660 #define LL_ADC_CHANNEL_9 (ADC_CHANNEL_9_NUMBER | ADC_CHANNEL_9_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN9 */
AnnaBridge 171:3a7713b1edbc 661 #define LL_ADC_CHANNEL_10 (ADC_CHANNEL_10_NUMBER | ADC_CHANNEL_10_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN10 */
AnnaBridge 171:3a7713b1edbc 662 #define LL_ADC_CHANNEL_11 (ADC_CHANNEL_11_NUMBER | ADC_CHANNEL_11_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN11 */
AnnaBridge 171:3a7713b1edbc 663 #define LL_ADC_CHANNEL_12 (ADC_CHANNEL_12_NUMBER | ADC_CHANNEL_12_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN12 */
AnnaBridge 171:3a7713b1edbc 664 #define LL_ADC_CHANNEL_13 (ADC_CHANNEL_13_NUMBER | ADC_CHANNEL_13_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN13 */
AnnaBridge 171:3a7713b1edbc 665 #define LL_ADC_CHANNEL_14 (ADC_CHANNEL_14_NUMBER | ADC_CHANNEL_14_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN14 */
AnnaBridge 171:3a7713b1edbc 666 #define LL_ADC_CHANNEL_15 (ADC_CHANNEL_15_NUMBER | ADC_CHANNEL_15_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN15 */
AnnaBridge 171:3a7713b1edbc 667 #define LL_ADC_CHANNEL_16 (ADC_CHANNEL_16_NUMBER | ADC_CHANNEL_16_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN16 */
AnnaBridge 171:3a7713b1edbc 668 #define LL_ADC_CHANNEL_17 (ADC_CHANNEL_17_NUMBER | ADC_CHANNEL_17_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN17 */
AnnaBridge 171:3a7713b1edbc 669 #define LL_ADC_CHANNEL_18 (ADC_CHANNEL_18_NUMBER | ADC_CHANNEL_18_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN18 */
AnnaBridge 171:3a7713b1edbc 670 #define LL_ADC_CHANNEL_VREFINT (LL_ADC_CHANNEL_17 | ADC_CHANNEL_ID_INTERNAL_CH) /*!< ADC internal channel connected to VrefInt: Internal voltage reference. On STM32F7, ADC channel available only on ADC instance: ADC1. */
AnnaBridge 171:3a7713b1edbc 671 #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 STM32F7, ADC channel available only on ADC instance: ADC1. */
AnnaBridge 171:3a7713b1edbc 672 #define LL_ADC_CHANNEL_TEMPSENSOR (LL_ADC_CHANNEL_18 | ADC_CHANNEL_ID_INTERNAL_CH) /*!< ADC internal channel connected to Temperature sensor. On STM32F7, ADC channel available only on ADC instance: ADC1. */
AnnaBridge 171:3a7713b1edbc 673
AnnaBridge 171:3a7713b1edbc 674 /**
AnnaBridge 171:3a7713b1edbc 675 * @}
AnnaBridge 171:3a7713b1edbc 676 */
AnnaBridge 171:3a7713b1edbc 677
AnnaBridge 171:3a7713b1edbc 678 /** @defgroup ADC_LL_EC_REG_TRIGGER_SOURCE ADC group regular - Trigger source
AnnaBridge 171:3a7713b1edbc 679 * @{
AnnaBridge 171:3a7713b1edbc 680 */
AnnaBridge 171:3a7713b1edbc 681 #define LL_ADC_REG_TRIG_SOFTWARE (0x00000000U) /*!< ADC group regular conversion trigger internal: SW start. */
AnnaBridge 171:3a7713b1edbc 682 #define LL_ADC_REG_TRIG_EXT_TIM1_CH1 ((uint32_t)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 171:3a7713b1edbc 683 #define LL_ADC_REG_TRIG_EXT_TIM1_CH2 (ADC_CR2_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 171:3a7713b1edbc 684 #define LL_ADC_REG_TRIG_EXT_TIM1_CH3 (ADC_CR2_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 171:3a7713b1edbc 685 #define LL_ADC_REG_TRIG_EXT_TIM2_CH2 (ADC_CR2_EXTSEL_1 | ADC_CR2_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 171:3a7713b1edbc 686 #define LL_ADC_REG_TRIG_EXT_TIM5_TRGO (ADC_CR2_EXTSEL_2 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM5 TRGO. Trigger edge set to rising edge (default setting). */
AnnaBridge 171:3a7713b1edbc 687 #define LL_ADC_REG_TRIG_EXT_TIM4_CH4 (ADC_CR2_EXTSEL_2 | ADC_CR2_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 171:3a7713b1edbc 688 #define LL_ADC_REG_TRIG_EXT_TIM3_CH4 (ADC_CR2_EXTSEL_2 | ADC_CR2_EXTSEL_1 | 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 171:3a7713b1edbc 689 #define LL_ADC_REG_TRIG_EXT_TIM8_TRGO (ADC_CR2_EXTSEL_2 | ADC_CR2_EXTSEL_1 | ADC_CR2_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 171:3a7713b1edbc 690 #define LL_ADC_REG_TRIG_EXT_TIM8_TRGO2 (ADC_CR2_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 171:3a7713b1edbc 691 #define LL_ADC_REG_TRIG_EXT_TIM1_TRGO (ADC_CR2_EXTSEL_3 | ADC_CR2_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 171:3a7713b1edbc 692 #define LL_ADC_REG_TRIG_EXT_TIM1_TRGO2 (ADC_CR2_EXTSEL_3 | ADC_CR2_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 171:3a7713b1edbc 693 #define LL_ADC_REG_TRIG_EXT_TIM2_TRGO (ADC_CR2_EXTSEL_3 | ADC_CR2_EXTSEL_1 | ADC_CR2_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 171:3a7713b1edbc 694 #define LL_ADC_REG_TRIG_EXT_TIM4_TRGO (ADC_CR2_EXTSEL_3 | ADC_CR2_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 171:3a7713b1edbc 695 #define LL_ADC_REG_TRIG_EXT_TIM6_TRGO (ADC_CR2_EXTSEL_3 |ADC_CR2_EXTSEL_2| ADC_CR2_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 171:3a7713b1edbc 696 #define LL_ADC_REG_TRIG_EXT_EXTI_LINE11 (ADC_CR2_EXTSEL_3 | ADC_CR2_EXTSEL_2 | ADC_CR2_EXTSEL_1 | ADC_CR2_EXTSEL_0 | 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 171:3a7713b1edbc 697
AnnaBridge 171:3a7713b1edbc 698 /**
AnnaBridge 171:3a7713b1edbc 699 * @}
AnnaBridge 171:3a7713b1edbc 700 */
AnnaBridge 171:3a7713b1edbc 701
AnnaBridge 171:3a7713b1edbc 702 /** @defgroup ADC_LL_EC_REG_TRIGGER_EDGE ADC group regular - Trigger edge
AnnaBridge 171:3a7713b1edbc 703 * @{
AnnaBridge 171:3a7713b1edbc 704 */
AnnaBridge 171:3a7713b1edbc 705 #define LL_ADC_REG_TRIG_EXT_RISING ( ADC_CR2_EXTEN_0) /*!< ADC group regular conversion trigger polarity set to rising edge */
AnnaBridge 171:3a7713b1edbc 706 #define LL_ADC_REG_TRIG_EXT_FALLING (ADC_CR2_EXTEN_1 ) /*!< ADC group regular conversion trigger polarity set to falling edge */
AnnaBridge 171:3a7713b1edbc 707 #define LL_ADC_REG_TRIG_EXT_RISINGFALLING (ADC_CR2_EXTEN_1 | ADC_CR2_EXTEN_0) /*!< ADC group regular conversion trigger polarity set to both rising and falling edges */
AnnaBridge 171:3a7713b1edbc 708 /**
AnnaBridge 171:3a7713b1edbc 709 * @}
AnnaBridge 171:3a7713b1edbc 710 */
AnnaBridge 171:3a7713b1edbc 711
AnnaBridge 171:3a7713b1edbc 712 /** @defgroup ADC_LL_EC_REG_CONTINUOUS_MODE ADC group regular - Continuous mode
AnnaBridge 171:3a7713b1edbc 713 * @{
AnnaBridge 171:3a7713b1edbc 714 */
AnnaBridge 171:3a7713b1edbc 715 #define LL_ADC_REG_CONV_SINGLE (0x00000000U) /*!< ADC conversions are performed in single mode: one conversion per trigger */
AnnaBridge 171:3a7713b1edbc 716 #define LL_ADC_REG_CONV_CONTINUOUS (ADC_CR2_CONT) /*!< ADC conversions are performed in continuous mode: after the first trigger, following conversions launched successively automatically */
AnnaBridge 171:3a7713b1edbc 717 /**
AnnaBridge 171:3a7713b1edbc 718 * @}
AnnaBridge 171:3a7713b1edbc 719 */
AnnaBridge 171:3a7713b1edbc 720
AnnaBridge 171:3a7713b1edbc 721 /** @defgroup ADC_LL_EC_REG_DMA_TRANSFER ADC group regular - DMA transfer of ADC conversion data
AnnaBridge 171:3a7713b1edbc 722 * @{
AnnaBridge 171:3a7713b1edbc 723 */
AnnaBridge 171:3a7713b1edbc 724 #define LL_ADC_REG_DMA_TRANSFER_NONE (0x00000000U) /*!< ADC conversions are not transferred by DMA */
AnnaBridge 171:3a7713b1edbc 725 #define LL_ADC_REG_DMA_TRANSFER_LIMITED ( ADC_CR2_DMA) /*!< 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 171:3a7713b1edbc 726 #define LL_ADC_REG_DMA_TRANSFER_UNLIMITED (ADC_CR2_DDS | ADC_CR2_DMA) /*!< 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 171:3a7713b1edbc 727 /**
AnnaBridge 171:3a7713b1edbc 728 * @}
AnnaBridge 171:3a7713b1edbc 729 */
AnnaBridge 171:3a7713b1edbc 730
AnnaBridge 171:3a7713b1edbc 731 /** @defgroup ADC_LL_EC_REG_FLAG_EOC_SELECTION ADC group regular - Flag EOC selection (unitary or sequence conversions)
AnnaBridge 171:3a7713b1edbc 732 * @{
AnnaBridge 171:3a7713b1edbc 733 */
AnnaBridge 171:3a7713b1edbc 734 #define LL_ADC_REG_FLAG_EOC_SEQUENCE_CONV (0x00000000U) /*!< ADC flag EOC (end of unitary conversion) selected */
AnnaBridge 171:3a7713b1edbc 735 #define LL_ADC_REG_FLAG_EOC_UNITARY_CONV (ADC_CR2_EOCS) /*!< ADC flag EOS (end of sequence conversions) selected */
AnnaBridge 171:3a7713b1edbc 736 /**
AnnaBridge 171:3a7713b1edbc 737 * @}
AnnaBridge 171:3a7713b1edbc 738 */
AnnaBridge 171:3a7713b1edbc 739
AnnaBridge 171:3a7713b1edbc 740 /** @defgroup ADC_LL_EC_REG_SEQ_SCAN_LENGTH ADC group regular - Sequencer scan length
AnnaBridge 171:3a7713b1edbc 741 * @{
AnnaBridge 171:3a7713b1edbc 742 */
AnnaBridge 171:3a7713b1edbc 743 #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 171:3a7713b1edbc 744 #define LL_ADC_REG_SEQ_SCAN_ENABLE_2RANKS ( ADC_SQR1_L_0) /*!< ADC group regular sequencer enable with 2 ranks in the sequence */
AnnaBridge 171:3a7713b1edbc 745 #define LL_ADC_REG_SEQ_SCAN_ENABLE_3RANKS ( ADC_SQR1_L_1 ) /*!< ADC group regular sequencer enable with 3 ranks in the sequence */
AnnaBridge 171:3a7713b1edbc 746 #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 171:3a7713b1edbc 747 #define LL_ADC_REG_SEQ_SCAN_ENABLE_5RANKS ( ADC_SQR1_L_2 ) /*!< ADC group regular sequencer enable with 5 ranks in the sequence */
AnnaBridge 171:3a7713b1edbc 748 #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 171:3a7713b1edbc 749 #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 171:3a7713b1edbc 750 #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 171:3a7713b1edbc 751 #define LL_ADC_REG_SEQ_SCAN_ENABLE_9RANKS (ADC_SQR1_L_3 ) /*!< ADC group regular sequencer enable with 9 ranks in the sequence */
AnnaBridge 171:3a7713b1edbc 752 #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 171:3a7713b1edbc 753 #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 171:3a7713b1edbc 754 #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 171:3a7713b1edbc 755 #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 171:3a7713b1edbc 756 #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 171:3a7713b1edbc 757 #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 171:3a7713b1edbc 758 #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 171:3a7713b1edbc 759 /**
AnnaBridge 171:3a7713b1edbc 760 * @}
AnnaBridge 171:3a7713b1edbc 761 */
AnnaBridge 171:3a7713b1edbc 762
AnnaBridge 171:3a7713b1edbc 763 /** @defgroup ADC_LL_EC_REG_SEQ_DISCONT_MODE ADC group regular - Sequencer discontinuous mode
AnnaBridge 171:3a7713b1edbc 764 * @{
AnnaBridge 171:3a7713b1edbc 765 */
AnnaBridge 171:3a7713b1edbc 766 #define LL_ADC_REG_SEQ_DISCONT_DISABLE (0x00000000U) /*!< ADC group regular sequencer discontinuous mode disable */
AnnaBridge 171:3a7713b1edbc 767 #define LL_ADC_REG_SEQ_DISCONT_1RANK ( ADC_CR1_DISCEN) /*!< ADC group regular sequencer discontinuous mode enable with sequence interruption every rank */
AnnaBridge 171:3a7713b1edbc 768 #define LL_ADC_REG_SEQ_DISCONT_2RANKS ( ADC_CR1_DISCNUM_0 | ADC_CR1_DISCEN) /*!< ADC group regular sequencer discontinuous mode enabled with sequence interruption every 2 ranks */
AnnaBridge 171:3a7713b1edbc 769 #define LL_ADC_REG_SEQ_DISCONT_3RANKS ( ADC_CR1_DISCNUM_1 | ADC_CR1_DISCEN) /*!< ADC group regular sequencer discontinuous mode enable with sequence interruption every 3 ranks */
AnnaBridge 171:3a7713b1edbc 770 #define LL_ADC_REG_SEQ_DISCONT_4RANKS ( ADC_CR1_DISCNUM_1 | ADC_CR1_DISCNUM_0 | ADC_CR1_DISCEN) /*!< ADC group regular sequencer discontinuous mode enable with sequence interruption every 4 ranks */
AnnaBridge 171:3a7713b1edbc 771 #define LL_ADC_REG_SEQ_DISCONT_5RANKS (ADC_CR1_DISCNUM_2 | ADC_CR1_DISCEN) /*!< ADC group regular sequencer discontinuous mode enable with sequence interruption every 5 ranks */
AnnaBridge 171:3a7713b1edbc 772 #define LL_ADC_REG_SEQ_DISCONT_6RANKS (ADC_CR1_DISCNUM_2 | ADC_CR1_DISCNUM_0 | ADC_CR1_DISCEN) /*!< ADC group regular sequencer discontinuous mode enable with sequence interruption every 6 ranks */
AnnaBridge 171:3a7713b1edbc 773 #define LL_ADC_REG_SEQ_DISCONT_7RANKS (ADC_CR1_DISCNUM_2 | ADC_CR1_DISCNUM_1 | ADC_CR1_DISCEN) /*!< ADC group regular sequencer discontinuous mode enable with sequence interruption every 7 ranks */
AnnaBridge 171:3a7713b1edbc 774 #define LL_ADC_REG_SEQ_DISCONT_8RANKS (ADC_CR1_DISCNUM_2 | ADC_CR1_DISCNUM_1 | ADC_CR1_DISCNUM_0 | ADC_CR1_DISCEN) /*!< ADC group regular sequencer discontinuous mode enable with sequence interruption every 8 ranks */
AnnaBridge 171:3a7713b1edbc 775 /**
AnnaBridge 171:3a7713b1edbc 776 * @}
AnnaBridge 171:3a7713b1edbc 777 */
AnnaBridge 171:3a7713b1edbc 778
AnnaBridge 171:3a7713b1edbc 779 /** @defgroup ADC_LL_EC_REG_SEQ_RANKS ADC group regular - Sequencer ranks
AnnaBridge 171:3a7713b1edbc 780 * @{
AnnaBridge 171:3a7713b1edbc 781 */
AnnaBridge 171:3a7713b1edbc 782 #define LL_ADC_REG_RANK_1 (ADC_SQR3_REGOFFSET | ADC_REG_RANK_1_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 1 */
AnnaBridge 171:3a7713b1edbc 783 #define LL_ADC_REG_RANK_2 (ADC_SQR3_REGOFFSET | ADC_REG_RANK_2_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 2 */
AnnaBridge 171:3a7713b1edbc 784 #define LL_ADC_REG_RANK_3 (ADC_SQR3_REGOFFSET | ADC_REG_RANK_3_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 3 */
AnnaBridge 171:3a7713b1edbc 785 #define LL_ADC_REG_RANK_4 (ADC_SQR3_REGOFFSET | ADC_REG_RANK_4_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 4 */
AnnaBridge 171:3a7713b1edbc 786 #define LL_ADC_REG_RANK_5 (ADC_SQR3_REGOFFSET | ADC_REG_RANK_5_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 5 */
AnnaBridge 171:3a7713b1edbc 787 #define LL_ADC_REG_RANK_6 (ADC_SQR3_REGOFFSET | ADC_REG_RANK_6_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 6 */
AnnaBridge 171:3a7713b1edbc 788 #define LL_ADC_REG_RANK_7 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_7_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 7 */
AnnaBridge 171:3a7713b1edbc 789 #define LL_ADC_REG_RANK_8 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_8_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 8 */
AnnaBridge 171:3a7713b1edbc 790 #define LL_ADC_REG_RANK_9 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_9_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 9 */
AnnaBridge 171:3a7713b1edbc 791 #define LL_ADC_REG_RANK_10 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_10_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 10 */
AnnaBridge 171:3a7713b1edbc 792 #define LL_ADC_REG_RANK_11 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_11_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 11 */
AnnaBridge 171:3a7713b1edbc 793 #define LL_ADC_REG_RANK_12 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_12_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 12 */
AnnaBridge 171:3a7713b1edbc 794 #define LL_ADC_REG_RANK_13 (ADC_SQR1_REGOFFSET | ADC_REG_RANK_13_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 13 */
AnnaBridge 171:3a7713b1edbc 795 #define LL_ADC_REG_RANK_14 (ADC_SQR1_REGOFFSET | ADC_REG_RANK_14_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 14 */
AnnaBridge 171:3a7713b1edbc 796 #define LL_ADC_REG_RANK_15 (ADC_SQR1_REGOFFSET | ADC_REG_RANK_15_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 15 */
AnnaBridge 171:3a7713b1edbc 797 #define LL_ADC_REG_RANK_16 (ADC_SQR1_REGOFFSET | ADC_REG_RANK_16_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 16 */
AnnaBridge 171:3a7713b1edbc 798 /**
AnnaBridge 171:3a7713b1edbc 799 * @}
AnnaBridge 171:3a7713b1edbc 800 */
AnnaBridge 171:3a7713b1edbc 801
AnnaBridge 171:3a7713b1edbc 802 /** @defgroup ADC_LL_EC_INJ_TRIGGER_SOURCE ADC group injected - Trigger source
AnnaBridge 171:3a7713b1edbc 803 * @{
AnnaBridge 171:3a7713b1edbc 804 */
AnnaBridge 171:3a7713b1edbc 805 #define LL_ADC_INJ_TRIG_SOFTWARE (0x00000000U) /*!< ADC group injected conversion trigger internal: SW start. */
AnnaBridge 171:3a7713b1edbc 806 #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 171:3a7713b1edbc 807 #define LL_ADC_INJ_TRIG_EXT_TIM1_CH4 (ADC_CR2_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 171:3a7713b1edbc 808 #define LL_ADC_INJ_TRIG_EXT_TIM2_TRGO (ADC_CR2_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 171:3a7713b1edbc 809 #define LL_ADC_INJ_TRIG_EXT_TIM2_CH1 (ADC_CR2_JEXTSEL_1 | ADC_CR2_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 171:3a7713b1edbc 810 #define LL_ADC_INJ_TRIG_EXT_TIM3_CH4 (ADC_CR2_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 171:3a7713b1edbc 811 #define LL_ADC_INJ_TRIG_EXT_TIM4_TRGO (ADC_CR2_JEXTSEL_2 | ADC_CR2_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 171:3a7713b1edbc 812 #define LL_ADC_INJ_TRIG_EXT_TIM8_CH4 (ADC_CR2_JEXTSEL_2 | ADC_CR2_JEXTSEL_1 | ADC_CR2_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 171:3a7713b1edbc 813 #define LL_ADC_INJ_TRIG_EXT_TIM1_TRGO2 (ADC_CR2_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 171:3a7713b1edbc 814 #define LL_ADC_INJ_TRIG_EXT_TIM8_TRGO (ADC_CR2_JEXTSEL_3 | ADC_CR2_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 171:3a7713b1edbc 815 #define LL_ADC_INJ_TRIG_EXT_TIM8_TRGO2 (ADC_CR2_JEXTSEL_3 | ADC_CR2_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 171:3a7713b1edbc 816 #define LL_ADC_INJ_TRIG_EXT_TIM3_CH3 (ADC_CR2_JEXTSEL_3 | ADC_CR2_JEXTSEL_1 | ADC_CR2_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 171:3a7713b1edbc 817 #define LL_ADC_INJ_TRIG_EXT_TIM5_TRGO (ADC_CR2_JEXTSEL_3 | ADC_CR2_JEXTSEL_2 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM5 TRGO. Trigger edge set to rising edge (default setting). */
AnnaBridge 171:3a7713b1edbc 818 #define LL_ADC_INJ_TRIG_EXT_TIM3_CH1 (ADC_CR2_JEXTSEL_3 | ADC_CR2_JEXTSEL_2 | ADC_CR2_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 171:3a7713b1edbc 819 #define LL_ADC_INJ_TRIG_EXT_TIM6_TRGO (ADC_CR2_JEXTSEL_3 | ADC_CR2_JEXTSEL_2 | ADC_CR2_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 171:3a7713b1edbc 820
AnnaBridge 171:3a7713b1edbc 821 /**
AnnaBridge 171:3a7713b1edbc 822 * @}
AnnaBridge 171:3a7713b1edbc 823 */
AnnaBridge 171:3a7713b1edbc 824
AnnaBridge 171:3a7713b1edbc 825 /** @defgroup ADC_LL_EC_INJ_TRIGGER_EDGE ADC group injected - Trigger edge
AnnaBridge 171:3a7713b1edbc 826 * @{
AnnaBridge 171:3a7713b1edbc 827 */
AnnaBridge 171:3a7713b1edbc 828 #define LL_ADC_INJ_TRIG_EXT_RISING ( ADC_CR2_JEXTEN_0) /*!< ADC group injected conversion trigger polarity set to rising edge */
AnnaBridge 171:3a7713b1edbc 829 #define LL_ADC_INJ_TRIG_EXT_FALLING (ADC_CR2_JEXTEN_1 ) /*!< ADC group injected conversion trigger polarity set to falling edge */
AnnaBridge 171:3a7713b1edbc 830 #define LL_ADC_INJ_TRIG_EXT_RISINGFALLING (ADC_CR2_JEXTEN_1 | ADC_CR2_JEXTEN_0) /*!< ADC group injected conversion trigger polarity set to both rising and falling edges */
AnnaBridge 171:3a7713b1edbc 831 /**
AnnaBridge 171:3a7713b1edbc 832 * @}
AnnaBridge 171:3a7713b1edbc 833 */
AnnaBridge 171:3a7713b1edbc 834
AnnaBridge 171:3a7713b1edbc 835 /** @defgroup ADC_LL_EC_INJ_TRIG_AUTO ADC group injected - Automatic trigger mode
AnnaBridge 171:3a7713b1edbc 836 * @{
AnnaBridge 171:3a7713b1edbc 837 */
AnnaBridge 171:3a7713b1edbc 838 #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 171:3a7713b1edbc 839 #define LL_ADC_INJ_TRIG_FROM_GRP_REGULAR (ADC_CR1_JAUTO) /*!< ADC group injected conversion trigger from ADC group regular. Setting compliant only with group injected trigger source set to SW start, without any further action on ADC group injected conversion start or stop: in this case, ADC group injected is controlled only from ADC group regular. */
AnnaBridge 171:3a7713b1edbc 840 /**
AnnaBridge 171:3a7713b1edbc 841 * @}
AnnaBridge 171:3a7713b1edbc 842 */
AnnaBridge 171:3a7713b1edbc 843
AnnaBridge 171:3a7713b1edbc 844
AnnaBridge 171:3a7713b1edbc 845 /** @defgroup ADC_LL_EC_INJ_SEQ_SCAN_LENGTH ADC group injected - Sequencer scan length
AnnaBridge 171:3a7713b1edbc 846 * @{
AnnaBridge 171:3a7713b1edbc 847 */
AnnaBridge 171:3a7713b1edbc 848 #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 171:3a7713b1edbc 849 #define LL_ADC_INJ_SEQ_SCAN_ENABLE_2RANKS ( ADC_JSQR_JL_0) /*!< ADC group injected sequencer enable with 2 ranks in the sequence */
AnnaBridge 171:3a7713b1edbc 850 #define LL_ADC_INJ_SEQ_SCAN_ENABLE_3RANKS (ADC_JSQR_JL_1 ) /*!< ADC group injected sequencer enable with 3 ranks in the sequence */
AnnaBridge 171:3a7713b1edbc 851 #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 171:3a7713b1edbc 852 /**
AnnaBridge 171:3a7713b1edbc 853 * @}
AnnaBridge 171:3a7713b1edbc 854 */
AnnaBridge 171:3a7713b1edbc 855
AnnaBridge 171:3a7713b1edbc 856 /** @defgroup ADC_LL_EC_INJ_SEQ_DISCONT_MODE ADC group injected - Sequencer discontinuous mode
AnnaBridge 171:3a7713b1edbc 857 * @{
AnnaBridge 171:3a7713b1edbc 858 */
AnnaBridge 171:3a7713b1edbc 859 #define LL_ADC_INJ_SEQ_DISCONT_DISABLE (0x00000000U)/*!< ADC group injected sequencer discontinuous mode disable */
AnnaBridge 171:3a7713b1edbc 860 #define LL_ADC_INJ_SEQ_DISCONT_1RANK (ADC_CR1_JDISCEN) /*!< ADC group injected sequencer discontinuous mode enable with sequence interruption every rank */
AnnaBridge 171:3a7713b1edbc 861 /**
AnnaBridge 171:3a7713b1edbc 862 * @}
AnnaBridge 171:3a7713b1edbc 863 */
AnnaBridge 171:3a7713b1edbc 864
AnnaBridge 171:3a7713b1edbc 865 /** @defgroup ADC_LL_EC_INJ_SEQ_RANKS ADC group injected - Sequencer ranks
AnnaBridge 171:3a7713b1edbc 866 * @{
AnnaBridge 171:3a7713b1edbc 867 */
AnnaBridge 171:3a7713b1edbc 868 #define LL_ADC_INJ_RANK_1 (ADC_JDR1_REGOFFSET | ADC_JOFR1_REGOFFSET | ADC_INJ_RANK_1_JSQR_BITOFFSET_POS) /*!< ADC group injected sequencer rank 1 */
AnnaBridge 171:3a7713b1edbc 869 #define LL_ADC_INJ_RANK_2 (ADC_JDR2_REGOFFSET | ADC_JOFR2_REGOFFSET | ADC_INJ_RANK_2_JSQR_BITOFFSET_POS) /*!< ADC group injected sequencer rank 2 */
AnnaBridge 171:3a7713b1edbc 870 #define LL_ADC_INJ_RANK_3 (ADC_JDR3_REGOFFSET | ADC_JOFR3_REGOFFSET | ADC_INJ_RANK_3_JSQR_BITOFFSET_POS) /*!< ADC group injected sequencer rank 3 */
AnnaBridge 171:3a7713b1edbc 871 #define LL_ADC_INJ_RANK_4 (ADC_JDR4_REGOFFSET | ADC_JOFR4_REGOFFSET | ADC_INJ_RANK_4_JSQR_BITOFFSET_POS) /*!< ADC group injected sequencer rank 4 */
AnnaBridge 171:3a7713b1edbc 872 /**
AnnaBridge 171:3a7713b1edbc 873 * @}
AnnaBridge 171:3a7713b1edbc 874 */
AnnaBridge 171:3a7713b1edbc 875
AnnaBridge 171:3a7713b1edbc 876 /** @defgroup ADC_LL_EC_CHANNEL_SAMPLINGTIME Channel - Sampling time
AnnaBridge 171:3a7713b1edbc 877 * @{
AnnaBridge 171:3a7713b1edbc 878 */
AnnaBridge 171:3a7713b1edbc 879 #define LL_ADC_SAMPLINGTIME_3CYCLES (0x00000000U) /*!< Sampling time 3 ADC clock cycles */
AnnaBridge 171:3a7713b1edbc 880 #define LL_ADC_SAMPLINGTIME_15CYCLES (ADC_SMPR1_SMP10_0) /*!< Sampling time 15 ADC clock cycles */
AnnaBridge 171:3a7713b1edbc 881 #define LL_ADC_SAMPLINGTIME_28CYCLES (ADC_SMPR1_SMP10_1) /*!< Sampling time 28 ADC clock cycles */
AnnaBridge 171:3a7713b1edbc 882 #define LL_ADC_SAMPLINGTIME_56CYCLES (ADC_SMPR1_SMP10_1 | ADC_SMPR1_SMP10_0) /*!< Sampling time 56 ADC clock cycles */
AnnaBridge 171:3a7713b1edbc 883 #define LL_ADC_SAMPLINGTIME_84CYCLES (ADC_SMPR1_SMP10_2) /*!< Sampling time 84 ADC clock cycles */
AnnaBridge 171:3a7713b1edbc 884 #define LL_ADC_SAMPLINGTIME_112CYCLES (ADC_SMPR1_SMP10_2 | ADC_SMPR1_SMP10_0) /*!< Sampling time 112 ADC clock cycles */
AnnaBridge 171:3a7713b1edbc 885 #define LL_ADC_SAMPLINGTIME_144CYCLES (ADC_SMPR1_SMP10_2 | ADC_SMPR1_SMP10_1) /*!< Sampling time 144 ADC clock cycles */
AnnaBridge 171:3a7713b1edbc 886 #define LL_ADC_SAMPLINGTIME_480CYCLES (ADC_SMPR1_SMP10) /*!< Sampling time 480 ADC clock cycles */
AnnaBridge 171:3a7713b1edbc 887 /**
AnnaBridge 171:3a7713b1edbc 888 * @}
AnnaBridge 171:3a7713b1edbc 889 */
AnnaBridge 171:3a7713b1edbc 890
AnnaBridge 171:3a7713b1edbc 891 /** @defgroup ADC_LL_EC_AWD_NUMBER Analog watchdog - Analog watchdog number
AnnaBridge 171:3a7713b1edbc 892 * @{
AnnaBridge 171:3a7713b1edbc 893 */
AnnaBridge 171:3a7713b1edbc 894 #define LL_ADC_AWD1 (ADC_AWD_CR1_CHANNEL_MASK | ADC_AWD_CR1_REGOFFSET) /*!< ADC analog watchdog number 1 */
AnnaBridge 171:3a7713b1edbc 895 /**
AnnaBridge 171:3a7713b1edbc 896 * @}
AnnaBridge 171:3a7713b1edbc 897 */
AnnaBridge 171:3a7713b1edbc 898
AnnaBridge 171:3a7713b1edbc 899 /** @defgroup ADC_LL_EC_AWD_CHANNELS Analog watchdog - Monitored channels
AnnaBridge 171:3a7713b1edbc 900 * @{
AnnaBridge 171:3a7713b1edbc 901 */
AnnaBridge 171:3a7713b1edbc 902 #define LL_ADC_AWD_DISABLE (0x00000000U) /*!< ADC analog watchdog monitoring disabled */
AnnaBridge 171:3a7713b1edbc 903 #define LL_ADC_AWD_ALL_CHANNELS_REG ( ADC_CR1_AWDEN ) /*!< ADC analog watchdog monitoring of all channels, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 904 #define LL_ADC_AWD_ALL_CHANNELS_INJ ( ADC_CR1_JAWDEN ) /*!< ADC analog watchdog monitoring of all channels, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 905 #define LL_ADC_AWD_ALL_CHANNELS_REG_INJ ( ADC_CR1_JAWDEN | ADC_CR1_AWDEN ) /*!< ADC analog watchdog monitoring of all channels, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 906 #define LL_ADC_AWD_CHANNEL_0_REG ((LL_ADC_CHANNEL_0 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN0, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 907 #define LL_ADC_AWD_CHANNEL_0_INJ ((LL_ADC_CHANNEL_0 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN0, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 908 #define LL_ADC_AWD_CHANNEL_0_REG_INJ ((LL_ADC_CHANNEL_0 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN0, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 909 #define LL_ADC_AWD_CHANNEL_1_REG ((LL_ADC_CHANNEL_1 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN1, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 910 #define LL_ADC_AWD_CHANNEL_1_INJ ((LL_ADC_CHANNEL_1 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN1, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 911 #define LL_ADC_AWD_CHANNEL_1_REG_INJ ((LL_ADC_CHANNEL_1 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN1, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 912 #define LL_ADC_AWD_CHANNEL_2_REG ((LL_ADC_CHANNEL_2 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN2, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 913 #define LL_ADC_AWD_CHANNEL_2_INJ ((LL_ADC_CHANNEL_2 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN2, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 914 #define LL_ADC_AWD_CHANNEL_2_REG_INJ ((LL_ADC_CHANNEL_2 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN2, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 915 #define LL_ADC_AWD_CHANNEL_3_REG ((LL_ADC_CHANNEL_3 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN3, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 916 #define LL_ADC_AWD_CHANNEL_3_INJ ((LL_ADC_CHANNEL_3 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN3, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 917 #define LL_ADC_AWD_CHANNEL_3_REG_INJ ((LL_ADC_CHANNEL_3 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN3, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 918 #define LL_ADC_AWD_CHANNEL_4_REG ((LL_ADC_CHANNEL_4 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN4, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 919 #define LL_ADC_AWD_CHANNEL_4_INJ ((LL_ADC_CHANNEL_4 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN4, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 920 #define LL_ADC_AWD_CHANNEL_4_REG_INJ ((LL_ADC_CHANNEL_4 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN4, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 921 #define LL_ADC_AWD_CHANNEL_5_REG ((LL_ADC_CHANNEL_5 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN5, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 922 #define LL_ADC_AWD_CHANNEL_5_INJ ((LL_ADC_CHANNEL_5 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN5, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 923 #define LL_ADC_AWD_CHANNEL_5_REG_INJ ((LL_ADC_CHANNEL_5 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN5, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 924 #define LL_ADC_AWD_CHANNEL_6_REG ((LL_ADC_CHANNEL_6 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN6, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 925 #define LL_ADC_AWD_CHANNEL_6_INJ ((LL_ADC_CHANNEL_6 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN6, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 926 #define LL_ADC_AWD_CHANNEL_6_REG_INJ ((LL_ADC_CHANNEL_6 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN6, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 927 #define LL_ADC_AWD_CHANNEL_7_REG ((LL_ADC_CHANNEL_7 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN7, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 928 #define LL_ADC_AWD_CHANNEL_7_INJ ((LL_ADC_CHANNEL_7 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN7, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 929 #define LL_ADC_AWD_CHANNEL_7_REG_INJ ((LL_ADC_CHANNEL_7 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN7, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 930 #define LL_ADC_AWD_CHANNEL_8_REG ((LL_ADC_CHANNEL_8 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN8, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 931 #define LL_ADC_AWD_CHANNEL_8_INJ ((LL_ADC_CHANNEL_8 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN8, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 932 #define LL_ADC_AWD_CHANNEL_8_REG_INJ ((LL_ADC_CHANNEL_8 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN8, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 933 #define LL_ADC_AWD_CHANNEL_9_REG ((LL_ADC_CHANNEL_9 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN9, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 934 #define LL_ADC_AWD_CHANNEL_9_INJ ((LL_ADC_CHANNEL_9 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN9, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 935 #define LL_ADC_AWD_CHANNEL_9_REG_INJ ((LL_ADC_CHANNEL_9 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN9, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 936 #define LL_ADC_AWD_CHANNEL_10_REG ((LL_ADC_CHANNEL_10 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN10, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 937 #define LL_ADC_AWD_CHANNEL_10_INJ ((LL_ADC_CHANNEL_10 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN10, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 938 #define LL_ADC_AWD_CHANNEL_10_REG_INJ ((LL_ADC_CHANNEL_10 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN10, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 939 #define LL_ADC_AWD_CHANNEL_11_REG ((LL_ADC_CHANNEL_11 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN11, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 940 #define LL_ADC_AWD_CHANNEL_11_INJ ((LL_ADC_CHANNEL_11 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN11, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 941 #define LL_ADC_AWD_CHANNEL_11_REG_INJ ((LL_ADC_CHANNEL_11 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN11, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 942 #define LL_ADC_AWD_CHANNEL_12_REG ((LL_ADC_CHANNEL_12 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN12, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 943 #define LL_ADC_AWD_CHANNEL_12_INJ ((LL_ADC_CHANNEL_12 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN12, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 944 #define LL_ADC_AWD_CHANNEL_12_REG_INJ ((LL_ADC_CHANNEL_12 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN12, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 945 #define LL_ADC_AWD_CHANNEL_13_REG ((LL_ADC_CHANNEL_13 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN13, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 946 #define LL_ADC_AWD_CHANNEL_13_INJ ((LL_ADC_CHANNEL_13 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN13, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 947 #define LL_ADC_AWD_CHANNEL_13_REG_INJ ((LL_ADC_CHANNEL_13 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN13, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 948 #define LL_ADC_AWD_CHANNEL_14_REG ((LL_ADC_CHANNEL_14 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN14, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 949 #define LL_ADC_AWD_CHANNEL_14_INJ ((LL_ADC_CHANNEL_14 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN14, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 950 #define LL_ADC_AWD_CHANNEL_14_REG_INJ ((LL_ADC_CHANNEL_14 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN14, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 951 #define LL_ADC_AWD_CHANNEL_15_REG ((LL_ADC_CHANNEL_15 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN15, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 952 #define LL_ADC_AWD_CHANNEL_15_INJ ((LL_ADC_CHANNEL_15 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN15, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 953 #define LL_ADC_AWD_CHANNEL_15_REG_INJ ((LL_ADC_CHANNEL_15 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN15, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 954 #define LL_ADC_AWD_CHANNEL_16_REG ((LL_ADC_CHANNEL_16 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN16, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 955 #define LL_ADC_AWD_CHANNEL_16_INJ ((LL_ADC_CHANNEL_16 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN16, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 956 #define LL_ADC_AWD_CHANNEL_16_REG_INJ ((LL_ADC_CHANNEL_16 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN16, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 957 #define LL_ADC_AWD_CHANNEL_17_REG ((LL_ADC_CHANNEL_17 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN17, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 958 #define LL_ADC_AWD_CHANNEL_17_INJ ((LL_ADC_CHANNEL_17 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN17, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 959 #define LL_ADC_AWD_CHANNEL_17_REG_INJ ((LL_ADC_CHANNEL_17 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN17, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 960 #define LL_ADC_AWD_CHANNEL_18_REG ((LL_ADC_CHANNEL_18 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN18, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 961 #define LL_ADC_AWD_CHANNEL_18_INJ ((LL_ADC_CHANNEL_18 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN18, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 962 #define LL_ADC_AWD_CHANNEL_18_REG_INJ ((LL_ADC_CHANNEL_18 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN18, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 963 #define LL_ADC_AWD_CH_VREFINT_REG ((LL_ADC_CHANNEL_VREFINT & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to VrefInt: Internal voltage reference, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 964 #define LL_ADC_AWD_CH_VREFINT_INJ ((LL_ADC_CHANNEL_VREFINT & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to VrefInt: Internal voltage reference, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 965 #define LL_ADC_AWD_CH_VREFINT_REG_INJ ((LL_ADC_CHANNEL_VREFINT & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to VrefInt: Internal voltage reference, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 966 #define LL_ADC_AWD_CH_VBAT_REG ((LL_ADC_CHANNEL_VBAT & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< 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 171:3a7713b1edbc 967 #define LL_ADC_AWD_CH_VBAT_INJ ((LL_ADC_CHANNEL_VBAT & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< 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 171:3a7713b1edbc 968 #define LL_ADC_AWD_CH_VBAT_REG_INJ ((LL_ADC_CHANNEL_VBAT & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< 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 171:3a7713b1edbc 969 #define LL_ADC_AWD_CH_TEMPSENSOR_REG ((LL_ADC_CHANNEL_TEMPSENSOR & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to Temperature sensor, converted by group regular only. This internal channel is shared between temperature sensor and Vbat, only 1 measurement path must be enabled. */
AnnaBridge 171:3a7713b1edbc 970 #define LL_ADC_AWD_CH_TEMPSENSOR_INJ ((LL_ADC_CHANNEL_TEMPSENSOR & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to Temperature sensor, converted by group injected only. This internal channel is shared between temperature sensor and Vbat, only 1 measurement path must be enabled. */
AnnaBridge 171:3a7713b1edbc 971 #define LL_ADC_AWD_CH_TEMPSENSOR_REG_INJ ((LL_ADC_CHANNEL_TEMPSENSOR & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to Temperature sensor, converted by either group regular or injected. This internal channel is shared between temperature sensor and Vbat, only 1 measurement path must be enabled. */
AnnaBridge 171:3a7713b1edbc 972 /**
AnnaBridge 171:3a7713b1edbc 973 * @}
AnnaBridge 171:3a7713b1edbc 974 */
AnnaBridge 171:3a7713b1edbc 975
AnnaBridge 171:3a7713b1edbc 976 /** @defgroup ADC_LL_EC_AWD_THRESHOLDS Analog watchdog - Thresholds
AnnaBridge 171:3a7713b1edbc 977 * @{
AnnaBridge 171:3a7713b1edbc 978 */
AnnaBridge 171:3a7713b1edbc 979 #define LL_ADC_AWD_THRESHOLD_HIGH (ADC_AWD_TR1_HIGH_REGOFFSET) /*!< ADC analog watchdog threshold high */
AnnaBridge 171:3a7713b1edbc 980 #define LL_ADC_AWD_THRESHOLD_LOW (ADC_AWD_TR1_LOW_REGOFFSET) /*!< ADC analog watchdog threshold low */
AnnaBridge 171:3a7713b1edbc 981 /**
AnnaBridge 171:3a7713b1edbc 982 * @}
AnnaBridge 171:3a7713b1edbc 983 */
AnnaBridge 171:3a7713b1edbc 984
AnnaBridge 171:3a7713b1edbc 985 /** @defgroup ADC_LL_EC_MULTI_MODE Multimode - Mode
AnnaBridge 171:3a7713b1edbc 986 * @{
AnnaBridge 171:3a7713b1edbc 987 */
AnnaBridge 171:3a7713b1edbc 988 #define LL_ADC_MULTI_INDEPENDENT (0x00000000U) /*!< ADC dual mode disabled (ADC independent mode) */
AnnaBridge 171:3a7713b1edbc 989 #define LL_ADC_MULTI_DUAL_REG_SIMULT ( ADC_CCR_MULTI_2 | ADC_CCR_MULTI_1 ) /*!< ADC dual mode enabled: group regular simultaneous */
AnnaBridge 171:3a7713b1edbc 990 #define LL_ADC_MULTI_DUAL_REG_INTERL ( ADC_CCR_MULTI_2 | ADC_CCR_MULTI_1 | ADC_CCR_MULTI_0) /*!< ADC dual mode enabled: Combined group regular interleaved */
AnnaBridge 171:3a7713b1edbc 991 #define LL_ADC_MULTI_DUAL_INJ_SIMULT ( ADC_CCR_MULTI_2 | ADC_CCR_MULTI_0) /*!< ADC dual mode enabled: group injected simultaneous */
AnnaBridge 171:3a7713b1edbc 992 #define LL_ADC_MULTI_DUAL_INJ_ALTERN (ADC_CCR_MULTI_3 | ADC_CCR_MULTI_0) /*!< ADC dual mode enabled: group injected alternate trigger. Works only with external triggers (not internal SW start) */
AnnaBridge 171:3a7713b1edbc 993 #define LL_ADC_MULTI_DUAL_REG_SIM_INJ_SIM ( ADC_CCR_MULTI_0) /*!< ADC dual mode enabled: Combined group regular simultaneous + group injected simultaneous */
AnnaBridge 171:3a7713b1edbc 994 #define LL_ADC_MULTI_DUAL_REG_SIM_INJ_ALT ( ADC_CCR_MULTI_1 ) /*!< ADC dual mode enabled: Combined group regular simultaneous + group injected alternate trigger */
AnnaBridge 171:3a7713b1edbc 995 #define LL_ADC_MULTI_DUAL_REG_INT_INJ_SIM ( ADC_CCR_MULTI_1 | ADC_CCR_MULTI_0) /*!< ADC dual mode enabled: Combined group regular interleaved + group injected simultaneous */
AnnaBridge 171:3a7713b1edbc 996 #if defined(ADC3)
AnnaBridge 171:3a7713b1edbc 997 #define LL_ADC_MULTI_TRIPLE_REG_SIM_INJ_SIM (ADC_CCR_MULTI_4 | ADC_CCR_MULTI_0) /*!< ADC triple mode enabled: Combined group regular simultaneous + group injected simultaneous */
AnnaBridge 171:3a7713b1edbc 998 #define LL_ADC_MULTI_TRIPLE_REG_SIM_INJ_ALT (ADC_CCR_MULTI_4 | ADC_CCR_MULTI_1 ) /*!< ADC triple mode enabled: Combined group regular simultaneous + group injected alternate trigger */
AnnaBridge 171:3a7713b1edbc 999 #define LL_ADC_MULTI_TRIPLE_INJ_SIMULT (ADC_CCR_MULTI_4 | ADC_CCR_MULTI_2 | ADC_CCR_MULTI_0) /*!< ADC triple mode enabled: group injected simultaneous */
AnnaBridge 171:3a7713b1edbc 1000 #define LL_ADC_MULTI_TRIPLE_REG_SIMULT (ADC_CCR_MULTI_4 | ADC_CCR_MULTI_2 | ADC_CCR_MULTI_1 ) /*!< ADC triple mode enabled: group regular simultaneous */
AnnaBridge 171:3a7713b1edbc 1001 #define LL_ADC_MULTI_TRIPLE_REG_INTERL (ADC_CCR_MULTI_4 | ADC_CCR_MULTI_2 | ADC_CCR_MULTI_1 | ADC_CCR_MULTI_0) /*!< ADC triple mode enabled: Combined group regular interleaved */
AnnaBridge 171:3a7713b1edbc 1002 #define LL_ADC_MULTI_TRIPLE_INJ_ALTERN (ADC_CCR_MULTI_4 | ADC_CCR_MULTI_0) /*!< ADC triple mode enabled: group injected alternate trigger. Works only with external triggers (not internal SW start) */
AnnaBridge 171:3a7713b1edbc 1003 #endif
AnnaBridge 171:3a7713b1edbc 1004 /**
AnnaBridge 171:3a7713b1edbc 1005 * @}
AnnaBridge 171:3a7713b1edbc 1006 */
AnnaBridge 171:3a7713b1edbc 1007
AnnaBridge 171:3a7713b1edbc 1008 /** @defgroup ADC_LL_EC_MULTI_DMA_TRANSFER Multimode - DMA transfer
AnnaBridge 171:3a7713b1edbc 1009 * @{
AnnaBridge 171:3a7713b1edbc 1010 */
AnnaBridge 171:3a7713b1edbc 1011 #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 171:3a7713b1edbc 1012 #define LL_ADC_MULTI_REG_DMA_LIMIT_1 ( ADC_CCR_DMA_0) /*!< ADC multimode group regular conversions are transferred by DMA, one DMA channel for all ADC instances (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 of DMA mode 1: 2 or 3 (dual or triple mode) half-words one by one, ADC1 then ADC2 then ADC3. */
AnnaBridge 171:3a7713b1edbc 1013 #define LL_ADC_MULTI_REG_DMA_LIMIT_2 ( ADC_CCR_DMA_1 ) /*!< ADC multimode group regular conversions are transferred by DMA, one DMA channel for all ADC instances (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 of DMA mode 2: 2 or 3 (dual or triple mode) half-words one by one, ADC2&1 then ADC1&3 then ADC3&2. */
AnnaBridge 171:3a7713b1edbc 1014 #define LL_ADC_MULTI_REG_DMA_LIMIT_3 ( ADC_CCR_DMA_0 | ADC_CCR_DMA_0) /*!< ADC multimode group regular conversions are transferred by DMA, one DMA channel for all ADC instances (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 of DMA mode 3: 2 or 3 (dual or triple mode) bytes one by one, ADC2&1 then ADC1&3 then ADC3&2. */
AnnaBridge 171:3a7713b1edbc 1015 #define LL_ADC_MULTI_REG_DMA_UNLMT_1 (ADC_CCR_DDS | ADC_CCR_DMA_0) /*!< ADC multimode group regular conversions are transferred by DMA, one DMA channel for all ADC instances (DMA of ADC master), in unlimited mode: DMA transfer requests are unlimited, whatever number of DMA data transferred (number of ADC conversions) is reached. This ADC mode is intended to be used with DMA mode non-circular. Setting of DMA mode 1: 2 or 3 (dual or triple mode) half-words one by one, ADC1 then ADC2 then ADC3. */
AnnaBridge 171:3a7713b1edbc 1016 #define LL_ADC_MULTI_REG_DMA_UNLMT_2 (ADC_CCR_DDS | ADC_CCR_DMA_1 ) /*!< ADC multimode group regular conversions are transferred by DMA, one DMA channel for all ADC instances (DMA of ADC master), in unlimited mode: DMA transfer requests are unlimited, whatever number of DMA data transferred (number of ADC conversions) is reached. This ADC mode is intended to be used with DMA mode non-circular. Setting of DMA mode 2: 2 or 3 (dual or triple mode) half-words by pairs, ADC2&1 then ADC1&3 then ADC3&2. */
AnnaBridge 171:3a7713b1edbc 1017 #define LL_ADC_MULTI_REG_DMA_UNLMT_3 (ADC_CCR_DDS | ADC_CCR_DMA_0 | ADC_CCR_DMA_0) /*!< ADC multimode group regular conversions are transferred by DMA, one DMA channel for all ADC instances (DMA of ADC master), in unlimited mode: DMA transfer requests are unlimited, whatever number of DMA data transferred (number of ADC conversions) is reached. This ADC mode is intended to be used with DMA mode non-circular. Setting of DMA mode 3: 2 or 3 (dual or triple mode) bytes one by one, ADC2&1 then ADC1&3 then ADC3&2. */
AnnaBridge 171:3a7713b1edbc 1018 /**
AnnaBridge 171:3a7713b1edbc 1019 * @}
AnnaBridge 171:3a7713b1edbc 1020 */
AnnaBridge 171:3a7713b1edbc 1021
AnnaBridge 171:3a7713b1edbc 1022 /** @defgroup ADC_LL_EC_MULTI_TWOSMP_DELAY Multimode - Delay between two sampling phases
AnnaBridge 171:3a7713b1edbc 1023 * @{
AnnaBridge 171:3a7713b1edbc 1024 */
AnnaBridge 171:3a7713b1edbc 1025 #define LL_ADC_MULTI_TWOSMP_DELAY_5CYCLES (0x00000000U) /*!< ADC multimode delay between two sampling phases: 5 ADC clock cycles*/
AnnaBridge 171:3a7713b1edbc 1026 #define LL_ADC_MULTI_TWOSMP_DELAY_6CYCLES ( ADC_CCR_DELAY_0) /*!< ADC multimode delay between two sampling phases: 6 ADC clock cycles */
AnnaBridge 171:3a7713b1edbc 1027 #define LL_ADC_MULTI_TWOSMP_DELAY_7CYCLES ( ADC_CCR_DELAY_1 ) /*!< ADC multimode delay between two sampling phases: 7 ADC clock cycles */
AnnaBridge 171:3a7713b1edbc 1028 #define LL_ADC_MULTI_TWOSMP_DELAY_8CYCLES ( ADC_CCR_DELAY_1 | ADC_CCR_DELAY_0) /*!< ADC multimode delay between two sampling phases: 8 ADC clock cycles */
AnnaBridge 171:3a7713b1edbc 1029 #define LL_ADC_MULTI_TWOSMP_DELAY_9CYCLES ( ADC_CCR_DELAY_2 ) /*!< ADC multimode delay between two sampling phases: 9 ADC clock cycles */
AnnaBridge 171:3a7713b1edbc 1030 #define LL_ADC_MULTI_TWOSMP_DELAY_10CYCLES ( ADC_CCR_DELAY_2 | ADC_CCR_DELAY_0) /*!< ADC multimode delay between two sampling phases: 10 ADC clock cycles */
AnnaBridge 171:3a7713b1edbc 1031 #define LL_ADC_MULTI_TWOSMP_DELAY_11CYCLES ( ADC_CCR_DELAY_2 | ADC_CCR_DELAY_1 ) /*!< ADC multimode delay between two sampling phases: 11 ADC clock cycles */
AnnaBridge 171:3a7713b1edbc 1032 #define LL_ADC_MULTI_TWOSMP_DELAY_12CYCLES ( ADC_CCR_DELAY_2 | ADC_CCR_DELAY_1 | ADC_CCR_DELAY_0) /*!< ADC multimode delay between two sampling phases: 12 ADC clock cycles */
AnnaBridge 171:3a7713b1edbc 1033 #define LL_ADC_MULTI_TWOSMP_DELAY_13CYCLES (ADC_CCR_DELAY_3 ) /*!< ADC multimode delay between two sampling phases: 13 ADC clock cycles */
AnnaBridge 171:3a7713b1edbc 1034 #define LL_ADC_MULTI_TWOSMP_DELAY_14CYCLES (ADC_CCR_DELAY_3 | ADC_CCR_DELAY_0) /*!< ADC multimode delay between two sampling phases: 14 ADC clock cycles */
AnnaBridge 171:3a7713b1edbc 1035 #define LL_ADC_MULTI_TWOSMP_DELAY_15CYCLES (ADC_CCR_DELAY_3 | ADC_CCR_DELAY_1 ) /*!< ADC multimode delay between two sampling phases: 15 ADC clock cycles */
AnnaBridge 171:3a7713b1edbc 1036 #define LL_ADC_MULTI_TWOSMP_DELAY_16CYCLES (ADC_CCR_DELAY_3 | ADC_CCR_DELAY_1 | ADC_CCR_DELAY_0) /*!< ADC multimode delay between two sampling phases: 16 ADC clock cycles */
AnnaBridge 171:3a7713b1edbc 1037 #define LL_ADC_MULTI_TWOSMP_DELAY_17CYCLES (ADC_CCR_DELAY_3 | ADC_CCR_DELAY_2 ) /*!< ADC multimode delay between two sampling phases: 17 ADC clock cycles */
AnnaBridge 171:3a7713b1edbc 1038 #define LL_ADC_MULTI_TWOSMP_DELAY_18CYCLES (ADC_CCR_DELAY_3 | ADC_CCR_DELAY_2 | ADC_CCR_DELAY_0) /*!< ADC multimode delay between two sampling phases: 18 ADC clock cycles */
AnnaBridge 171:3a7713b1edbc 1039 #define LL_ADC_MULTI_TWOSMP_DELAY_19CYCLES (ADC_CCR_DELAY_3 | ADC_CCR_DELAY_2 | ADC_CCR_DELAY_1 ) /*!< ADC multimode delay between two sampling phases: 19 ADC clock cycles */
AnnaBridge 171:3a7713b1edbc 1040 #define LL_ADC_MULTI_TWOSMP_DELAY_20CYCLES (ADC_CCR_DELAY_3 | ADC_CCR_DELAY_2 | ADC_CCR_DELAY_1 | ADC_CCR_DELAY_0) /*!< ADC multimode delay between two sampling phases: 20 ADC clock cycles */
AnnaBridge 171:3a7713b1edbc 1041 /**
AnnaBridge 171:3a7713b1edbc 1042 * @}
AnnaBridge 171:3a7713b1edbc 1043 */
AnnaBridge 171:3a7713b1edbc 1044
AnnaBridge 171:3a7713b1edbc 1045 /** @defgroup ADC_LL_EC_MULTI_MASTER_SLAVE Multimode - ADC master or slave
AnnaBridge 171:3a7713b1edbc 1046 * @{
AnnaBridge 171:3a7713b1edbc 1047 */
AnnaBridge 171:3a7713b1edbc 1048 #define LL_ADC_MULTI_MASTER ( ADC_CDR_RDATA_MST) /*!< In multimode, selection among several ADC instances: ADC master */
AnnaBridge 171:3a7713b1edbc 1049 #define LL_ADC_MULTI_SLAVE (ADC_CDR_RDATA_SLV ) /*!< In multimode, selection among several ADC instances: ADC slave */
AnnaBridge 171:3a7713b1edbc 1050 #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 171:3a7713b1edbc 1051 /**
AnnaBridge 171:3a7713b1edbc 1052 * @}
AnnaBridge 171:3a7713b1edbc 1053 */
AnnaBridge 171:3a7713b1edbc 1054
AnnaBridge 171:3a7713b1edbc 1055
AnnaBridge 171:3a7713b1edbc 1056
AnnaBridge 171:3a7713b1edbc 1057 /** @defgroup ADC_LL_EC_HW_DELAYS Definitions of ADC hardware constraints delays
AnnaBridge 171:3a7713b1edbc 1058 * @note Only ADC IP HW delays are defined in ADC LL driver driver,
AnnaBridge 171:3a7713b1edbc 1059 * not timeout values.
AnnaBridge 171:3a7713b1edbc 1060 * For details on delays values, refer to descriptions in source code
AnnaBridge 171:3a7713b1edbc 1061 * above each literal definition.
AnnaBridge 171:3a7713b1edbc 1062 * @{
AnnaBridge 171:3a7713b1edbc 1063 */
AnnaBridge 171:3a7713b1edbc 1064
AnnaBridge 171:3a7713b1edbc 1065 /* Note: Only ADC IP HW delays are defined in ADC LL driver driver, */
AnnaBridge 171:3a7713b1edbc 1066 /* not timeout values. */
AnnaBridge 171:3a7713b1edbc 1067 /* Timeout values for ADC operations are dependent to device clock */
AnnaBridge 171:3a7713b1edbc 1068 /* configuration (system clock versus ADC clock), */
AnnaBridge 171:3a7713b1edbc 1069 /* and therefore must be defined in user application. */
AnnaBridge 171:3a7713b1edbc 1070 /* Indications for estimation of ADC timeout delays, for this */
AnnaBridge 171:3a7713b1edbc 1071 /* STM32 serie: */
AnnaBridge 171:3a7713b1edbc 1072 /* - ADC enable time: maximum delay is 2us */
AnnaBridge 171:3a7713b1edbc 1073 /* (refer to device datasheet, parameter "tSTAB") */
AnnaBridge 171:3a7713b1edbc 1074 /* - ADC conversion time: duration depending on ADC clock and ADC */
AnnaBridge 171:3a7713b1edbc 1075 /* configuration. */
AnnaBridge 171:3a7713b1edbc 1076 /* (refer to device reference manual, section "Timing") */
AnnaBridge 171:3a7713b1edbc 1077
AnnaBridge 171:3a7713b1edbc 1078 /* Delay for internal voltage reference stabilization time. */
AnnaBridge 171:3a7713b1edbc 1079 /* Delay set to maximum value (refer to device datasheet, */
AnnaBridge 171:3a7713b1edbc 1080 /* parameter "tSTART"). */
AnnaBridge 171:3a7713b1edbc 1081 /* Unit: us */
AnnaBridge 171:3a7713b1edbc 1082 #define LL_ADC_DELAY_VREFINT_STAB_US ( 10U) /*!< Delay for internal voltage reference stabilization time */
AnnaBridge 171:3a7713b1edbc 1083
AnnaBridge 171:3a7713b1edbc 1084 /* Delay for temperature sensor stabilization time. */
AnnaBridge 171:3a7713b1edbc 1085 /* Literal set to maximum value (refer to device datasheet, */
AnnaBridge 171:3a7713b1edbc 1086 /* parameter "tSTART"). */
AnnaBridge 171:3a7713b1edbc 1087 /* Unit: us */
AnnaBridge 171:3a7713b1edbc 1088 #define LL_ADC_DELAY_TEMPSENSOR_STAB_US ( 10U) /*!< Delay for internal voltage reference stabilization time */
AnnaBridge 171:3a7713b1edbc 1089
AnnaBridge 171:3a7713b1edbc 1090 /**
AnnaBridge 171:3a7713b1edbc 1091 * @}
AnnaBridge 171:3a7713b1edbc 1092 */
AnnaBridge 171:3a7713b1edbc 1093
AnnaBridge 171:3a7713b1edbc 1094 /**
AnnaBridge 171:3a7713b1edbc 1095 * @}
AnnaBridge 171:3a7713b1edbc 1096 */
AnnaBridge 171:3a7713b1edbc 1097
AnnaBridge 171:3a7713b1edbc 1098
AnnaBridge 171:3a7713b1edbc 1099 /* Exported macro ------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 1100 /** @defgroup ADC_LL_Exported_Macros ADC Exported Macros
AnnaBridge 171:3a7713b1edbc 1101 * @{
AnnaBridge 171:3a7713b1edbc 1102 */
AnnaBridge 171:3a7713b1edbc 1103
AnnaBridge 171:3a7713b1edbc 1104 /** @defgroup ADC_LL_EM_WRITE_READ Common write and read registers Macros
AnnaBridge 171:3a7713b1edbc 1105 * @{
AnnaBridge 171:3a7713b1edbc 1106 */
AnnaBridge 171:3a7713b1edbc 1107
AnnaBridge 171:3a7713b1edbc 1108 /**
AnnaBridge 171:3a7713b1edbc 1109 * @brief Write a value in ADC register
AnnaBridge 171:3a7713b1edbc 1110 * @param __INSTANCE__ ADC Instance
AnnaBridge 171:3a7713b1edbc 1111 * @param __REG__ Register to be written
AnnaBridge 171:3a7713b1edbc 1112 * @param __VALUE__ Value to be written in the register
AnnaBridge 171:3a7713b1edbc 1113 * @retval None
AnnaBridge 171:3a7713b1edbc 1114 */
AnnaBridge 171:3a7713b1edbc 1115 #define LL_ADC_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__))
AnnaBridge 171:3a7713b1edbc 1116
AnnaBridge 171:3a7713b1edbc 1117 /**
AnnaBridge 171:3a7713b1edbc 1118 * @brief Read a value in ADC register
AnnaBridge 171:3a7713b1edbc 1119 * @param __INSTANCE__ ADC Instance
AnnaBridge 171:3a7713b1edbc 1120 * @param __REG__ Register to be read
AnnaBridge 171:3a7713b1edbc 1121 * @retval Register value
AnnaBridge 171:3a7713b1edbc 1122 */
AnnaBridge 171:3a7713b1edbc 1123 #define LL_ADC_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__)
AnnaBridge 171:3a7713b1edbc 1124 /**
AnnaBridge 171:3a7713b1edbc 1125 * @}
AnnaBridge 171:3a7713b1edbc 1126 */
AnnaBridge 171:3a7713b1edbc 1127
AnnaBridge 171:3a7713b1edbc 1128 /** @defgroup ADC_LL_EM_HELPER_MACRO ADC helper macro
AnnaBridge 171:3a7713b1edbc 1129 * @{
AnnaBridge 171:3a7713b1edbc 1130 */
AnnaBridge 171:3a7713b1edbc 1131
AnnaBridge 171:3a7713b1edbc 1132 /**
AnnaBridge 171:3a7713b1edbc 1133 * @brief Helper macro to get ADC channel number in decimal format
AnnaBridge 171:3a7713b1edbc 1134 * from literals LL_ADC_CHANNEL_x.
AnnaBridge 171:3a7713b1edbc 1135 * @note Example:
AnnaBridge 171:3a7713b1edbc 1136 * __LL_ADC_CHANNEL_TO_DECIMAL_NB(LL_ADC_CHANNEL_4)
AnnaBridge 171:3a7713b1edbc 1137 * will return decimal number "4".
AnnaBridge 171:3a7713b1edbc 1138 * @note The input can be a value from functions where a channel
AnnaBridge 171:3a7713b1edbc 1139 * number is returned, either defined with number
AnnaBridge 171:3a7713b1edbc 1140 * or with bitfield (only one bit must be set).
AnnaBridge 171:3a7713b1edbc 1141 * @param __CHANNEL__ This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 1142 * @arg @ref LL_ADC_CHANNEL_0
AnnaBridge 171:3a7713b1edbc 1143 * @arg @ref LL_ADC_CHANNEL_1
AnnaBridge 171:3a7713b1edbc 1144 * @arg @ref LL_ADC_CHANNEL_2
AnnaBridge 171:3a7713b1edbc 1145 * @arg @ref LL_ADC_CHANNEL_3
AnnaBridge 171:3a7713b1edbc 1146 * @arg @ref LL_ADC_CHANNEL_4
AnnaBridge 171:3a7713b1edbc 1147 * @arg @ref LL_ADC_CHANNEL_5
AnnaBridge 171:3a7713b1edbc 1148 * @arg @ref LL_ADC_CHANNEL_6
AnnaBridge 171:3a7713b1edbc 1149 * @arg @ref LL_ADC_CHANNEL_7
AnnaBridge 171:3a7713b1edbc 1150 * @arg @ref LL_ADC_CHANNEL_8
AnnaBridge 171:3a7713b1edbc 1151 * @arg @ref LL_ADC_CHANNEL_9
AnnaBridge 171:3a7713b1edbc 1152 * @arg @ref LL_ADC_CHANNEL_10
AnnaBridge 171:3a7713b1edbc 1153 * @arg @ref LL_ADC_CHANNEL_11
AnnaBridge 171:3a7713b1edbc 1154 * @arg @ref LL_ADC_CHANNEL_12
AnnaBridge 171:3a7713b1edbc 1155 * @arg @ref LL_ADC_CHANNEL_13
AnnaBridge 171:3a7713b1edbc 1156 * @arg @ref LL_ADC_CHANNEL_14
AnnaBridge 171:3a7713b1edbc 1157 * @arg @ref LL_ADC_CHANNEL_15
AnnaBridge 171:3a7713b1edbc 1158 * @arg @ref LL_ADC_CHANNEL_16
AnnaBridge 171:3a7713b1edbc 1159 * @arg @ref LL_ADC_CHANNEL_17
AnnaBridge 171:3a7713b1edbc 1160 * @arg @ref LL_ADC_CHANNEL_18
AnnaBridge 171:3a7713b1edbc 1161 * @arg @ref LL_ADC_CHANNEL_VREFINT (1)
AnnaBridge 171:3a7713b1edbc 1162 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (1)(2)
AnnaBridge 171:3a7713b1edbc 1163 * @arg @ref LL_ADC_CHANNEL_VBAT (1)
AnnaBridge 171:3a7713b1edbc 1164 *
AnnaBridge 171:3a7713b1edbc 1165 * (1) On STM32F7, parameter available only on ADC instance: ADC1.\n
AnnaBridge 171:3a7713b1edbc 1166 * (2) On devices STM32F75x, STM32F74x, STM32F76x, STM32F77x, STM32F72x and STM32F73x: this internal channel is shared between temperature sensor and Vbat, only 1 measurement path must be enabled.
AnnaBridge 171:3a7713b1edbc 1167 * @retval Value between Min_Data=0 and Max_Data=18
AnnaBridge 171:3a7713b1edbc 1168 */
AnnaBridge 171:3a7713b1edbc 1169 #define __LL_ADC_CHANNEL_TO_DECIMAL_NB(__CHANNEL__) \
AnnaBridge 171:3a7713b1edbc 1170 (((__CHANNEL__) & ADC_CHANNEL_ID_NUMBER_MASK) >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS)
AnnaBridge 171:3a7713b1edbc 1171
AnnaBridge 171:3a7713b1edbc 1172 /**
AnnaBridge 171:3a7713b1edbc 1173 * @brief Helper macro to get ADC channel in literal format LL_ADC_CHANNEL_x
AnnaBridge 171:3a7713b1edbc 1174 * from number in decimal format.
AnnaBridge 171:3a7713b1edbc 1175 * @note Example:
AnnaBridge 171:3a7713b1edbc 1176 * __LL_ADC_DECIMAL_NB_TO_CHANNEL(4)
AnnaBridge 171:3a7713b1edbc 1177 * will return a data equivalent to "LL_ADC_CHANNEL_4".
AnnaBridge 171:3a7713b1edbc 1178 * @param __DECIMAL_NB__ Value between Min_Data=0 and Max_Data=18
AnnaBridge 171:3a7713b1edbc 1179 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 1180 * @arg @ref LL_ADC_CHANNEL_0
AnnaBridge 171:3a7713b1edbc 1181 * @arg @ref LL_ADC_CHANNEL_1
AnnaBridge 171:3a7713b1edbc 1182 * @arg @ref LL_ADC_CHANNEL_2
AnnaBridge 171:3a7713b1edbc 1183 * @arg @ref LL_ADC_CHANNEL_3
AnnaBridge 171:3a7713b1edbc 1184 * @arg @ref LL_ADC_CHANNEL_4
AnnaBridge 171:3a7713b1edbc 1185 * @arg @ref LL_ADC_CHANNEL_5
AnnaBridge 171:3a7713b1edbc 1186 * @arg @ref LL_ADC_CHANNEL_6
AnnaBridge 171:3a7713b1edbc 1187 * @arg @ref LL_ADC_CHANNEL_7
AnnaBridge 171:3a7713b1edbc 1188 * @arg @ref LL_ADC_CHANNEL_8
AnnaBridge 171:3a7713b1edbc 1189 * @arg @ref LL_ADC_CHANNEL_9
AnnaBridge 171:3a7713b1edbc 1190 * @arg @ref LL_ADC_CHANNEL_10
AnnaBridge 171:3a7713b1edbc 1191 * @arg @ref LL_ADC_CHANNEL_11
AnnaBridge 171:3a7713b1edbc 1192 * @arg @ref LL_ADC_CHANNEL_12
AnnaBridge 171:3a7713b1edbc 1193 * @arg @ref LL_ADC_CHANNEL_13
AnnaBridge 171:3a7713b1edbc 1194 * @arg @ref LL_ADC_CHANNEL_14
AnnaBridge 171:3a7713b1edbc 1195 * @arg @ref LL_ADC_CHANNEL_15
AnnaBridge 171:3a7713b1edbc 1196 * @arg @ref LL_ADC_CHANNEL_16
AnnaBridge 171:3a7713b1edbc 1197 * @arg @ref LL_ADC_CHANNEL_17
AnnaBridge 171:3a7713b1edbc 1198 * @arg @ref LL_ADC_CHANNEL_18
AnnaBridge 171:3a7713b1edbc 1199 * @arg @ref LL_ADC_CHANNEL_VREFINT (1)
AnnaBridge 171:3a7713b1edbc 1200 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (1)(2)
AnnaBridge 171:3a7713b1edbc 1201 * @arg @ref LL_ADC_CHANNEL_VBAT (1)
AnnaBridge 171:3a7713b1edbc 1202 *
AnnaBridge 171:3a7713b1edbc 1203 * (1) On STM32F7, parameter available only on ADC instance: ADC1.\n
AnnaBridge 171:3a7713b1edbc 1204 * (2) On devices STM32F75x, STM32F74x, STM32F76x, STM32F77x, STM32F72x and STM32F73x limitation: this internal channel is shared between temperature sensor and Vbat, only 1 measurement path must be enabled.\n
AnnaBridge 171:3a7713b1edbc 1205 * (1) For ADC channel read back from ADC register,
AnnaBridge 171:3a7713b1edbc 1206 * comparison with internal channel parameter to be done
AnnaBridge 171:3a7713b1edbc 1207 * using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL().
AnnaBridge 171:3a7713b1edbc 1208 */
AnnaBridge 171:3a7713b1edbc 1209 #define __LL_ADC_DECIMAL_NB_TO_CHANNEL(__DECIMAL_NB__) \
AnnaBridge 171:3a7713b1edbc 1210 (((__DECIMAL_NB__) <= 9U) \
AnnaBridge 171:3a7713b1edbc 1211 ? ( \
AnnaBridge 171:3a7713b1edbc 1212 ((__DECIMAL_NB__) << ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) | \
AnnaBridge 171:3a7713b1edbc 1213 (ADC_SMPR2_REGOFFSET | (((uint32_t) (3U * (__DECIMAL_NB__))) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) \
AnnaBridge 171:3a7713b1edbc 1214 ) \
AnnaBridge 171:3a7713b1edbc 1215 : \
AnnaBridge 171:3a7713b1edbc 1216 ( \
AnnaBridge 171:3a7713b1edbc 1217 ((__DECIMAL_NB__) << ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) | \
AnnaBridge 171:3a7713b1edbc 1218 (ADC_SMPR1_REGOFFSET | (((uint32_t) (3U * ((__DECIMAL_NB__) - 10U))) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) \
AnnaBridge 171:3a7713b1edbc 1219 ) \
AnnaBridge 171:3a7713b1edbc 1220 )
AnnaBridge 171:3a7713b1edbc 1221
AnnaBridge 171:3a7713b1edbc 1222 /**
AnnaBridge 171:3a7713b1edbc 1223 * @brief Helper macro to determine whether the selected channel
AnnaBridge 171:3a7713b1edbc 1224 * corresponds to literal definitions of driver.
AnnaBridge 171:3a7713b1edbc 1225 * @note The different literal definitions of ADC channels are:
AnnaBridge 171:3a7713b1edbc 1226 * - ADC internal channel:
AnnaBridge 171:3a7713b1edbc 1227 * LL_ADC_CHANNEL_VREFINT, LL_ADC_CHANNEL_TEMPSENSOR, ...
AnnaBridge 171:3a7713b1edbc 1228 * - ADC external channel (channel connected to a GPIO pin):
AnnaBridge 171:3a7713b1edbc 1229 * LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...
AnnaBridge 171:3a7713b1edbc 1230 * @note The channel parameter must be a value defined from literal
AnnaBridge 171:3a7713b1edbc 1231 * definition of a ADC internal channel (LL_ADC_CHANNEL_VREFINT,
AnnaBridge 171:3a7713b1edbc 1232 * LL_ADC_CHANNEL_TEMPSENSOR, ...),
AnnaBridge 171:3a7713b1edbc 1233 * ADC external channel (LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...),
AnnaBridge 171:3a7713b1edbc 1234 * must not be a value from functions where a channel number is
AnnaBridge 171:3a7713b1edbc 1235 * returned from ADC registers,
AnnaBridge 171:3a7713b1edbc 1236 * because internal and external channels share the same channel
AnnaBridge 171:3a7713b1edbc 1237 * number in ADC registers. The differentiation is made only with
AnnaBridge 171:3a7713b1edbc 1238 * parameters definitions of driver.
AnnaBridge 171:3a7713b1edbc 1239 * @param __CHANNEL__ This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 1240 * @arg @ref LL_ADC_CHANNEL_0
AnnaBridge 171:3a7713b1edbc 1241 * @arg @ref LL_ADC_CHANNEL_1
AnnaBridge 171:3a7713b1edbc 1242 * @arg @ref LL_ADC_CHANNEL_2
AnnaBridge 171:3a7713b1edbc 1243 * @arg @ref LL_ADC_CHANNEL_3
AnnaBridge 171:3a7713b1edbc 1244 * @arg @ref LL_ADC_CHANNEL_4
AnnaBridge 171:3a7713b1edbc 1245 * @arg @ref LL_ADC_CHANNEL_5
AnnaBridge 171:3a7713b1edbc 1246 * @arg @ref LL_ADC_CHANNEL_6
AnnaBridge 171:3a7713b1edbc 1247 * @arg @ref LL_ADC_CHANNEL_7
AnnaBridge 171:3a7713b1edbc 1248 * @arg @ref LL_ADC_CHANNEL_8
AnnaBridge 171:3a7713b1edbc 1249 * @arg @ref LL_ADC_CHANNEL_9
AnnaBridge 171:3a7713b1edbc 1250 * @arg @ref LL_ADC_CHANNEL_10
AnnaBridge 171:3a7713b1edbc 1251 * @arg @ref LL_ADC_CHANNEL_11
AnnaBridge 171:3a7713b1edbc 1252 * @arg @ref LL_ADC_CHANNEL_12
AnnaBridge 171:3a7713b1edbc 1253 * @arg @ref LL_ADC_CHANNEL_13
AnnaBridge 171:3a7713b1edbc 1254 * @arg @ref LL_ADC_CHANNEL_14
AnnaBridge 171:3a7713b1edbc 1255 * @arg @ref LL_ADC_CHANNEL_15
AnnaBridge 171:3a7713b1edbc 1256 * @arg @ref LL_ADC_CHANNEL_16
AnnaBridge 171:3a7713b1edbc 1257 * @arg @ref LL_ADC_CHANNEL_17
AnnaBridge 171:3a7713b1edbc 1258 * @arg @ref LL_ADC_CHANNEL_18
AnnaBridge 171:3a7713b1edbc 1259 * @arg @ref LL_ADC_CHANNEL_VREFINT (1)
AnnaBridge 171:3a7713b1edbc 1260 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (1)(2)
AnnaBridge 171:3a7713b1edbc 1261 * @arg @ref LL_ADC_CHANNEL_VBAT (1)
AnnaBridge 171:3a7713b1edbc 1262 *
AnnaBridge 171:3a7713b1edbc 1263 * (1) On STM32F7, parameter available only on ADC instance: ADC1.\n
AnnaBridge 171:3a7713b1edbc 1264 * (2) On devices STM32F75x, STM32F74x, STM32F76x, STM32F77x, STM32F72x and STM32F73x: this internal channel is shared between temperature sensor and Vbat, only 1 measurement path must be enabled.
AnnaBridge 171:3a7713b1edbc 1265 * @retval Value "0" if the channel corresponds to a parameter definition of a ADC external channel (channel connected to a GPIO pin).
AnnaBridge 171:3a7713b1edbc 1266 * Value "1" if the channel corresponds to a parameter definition of a ADC internal channel.
AnnaBridge 171:3a7713b1edbc 1267 */
AnnaBridge 171:3a7713b1edbc 1268 #define __LL_ADC_IS_CHANNEL_INTERNAL(__CHANNEL__) \
AnnaBridge 171:3a7713b1edbc 1269 (((__CHANNEL__) & ADC_CHANNEL_ID_INTERNAL_CH_MASK) != 0U)
AnnaBridge 171:3a7713b1edbc 1270
AnnaBridge 171:3a7713b1edbc 1271 /**
AnnaBridge 171:3a7713b1edbc 1272 * @brief Helper macro to convert a channel defined from parameter
AnnaBridge 171:3a7713b1edbc 1273 * definition of a ADC internal channel (LL_ADC_CHANNEL_VREFINT,
AnnaBridge 171:3a7713b1edbc 1274 * LL_ADC_CHANNEL_TEMPSENSOR, ...),
AnnaBridge 171:3a7713b1edbc 1275 * to its equivalent parameter definition of a ADC external channel
AnnaBridge 171:3a7713b1edbc 1276 * (LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...).
AnnaBridge 171:3a7713b1edbc 1277 * @note The channel parameter can be, additionally to a value
AnnaBridge 171:3a7713b1edbc 1278 * defined from parameter definition of a ADC internal channel
AnnaBridge 171:3a7713b1edbc 1279 * (LL_ADC_CHANNEL_VREFINT, LL_ADC_CHANNEL_TEMPSENSOR, ...),
AnnaBridge 171:3a7713b1edbc 1280 * a value defined from parameter definition of
AnnaBridge 171:3a7713b1edbc 1281 * ADC external channel (LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...)
AnnaBridge 171:3a7713b1edbc 1282 * or a value from functions where a channel number is returned
AnnaBridge 171:3a7713b1edbc 1283 * from ADC registers.
AnnaBridge 171:3a7713b1edbc 1284 * @param __CHANNEL__ This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 1285 * @arg @ref LL_ADC_CHANNEL_0
AnnaBridge 171:3a7713b1edbc 1286 * @arg @ref LL_ADC_CHANNEL_1
AnnaBridge 171:3a7713b1edbc 1287 * @arg @ref LL_ADC_CHANNEL_2
AnnaBridge 171:3a7713b1edbc 1288 * @arg @ref LL_ADC_CHANNEL_3
AnnaBridge 171:3a7713b1edbc 1289 * @arg @ref LL_ADC_CHANNEL_4
AnnaBridge 171:3a7713b1edbc 1290 * @arg @ref LL_ADC_CHANNEL_5
AnnaBridge 171:3a7713b1edbc 1291 * @arg @ref LL_ADC_CHANNEL_6
AnnaBridge 171:3a7713b1edbc 1292 * @arg @ref LL_ADC_CHANNEL_7
AnnaBridge 171:3a7713b1edbc 1293 * @arg @ref LL_ADC_CHANNEL_8
AnnaBridge 171:3a7713b1edbc 1294 * @arg @ref LL_ADC_CHANNEL_9
AnnaBridge 171:3a7713b1edbc 1295 * @arg @ref LL_ADC_CHANNEL_10
AnnaBridge 171:3a7713b1edbc 1296 * @arg @ref LL_ADC_CHANNEL_11
AnnaBridge 171:3a7713b1edbc 1297 * @arg @ref LL_ADC_CHANNEL_12
AnnaBridge 171:3a7713b1edbc 1298 * @arg @ref LL_ADC_CHANNEL_13
AnnaBridge 171:3a7713b1edbc 1299 * @arg @ref LL_ADC_CHANNEL_14
AnnaBridge 171:3a7713b1edbc 1300 * @arg @ref LL_ADC_CHANNEL_15
AnnaBridge 171:3a7713b1edbc 1301 * @arg @ref LL_ADC_CHANNEL_16
AnnaBridge 171:3a7713b1edbc 1302 * @arg @ref LL_ADC_CHANNEL_17
AnnaBridge 171:3a7713b1edbc 1303 * @arg @ref LL_ADC_CHANNEL_18
AnnaBridge 171:3a7713b1edbc 1304 * @arg @ref LL_ADC_CHANNEL_VREFINT (1)
AnnaBridge 171:3a7713b1edbc 1305 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (1)(2)
AnnaBridge 171:3a7713b1edbc 1306 * @arg @ref LL_ADC_CHANNEL_VBAT (1)
AnnaBridge 171:3a7713b1edbc 1307 *
AnnaBridge 171:3a7713b1edbc 1308 * (1) On STM32F7, parameter available only on ADC instance: ADC1.\n
AnnaBridge 171:3a7713b1edbc 1309 * (2) On devices STM32F75x, STM32F74x, STM32F76x, STM32F77x, STM32F72x and STM32F73x: this internal channel is shared between temperature sensor and Vbat, only 1 measurement path must be enabled.
AnnaBridge 171:3a7713b1edbc 1310 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 1311 * @arg @ref LL_ADC_CHANNEL_0
AnnaBridge 171:3a7713b1edbc 1312 * @arg @ref LL_ADC_CHANNEL_1
AnnaBridge 171:3a7713b1edbc 1313 * @arg @ref LL_ADC_CHANNEL_2
AnnaBridge 171:3a7713b1edbc 1314 * @arg @ref LL_ADC_CHANNEL_3
AnnaBridge 171:3a7713b1edbc 1315 * @arg @ref LL_ADC_CHANNEL_4
AnnaBridge 171:3a7713b1edbc 1316 * @arg @ref LL_ADC_CHANNEL_5
AnnaBridge 171:3a7713b1edbc 1317 * @arg @ref LL_ADC_CHANNEL_6
AnnaBridge 171:3a7713b1edbc 1318 * @arg @ref LL_ADC_CHANNEL_7
AnnaBridge 171:3a7713b1edbc 1319 * @arg @ref LL_ADC_CHANNEL_8
AnnaBridge 171:3a7713b1edbc 1320 * @arg @ref LL_ADC_CHANNEL_9
AnnaBridge 171:3a7713b1edbc 1321 * @arg @ref LL_ADC_CHANNEL_10
AnnaBridge 171:3a7713b1edbc 1322 * @arg @ref LL_ADC_CHANNEL_11
AnnaBridge 171:3a7713b1edbc 1323 * @arg @ref LL_ADC_CHANNEL_12
AnnaBridge 171:3a7713b1edbc 1324 * @arg @ref LL_ADC_CHANNEL_13
AnnaBridge 171:3a7713b1edbc 1325 * @arg @ref LL_ADC_CHANNEL_14
AnnaBridge 171:3a7713b1edbc 1326 * @arg @ref LL_ADC_CHANNEL_15
AnnaBridge 171:3a7713b1edbc 1327 * @arg @ref LL_ADC_CHANNEL_16
AnnaBridge 171:3a7713b1edbc 1328 * @arg @ref LL_ADC_CHANNEL_17
AnnaBridge 171:3a7713b1edbc 1329 * @arg @ref LL_ADC_CHANNEL_18
AnnaBridge 171:3a7713b1edbc 1330 */
AnnaBridge 171:3a7713b1edbc 1331 #define __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL(__CHANNEL__) \
AnnaBridge 171:3a7713b1edbc 1332 ((__CHANNEL__) & ~ADC_CHANNEL_ID_INTERNAL_CH_MASK)
AnnaBridge 171:3a7713b1edbc 1333
AnnaBridge 171:3a7713b1edbc 1334 /**
AnnaBridge 171:3a7713b1edbc 1335 * @brief Helper macro to determine whether the internal channel
AnnaBridge 171:3a7713b1edbc 1336 * selected is available on the ADC instance selected.
AnnaBridge 171:3a7713b1edbc 1337 * @note The channel parameter must be a value defined from parameter
AnnaBridge 171:3a7713b1edbc 1338 * definition of a ADC internal channel (LL_ADC_CHANNEL_VREFINT,
AnnaBridge 171:3a7713b1edbc 1339 * LL_ADC_CHANNEL_TEMPSENSOR, ...),
AnnaBridge 171:3a7713b1edbc 1340 * must not be a value defined from parameter definition of
AnnaBridge 171:3a7713b1edbc 1341 * ADC external channel (LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...)
AnnaBridge 171:3a7713b1edbc 1342 * or a value from functions where a channel number is
AnnaBridge 171:3a7713b1edbc 1343 * returned from ADC registers,
AnnaBridge 171:3a7713b1edbc 1344 * because internal and external channels share the same channel
AnnaBridge 171:3a7713b1edbc 1345 * number in ADC registers. The differentiation is made only with
AnnaBridge 171:3a7713b1edbc 1346 * parameters definitions of driver.
AnnaBridge 171:3a7713b1edbc 1347 * @param __ADC_INSTANCE__ ADC instance
AnnaBridge 171:3a7713b1edbc 1348 * @param __CHANNEL__ This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 1349 * @arg @ref LL_ADC_CHANNEL_VREFINT (1)
AnnaBridge 171:3a7713b1edbc 1350 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (1)(2)
AnnaBridge 171:3a7713b1edbc 1351 * @arg @ref LL_ADC_CHANNEL_VBAT (1)
AnnaBridge 171:3a7713b1edbc 1352 *
AnnaBridge 171:3a7713b1edbc 1353 * (1) On STM32F7, parameter available only on ADC instance: ADC1.
AnnaBridge 171:3a7713b1edbc 1354 * (2) On devices STM32F7x, limitation: this internal channel is shared between temperature sensor and Vbat, only 1 measurement path must be enabled.
AnnaBridge 171:3a7713b1edbc 1355 * @retval Value "0" if the internal channel selected is not available on the ADC instance selected.
AnnaBridge 171:3a7713b1edbc 1356 * Value "1" if the internal channel selected is available on the ADC instance selected.
AnnaBridge 171:3a7713b1edbc 1357 */
AnnaBridge 171:3a7713b1edbc 1358 #define __LL_ADC_IS_CHANNEL_INTERNAL_AVAILABLE(__ADC_INSTANCE__, __CHANNEL__) \
AnnaBridge 171:3a7713b1edbc 1359 ( \
AnnaBridge 171:3a7713b1edbc 1360 ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) || \
AnnaBridge 171:3a7713b1edbc 1361 ((__CHANNEL__) == LL_ADC_CHANNEL_VBAT) \
AnnaBridge 171:3a7713b1edbc 1362 )
AnnaBridge 171:3a7713b1edbc 1363 /**
AnnaBridge 171:3a7713b1edbc 1364 * @brief Helper macro to define ADC analog watchdog parameter:
AnnaBridge 171:3a7713b1edbc 1365 * define a single channel to monitor with analog watchdog
AnnaBridge 171:3a7713b1edbc 1366 * from sequencer channel and groups definition.
AnnaBridge 171:3a7713b1edbc 1367 * @note To be used with function @ref LL_ADC_SetAnalogWDMonitChannels().
AnnaBridge 171:3a7713b1edbc 1368 * Example:
AnnaBridge 171:3a7713b1edbc 1369 * LL_ADC_SetAnalogWDMonitChannels(
AnnaBridge 171:3a7713b1edbc 1370 * ADC1, LL_ADC_AWD1,
AnnaBridge 171:3a7713b1edbc 1371 * __LL_ADC_ANALOGWD_CHANNEL_GROUP(LL_ADC_CHANNEL4, LL_ADC_GROUP_REGULAR))
AnnaBridge 171:3a7713b1edbc 1372 * @param __CHANNEL__ This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 1373 * @arg @ref LL_ADC_CHANNEL_0
AnnaBridge 171:3a7713b1edbc 1374 * @arg @ref LL_ADC_CHANNEL_1
AnnaBridge 171:3a7713b1edbc 1375 * @arg @ref LL_ADC_CHANNEL_2
AnnaBridge 171:3a7713b1edbc 1376 * @arg @ref LL_ADC_CHANNEL_3
AnnaBridge 171:3a7713b1edbc 1377 * @arg @ref LL_ADC_CHANNEL_4
AnnaBridge 171:3a7713b1edbc 1378 * @arg @ref LL_ADC_CHANNEL_5
AnnaBridge 171:3a7713b1edbc 1379 * @arg @ref LL_ADC_CHANNEL_6
AnnaBridge 171:3a7713b1edbc 1380 * @arg @ref LL_ADC_CHANNEL_7
AnnaBridge 171:3a7713b1edbc 1381 * @arg @ref LL_ADC_CHANNEL_8
AnnaBridge 171:3a7713b1edbc 1382 * @arg @ref LL_ADC_CHANNEL_9
AnnaBridge 171:3a7713b1edbc 1383 * @arg @ref LL_ADC_CHANNEL_10
AnnaBridge 171:3a7713b1edbc 1384 * @arg @ref LL_ADC_CHANNEL_11
AnnaBridge 171:3a7713b1edbc 1385 * @arg @ref LL_ADC_CHANNEL_12
AnnaBridge 171:3a7713b1edbc 1386 * @arg @ref LL_ADC_CHANNEL_13
AnnaBridge 171:3a7713b1edbc 1387 * @arg @ref LL_ADC_CHANNEL_14
AnnaBridge 171:3a7713b1edbc 1388 * @arg @ref LL_ADC_CHANNEL_15
AnnaBridge 171:3a7713b1edbc 1389 * @arg @ref LL_ADC_CHANNEL_16
AnnaBridge 171:3a7713b1edbc 1390 * @arg @ref LL_ADC_CHANNEL_17
AnnaBridge 171:3a7713b1edbc 1391 * @arg @ref LL_ADC_CHANNEL_18
AnnaBridge 171:3a7713b1edbc 1392 * @arg @ref LL_ADC_CHANNEL_VREFINT (1)
AnnaBridge 171:3a7713b1edbc 1393 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (1)(2)
AnnaBridge 171:3a7713b1edbc 1394 * @arg @ref LL_ADC_CHANNEL_VBAT (1)
AnnaBridge 171:3a7713b1edbc 1395 *
AnnaBridge 171:3a7713b1edbc 1396 * (1) On STM32F7, parameter available only on ADC instance: ADC1.\n
AnnaBridge 171:3a7713b1edbc 1397 * (2) On devices STM32F75x, STM32F74x, STM32F76x, STM32F77x, STM32F72x and STM32F73x limitation: this internal channel is shared between temperature sensor and Vbat, only 1 measurement path must be enabled.\n
AnnaBridge 171:3a7713b1edbc 1398 * (1) For ADC channel read back from ADC register,
AnnaBridge 171:3a7713b1edbc 1399 * comparison with internal channel parameter to be done
AnnaBridge 171:3a7713b1edbc 1400 * using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL().
AnnaBridge 171:3a7713b1edbc 1401 * @param __GROUP__ This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 1402 * @arg @ref LL_ADC_GROUP_REGULAR
AnnaBridge 171:3a7713b1edbc 1403 * @arg @ref LL_ADC_GROUP_INJECTED
AnnaBridge 171:3a7713b1edbc 1404 * @arg @ref LL_ADC_GROUP_REGULAR_INJECTED
AnnaBridge 171:3a7713b1edbc 1405 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 1406 * @arg @ref LL_ADC_AWD_DISABLE
AnnaBridge 171:3a7713b1edbc 1407 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG
AnnaBridge 171:3a7713b1edbc 1408 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_INJ
AnnaBridge 171:3a7713b1edbc 1409 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG_INJ
AnnaBridge 171:3a7713b1edbc 1410 * @arg @ref LL_ADC_AWD_CHANNEL_0_REG
AnnaBridge 171:3a7713b1edbc 1411 * @arg @ref LL_ADC_AWD_CHANNEL_0_INJ
AnnaBridge 171:3a7713b1edbc 1412 * @arg @ref LL_ADC_AWD_CHANNEL_0_REG_INJ
AnnaBridge 171:3a7713b1edbc 1413 * @arg @ref LL_ADC_AWD_CHANNEL_1_REG
AnnaBridge 171:3a7713b1edbc 1414 * @arg @ref LL_ADC_AWD_CHANNEL_1_INJ
AnnaBridge 171:3a7713b1edbc 1415 * @arg @ref LL_ADC_AWD_CHANNEL_1_REG_INJ
AnnaBridge 171:3a7713b1edbc 1416 * @arg @ref LL_ADC_AWD_CHANNEL_2_REG
AnnaBridge 171:3a7713b1edbc 1417 * @arg @ref LL_ADC_AWD_CHANNEL_2_INJ
AnnaBridge 171:3a7713b1edbc 1418 * @arg @ref LL_ADC_AWD_CHANNEL_2_REG_INJ
AnnaBridge 171:3a7713b1edbc 1419 * @arg @ref LL_ADC_AWD_CHANNEL_3_REG
AnnaBridge 171:3a7713b1edbc 1420 * @arg @ref LL_ADC_AWD_CHANNEL_3_INJ
AnnaBridge 171:3a7713b1edbc 1421 * @arg @ref LL_ADC_AWD_CHANNEL_3_REG_INJ
AnnaBridge 171:3a7713b1edbc 1422 * @arg @ref LL_ADC_AWD_CHANNEL_4_REG
AnnaBridge 171:3a7713b1edbc 1423 * @arg @ref LL_ADC_AWD_CHANNEL_4_INJ
AnnaBridge 171:3a7713b1edbc 1424 * @arg @ref LL_ADC_AWD_CHANNEL_4_REG_INJ
AnnaBridge 171:3a7713b1edbc 1425 * @arg @ref LL_ADC_AWD_CHANNEL_5_REG
AnnaBridge 171:3a7713b1edbc 1426 * @arg @ref LL_ADC_AWD_CHANNEL_5_INJ
AnnaBridge 171:3a7713b1edbc 1427 * @arg @ref LL_ADC_AWD_CHANNEL_5_REG_INJ
AnnaBridge 171:3a7713b1edbc 1428 * @arg @ref LL_ADC_AWD_CHANNEL_6_REG
AnnaBridge 171:3a7713b1edbc 1429 * @arg @ref LL_ADC_AWD_CHANNEL_6_INJ
AnnaBridge 171:3a7713b1edbc 1430 * @arg @ref LL_ADC_AWD_CHANNEL_6_REG_INJ
AnnaBridge 171:3a7713b1edbc 1431 * @arg @ref LL_ADC_AWD_CHANNEL_7_REG
AnnaBridge 171:3a7713b1edbc 1432 * @arg @ref LL_ADC_AWD_CHANNEL_7_INJ
AnnaBridge 171:3a7713b1edbc 1433 * @arg @ref LL_ADC_AWD_CHANNEL_7_REG_INJ
AnnaBridge 171:3a7713b1edbc 1434 * @arg @ref LL_ADC_AWD_CHANNEL_8_REG
AnnaBridge 171:3a7713b1edbc 1435 * @arg @ref LL_ADC_AWD_CHANNEL_8_INJ
AnnaBridge 171:3a7713b1edbc 1436 * @arg @ref LL_ADC_AWD_CHANNEL_8_REG_INJ
AnnaBridge 171:3a7713b1edbc 1437 * @arg @ref LL_ADC_AWD_CHANNEL_9_REG
AnnaBridge 171:3a7713b1edbc 1438 * @arg @ref LL_ADC_AWD_CHANNEL_9_INJ
AnnaBridge 171:3a7713b1edbc 1439 * @arg @ref LL_ADC_AWD_CHANNEL_9_REG_INJ
AnnaBridge 171:3a7713b1edbc 1440 * @arg @ref LL_ADC_AWD_CHANNEL_10_REG
AnnaBridge 171:3a7713b1edbc 1441 * @arg @ref LL_ADC_AWD_CHANNEL_10_INJ
AnnaBridge 171:3a7713b1edbc 1442 * @arg @ref LL_ADC_AWD_CHANNEL_10_REG_INJ
AnnaBridge 171:3a7713b1edbc 1443 * @arg @ref LL_ADC_AWD_CHANNEL_11_REG
AnnaBridge 171:3a7713b1edbc 1444 * @arg @ref LL_ADC_AWD_CHANNEL_11_INJ
AnnaBridge 171:3a7713b1edbc 1445 * @arg @ref LL_ADC_AWD_CHANNEL_11_REG_INJ
AnnaBridge 171:3a7713b1edbc 1446 * @arg @ref LL_ADC_AWD_CHANNEL_12_REG
AnnaBridge 171:3a7713b1edbc 1447 * @arg @ref LL_ADC_AWD_CHANNEL_12_INJ
AnnaBridge 171:3a7713b1edbc 1448 * @arg @ref LL_ADC_AWD_CHANNEL_12_REG_INJ
AnnaBridge 171:3a7713b1edbc 1449 * @arg @ref LL_ADC_AWD_CHANNEL_13_REG
AnnaBridge 171:3a7713b1edbc 1450 * @arg @ref LL_ADC_AWD_CHANNEL_13_INJ
AnnaBridge 171:3a7713b1edbc 1451 * @arg @ref LL_ADC_AWD_CHANNEL_13_REG_INJ
AnnaBridge 171:3a7713b1edbc 1452 * @arg @ref LL_ADC_AWD_CHANNEL_14_REG
AnnaBridge 171:3a7713b1edbc 1453 * @arg @ref LL_ADC_AWD_CHANNEL_14_INJ
AnnaBridge 171:3a7713b1edbc 1454 * @arg @ref LL_ADC_AWD_CHANNEL_14_REG_INJ
AnnaBridge 171:3a7713b1edbc 1455 * @arg @ref LL_ADC_AWD_CHANNEL_15_REG
AnnaBridge 171:3a7713b1edbc 1456 * @arg @ref LL_ADC_AWD_CHANNEL_15_INJ
AnnaBridge 171:3a7713b1edbc 1457 * @arg @ref LL_ADC_AWD_CHANNEL_15_REG_INJ
AnnaBridge 171:3a7713b1edbc 1458 * @arg @ref LL_ADC_AWD_CHANNEL_16_REG
AnnaBridge 171:3a7713b1edbc 1459 * @arg @ref LL_ADC_AWD_CHANNEL_16_INJ
AnnaBridge 171:3a7713b1edbc 1460 * @arg @ref LL_ADC_AWD_CHANNEL_16_REG_INJ
AnnaBridge 171:3a7713b1edbc 1461 * @arg @ref LL_ADC_AWD_CHANNEL_17_REG
AnnaBridge 171:3a7713b1edbc 1462 * @arg @ref LL_ADC_AWD_CHANNEL_17_INJ
AnnaBridge 171:3a7713b1edbc 1463 * @arg @ref LL_ADC_AWD_CHANNEL_17_REG_INJ
AnnaBridge 171:3a7713b1edbc 1464 * @arg @ref LL_ADC_AWD_CHANNEL_18_REG
AnnaBridge 171:3a7713b1edbc 1465 * @arg @ref LL_ADC_AWD_CHANNEL_18_INJ
AnnaBridge 171:3a7713b1edbc 1466 * @arg @ref LL_ADC_AWD_CHANNEL_18_REG_INJ
AnnaBridge 171:3a7713b1edbc 1467 * @arg @ref LL_ADC_AWD_CH_VREFINT_REG (1)
AnnaBridge 171:3a7713b1edbc 1468 * @arg @ref LL_ADC_AWD_CH_VREFINT_INJ (1)
AnnaBridge 171:3a7713b1edbc 1469 * @arg @ref LL_ADC_AWD_CH_VREFINT_REG_INJ (1)
AnnaBridge 171:3a7713b1edbc 1470 * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_REG (1)(2)
AnnaBridge 171:3a7713b1edbc 1471 * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_INJ (1)(2)
AnnaBridge 171:3a7713b1edbc 1472 * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_REG_INJ (1)(2)
AnnaBridge 171:3a7713b1edbc 1473 * @arg @ref LL_ADC_AWD_CH_VBAT_REG (1)
AnnaBridge 171:3a7713b1edbc 1474 * @arg @ref LL_ADC_AWD_CH_VBAT_INJ (1)
AnnaBridge 171:3a7713b1edbc 1475 * @arg @ref LL_ADC_AWD_CH_VBAT_REG_INJ (1)
AnnaBridge 171:3a7713b1edbc 1476 *
AnnaBridge 171:3a7713b1edbc 1477 * (1) On STM32F7, parameter available only on ADC instance: ADC1.\n
AnnaBridge 171:3a7713b1edbc 1478 * (2) On devices STM32F7xx,a limitation: this internal channel is shared between temperature sensor and Vbat, only 1 measurement path must be enabled.
AnnaBridge 171:3a7713b1edbc 1479 */
AnnaBridge 171:3a7713b1edbc 1480 #define __LL_ADC_ANALOGWD_CHANNEL_GROUP(__CHANNEL__, __GROUP__) \
AnnaBridge 171:3a7713b1edbc 1481 (((__GROUP__) == LL_ADC_GROUP_REGULAR) \
AnnaBridge 171:3a7713b1edbc 1482 ? (((__CHANNEL__) & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) \
AnnaBridge 171:3a7713b1edbc 1483 : \
AnnaBridge 171:3a7713b1edbc 1484 ((__GROUP__) == LL_ADC_GROUP_INJECTED) \
AnnaBridge 171:3a7713b1edbc 1485 ? (((__CHANNEL__) & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) \
AnnaBridge 171:3a7713b1edbc 1486 : \
AnnaBridge 171:3a7713b1edbc 1487 (((__CHANNEL__) & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) \
AnnaBridge 171:3a7713b1edbc 1488 )
AnnaBridge 171:3a7713b1edbc 1489
AnnaBridge 171:3a7713b1edbc 1490 /**
AnnaBridge 171:3a7713b1edbc 1491 * @brief Helper macro to set the value of ADC analog watchdog threshold high
AnnaBridge 171:3a7713b1edbc 1492 * or low in function of ADC resolution, when ADC resolution is
AnnaBridge 171:3a7713b1edbc 1493 * different of 12 bits.
AnnaBridge 171:3a7713b1edbc 1494 * @note To be used with function @ref LL_ADC_SetAnalogWDThresholds().
AnnaBridge 171:3a7713b1edbc 1495 * Example, with a ADC resolution of 8 bits, to set the value of
AnnaBridge 171:3a7713b1edbc 1496 * analog watchdog threshold high (on 8 bits):
AnnaBridge 171:3a7713b1edbc 1497 * LL_ADC_SetAnalogWDThresholds
AnnaBridge 171:3a7713b1edbc 1498 * (< ADCx param >,
AnnaBridge 171:3a7713b1edbc 1499 * __LL_ADC_ANALOGWD_SET_THRESHOLD_RESOLUTION(LL_ADC_RESOLUTION_8B, <threshold_value_8_bits>)
AnnaBridge 171:3a7713b1edbc 1500 * );
AnnaBridge 171:3a7713b1edbc 1501 * @param __ADC_RESOLUTION__ This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 1502 * @arg @ref LL_ADC_RESOLUTION_12B
AnnaBridge 171:3a7713b1edbc 1503 * @arg @ref LL_ADC_RESOLUTION_10B
AnnaBridge 171:3a7713b1edbc 1504 * @arg @ref LL_ADC_RESOLUTION_8B
AnnaBridge 171:3a7713b1edbc 1505 * @arg @ref LL_ADC_RESOLUTION_6B
AnnaBridge 171:3a7713b1edbc 1506 * @param __AWD_THRESHOLD__ Value between Min_Data=0x000 and Max_Data=0xFFF
AnnaBridge 171:3a7713b1edbc 1507 * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
AnnaBridge 171:3a7713b1edbc 1508 */
AnnaBridge 171:3a7713b1edbc 1509 #define __LL_ADC_ANALOGWD_SET_THRESHOLD_RESOLUTION(__ADC_RESOLUTION__, __AWD_THRESHOLD__) \
AnnaBridge 171:3a7713b1edbc 1510 ((__AWD_THRESHOLD__) << ((__ADC_RESOLUTION__) >> (ADC_CR1_RES_BITOFFSET_POS - 1U )))
AnnaBridge 171:3a7713b1edbc 1511
AnnaBridge 171:3a7713b1edbc 1512 /**
AnnaBridge 171:3a7713b1edbc 1513 * @brief Helper macro to get the value of ADC analog watchdog threshold high
AnnaBridge 171:3a7713b1edbc 1514 * or low in function of ADC resolution, when ADC resolution is
AnnaBridge 171:3a7713b1edbc 1515 * different of 12 bits.
AnnaBridge 171:3a7713b1edbc 1516 * @note To be used with function @ref LL_ADC_GetAnalogWDThresholds().
AnnaBridge 171:3a7713b1edbc 1517 * Example, with a ADC resolution of 8 bits, to get the value of
AnnaBridge 171:3a7713b1edbc 1518 * analog watchdog threshold high (on 8 bits):
AnnaBridge 171:3a7713b1edbc 1519 * < threshold_value_6_bits > = __LL_ADC_ANALOGWD_GET_THRESHOLD_RESOLUTION
AnnaBridge 171:3a7713b1edbc 1520 * (LL_ADC_RESOLUTION_8B,
AnnaBridge 171:3a7713b1edbc 1521 * LL_ADC_GetAnalogWDThresholds(<ADCx param>, LL_ADC_AWD_THRESHOLD_HIGH)
AnnaBridge 171:3a7713b1edbc 1522 * );
AnnaBridge 171:3a7713b1edbc 1523 * @param __ADC_RESOLUTION__ This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 1524 * @arg @ref LL_ADC_RESOLUTION_12B
AnnaBridge 171:3a7713b1edbc 1525 * @arg @ref LL_ADC_RESOLUTION_10B
AnnaBridge 171:3a7713b1edbc 1526 * @arg @ref LL_ADC_RESOLUTION_8B
AnnaBridge 171:3a7713b1edbc 1527 * @arg @ref LL_ADC_RESOLUTION_6B
AnnaBridge 171:3a7713b1edbc 1528 * @param __AWD_THRESHOLD_12_BITS__ Value between Min_Data=0x000 and Max_Data=0xFFF
AnnaBridge 171:3a7713b1edbc 1529 * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
AnnaBridge 171:3a7713b1edbc 1530 */
AnnaBridge 171:3a7713b1edbc 1531 #define __LL_ADC_ANALOGWD_GET_THRESHOLD_RESOLUTION(__ADC_RESOLUTION__, __AWD_THRESHOLD_12_BITS__) \
AnnaBridge 171:3a7713b1edbc 1532 ((__AWD_THRESHOLD_12_BITS__) >> ((__ADC_RESOLUTION__) >> (ADC_CR1_RES_BITOFFSET_POS - 1U )))
AnnaBridge 171:3a7713b1edbc 1533
AnnaBridge 171:3a7713b1edbc 1534 /**
AnnaBridge 171:3a7713b1edbc 1535 * @brief Helper macro to get the ADC multimode conversion data of ADC master
AnnaBridge 171:3a7713b1edbc 1536 * or ADC slave from raw value with both ADC conversion data concatenated.
AnnaBridge 171:3a7713b1edbc 1537 * @note This macro is intended to be used when multimode transfer by DMA
AnnaBridge 171:3a7713b1edbc 1538 * is enabled: refer to function @ref LL_ADC_SetMultiDMATransfer().
AnnaBridge 171:3a7713b1edbc 1539 * In this case the transferred data need to processed with this macro
AnnaBridge 171:3a7713b1edbc 1540 * to separate the conversion data of ADC master and ADC slave.
AnnaBridge 171:3a7713b1edbc 1541 * @param __ADC_MULTI_MASTER_SLAVE__ This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 1542 * @arg @ref LL_ADC_MULTI_MASTER
AnnaBridge 171:3a7713b1edbc 1543 * @arg @ref LL_ADC_MULTI_SLAVE
AnnaBridge 171:3a7713b1edbc 1544 * @param __ADC_MULTI_CONV_DATA__ Value between Min_Data=0x000 and Max_Data=0xFFF
AnnaBridge 171:3a7713b1edbc 1545 * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
AnnaBridge 171:3a7713b1edbc 1546 */
AnnaBridge 171:3a7713b1edbc 1547 #define __LL_ADC_MULTI_CONV_DATA_MASTER_SLAVE(__ADC_MULTI_MASTER_SLAVE__, __ADC_MULTI_CONV_DATA__) \
AnnaBridge 171:3a7713b1edbc 1548 (((__ADC_MULTI_CONV_DATA__) >> POSITION_VAL((__ADC_MULTI_MASTER_SLAVE__))) & ADC_CDR_RDATA_MST)
AnnaBridge 171:3a7713b1edbc 1549
AnnaBridge 171:3a7713b1edbc 1550 /**
AnnaBridge 171:3a7713b1edbc 1551 * @brief Helper macro to select the ADC common instance
AnnaBridge 171:3a7713b1edbc 1552 * to which is belonging the selected ADC instance.
AnnaBridge 171:3a7713b1edbc 1553 * @note ADC common register instance can be used for:
AnnaBridge 171:3a7713b1edbc 1554 * - Set parameters common to several ADC instances
AnnaBridge 171:3a7713b1edbc 1555 * - Multimode (for devices with several ADC instances)
AnnaBridge 171:3a7713b1edbc 1556 * Refer to functions having argument "ADCxy_COMMON" as parameter.
AnnaBridge 171:3a7713b1edbc 1557 * @param __ADCx__ ADC instance
AnnaBridge 171:3a7713b1edbc 1558 * @retval ADC common register instance
AnnaBridge 171:3a7713b1edbc 1559 */
AnnaBridge 171:3a7713b1edbc 1560 #if defined(ADC1) && defined(ADC2) && defined(ADC3)
AnnaBridge 171:3a7713b1edbc 1561 #define __LL_ADC_COMMON_INSTANCE(__ADCx__) \
AnnaBridge 171:3a7713b1edbc 1562 (ADC123_COMMON)
AnnaBridge 171:3a7713b1edbc 1563 #elif defined(ADC1) && defined(ADC2)
AnnaBridge 171:3a7713b1edbc 1564 #define __LL_ADC_COMMON_INSTANCE(__ADCx__) \
AnnaBridge 171:3a7713b1edbc 1565 (ADC12_COMMON)
AnnaBridge 171:3a7713b1edbc 1566 #else
AnnaBridge 171:3a7713b1edbc 1567 #define __LL_ADC_COMMON_INSTANCE(__ADCx__) \
AnnaBridge 171:3a7713b1edbc 1568 (ADC1_COMMON)
AnnaBridge 171:3a7713b1edbc 1569 #endif
AnnaBridge 171:3a7713b1edbc 1570
AnnaBridge 171:3a7713b1edbc 1571 /**
AnnaBridge 171:3a7713b1edbc 1572 * @brief Helper macro to check if all ADC instances sharing the same
AnnaBridge 171:3a7713b1edbc 1573 * ADC common instance are disabled.
AnnaBridge 171:3a7713b1edbc 1574 * @note This check is required by functions with setting conditioned to
AnnaBridge 171:3a7713b1edbc 1575 * ADC state:
AnnaBridge 171:3a7713b1edbc 1576 * All ADC instances of the ADC common group must be disabled.
AnnaBridge 171:3a7713b1edbc 1577 * Refer to functions having argument "ADCxy_COMMON" as parameter.
AnnaBridge 171:3a7713b1edbc 1578 * @note On devices with only 1 ADC common instance, parameter of this macro
AnnaBridge 171:3a7713b1edbc 1579 * is useless and can be ignored (parameter kept for compatibility
AnnaBridge 171:3a7713b1edbc 1580 * with devices featuring several ADC common instances).
AnnaBridge 171:3a7713b1edbc 1581 * @param __ADCXY_COMMON__ ADC common instance
AnnaBridge 171:3a7713b1edbc 1582 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 171:3a7713b1edbc 1583 * @retval Value "0" if all ADC instances sharing the same ADC common instance
AnnaBridge 171:3a7713b1edbc 1584 * are disabled.
AnnaBridge 171:3a7713b1edbc 1585 * Value "1" if at least one ADC instance sharing the same ADC common instance
AnnaBridge 171:3a7713b1edbc 1586 * is enabled.
AnnaBridge 171:3a7713b1edbc 1587 */
AnnaBridge 171:3a7713b1edbc 1588 #if defined(ADC1) && defined(ADC2) && defined(ADC3)
AnnaBridge 171:3a7713b1edbc 1589 #define __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(__ADCXY_COMMON__) \
AnnaBridge 171:3a7713b1edbc 1590 (LL_ADC_IsEnabled(ADC1) | \
AnnaBridge 171:3a7713b1edbc 1591 LL_ADC_IsEnabled(ADC2) | \
AnnaBridge 171:3a7713b1edbc 1592 LL_ADC_IsEnabled(ADC3) )
AnnaBridge 171:3a7713b1edbc 1593 #elif defined(ADC1) && defined(ADC2)
AnnaBridge 171:3a7713b1edbc 1594 #define __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(__ADCXY_COMMON__) \
AnnaBridge 171:3a7713b1edbc 1595 (LL_ADC_IsEnabled(ADC1) | \
AnnaBridge 171:3a7713b1edbc 1596 LL_ADC_IsEnabled(ADC2) )
AnnaBridge 171:3a7713b1edbc 1597 #else
AnnaBridge 171:3a7713b1edbc 1598 #define __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(__ADCXY_COMMON__) \
AnnaBridge 171:3a7713b1edbc 1599 (LL_ADC_IsEnabled(ADC1))
AnnaBridge 171:3a7713b1edbc 1600 #endif
AnnaBridge 171:3a7713b1edbc 1601
AnnaBridge 171:3a7713b1edbc 1602 /**
AnnaBridge 171:3a7713b1edbc 1603 * @brief Helper macro to define the ADC conversion data full-scale digital
AnnaBridge 171:3a7713b1edbc 1604 * value corresponding to the selected ADC resolution.
AnnaBridge 171:3a7713b1edbc 1605 * @note ADC conversion data full-scale corresponds to voltage range
AnnaBridge 171:3a7713b1edbc 1606 * determined by analog voltage references Vref+ and Vref-
AnnaBridge 171:3a7713b1edbc 1607 * (refer to reference manual).
AnnaBridge 171:3a7713b1edbc 1608 * @param __ADC_RESOLUTION__ This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 1609 * @arg @ref LL_ADC_RESOLUTION_12B
AnnaBridge 171:3a7713b1edbc 1610 * @arg @ref LL_ADC_RESOLUTION_10B
AnnaBridge 171:3a7713b1edbc 1611 * @arg @ref LL_ADC_RESOLUTION_8B
AnnaBridge 171:3a7713b1edbc 1612 * @arg @ref LL_ADC_RESOLUTION_6B
AnnaBridge 171:3a7713b1edbc 1613 * @retval ADC conversion data equivalent voltage value (unit: mVolt)
AnnaBridge 171:3a7713b1edbc 1614 */
AnnaBridge 171:3a7713b1edbc 1615 #define __LL_ADC_DIGITAL_SCALE(__ADC_RESOLUTION__) \
AnnaBridge 171:3a7713b1edbc 1616 (0xFFFU >> ((__ADC_RESOLUTION__) >> (ADC_CR1_RES_BITOFFSET_POS - 1U)))
AnnaBridge 171:3a7713b1edbc 1617
AnnaBridge 171:3a7713b1edbc 1618 /**
AnnaBridge 171:3a7713b1edbc 1619 * @brief Helper macro to convert the ADC conversion data from
AnnaBridge 171:3a7713b1edbc 1620 * a resolution to another resolution.
AnnaBridge 171:3a7713b1edbc 1621 * @param __DATA__ ADC conversion data to be converted
AnnaBridge 171:3a7713b1edbc 1622 * @param __ADC_RESOLUTION_CURRENT__ Resolution of to the data to be converted
AnnaBridge 171:3a7713b1edbc 1623 * This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 1624 * @arg @ref LL_ADC_RESOLUTION_12B
AnnaBridge 171:3a7713b1edbc 1625 * @arg @ref LL_ADC_RESOLUTION_10B
AnnaBridge 171:3a7713b1edbc 1626 * @arg @ref LL_ADC_RESOLUTION_8B
AnnaBridge 171:3a7713b1edbc 1627 * @arg @ref LL_ADC_RESOLUTION_6B
AnnaBridge 171:3a7713b1edbc 1628 * @param __ADC_RESOLUTION_TARGET__ Resolution of the data after conversion
AnnaBridge 171:3a7713b1edbc 1629 * This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 1630 * @arg @ref LL_ADC_RESOLUTION_12B
AnnaBridge 171:3a7713b1edbc 1631 * @arg @ref LL_ADC_RESOLUTION_10B
AnnaBridge 171:3a7713b1edbc 1632 * @arg @ref LL_ADC_RESOLUTION_8B
AnnaBridge 171:3a7713b1edbc 1633 * @arg @ref LL_ADC_RESOLUTION_6B
AnnaBridge 171:3a7713b1edbc 1634 * @retval ADC conversion data to the requested resolution
AnnaBridge 171:3a7713b1edbc 1635 */
AnnaBridge 171:3a7713b1edbc 1636 #define __LL_ADC_CONVERT_DATA_RESOLUTION(__DATA__, __ADC_RESOLUTION_CURRENT__, __ADC_RESOLUTION_TARGET__) \
AnnaBridge 171:3a7713b1edbc 1637 (((__DATA__) \
AnnaBridge 171:3a7713b1edbc 1638 << ((__ADC_RESOLUTION_CURRENT__) >> (ADC_CR1_RES_BITOFFSET_POS - 1U))) \
AnnaBridge 171:3a7713b1edbc 1639 >> ((__ADC_RESOLUTION_TARGET__) >> (ADC_CR1_RES_BITOFFSET_POS - 1U)) \
AnnaBridge 171:3a7713b1edbc 1640 )
AnnaBridge 171:3a7713b1edbc 1641
AnnaBridge 171:3a7713b1edbc 1642 /**
AnnaBridge 171:3a7713b1edbc 1643 * @brief Helper macro to calculate the voltage (unit: mVolt)
AnnaBridge 171:3a7713b1edbc 1644 * corresponding to a ADC conversion data (unit: digital value).
AnnaBridge 171:3a7713b1edbc 1645 * @note Analog reference voltage (Vref+) must be either known from
AnnaBridge 171:3a7713b1edbc 1646 * user board environment or can be calculated using ADC measurement
AnnaBridge 171:3a7713b1edbc 1647 * and ADC helper macro @ref __LL_ADC_CALC_VREFANALOG_VOLTAGE().
AnnaBridge 171:3a7713b1edbc 1648 * @param __VREFANALOG_VOLTAGE__ Analog reference voltage (unit mV)
AnnaBridge 171:3a7713b1edbc 1649 * @param __ADC_DATA__ ADC conversion data (resolution 12 bits)
AnnaBridge 171:3a7713b1edbc 1650 * (unit: digital value).
AnnaBridge 171:3a7713b1edbc 1651 * @param __ADC_RESOLUTION__ This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 1652 * @arg @ref LL_ADC_RESOLUTION_12B
AnnaBridge 171:3a7713b1edbc 1653 * @arg @ref LL_ADC_RESOLUTION_10B
AnnaBridge 171:3a7713b1edbc 1654 * @arg @ref LL_ADC_RESOLUTION_8B
AnnaBridge 171:3a7713b1edbc 1655 * @arg @ref LL_ADC_RESOLUTION_6B
AnnaBridge 171:3a7713b1edbc 1656 * @retval ADC conversion data equivalent voltage value (unit: mVolt)
AnnaBridge 171:3a7713b1edbc 1657 */
AnnaBridge 171:3a7713b1edbc 1658 #define __LL_ADC_CALC_DATA_TO_VOLTAGE(__VREFANALOG_VOLTAGE__,\
AnnaBridge 171:3a7713b1edbc 1659 __ADC_DATA__,\
AnnaBridge 171:3a7713b1edbc 1660 __ADC_RESOLUTION__) \
AnnaBridge 171:3a7713b1edbc 1661 ((__ADC_DATA__) * (__VREFANALOG_VOLTAGE__) \
AnnaBridge 171:3a7713b1edbc 1662 / __LL_ADC_DIGITAL_SCALE(__ADC_RESOLUTION__) \
AnnaBridge 171:3a7713b1edbc 1663 )
AnnaBridge 171:3a7713b1edbc 1664
AnnaBridge 171:3a7713b1edbc 1665 /**
AnnaBridge 171:3a7713b1edbc 1666 * @brief Helper macro to calculate analog reference voltage (Vref+)
AnnaBridge 171:3a7713b1edbc 1667 * (unit: mVolt) from ADC conversion data of internal voltage
AnnaBridge 171:3a7713b1edbc 1668 * reference VrefInt.
AnnaBridge 171:3a7713b1edbc 1669 * @note Computation is using VrefInt calibration value
AnnaBridge 171:3a7713b1edbc 1670 * stored in system memory for each device during production.
AnnaBridge 171:3a7713b1edbc 1671 * @note This voltage depends on user board environment: voltage level
AnnaBridge 171:3a7713b1edbc 1672 * connected to pin Vref+.
AnnaBridge 171:3a7713b1edbc 1673 * On devices with small package, the pin Vref+ is not present
AnnaBridge 171:3a7713b1edbc 1674 * and internally bonded to pin Vdda.
AnnaBridge 171:3a7713b1edbc 1675 * @note On this STM32 serie, calibration data of internal voltage reference
AnnaBridge 171:3a7713b1edbc 1676 * VrefInt corresponds to a resolution of 12 bits,
AnnaBridge 171:3a7713b1edbc 1677 * this is the recommended ADC resolution to convert voltage of
AnnaBridge 171:3a7713b1edbc 1678 * internal voltage reference VrefInt.
AnnaBridge 171:3a7713b1edbc 1679 * Otherwise, this macro performs the processing to scale
AnnaBridge 171:3a7713b1edbc 1680 * ADC conversion data to 12 bits.
AnnaBridge 171:3a7713b1edbc 1681 * @param __VREFINT_ADC_DATA__ ADC conversion data (resolution 12 bits)
AnnaBridge 171:3a7713b1edbc 1682 * of internal voltage reference VrefInt (unit: digital value).
AnnaBridge 171:3a7713b1edbc 1683 * @param __ADC_RESOLUTION__ This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 1684 * @arg @ref LL_ADC_RESOLUTION_12B
AnnaBridge 171:3a7713b1edbc 1685 * @arg @ref LL_ADC_RESOLUTION_10B
AnnaBridge 171:3a7713b1edbc 1686 * @arg @ref LL_ADC_RESOLUTION_8B
AnnaBridge 171:3a7713b1edbc 1687 * @arg @ref LL_ADC_RESOLUTION_6B
AnnaBridge 171:3a7713b1edbc 1688 * @retval Analog reference voltage (unit: mV)
AnnaBridge 171:3a7713b1edbc 1689 */
AnnaBridge 171:3a7713b1edbc 1690 #define __LL_ADC_CALC_VREFANALOG_VOLTAGE(__VREFINT_ADC_DATA__,\
AnnaBridge 171:3a7713b1edbc 1691 __ADC_RESOLUTION__) \
AnnaBridge 171:3a7713b1edbc 1692 (((uint32_t)(*VREFINT_CAL_ADDR) * VREFINT_CAL_VREF) \
AnnaBridge 171:3a7713b1edbc 1693 / __LL_ADC_CONVERT_DATA_RESOLUTION((__VREFINT_ADC_DATA__), \
AnnaBridge 171:3a7713b1edbc 1694 (__ADC_RESOLUTION__), \
AnnaBridge 171:3a7713b1edbc 1695 LL_ADC_RESOLUTION_12B) \
AnnaBridge 171:3a7713b1edbc 1696 )
AnnaBridge 171:3a7713b1edbc 1697
AnnaBridge 171:3a7713b1edbc 1698 /**
AnnaBridge 171:3a7713b1edbc 1699 * @brief Helper macro to calculate the temperature (unit: degree Celsius)
AnnaBridge 171:3a7713b1edbc 1700 * from ADC conversion data of internal temperature sensor.
AnnaBridge 171:3a7713b1edbc 1701 * @note Computation is using temperature sensor calibration values
AnnaBridge 171:3a7713b1edbc 1702 * stored in system memory for each device during production.
AnnaBridge 171:3a7713b1edbc 1703 * @note Calculation formula:
AnnaBridge 171:3a7713b1edbc 1704 * Temperature = ((TS_ADC_DATA - TS_CAL1)
AnnaBridge 171:3a7713b1edbc 1705 * * (TS_CAL2_TEMP - TS_CAL1_TEMP))
AnnaBridge 171:3a7713b1edbc 1706 * / (TS_CAL2 - TS_CAL1) + TS_CAL1_TEMP
AnnaBridge 171:3a7713b1edbc 1707 * with TS_ADC_DATA = temperature sensor raw data measured by ADC
AnnaBridge 171:3a7713b1edbc 1708 * Avg_Slope = (TS_CAL2 - TS_CAL1)
AnnaBridge 171:3a7713b1edbc 1709 * / (TS_CAL2_TEMP - TS_CAL1_TEMP)
AnnaBridge 171:3a7713b1edbc 1710 * TS_CAL1 = equivalent TS_ADC_DATA at temperature
AnnaBridge 171:3a7713b1edbc 1711 * TEMP_DEGC_CAL1 (calibrated in factory)
AnnaBridge 171:3a7713b1edbc 1712 * TS_CAL2 = equivalent TS_ADC_DATA at temperature
AnnaBridge 171:3a7713b1edbc 1713 * TEMP_DEGC_CAL2 (calibrated in factory)
AnnaBridge 171:3a7713b1edbc 1714 * Caution: Calculation relevancy under reserve that calibration
AnnaBridge 171:3a7713b1edbc 1715 * parameters are correct (address and data).
AnnaBridge 171:3a7713b1edbc 1716 * To calculate temperature using temperature sensor
AnnaBridge 171:3a7713b1edbc 1717 * datasheet typical values (generic values less, therefore
AnnaBridge 171:3a7713b1edbc 1718 * less accurate than calibrated values),
AnnaBridge 171:3a7713b1edbc 1719 * use helper macro @ref __LL_ADC_CALC_TEMPERATURE_TYP_PARAMS().
AnnaBridge 171:3a7713b1edbc 1720 * @note As calculation input, the analog reference voltage (Vref+) must be
AnnaBridge 171:3a7713b1edbc 1721 * defined as it impacts the ADC LSB equivalent voltage.
AnnaBridge 171:3a7713b1edbc 1722 * @note Analog reference voltage (Vref+) must be either known from
AnnaBridge 171:3a7713b1edbc 1723 * user board environment or can be calculated using ADC measurement
AnnaBridge 171:3a7713b1edbc 1724 * and ADC helper macro @ref __LL_ADC_CALC_VREFANALOG_VOLTAGE().
AnnaBridge 171:3a7713b1edbc 1725 * @note On this STM32 serie, calibration data of temperature sensor
AnnaBridge 171:3a7713b1edbc 1726 * corresponds to a resolution of 12 bits,
AnnaBridge 171:3a7713b1edbc 1727 * this is the recommended ADC resolution to convert voltage of
AnnaBridge 171:3a7713b1edbc 1728 * temperature sensor.
AnnaBridge 171:3a7713b1edbc 1729 * Otherwise, this macro performs the processing to scale
AnnaBridge 171:3a7713b1edbc 1730 * ADC conversion data to 12 bits.
AnnaBridge 171:3a7713b1edbc 1731 * @param __VREFANALOG_VOLTAGE__ Analog reference voltage (unit mV)
AnnaBridge 171:3a7713b1edbc 1732 * @param __TEMPSENSOR_ADC_DATA__ ADC conversion data of internal
AnnaBridge 171:3a7713b1edbc 1733 * temperature sensor (unit: digital value).
AnnaBridge 171:3a7713b1edbc 1734 * @param __ADC_RESOLUTION__ ADC resolution at which internal temperature
AnnaBridge 171:3a7713b1edbc 1735 * sensor voltage has been measured.
AnnaBridge 171:3a7713b1edbc 1736 * This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 1737 * @arg @ref LL_ADC_RESOLUTION_12B
AnnaBridge 171:3a7713b1edbc 1738 * @arg @ref LL_ADC_RESOLUTION_10B
AnnaBridge 171:3a7713b1edbc 1739 * @arg @ref LL_ADC_RESOLUTION_8B
AnnaBridge 171:3a7713b1edbc 1740 * @arg @ref LL_ADC_RESOLUTION_6B
AnnaBridge 171:3a7713b1edbc 1741 * @retval Temperature (unit: degree Celsius)
AnnaBridge 171:3a7713b1edbc 1742 */
AnnaBridge 171:3a7713b1edbc 1743 #define __LL_ADC_CALC_TEMPERATURE(__VREFANALOG_VOLTAGE__,\
AnnaBridge 171:3a7713b1edbc 1744 __TEMPSENSOR_ADC_DATA__,\
AnnaBridge 171:3a7713b1edbc 1745 __ADC_RESOLUTION__) \
AnnaBridge 171:3a7713b1edbc 1746 (((( ((int32_t)((__LL_ADC_CONVERT_DATA_RESOLUTION((__TEMPSENSOR_ADC_DATA__), \
AnnaBridge 171:3a7713b1edbc 1747 (__ADC_RESOLUTION__), \
AnnaBridge 171:3a7713b1edbc 1748 LL_ADC_RESOLUTION_12B) \
AnnaBridge 171:3a7713b1edbc 1749 * (__VREFANALOG_VOLTAGE__)) \
AnnaBridge 171:3a7713b1edbc 1750 / TEMPSENSOR_CAL_VREFANALOG) \
AnnaBridge 171:3a7713b1edbc 1751 - (int32_t) *TEMPSENSOR_CAL1_ADDR) \
AnnaBridge 171:3a7713b1edbc 1752 ) * (int32_t)(TEMPSENSOR_CAL2_TEMP - TEMPSENSOR_CAL1_TEMP) \
AnnaBridge 171:3a7713b1edbc 1753 ) / (int32_t)((int32_t)*TEMPSENSOR_CAL2_ADDR - (int32_t)*TEMPSENSOR_CAL1_ADDR) \
AnnaBridge 171:3a7713b1edbc 1754 ) + TEMPSENSOR_CAL1_TEMP \
AnnaBridge 171:3a7713b1edbc 1755 )
AnnaBridge 171:3a7713b1edbc 1756
AnnaBridge 171:3a7713b1edbc 1757 /**
AnnaBridge 171:3a7713b1edbc 1758 * @brief Helper macro to calculate the temperature (unit: degree Celsius)
AnnaBridge 171:3a7713b1edbc 1759 * from ADC conversion data of internal temperature sensor.
AnnaBridge 171:3a7713b1edbc 1760 * @note Computation is using temperature sensor typical values
AnnaBridge 171:3a7713b1edbc 1761 * (refer to device datasheet).
AnnaBridge 171:3a7713b1edbc 1762 * @note Calculation formula:
AnnaBridge 171:3a7713b1edbc 1763 * Temperature = (TS_TYP_CALx_VOLT(uV) - TS_ADC_DATA * Conversion_uV)
AnnaBridge 171:3a7713b1edbc 1764 * / Avg_Slope + CALx_TEMP
AnnaBridge 171:3a7713b1edbc 1765 * with TS_ADC_DATA = temperature sensor raw data measured by ADC
AnnaBridge 171:3a7713b1edbc 1766 * (unit: digital value)
AnnaBridge 171:3a7713b1edbc 1767 * Avg_Slope = temperature sensor slope
AnnaBridge 171:3a7713b1edbc 1768 * (unit: uV/Degree Celsius)
AnnaBridge 171:3a7713b1edbc 1769 * TS_TYP_CALx_VOLT = temperature sensor digital value at
AnnaBridge 171:3a7713b1edbc 1770 * temperature CALx_TEMP (unit: mV)
AnnaBridge 171:3a7713b1edbc 1771 * Caution: Calculation relevancy under reserve the temperature sensor
AnnaBridge 171:3a7713b1edbc 1772 * of the current device has characteristics in line with
AnnaBridge 171:3a7713b1edbc 1773 * datasheet typical values.
AnnaBridge 171:3a7713b1edbc 1774 * If temperature sensor calibration values are available on
AnnaBridge 171:3a7713b1edbc 1775 * on this device (presence of macro __LL_ADC_CALC_TEMPERATURE()),
AnnaBridge 171:3a7713b1edbc 1776 * temperature calculation will be more accurate using
AnnaBridge 171:3a7713b1edbc 1777 * helper macro @ref __LL_ADC_CALC_TEMPERATURE().
AnnaBridge 171:3a7713b1edbc 1778 * @note As calculation input, the analog reference voltage (Vref+) must be
AnnaBridge 171:3a7713b1edbc 1779 * defined as it impacts the ADC LSB equivalent voltage.
AnnaBridge 171:3a7713b1edbc 1780 * @note Analog reference voltage (Vref+) must be either known from
AnnaBridge 171:3a7713b1edbc 1781 * user board environment or can be calculated using ADC measurement
AnnaBridge 171:3a7713b1edbc 1782 * and ADC helper macro @ref __LL_ADC_CALC_VREFANALOG_VOLTAGE().
AnnaBridge 171:3a7713b1edbc 1783 * @note ADC measurement data must correspond to a resolution of 12bits
AnnaBridge 171:3a7713b1edbc 1784 * (full scale digital value 4095). If not the case, the data must be
AnnaBridge 171:3a7713b1edbc 1785 * preliminarily rescaled to an equivalent resolution of 12 bits.
AnnaBridge 171:3a7713b1edbc 1786 * @param __TEMPSENSOR_TYP_AVGSLOPE__ Device datasheet data Temperature sensor slope typical value (unit uV/DegCelsius).
AnnaBridge 171:3a7713b1edbc 1787 * On STM32F7, refer to device datasheet parameter "Avg_Slope".
AnnaBridge 171:3a7713b1edbc 1788 * @param __TEMPSENSOR_TYP_CALX_V__ Device datasheet data Temperature sensor voltage typical value (at temperature and Vref+ defined in parameters below) (unit mV).
AnnaBridge 171:3a7713b1edbc 1789 * On STM32F4, refer to device datasheet parameter "V25".
AnnaBridge 171:3a7713b1edbc 1790 * @param __TEMPSENSOR_CALX_TEMP__ Device datasheet data Temperature at which temperature sensor voltage (see parameter above) is corresponding (unit mV)
AnnaBridge 171:3a7713b1edbc 1791 * @param __VREFANALOG_VOLTAGE__ Analog voltage reference (Vref+) voltage (unit mV)
AnnaBridge 171:3a7713b1edbc 1792 * @param __TEMPSENSOR_ADC_DATA__ ADC conversion data of internal temperature sensor (unit digital value).
AnnaBridge 171:3a7713b1edbc 1793 * @param __ADC_RESOLUTION__ ADC resolution at which internal temperature sensor voltage has been measured.
AnnaBridge 171:3a7713b1edbc 1794 * This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 1795 * @arg @ref LL_ADC_RESOLUTION_12B
AnnaBridge 171:3a7713b1edbc 1796 * @arg @ref LL_ADC_RESOLUTION_10B
AnnaBridge 171:3a7713b1edbc 1797 * @arg @ref LL_ADC_RESOLUTION_8B
AnnaBridge 171:3a7713b1edbc 1798 * @arg @ref LL_ADC_RESOLUTION_6B
AnnaBridge 171:3a7713b1edbc 1799 * @retval Temperature (unit: degree Celsius)
AnnaBridge 171:3a7713b1edbc 1800 */
AnnaBridge 171:3a7713b1edbc 1801 #define __LL_ADC_CALC_TEMPERATURE_TYP_PARAMS(__TEMPSENSOR_TYP_AVGSLOPE__,\
AnnaBridge 171:3a7713b1edbc 1802 __TEMPSENSOR_TYP_CALX_V__,\
AnnaBridge 171:3a7713b1edbc 1803 __TEMPSENSOR_CALX_TEMP__,\
AnnaBridge 171:3a7713b1edbc 1804 __VREFANALOG_VOLTAGE__,\
AnnaBridge 171:3a7713b1edbc 1805 __TEMPSENSOR_ADC_DATA__,\
AnnaBridge 171:3a7713b1edbc 1806 __ADC_RESOLUTION__) \
AnnaBridge 171:3a7713b1edbc 1807 ((( ( \
AnnaBridge 171:3a7713b1edbc 1808 (int32_t)(((__TEMPSENSOR_TYP_CALX_V__)) \
AnnaBridge 171:3a7713b1edbc 1809 * 1000) \
AnnaBridge 171:3a7713b1edbc 1810 - \
AnnaBridge 171:3a7713b1edbc 1811 (int32_t)((((__TEMPSENSOR_ADC_DATA__) * (__VREFANALOG_VOLTAGE__)) \
AnnaBridge 171:3a7713b1edbc 1812 / __LL_ADC_DIGITAL_SCALE(__ADC_RESOLUTION__)) \
AnnaBridge 171:3a7713b1edbc 1813 * 1000) \
AnnaBridge 171:3a7713b1edbc 1814 ) \
AnnaBridge 171:3a7713b1edbc 1815 ) / (__TEMPSENSOR_TYP_AVGSLOPE__) \
AnnaBridge 171:3a7713b1edbc 1816 ) + (__TEMPSENSOR_CALX_TEMP__) \
AnnaBridge 171:3a7713b1edbc 1817 )
AnnaBridge 171:3a7713b1edbc 1818
AnnaBridge 171:3a7713b1edbc 1819 /**
AnnaBridge 171:3a7713b1edbc 1820 * @}
AnnaBridge 171:3a7713b1edbc 1821 */
AnnaBridge 171:3a7713b1edbc 1822
AnnaBridge 171:3a7713b1edbc 1823 /**
AnnaBridge 171:3a7713b1edbc 1824 * @}
AnnaBridge 171:3a7713b1edbc 1825 */
AnnaBridge 171:3a7713b1edbc 1826
AnnaBridge 171:3a7713b1edbc 1827
AnnaBridge 171:3a7713b1edbc 1828 /* Exported functions --------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 1829 /** @defgroup ADC_LL_Exported_Functions ADC Exported Functions
AnnaBridge 171:3a7713b1edbc 1830 * @{
AnnaBridge 171:3a7713b1edbc 1831 */
AnnaBridge 171:3a7713b1edbc 1832
AnnaBridge 171:3a7713b1edbc 1833 /** @defgroup ADC_LL_EF_DMA_Management ADC DMA management
AnnaBridge 171:3a7713b1edbc 1834 * @{
AnnaBridge 171:3a7713b1edbc 1835 */
AnnaBridge 171:3a7713b1edbc 1836 /* Note: LL ADC functions to set DMA transfer are located into sections of */
AnnaBridge 171:3a7713b1edbc 1837 /* configuration of ADC instance, groups and multimode (if available): */
AnnaBridge 171:3a7713b1edbc 1838 /* @ref LL_ADC_REG_SetDMATransfer(), ... */
AnnaBridge 171:3a7713b1edbc 1839
AnnaBridge 171:3a7713b1edbc 1840 /**
AnnaBridge 171:3a7713b1edbc 1841 * @brief Function to help to configure DMA transfer from ADC: retrieve the
AnnaBridge 171:3a7713b1edbc 1842 * ADC register address from ADC instance and a list of ADC registers
AnnaBridge 171:3a7713b1edbc 1843 * intended to be used (most commonly) with DMA transfer.
AnnaBridge 171:3a7713b1edbc 1844 * @note These ADC registers are data registers:
AnnaBridge 171:3a7713b1edbc 1845 * when ADC conversion data is available in ADC data registers,
AnnaBridge 171:3a7713b1edbc 1846 * ADC generates a DMA transfer request.
AnnaBridge 171:3a7713b1edbc 1847 * @note This macro is intended to be used with LL DMA driver, refer to
AnnaBridge 171:3a7713b1edbc 1848 * function "LL_DMA_ConfigAddresses()".
AnnaBridge 171:3a7713b1edbc 1849 * Example:
AnnaBridge 171:3a7713b1edbc 1850 * LL_DMA_ConfigAddresses(DMA1,
AnnaBridge 171:3a7713b1edbc 1851 * LL_DMA_CHANNEL_1,
AnnaBridge 171:3a7713b1edbc 1852 * LL_ADC_DMA_GetRegAddr(ADC1, LL_ADC_DMA_REG_REGULAR_DATA),
AnnaBridge 171:3a7713b1edbc 1853 * (uint32_t)&< array or variable >,
AnnaBridge 171:3a7713b1edbc 1854 * LL_DMA_DIRECTION_PERIPH_TO_MEMORY);
AnnaBridge 171:3a7713b1edbc 1855 * @note For devices with several ADC: in multimode, some devices
AnnaBridge 171:3a7713b1edbc 1856 * use a different data register outside of ADC instance scope
AnnaBridge 171:3a7713b1edbc 1857 * (common data register). This macro manages this register difference,
AnnaBridge 171:3a7713b1edbc 1858 * only ADC instance has to be set as parameter.
AnnaBridge 171:3a7713b1edbc 1859 * @rmtoll DR RDATA LL_ADC_DMA_GetRegAddr\n
AnnaBridge 171:3a7713b1edbc 1860 * CDR RDATA_MST LL_ADC_DMA_GetRegAddr\n
AnnaBridge 171:3a7713b1edbc 1861 * CDR RDATA_SLV LL_ADC_DMA_GetRegAddr
AnnaBridge 171:3a7713b1edbc 1862 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 1863 * @param Register This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 1864 * @arg @ref LL_ADC_DMA_REG_REGULAR_DATA
AnnaBridge 171:3a7713b1edbc 1865 * @arg @ref LL_ADC_DMA_REG_REGULAR_DATA_MULTI (1)
AnnaBridge 171:3a7713b1edbc 1866 *
AnnaBridge 171:3a7713b1edbc 1867 * (1) Available on devices with several ADC instances.
AnnaBridge 171:3a7713b1edbc 1868 * @retval ADC register address
AnnaBridge 171:3a7713b1edbc 1869 */
AnnaBridge 171:3a7713b1edbc 1870 __STATIC_INLINE uint32_t LL_ADC_DMA_GetRegAddr(ADC_TypeDef *ADCx, uint32_t Register)
AnnaBridge 171:3a7713b1edbc 1871 {
AnnaBridge 171:3a7713b1edbc 1872 register uint32_t data_reg_addr = 0U;
AnnaBridge 171:3a7713b1edbc 1873
AnnaBridge 171:3a7713b1edbc 1874 if (Register == LL_ADC_DMA_REG_REGULAR_DATA)
AnnaBridge 171:3a7713b1edbc 1875 {
AnnaBridge 171:3a7713b1edbc 1876 /* Retrieve address of register DR */
AnnaBridge 171:3a7713b1edbc 1877 data_reg_addr = (uint32_t)&(ADCx->DR);
AnnaBridge 171:3a7713b1edbc 1878 }
AnnaBridge 171:3a7713b1edbc 1879 else /* (Register == LL_ADC_DMA_REG_REGULAR_DATA_MULTI) */
AnnaBridge 171:3a7713b1edbc 1880 {
AnnaBridge 171:3a7713b1edbc 1881 /* Retrieve address of register CDR */
AnnaBridge 171:3a7713b1edbc 1882 data_reg_addr = (uint32_t)&((__LL_ADC_COMMON_INSTANCE(ADCx))->CDR);
AnnaBridge 171:3a7713b1edbc 1883 }
AnnaBridge 171:3a7713b1edbc 1884
AnnaBridge 171:3a7713b1edbc 1885 return data_reg_addr;
AnnaBridge 171:3a7713b1edbc 1886 }
AnnaBridge 171:3a7713b1edbc 1887
AnnaBridge 171:3a7713b1edbc 1888 /**
AnnaBridge 171:3a7713b1edbc 1889 * @}
AnnaBridge 171:3a7713b1edbc 1890 */
AnnaBridge 171:3a7713b1edbc 1891
AnnaBridge 171:3a7713b1edbc 1892 /** @defgroup ADC_LL_EF_Configuration_ADC_Common Configuration of ADC hierarchical scope: common to several ADC instances
AnnaBridge 171:3a7713b1edbc 1893 * @{
AnnaBridge 171:3a7713b1edbc 1894 */
AnnaBridge 171:3a7713b1edbc 1895
AnnaBridge 171:3a7713b1edbc 1896 /**
AnnaBridge 171:3a7713b1edbc 1897 * @brief Set parameter common to several ADC: Clock source and prescaler.
AnnaBridge 171:3a7713b1edbc 1898 * @rmtoll CCR ADCPRE LL_ADC_SetCommonClock
AnnaBridge 171:3a7713b1edbc 1899 * @param ADCxy_COMMON ADC common instance
AnnaBridge 171:3a7713b1edbc 1900 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 171:3a7713b1edbc 1901 * @param CommonClock This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 1902 * @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV2
AnnaBridge 171:3a7713b1edbc 1903 * @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV4
AnnaBridge 171:3a7713b1edbc 1904 * @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV6
AnnaBridge 171:3a7713b1edbc 1905 * @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV8
AnnaBridge 171:3a7713b1edbc 1906 * @retval None
AnnaBridge 171:3a7713b1edbc 1907 */
AnnaBridge 171:3a7713b1edbc 1908 __STATIC_INLINE void LL_ADC_SetCommonClock(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t CommonClock)
AnnaBridge 171:3a7713b1edbc 1909 {
AnnaBridge 171:3a7713b1edbc 1910 MODIFY_REG(ADCxy_COMMON->CCR, ADC_CCR_ADCPRE, CommonClock);
AnnaBridge 171:3a7713b1edbc 1911 }
AnnaBridge 171:3a7713b1edbc 1912
AnnaBridge 171:3a7713b1edbc 1913 /**
AnnaBridge 171:3a7713b1edbc 1914 * @brief Get parameter common to several ADC: Clock source and prescaler.
AnnaBridge 171:3a7713b1edbc 1915 * @rmtoll CCR ADCPRE LL_ADC_GetCommonClock
AnnaBridge 171:3a7713b1edbc 1916 * @param ADCxy_COMMON ADC common instance
AnnaBridge 171:3a7713b1edbc 1917 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 171:3a7713b1edbc 1918 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 1919 * @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV2
AnnaBridge 171:3a7713b1edbc 1920 * @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV4
AnnaBridge 171:3a7713b1edbc 1921 * @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV6
AnnaBridge 171:3a7713b1edbc 1922 * @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV8
AnnaBridge 171:3a7713b1edbc 1923 */
AnnaBridge 171:3a7713b1edbc 1924 __STATIC_INLINE uint32_t LL_ADC_GetCommonClock(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 171:3a7713b1edbc 1925 {
AnnaBridge 171:3a7713b1edbc 1926 return (uint32_t)(READ_BIT(ADCxy_COMMON->CCR, ADC_CCR_ADCPRE));
AnnaBridge 171:3a7713b1edbc 1927 }
AnnaBridge 171:3a7713b1edbc 1928
AnnaBridge 171:3a7713b1edbc 1929 /**
AnnaBridge 171:3a7713b1edbc 1930 * @brief Set parameter common to several ADC: measurement path to internal
AnnaBridge 171:3a7713b1edbc 1931 * channels (VrefInt, temperature sensor, ...).
AnnaBridge 171:3a7713b1edbc 1932 * @note One or several values can be selected.
AnnaBridge 171:3a7713b1edbc 1933 * Example: (LL_ADC_PATH_INTERNAL_VREFINT |
AnnaBridge 171:3a7713b1edbc 1934 * LL_ADC_PATH_INTERNAL_TEMPSENSOR)
AnnaBridge 171:3a7713b1edbc 1935 * @note Stabilization time of measurement path to internal channel:
AnnaBridge 171:3a7713b1edbc 1936 * After enabling internal paths, before starting ADC conversion,
AnnaBridge 171:3a7713b1edbc 1937 * a delay is required for internal voltage reference and
AnnaBridge 171:3a7713b1edbc 1938 * temperature sensor stabilization time.
AnnaBridge 171:3a7713b1edbc 1939 * Refer to device datasheet.
AnnaBridge 171:3a7713b1edbc 1940 * Refer to literal @ref LL_ADC_DELAY_VREFINT_STAB_US.
AnnaBridge 171:3a7713b1edbc 1941 * Refer to literal @ref LL_ADC_DELAY_TEMPSENSOR_STAB_US.
AnnaBridge 171:3a7713b1edbc 1942 * @note ADC internal channel sampling time constraint:
AnnaBridge 171:3a7713b1edbc 1943 * For ADC conversion of internal channels,
AnnaBridge 171:3a7713b1edbc 1944 * a sampling time minimum value is required.
AnnaBridge 171:3a7713b1edbc 1945 * Refer to device datasheet.
AnnaBridge 171:3a7713b1edbc 1946 * @rmtoll CCR TSVREFE LL_ADC_SetCommonPathInternalCh\n
AnnaBridge 171:3a7713b1edbc 1947 * CCR VBATE LL_ADC_SetCommonPathInternalCh
AnnaBridge 171:3a7713b1edbc 1948 * @param ADCxy_COMMON ADC common instance
AnnaBridge 171:3a7713b1edbc 1949 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 171:3a7713b1edbc 1950 * @param PathInternal This parameter can be a combination of the following values:
AnnaBridge 171:3a7713b1edbc 1951 * @arg @ref LL_ADC_PATH_INTERNAL_NONE
AnnaBridge 171:3a7713b1edbc 1952 * @arg @ref LL_ADC_PATH_INTERNAL_VREFINT
AnnaBridge 171:3a7713b1edbc 1953 * @arg @ref LL_ADC_PATH_INTERNAL_TEMPSENSOR
AnnaBridge 171:3a7713b1edbc 1954 * @arg @ref LL_ADC_PATH_INTERNAL_VBAT
AnnaBridge 171:3a7713b1edbc 1955 * @retval None
AnnaBridge 171:3a7713b1edbc 1956 */
AnnaBridge 171:3a7713b1edbc 1957 __STATIC_INLINE void LL_ADC_SetCommonPathInternalCh(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t PathInternal)
AnnaBridge 171:3a7713b1edbc 1958 {
AnnaBridge 171:3a7713b1edbc 1959 MODIFY_REG(ADCxy_COMMON->CCR, ADC_CCR_TSVREFE | ADC_CCR_VBATE, PathInternal);
AnnaBridge 171:3a7713b1edbc 1960 }
AnnaBridge 171:3a7713b1edbc 1961
AnnaBridge 171:3a7713b1edbc 1962 /**
AnnaBridge 171:3a7713b1edbc 1963 * @brief Get parameter common to several ADC: measurement path to internal
AnnaBridge 171:3a7713b1edbc 1964 * channels (VrefInt, temperature sensor, ...).
AnnaBridge 171:3a7713b1edbc 1965 * @note One or several values can be selected.
AnnaBridge 171:3a7713b1edbc 1966 * Example: (LL_ADC_PATH_INTERNAL_VREFINT |
AnnaBridge 171:3a7713b1edbc 1967 * LL_ADC_PATH_INTERNAL_TEMPSENSOR)
AnnaBridge 171:3a7713b1edbc 1968 * @rmtoll CCR TSVREFE LL_ADC_GetCommonPathInternalCh\n
AnnaBridge 171:3a7713b1edbc 1969 * CCR VBATE LL_ADC_GetCommonPathInternalCh
AnnaBridge 171:3a7713b1edbc 1970 * @param ADCxy_COMMON ADC common instance
AnnaBridge 171:3a7713b1edbc 1971 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 171:3a7713b1edbc 1972 * @retval Returned value can be a combination of the following values:
AnnaBridge 171:3a7713b1edbc 1973 * @arg @ref LL_ADC_PATH_INTERNAL_NONE
AnnaBridge 171:3a7713b1edbc 1974 * @arg @ref LL_ADC_PATH_INTERNAL_VREFINT
AnnaBridge 171:3a7713b1edbc 1975 * @arg @ref LL_ADC_PATH_INTERNAL_TEMPSENSOR
AnnaBridge 171:3a7713b1edbc 1976 * @arg @ref LL_ADC_PATH_INTERNAL_VBAT
AnnaBridge 171:3a7713b1edbc 1977 */
AnnaBridge 171:3a7713b1edbc 1978 __STATIC_INLINE uint32_t LL_ADC_GetCommonPathInternalCh(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 171:3a7713b1edbc 1979 {
AnnaBridge 171:3a7713b1edbc 1980 return (uint32_t)(READ_BIT(ADCxy_COMMON->CCR, ADC_CCR_TSVREFE | ADC_CCR_VBATE));
AnnaBridge 171:3a7713b1edbc 1981 }
AnnaBridge 171:3a7713b1edbc 1982
AnnaBridge 171:3a7713b1edbc 1983 /**
AnnaBridge 171:3a7713b1edbc 1984 * @}
AnnaBridge 171:3a7713b1edbc 1985 */
AnnaBridge 171:3a7713b1edbc 1986
AnnaBridge 171:3a7713b1edbc 1987 /** @defgroup ADC_LL_EF_Configuration_ADC_Instance Configuration of ADC hierarchical scope: ADC instance
AnnaBridge 171:3a7713b1edbc 1988 * @{
AnnaBridge 171:3a7713b1edbc 1989 */
AnnaBridge 171:3a7713b1edbc 1990
AnnaBridge 171:3a7713b1edbc 1991 /**
AnnaBridge 171:3a7713b1edbc 1992 * @brief Set ADC resolution.
AnnaBridge 171:3a7713b1edbc 1993 * Refer to reference manual for alignments formats
AnnaBridge 171:3a7713b1edbc 1994 * dependencies to ADC resolutions.
AnnaBridge 171:3a7713b1edbc 1995 * @rmtoll CR1 RES LL_ADC_SetResolution
AnnaBridge 171:3a7713b1edbc 1996 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 1997 * @param Resolution This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 1998 * @arg @ref LL_ADC_RESOLUTION_12B
AnnaBridge 171:3a7713b1edbc 1999 * @arg @ref LL_ADC_RESOLUTION_10B
AnnaBridge 171:3a7713b1edbc 2000 * @arg @ref LL_ADC_RESOLUTION_8B
AnnaBridge 171:3a7713b1edbc 2001 * @arg @ref LL_ADC_RESOLUTION_6B
AnnaBridge 171:3a7713b1edbc 2002 * @retval None
AnnaBridge 171:3a7713b1edbc 2003 */
AnnaBridge 171:3a7713b1edbc 2004 __STATIC_INLINE void LL_ADC_SetResolution(ADC_TypeDef *ADCx, uint32_t Resolution)
AnnaBridge 171:3a7713b1edbc 2005 {
AnnaBridge 171:3a7713b1edbc 2006 MODIFY_REG(ADCx->CR1, ADC_CR1_RES, Resolution);
AnnaBridge 171:3a7713b1edbc 2007 }
AnnaBridge 171:3a7713b1edbc 2008
AnnaBridge 171:3a7713b1edbc 2009 /**
AnnaBridge 171:3a7713b1edbc 2010 * @brief Get ADC resolution.
AnnaBridge 171:3a7713b1edbc 2011 * Refer to reference manual for alignments formats
AnnaBridge 171:3a7713b1edbc 2012 * dependencies to ADC resolutions.
AnnaBridge 171:3a7713b1edbc 2013 * @rmtoll CR1 RES LL_ADC_GetResolution
AnnaBridge 171:3a7713b1edbc 2014 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2015 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2016 * @arg @ref LL_ADC_RESOLUTION_12B
AnnaBridge 171:3a7713b1edbc 2017 * @arg @ref LL_ADC_RESOLUTION_10B
AnnaBridge 171:3a7713b1edbc 2018 * @arg @ref LL_ADC_RESOLUTION_8B
AnnaBridge 171:3a7713b1edbc 2019 * @arg @ref LL_ADC_RESOLUTION_6B
AnnaBridge 171:3a7713b1edbc 2020 */
AnnaBridge 171:3a7713b1edbc 2021 __STATIC_INLINE uint32_t LL_ADC_GetResolution(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 2022 {
AnnaBridge 171:3a7713b1edbc 2023 return (uint32_t)(READ_BIT(ADCx->CR1, ADC_CR1_RES));
AnnaBridge 171:3a7713b1edbc 2024 }
AnnaBridge 171:3a7713b1edbc 2025
AnnaBridge 171:3a7713b1edbc 2026 /**
AnnaBridge 171:3a7713b1edbc 2027 * @brief Set ADC conversion data alignment.
AnnaBridge 171:3a7713b1edbc 2028 * @note Refer to reference manual for alignments formats
AnnaBridge 171:3a7713b1edbc 2029 * dependencies to ADC resolutions.
AnnaBridge 171:3a7713b1edbc 2030 * @rmtoll CR2 ALIGN LL_ADC_SetDataAlignment
AnnaBridge 171:3a7713b1edbc 2031 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2032 * @param DataAlignment This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2033 * @arg @ref LL_ADC_DATA_ALIGN_RIGHT
AnnaBridge 171:3a7713b1edbc 2034 * @arg @ref LL_ADC_DATA_ALIGN_LEFT
AnnaBridge 171:3a7713b1edbc 2035 * @retval None
AnnaBridge 171:3a7713b1edbc 2036 */
AnnaBridge 171:3a7713b1edbc 2037 __STATIC_INLINE void LL_ADC_SetDataAlignment(ADC_TypeDef *ADCx, uint32_t DataAlignment)
AnnaBridge 171:3a7713b1edbc 2038 {
AnnaBridge 171:3a7713b1edbc 2039 MODIFY_REG(ADCx->CR2, ADC_CR2_ALIGN, DataAlignment);
AnnaBridge 171:3a7713b1edbc 2040 }
AnnaBridge 171:3a7713b1edbc 2041
AnnaBridge 171:3a7713b1edbc 2042 /**
AnnaBridge 171:3a7713b1edbc 2043 * @brief Get ADC conversion data alignment.
AnnaBridge 171:3a7713b1edbc 2044 * @note Refer to reference manual for alignments formats
AnnaBridge 171:3a7713b1edbc 2045 * dependencies to ADC resolutions.
AnnaBridge 171:3a7713b1edbc 2046 * @rmtoll CR2 ALIGN LL_ADC_SetDataAlignment
AnnaBridge 171:3a7713b1edbc 2047 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2048 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2049 * @arg @ref LL_ADC_DATA_ALIGN_RIGHT
AnnaBridge 171:3a7713b1edbc 2050 * @arg @ref LL_ADC_DATA_ALIGN_LEFT
AnnaBridge 171:3a7713b1edbc 2051 */
AnnaBridge 171:3a7713b1edbc 2052 __STATIC_INLINE uint32_t LL_ADC_GetDataAlignment(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 2053 {
AnnaBridge 171:3a7713b1edbc 2054 return (uint32_t)(READ_BIT(ADCx->CR2, ADC_CR2_ALIGN));
AnnaBridge 171:3a7713b1edbc 2055 }
AnnaBridge 171:3a7713b1edbc 2056
AnnaBridge 171:3a7713b1edbc 2057 /**
AnnaBridge 171:3a7713b1edbc 2058 * @brief Set ADC sequencers scan mode, for all ADC groups
AnnaBridge 171:3a7713b1edbc 2059 * (group regular, group injected).
AnnaBridge 171:3a7713b1edbc 2060 * @note According to sequencers scan mode :
AnnaBridge 171:3a7713b1edbc 2061 * - If disabled: ADC conversion is performed in unitary conversion
AnnaBridge 171:3a7713b1edbc 2062 * mode (one channel converted, that defined in rank 1).
AnnaBridge 171:3a7713b1edbc 2063 * Configuration of sequencers of all ADC groups
AnnaBridge 171:3a7713b1edbc 2064 * (sequencer scan length, ...) is discarded: equivalent to
AnnaBridge 171:3a7713b1edbc 2065 * scan length of 1 rank.
AnnaBridge 171:3a7713b1edbc 2066 * - If enabled: ADC conversions are performed in sequence conversions
AnnaBridge 171:3a7713b1edbc 2067 * mode, according to configuration of sequencers of
AnnaBridge 171:3a7713b1edbc 2068 * each ADC group (sequencer scan length, ...).
AnnaBridge 171:3a7713b1edbc 2069 * Refer to function @ref LL_ADC_REG_SetSequencerLength()
AnnaBridge 171:3a7713b1edbc 2070 * and to function @ref LL_ADC_INJ_SetSequencerLength().
AnnaBridge 171:3a7713b1edbc 2071 * @rmtoll CR1 SCAN LL_ADC_SetSequencersScanMode
AnnaBridge 171:3a7713b1edbc 2072 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2073 * @param ScanMode This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2074 * @arg @ref LL_ADC_SEQ_SCAN_DISABLE
AnnaBridge 171:3a7713b1edbc 2075 * @arg @ref LL_ADC_SEQ_SCAN_ENABLE
AnnaBridge 171:3a7713b1edbc 2076 * @retval None
AnnaBridge 171:3a7713b1edbc 2077 */
AnnaBridge 171:3a7713b1edbc 2078 __STATIC_INLINE void LL_ADC_SetSequencersScanMode(ADC_TypeDef *ADCx, uint32_t ScanMode)
AnnaBridge 171:3a7713b1edbc 2079 {
AnnaBridge 171:3a7713b1edbc 2080 MODIFY_REG(ADCx->CR1, ADC_CR1_SCAN, ScanMode);
AnnaBridge 171:3a7713b1edbc 2081 }
AnnaBridge 171:3a7713b1edbc 2082
AnnaBridge 171:3a7713b1edbc 2083 /**
AnnaBridge 171:3a7713b1edbc 2084 * @brief Get ADC sequencers scan mode, for all ADC groups
AnnaBridge 171:3a7713b1edbc 2085 * (group regular, group injected).
AnnaBridge 171:3a7713b1edbc 2086 * @note According to sequencers scan mode :
AnnaBridge 171:3a7713b1edbc 2087 * - If disabled: ADC conversion is performed in unitary conversion
AnnaBridge 171:3a7713b1edbc 2088 * mode (one channel converted, that defined in rank 1).
AnnaBridge 171:3a7713b1edbc 2089 * Configuration of sequencers of all ADC groups
AnnaBridge 171:3a7713b1edbc 2090 * (sequencer scan length, ...) is discarded: equivalent to
AnnaBridge 171:3a7713b1edbc 2091 * scan length of 1 rank.
AnnaBridge 171:3a7713b1edbc 2092 * - If enabled: ADC conversions are performed in sequence conversions
AnnaBridge 171:3a7713b1edbc 2093 * mode, according to configuration of sequencers of
AnnaBridge 171:3a7713b1edbc 2094 * each ADC group (sequencer scan length, ...).
AnnaBridge 171:3a7713b1edbc 2095 * Refer to function @ref LL_ADC_REG_SetSequencerLength()
AnnaBridge 171:3a7713b1edbc 2096 * and to function @ref LL_ADC_INJ_SetSequencerLength().
AnnaBridge 171:3a7713b1edbc 2097 * @rmtoll CR1 SCAN LL_ADC_GetSequencersScanMode
AnnaBridge 171:3a7713b1edbc 2098 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2099 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2100 * @arg @ref LL_ADC_SEQ_SCAN_DISABLE
AnnaBridge 171:3a7713b1edbc 2101 * @arg @ref LL_ADC_SEQ_SCAN_ENABLE
AnnaBridge 171:3a7713b1edbc 2102 */
AnnaBridge 171:3a7713b1edbc 2103 __STATIC_INLINE uint32_t LL_ADC_GetSequencersScanMode(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 2104 {
AnnaBridge 171:3a7713b1edbc 2105 return (uint32_t)(READ_BIT(ADCx->CR1, ADC_CR1_SCAN));
AnnaBridge 171:3a7713b1edbc 2106 }
AnnaBridge 171:3a7713b1edbc 2107
AnnaBridge 171:3a7713b1edbc 2108 /**
AnnaBridge 171:3a7713b1edbc 2109 * @}
AnnaBridge 171:3a7713b1edbc 2110 */
AnnaBridge 171:3a7713b1edbc 2111
AnnaBridge 171:3a7713b1edbc 2112 /** @defgroup ADC_LL_EF_Configuration_ADC_Group_Regular Configuration of ADC hierarchical scope: group regular
AnnaBridge 171:3a7713b1edbc 2113 * @{
AnnaBridge 171:3a7713b1edbc 2114 */
AnnaBridge 171:3a7713b1edbc 2115
AnnaBridge 171:3a7713b1edbc 2116 /**
AnnaBridge 171:3a7713b1edbc 2117 * @brief Set ADC group regular conversion trigger source:
AnnaBridge 171:3a7713b1edbc 2118 * internal (SW start) or from external IP (timer event,
AnnaBridge 171:3a7713b1edbc 2119 * external interrupt line).
AnnaBridge 171:3a7713b1edbc 2120 * @note On this STM32 serie, setting of external trigger edge is performed
AnnaBridge 171:3a7713b1edbc 2121 * using function @ref LL_ADC_REG_StartConversionExtTrig().
AnnaBridge 171:3a7713b1edbc 2122 * @note Availability of parameters of trigger sources from timer
AnnaBridge 171:3a7713b1edbc 2123 * depends on timers availability on the selected device.
AnnaBridge 171:3a7713b1edbc 2124 * @rmtoll CR2 EXTSEL LL_ADC_REG_SetTriggerSource\n
AnnaBridge 171:3a7713b1edbc 2125 * CR2 EXTEN LL_ADC_REG_SetTriggerSource
AnnaBridge 171:3a7713b1edbc 2126 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2127 * @param TriggerSource This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2128 * @arg @ref LL_ADC_REG_TRIG_SOFTWARE
AnnaBridge 171:3a7713b1edbc 2129 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH1
AnnaBridge 171:3a7713b1edbc 2130 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH2
AnnaBridge 171:3a7713b1edbc 2131 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH3
AnnaBridge 171:3a7713b1edbc 2132 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_CH2
AnnaBridge 171:3a7713b1edbc 2133 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM5_TRGO
AnnaBridge 171:3a7713b1edbc 2134 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_CH4
AnnaBridge 171:3a7713b1edbc 2135 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_CH4
AnnaBridge 171:3a7713b1edbc 2136 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_TRGO
AnnaBridge 171:3a7713b1edbc 2137 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_TRGO2
AnnaBridge 171:3a7713b1edbc 2138 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_TRGO
AnnaBridge 171:3a7713b1edbc 2139 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_TRGO2
AnnaBridge 171:3a7713b1edbc 2140 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_TRGO
AnnaBridge 171:3a7713b1edbc 2141 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_TRGO
AnnaBridge 171:3a7713b1edbc 2142 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM6_TRGO
AnnaBridge 171:3a7713b1edbc 2143 * @arg @ref LL_ADC_REG_TRIG_EXT_EXTI_LINE11
AnnaBridge 171:3a7713b1edbc 2144 * @retval None
AnnaBridge 171:3a7713b1edbc 2145 */
AnnaBridge 171:3a7713b1edbc 2146 __STATIC_INLINE void LL_ADC_REG_SetTriggerSource(ADC_TypeDef *ADCx, uint32_t TriggerSource)
AnnaBridge 171:3a7713b1edbc 2147 {
AnnaBridge 171:3a7713b1edbc 2148 /* Note: On this STM32 serie, ADC group regular external trigger edge */
AnnaBridge 171:3a7713b1edbc 2149 /* is used to perform a ADC conversion start. */
AnnaBridge 171:3a7713b1edbc 2150 /* This function does not set external trigger edge. */
AnnaBridge 171:3a7713b1edbc 2151 /* This feature is set using function */
AnnaBridge 171:3a7713b1edbc 2152 /* @ref LL_ADC_REG_StartConversionExtTrig(). */
AnnaBridge 171:3a7713b1edbc 2153 MODIFY_REG(ADCx->CR2, ADC_CR2_EXTSEL, (TriggerSource & ADC_CR2_EXTSEL));
AnnaBridge 171:3a7713b1edbc 2154 }
AnnaBridge 171:3a7713b1edbc 2155
AnnaBridge 171:3a7713b1edbc 2156 /**
AnnaBridge 171:3a7713b1edbc 2157 * @brief Get ADC group regular conversion trigger source:
AnnaBridge 171:3a7713b1edbc 2158 * internal (SW start) or from external IP (timer event,
AnnaBridge 171:3a7713b1edbc 2159 * external interrupt line).
AnnaBridge 171:3a7713b1edbc 2160 * @note To determine whether group regular trigger source is
AnnaBridge 171:3a7713b1edbc 2161 * internal (SW start) or external, without detail
AnnaBridge 171:3a7713b1edbc 2162 * of which peripheral is selected as external trigger,
AnnaBridge 171:3a7713b1edbc 2163 * (equivalent to
AnnaBridge 171:3a7713b1edbc 2164 * "if(LL_ADC_REG_GetTriggerSource(ADC1) == LL_ADC_REG_TRIG_SOFTWARE)")
AnnaBridge 171:3a7713b1edbc 2165 * use function @ref LL_ADC_REG_IsTriggerSourceSWStart.
AnnaBridge 171:3a7713b1edbc 2166 * @note Availability of parameters of trigger sources from timer
AnnaBridge 171:3a7713b1edbc 2167 * depends on timers availability on the selected device.
AnnaBridge 171:3a7713b1edbc 2168 * @rmtoll CR2 EXTSEL LL_ADC_REG_GetTriggerSource\n
AnnaBridge 171:3a7713b1edbc 2169 * CR2 EXTEN LL_ADC_REG_GetTriggerSource
AnnaBridge 171:3a7713b1edbc 2170 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2171 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2172 * @arg @ref LL_ADC_REG_TRIG_SOFTWARE
AnnaBridge 171:3a7713b1edbc 2173 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH1
AnnaBridge 171:3a7713b1edbc 2174 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH2
AnnaBridge 171:3a7713b1edbc 2175 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH3
AnnaBridge 171:3a7713b1edbc 2176 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_CH2
AnnaBridge 171:3a7713b1edbc 2177 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM5_TRGO
AnnaBridge 171:3a7713b1edbc 2178 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_CH4
AnnaBridge 171:3a7713b1edbc 2179 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_CH4
AnnaBridge 171:3a7713b1edbc 2180 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_TRGO
AnnaBridge 171:3a7713b1edbc 2181 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_TRGO2
AnnaBridge 171:3a7713b1edbc 2182 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_TRGO
AnnaBridge 171:3a7713b1edbc 2183 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_TRGO2
AnnaBridge 171:3a7713b1edbc 2184 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_TRGO
AnnaBridge 171:3a7713b1edbc 2185 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_TRGO
AnnaBridge 171:3a7713b1edbc 2186 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM6_TRGO
AnnaBridge 171:3a7713b1edbc 2187 * @arg @ref LL_ADC_REG_TRIG_EXT_EXTI_LINE11
AnnaBridge 171:3a7713b1edbc 2188 */
AnnaBridge 171:3a7713b1edbc 2189 __STATIC_INLINE uint32_t LL_ADC_REG_GetTriggerSource(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 2190 {
AnnaBridge 171:3a7713b1edbc 2191 register uint32_t TriggerSource = READ_BIT(ADCx->CR2, ADC_CR2_EXTSEL | ADC_CR2_EXTEN);
AnnaBridge 171:3a7713b1edbc 2192
AnnaBridge 171:3a7713b1edbc 2193 /* Value for shift of {0; 4; 8; 12} depending on value of bitfield */
AnnaBridge 171:3a7713b1edbc 2194 /* corresponding to ADC_CR2_EXTEN {0; 1; 2; 3}. */
AnnaBridge 171:3a7713b1edbc 2195 register uint32_t ShiftExten = ((TriggerSource & ADC_CR2_EXTEN) >> (ADC_REG_TRIG_EXTEN_BITOFFSET_POS - 2U));
AnnaBridge 171:3a7713b1edbc 2196
AnnaBridge 171:3a7713b1edbc 2197 /* Set bitfield corresponding to ADC_CR2_EXTEN and ADC_CR2_EXTSEL */
AnnaBridge 171:3a7713b1edbc 2198 /* to match with triggers literals definition. */
AnnaBridge 171:3a7713b1edbc 2199 return ((TriggerSource
AnnaBridge 171:3a7713b1edbc 2200 & (ADC_REG_TRIG_SOURCE_MASK << ShiftExten) & ADC_CR2_EXTSEL)
AnnaBridge 171:3a7713b1edbc 2201 | ((ADC_REG_TRIG_EDGE_MASK << ShiftExten) & ADC_CR2_EXTEN)
AnnaBridge 171:3a7713b1edbc 2202 );
AnnaBridge 171:3a7713b1edbc 2203 }
AnnaBridge 171:3a7713b1edbc 2204
AnnaBridge 171:3a7713b1edbc 2205 /**
AnnaBridge 171:3a7713b1edbc 2206 * @brief Get ADC group regular conversion trigger source internal (SW start)
AnnaBridge 171:3a7713b1edbc 2207 or external.
AnnaBridge 171:3a7713b1edbc 2208 * @note In case of group regular trigger source set to external trigger,
AnnaBridge 171:3a7713b1edbc 2209 * to determine which peripheral is selected as external trigger,
AnnaBridge 171:3a7713b1edbc 2210 * use function @ref LL_ADC_REG_GetTriggerSource().
AnnaBridge 171:3a7713b1edbc 2211 * @rmtoll CR2 EXTEN LL_ADC_REG_IsTriggerSourceSWStart
AnnaBridge 171:3a7713b1edbc 2212 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2213 * @retval Value "0" if trigger source external trigger
AnnaBridge 171:3a7713b1edbc 2214 * Value "1" if trigger source SW start.
AnnaBridge 171:3a7713b1edbc 2215 */
AnnaBridge 171:3a7713b1edbc 2216 __STATIC_INLINE uint32_t LL_ADC_REG_IsTriggerSourceSWStart(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 2217 {
AnnaBridge 171:3a7713b1edbc 2218 return (READ_BIT(ADCx->CR2, ADC_CR2_EXTEN) == (LL_ADC_REG_TRIG_SOFTWARE & ADC_CR2_EXTEN));
AnnaBridge 171:3a7713b1edbc 2219 }
AnnaBridge 171:3a7713b1edbc 2220
AnnaBridge 171:3a7713b1edbc 2221 /**
AnnaBridge 171:3a7713b1edbc 2222 * @brief Get ADC group regular conversion trigger polarity.
AnnaBridge 171:3a7713b1edbc 2223 * @note Applicable only for trigger source set to external trigger.
AnnaBridge 171:3a7713b1edbc 2224 * @note On this STM32 serie, setting of external trigger edge is performed
AnnaBridge 171:3a7713b1edbc 2225 * using function @ref LL_ADC_REG_StartConversionExtTrig().
AnnaBridge 171:3a7713b1edbc 2226 * @rmtoll CR2 EXTEN LL_ADC_REG_GetTriggerEdge
AnnaBridge 171:3a7713b1edbc 2227 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2228 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2229 * @arg @ref LL_ADC_REG_TRIG_EXT_RISING
AnnaBridge 171:3a7713b1edbc 2230 * @arg @ref LL_ADC_REG_TRIG_EXT_FALLING
AnnaBridge 171:3a7713b1edbc 2231 * @arg @ref LL_ADC_REG_TRIG_EXT_RISINGFALLING
AnnaBridge 171:3a7713b1edbc 2232 */
AnnaBridge 171:3a7713b1edbc 2233 __STATIC_INLINE uint32_t LL_ADC_REG_GetTriggerEdge(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 2234 {
AnnaBridge 171:3a7713b1edbc 2235 return (uint32_t)(READ_BIT(ADCx->CR2, ADC_CR2_EXTEN));
AnnaBridge 171:3a7713b1edbc 2236 }
AnnaBridge 171:3a7713b1edbc 2237
AnnaBridge 171:3a7713b1edbc 2238
AnnaBridge 171:3a7713b1edbc 2239 /**
AnnaBridge 171:3a7713b1edbc 2240 * @brief Set ADC group regular sequencer length and scan direction.
AnnaBridge 171:3a7713b1edbc 2241 * @note Description of ADC group regular sequencer features:
AnnaBridge 171:3a7713b1edbc 2242 * - For devices with sequencer fully configurable
AnnaBridge 171:3a7713b1edbc 2243 * (function "LL_ADC_REG_SetSequencerRanks()" available):
AnnaBridge 171:3a7713b1edbc 2244 * sequencer length and each rank affectation to a channel
AnnaBridge 171:3a7713b1edbc 2245 * are configurable.
AnnaBridge 171:3a7713b1edbc 2246 * This function performs configuration of:
AnnaBridge 171:3a7713b1edbc 2247 * - Sequence length: Number of ranks in the scan sequence.
AnnaBridge 171:3a7713b1edbc 2248 * - Sequence direction: Unless specified in parameters, sequencer
AnnaBridge 171:3a7713b1edbc 2249 * scan direction is forward (from rank 1 to rank n).
AnnaBridge 171:3a7713b1edbc 2250 * Sequencer ranks are selected using
AnnaBridge 171:3a7713b1edbc 2251 * function "LL_ADC_REG_SetSequencerRanks()".
AnnaBridge 171:3a7713b1edbc 2252 * - For devices with sequencer not fully configurable
AnnaBridge 171:3a7713b1edbc 2253 * (function "LL_ADC_REG_SetSequencerChannels()" available):
AnnaBridge 171:3a7713b1edbc 2254 * sequencer length and each rank affectation to a channel
AnnaBridge 171:3a7713b1edbc 2255 * are defined by channel number.
AnnaBridge 171:3a7713b1edbc 2256 * This function performs configuration of:
AnnaBridge 171:3a7713b1edbc 2257 * - Sequence length: Number of ranks in the scan sequence is
AnnaBridge 171:3a7713b1edbc 2258 * defined by number of channels set in the sequence,
AnnaBridge 171:3a7713b1edbc 2259 * rank of each channel is fixed by channel HW number.
AnnaBridge 171:3a7713b1edbc 2260 * (channel 0 fixed on rank 0, channel 1 fixed on rank1, ...).
AnnaBridge 171:3a7713b1edbc 2261 * - Sequence direction: Unless specified in parameters, sequencer
AnnaBridge 171:3a7713b1edbc 2262 * scan direction is forward (from lowest channel number to
AnnaBridge 171:3a7713b1edbc 2263 * highest channel number).
AnnaBridge 171:3a7713b1edbc 2264 * Sequencer ranks are selected using
AnnaBridge 171:3a7713b1edbc 2265 * function "LL_ADC_REG_SetSequencerChannels()".
AnnaBridge 171:3a7713b1edbc 2266 * @note On this STM32 serie, group regular sequencer configuration
AnnaBridge 171:3a7713b1edbc 2267 * is conditioned to ADC instance sequencer mode.
AnnaBridge 171:3a7713b1edbc 2268 * If ADC instance sequencer mode is disabled, sequencers of
AnnaBridge 171:3a7713b1edbc 2269 * all groups (group regular, group injected) can be configured
AnnaBridge 171:3a7713b1edbc 2270 * but their execution is disabled (limited to rank 1).
AnnaBridge 171:3a7713b1edbc 2271 * Refer to function @ref LL_ADC_SetSequencersScanMode().
AnnaBridge 171:3a7713b1edbc 2272 * @note Sequencer disabled is equivalent to sequencer of 1 rank:
AnnaBridge 171:3a7713b1edbc 2273 * ADC conversion on only 1 channel.
AnnaBridge 171:3a7713b1edbc 2274 * @rmtoll SQR1 L LL_ADC_REG_SetSequencerLength
AnnaBridge 171:3a7713b1edbc 2275 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2276 * @param SequencerNbRanks This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2277 * @arg @ref LL_ADC_REG_SEQ_SCAN_DISABLE
AnnaBridge 171:3a7713b1edbc 2278 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_2RANKS
AnnaBridge 171:3a7713b1edbc 2279 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_3RANKS
AnnaBridge 171:3a7713b1edbc 2280 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_4RANKS
AnnaBridge 171:3a7713b1edbc 2281 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_5RANKS
AnnaBridge 171:3a7713b1edbc 2282 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_6RANKS
AnnaBridge 171:3a7713b1edbc 2283 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_7RANKS
AnnaBridge 171:3a7713b1edbc 2284 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_8RANKS
AnnaBridge 171:3a7713b1edbc 2285 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_9RANKS
AnnaBridge 171:3a7713b1edbc 2286 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_10RANKS
AnnaBridge 171:3a7713b1edbc 2287 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_11RANKS
AnnaBridge 171:3a7713b1edbc 2288 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_12RANKS
AnnaBridge 171:3a7713b1edbc 2289 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_13RANKS
AnnaBridge 171:3a7713b1edbc 2290 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_14RANKS
AnnaBridge 171:3a7713b1edbc 2291 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_15RANKS
AnnaBridge 171:3a7713b1edbc 2292 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_16RANKS
AnnaBridge 171:3a7713b1edbc 2293 * @retval None
AnnaBridge 171:3a7713b1edbc 2294 */
AnnaBridge 171:3a7713b1edbc 2295 __STATIC_INLINE void LL_ADC_REG_SetSequencerLength(ADC_TypeDef *ADCx, uint32_t SequencerNbRanks)
AnnaBridge 171:3a7713b1edbc 2296 {
AnnaBridge 171:3a7713b1edbc 2297 MODIFY_REG(ADCx->SQR1, ADC_SQR1_L, SequencerNbRanks);
AnnaBridge 171:3a7713b1edbc 2298 }
AnnaBridge 171:3a7713b1edbc 2299
AnnaBridge 171:3a7713b1edbc 2300 /**
AnnaBridge 171:3a7713b1edbc 2301 * @brief Get ADC group regular sequencer length and scan direction.
AnnaBridge 171:3a7713b1edbc 2302 * @note Description of ADC group regular sequencer features:
AnnaBridge 171:3a7713b1edbc 2303 * - For devices with sequencer fully configurable
AnnaBridge 171:3a7713b1edbc 2304 * (function "LL_ADC_REG_SetSequencerRanks()" available):
AnnaBridge 171:3a7713b1edbc 2305 * sequencer length and each rank affectation to a channel
AnnaBridge 171:3a7713b1edbc 2306 * are configurable.
AnnaBridge 171:3a7713b1edbc 2307 * This function retrieves:
AnnaBridge 171:3a7713b1edbc 2308 * - Sequence length: Number of ranks in the scan sequence.
AnnaBridge 171:3a7713b1edbc 2309 * - Sequence direction: Unless specified in parameters, sequencer
AnnaBridge 171:3a7713b1edbc 2310 * scan direction is forward (from rank 1 to rank n).
AnnaBridge 171:3a7713b1edbc 2311 * Sequencer ranks are selected using
AnnaBridge 171:3a7713b1edbc 2312 * function "LL_ADC_REG_SetSequencerRanks()".
AnnaBridge 171:3a7713b1edbc 2313 * - For devices with sequencer not fully configurable
AnnaBridge 171:3a7713b1edbc 2314 * (function "LL_ADC_REG_SetSequencerChannels()" available):
AnnaBridge 171:3a7713b1edbc 2315 * sequencer length and each rank affectation to a channel
AnnaBridge 171:3a7713b1edbc 2316 * are defined by channel number.
AnnaBridge 171:3a7713b1edbc 2317 * This function retrieves:
AnnaBridge 171:3a7713b1edbc 2318 * - Sequence length: Number of ranks in the scan sequence is
AnnaBridge 171:3a7713b1edbc 2319 * defined by number of channels set in the sequence,
AnnaBridge 171:3a7713b1edbc 2320 * rank of each channel is fixed by channel HW number.
AnnaBridge 171:3a7713b1edbc 2321 * (channel 0 fixed on rank 0, channel 1 fixed on rank1, ...).
AnnaBridge 171:3a7713b1edbc 2322 * - Sequence direction: Unless specified in parameters, sequencer
AnnaBridge 171:3a7713b1edbc 2323 * scan direction is forward (from lowest channel number to
AnnaBridge 171:3a7713b1edbc 2324 * highest channel number).
AnnaBridge 171:3a7713b1edbc 2325 * Sequencer ranks are selected using
AnnaBridge 171:3a7713b1edbc 2326 * function "LL_ADC_REG_SetSequencerChannels()".
AnnaBridge 171:3a7713b1edbc 2327 * @note On this STM32 serie, group regular sequencer configuration
AnnaBridge 171:3a7713b1edbc 2328 * is conditioned to ADC instance sequencer mode.
AnnaBridge 171:3a7713b1edbc 2329 * If ADC instance sequencer mode is disabled, sequencers of
AnnaBridge 171:3a7713b1edbc 2330 * all groups (group regular, group injected) can be configured
AnnaBridge 171:3a7713b1edbc 2331 * but their execution is disabled (limited to rank 1).
AnnaBridge 171:3a7713b1edbc 2332 * Refer to function @ref LL_ADC_SetSequencersScanMode().
AnnaBridge 171:3a7713b1edbc 2333 * @note Sequencer disabled is equivalent to sequencer of 1 rank:
AnnaBridge 171:3a7713b1edbc 2334 * ADC conversion on only 1 channel.
AnnaBridge 171:3a7713b1edbc 2335 * @rmtoll SQR1 L LL_ADC_REG_SetSequencerLength
AnnaBridge 171:3a7713b1edbc 2336 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2337 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2338 * @arg @ref LL_ADC_REG_SEQ_SCAN_DISABLE
AnnaBridge 171:3a7713b1edbc 2339 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_2RANKS
AnnaBridge 171:3a7713b1edbc 2340 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_3RANKS
AnnaBridge 171:3a7713b1edbc 2341 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_4RANKS
AnnaBridge 171:3a7713b1edbc 2342 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_5RANKS
AnnaBridge 171:3a7713b1edbc 2343 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_6RANKS
AnnaBridge 171:3a7713b1edbc 2344 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_7RANKS
AnnaBridge 171:3a7713b1edbc 2345 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_8RANKS
AnnaBridge 171:3a7713b1edbc 2346 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_9RANKS
AnnaBridge 171:3a7713b1edbc 2347 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_10RANKS
AnnaBridge 171:3a7713b1edbc 2348 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_11RANKS
AnnaBridge 171:3a7713b1edbc 2349 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_12RANKS
AnnaBridge 171:3a7713b1edbc 2350 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_13RANKS
AnnaBridge 171:3a7713b1edbc 2351 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_14RANKS
AnnaBridge 171:3a7713b1edbc 2352 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_15RANKS
AnnaBridge 171:3a7713b1edbc 2353 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_16RANKS
AnnaBridge 171:3a7713b1edbc 2354 */
AnnaBridge 171:3a7713b1edbc 2355 __STATIC_INLINE uint32_t LL_ADC_REG_GetSequencerLength(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 2356 {
AnnaBridge 171:3a7713b1edbc 2357 return (uint32_t)(READ_BIT(ADCx->SQR1, ADC_SQR1_L));
AnnaBridge 171:3a7713b1edbc 2358 }
AnnaBridge 171:3a7713b1edbc 2359
AnnaBridge 171:3a7713b1edbc 2360 /**
AnnaBridge 171:3a7713b1edbc 2361 * @brief Set ADC group regular sequencer discontinuous mode:
AnnaBridge 171:3a7713b1edbc 2362 * sequence subdivided and scan conversions interrupted every selected
AnnaBridge 171:3a7713b1edbc 2363 * number of ranks.
AnnaBridge 171:3a7713b1edbc 2364 * @note It is not possible to enable both ADC group regular
AnnaBridge 171:3a7713b1edbc 2365 * continuous mode and sequencer discontinuous mode.
AnnaBridge 171:3a7713b1edbc 2366 * @note It is not possible to enable both ADC auto-injected mode
AnnaBridge 171:3a7713b1edbc 2367 * and ADC group regular sequencer discontinuous mode.
AnnaBridge 171:3a7713b1edbc 2368 * @rmtoll CR1 DISCEN LL_ADC_REG_SetSequencerDiscont\n
AnnaBridge 171:3a7713b1edbc 2369 * CR1 DISCNUM LL_ADC_REG_SetSequencerDiscont
AnnaBridge 171:3a7713b1edbc 2370 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2371 * @param SeqDiscont This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2372 * @arg @ref LL_ADC_REG_SEQ_DISCONT_DISABLE
AnnaBridge 171:3a7713b1edbc 2373 * @arg @ref LL_ADC_REG_SEQ_DISCONT_1RANK
AnnaBridge 171:3a7713b1edbc 2374 * @arg @ref LL_ADC_REG_SEQ_DISCONT_2RANKS
AnnaBridge 171:3a7713b1edbc 2375 * @arg @ref LL_ADC_REG_SEQ_DISCONT_3RANKS
AnnaBridge 171:3a7713b1edbc 2376 * @arg @ref LL_ADC_REG_SEQ_DISCONT_4RANKS
AnnaBridge 171:3a7713b1edbc 2377 * @arg @ref LL_ADC_REG_SEQ_DISCONT_5RANKS
AnnaBridge 171:3a7713b1edbc 2378 * @arg @ref LL_ADC_REG_SEQ_DISCONT_6RANKS
AnnaBridge 171:3a7713b1edbc 2379 * @arg @ref LL_ADC_REG_SEQ_DISCONT_7RANKS
AnnaBridge 171:3a7713b1edbc 2380 * @arg @ref LL_ADC_REG_SEQ_DISCONT_8RANKS
AnnaBridge 171:3a7713b1edbc 2381 * @retval None
AnnaBridge 171:3a7713b1edbc 2382 */
AnnaBridge 171:3a7713b1edbc 2383 __STATIC_INLINE void LL_ADC_REG_SetSequencerDiscont(ADC_TypeDef *ADCx, uint32_t SeqDiscont)
AnnaBridge 171:3a7713b1edbc 2384 {
AnnaBridge 171:3a7713b1edbc 2385 MODIFY_REG(ADCx->CR1, ADC_CR1_DISCEN | ADC_CR1_DISCNUM, SeqDiscont);
AnnaBridge 171:3a7713b1edbc 2386 }
AnnaBridge 171:3a7713b1edbc 2387
AnnaBridge 171:3a7713b1edbc 2388 /**
AnnaBridge 171:3a7713b1edbc 2389 * @brief Get ADC group regular sequencer discontinuous mode:
AnnaBridge 171:3a7713b1edbc 2390 * sequence subdivided and scan conversions interrupted every selected
AnnaBridge 171:3a7713b1edbc 2391 * number of ranks.
AnnaBridge 171:3a7713b1edbc 2392 * @rmtoll CR1 DISCEN LL_ADC_REG_GetSequencerDiscont\n
AnnaBridge 171:3a7713b1edbc 2393 * CR1 DISCNUM LL_ADC_REG_GetSequencerDiscont
AnnaBridge 171:3a7713b1edbc 2394 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2395 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2396 * @arg @ref LL_ADC_REG_SEQ_DISCONT_DISABLE
AnnaBridge 171:3a7713b1edbc 2397 * @arg @ref LL_ADC_REG_SEQ_DISCONT_1RANK
AnnaBridge 171:3a7713b1edbc 2398 * @arg @ref LL_ADC_REG_SEQ_DISCONT_2RANKS
AnnaBridge 171:3a7713b1edbc 2399 * @arg @ref LL_ADC_REG_SEQ_DISCONT_3RANKS
AnnaBridge 171:3a7713b1edbc 2400 * @arg @ref LL_ADC_REG_SEQ_DISCONT_4RANKS
AnnaBridge 171:3a7713b1edbc 2401 * @arg @ref LL_ADC_REG_SEQ_DISCONT_5RANKS
AnnaBridge 171:3a7713b1edbc 2402 * @arg @ref LL_ADC_REG_SEQ_DISCONT_6RANKS
AnnaBridge 171:3a7713b1edbc 2403 * @arg @ref LL_ADC_REG_SEQ_DISCONT_7RANKS
AnnaBridge 171:3a7713b1edbc 2404 * @arg @ref LL_ADC_REG_SEQ_DISCONT_8RANKS
AnnaBridge 171:3a7713b1edbc 2405 */
AnnaBridge 171:3a7713b1edbc 2406 __STATIC_INLINE uint32_t LL_ADC_REG_GetSequencerDiscont(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 2407 {
AnnaBridge 171:3a7713b1edbc 2408 return (uint32_t)(READ_BIT(ADCx->CR1, ADC_CR1_DISCEN | ADC_CR1_DISCNUM));
AnnaBridge 171:3a7713b1edbc 2409 }
AnnaBridge 171:3a7713b1edbc 2410
AnnaBridge 171:3a7713b1edbc 2411 /**
AnnaBridge 171:3a7713b1edbc 2412 * @brief Set ADC group regular sequence: channel on the selected
AnnaBridge 171:3a7713b1edbc 2413 * scan sequence rank.
AnnaBridge 171:3a7713b1edbc 2414 * @note This function performs configuration of:
AnnaBridge 171:3a7713b1edbc 2415 * - Channels ordering into each rank of scan sequence:
AnnaBridge 171:3a7713b1edbc 2416 * whatever channel can be placed into whatever rank.
AnnaBridge 171:3a7713b1edbc 2417 * @note On this STM32 serie, ADC group regular sequencer is
AnnaBridge 171:3a7713b1edbc 2418 * fully configurable: sequencer length and each rank
AnnaBridge 171:3a7713b1edbc 2419 * affectation to a channel are configurable.
AnnaBridge 171:3a7713b1edbc 2420 * Refer to description of function @ref LL_ADC_REG_SetSequencerLength().
AnnaBridge 171:3a7713b1edbc 2421 * @note Depending on devices and packages, some channels may not be available.
AnnaBridge 171:3a7713b1edbc 2422 * Refer to device datasheet for channels availability.
AnnaBridge 171:3a7713b1edbc 2423 * @note On this STM32 serie, to measure internal channels (VrefInt,
AnnaBridge 171:3a7713b1edbc 2424 * TempSensor, ...), measurement paths to internal channels must be
AnnaBridge 171:3a7713b1edbc 2425 * enabled separately.
AnnaBridge 171:3a7713b1edbc 2426 * This can be done using function @ref LL_ADC_SetCommonPathInternalCh().
AnnaBridge 171:3a7713b1edbc 2427 * @rmtoll SQR3 SQ1 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2428 * SQR3 SQ2 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2429 * SQR3 SQ3 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2430 * SQR3 SQ4 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2431 * SQR3 SQ5 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2432 * SQR3 SQ6 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2433 * SQR2 SQ7 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2434 * SQR2 SQ8 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2435 * SQR2 SQ9 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2436 * SQR2 SQ10 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2437 * SQR2 SQ11 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2438 * SQR2 SQ12 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2439 * SQR1 SQ13 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2440 * SQR1 SQ14 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2441 * SQR1 SQ15 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2442 * SQR1 SQ16 LL_ADC_REG_SetSequencerRanks
AnnaBridge 171:3a7713b1edbc 2443 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2444 * @param Rank This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2445 * @arg @ref LL_ADC_REG_RANK_1
AnnaBridge 171:3a7713b1edbc 2446 * @arg @ref LL_ADC_REG_RANK_2
AnnaBridge 171:3a7713b1edbc 2447 * @arg @ref LL_ADC_REG_RANK_3
AnnaBridge 171:3a7713b1edbc 2448 * @arg @ref LL_ADC_REG_RANK_4
AnnaBridge 171:3a7713b1edbc 2449 * @arg @ref LL_ADC_REG_RANK_5
AnnaBridge 171:3a7713b1edbc 2450 * @arg @ref LL_ADC_REG_RANK_6
AnnaBridge 171:3a7713b1edbc 2451 * @arg @ref LL_ADC_REG_RANK_7
AnnaBridge 171:3a7713b1edbc 2452 * @arg @ref LL_ADC_REG_RANK_8
AnnaBridge 171:3a7713b1edbc 2453 * @arg @ref LL_ADC_REG_RANK_9
AnnaBridge 171:3a7713b1edbc 2454 * @arg @ref LL_ADC_REG_RANK_10
AnnaBridge 171:3a7713b1edbc 2455 * @arg @ref LL_ADC_REG_RANK_11
AnnaBridge 171:3a7713b1edbc 2456 * @arg @ref LL_ADC_REG_RANK_12
AnnaBridge 171:3a7713b1edbc 2457 * @arg @ref LL_ADC_REG_RANK_13
AnnaBridge 171:3a7713b1edbc 2458 * @arg @ref LL_ADC_REG_RANK_14
AnnaBridge 171:3a7713b1edbc 2459 * @arg @ref LL_ADC_REG_RANK_15
AnnaBridge 171:3a7713b1edbc 2460 * @arg @ref LL_ADC_REG_RANK_16
AnnaBridge 171:3a7713b1edbc 2461 * @param Channel This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2462 * @arg @ref LL_ADC_CHANNEL_0
AnnaBridge 171:3a7713b1edbc 2463 * @arg @ref LL_ADC_CHANNEL_1
AnnaBridge 171:3a7713b1edbc 2464 * @arg @ref LL_ADC_CHANNEL_2
AnnaBridge 171:3a7713b1edbc 2465 * @arg @ref LL_ADC_CHANNEL_3
AnnaBridge 171:3a7713b1edbc 2466 * @arg @ref LL_ADC_CHANNEL_4
AnnaBridge 171:3a7713b1edbc 2467 * @arg @ref LL_ADC_CHANNEL_5
AnnaBridge 171:3a7713b1edbc 2468 * @arg @ref LL_ADC_CHANNEL_6
AnnaBridge 171:3a7713b1edbc 2469 * @arg @ref LL_ADC_CHANNEL_7
AnnaBridge 171:3a7713b1edbc 2470 * @arg @ref LL_ADC_CHANNEL_8
AnnaBridge 171:3a7713b1edbc 2471 * @arg @ref LL_ADC_CHANNEL_9
AnnaBridge 171:3a7713b1edbc 2472 * @arg @ref LL_ADC_CHANNEL_10
AnnaBridge 171:3a7713b1edbc 2473 * @arg @ref LL_ADC_CHANNEL_11
AnnaBridge 171:3a7713b1edbc 2474 * @arg @ref LL_ADC_CHANNEL_12
AnnaBridge 171:3a7713b1edbc 2475 * @arg @ref LL_ADC_CHANNEL_13
AnnaBridge 171:3a7713b1edbc 2476 * @arg @ref LL_ADC_CHANNEL_14
AnnaBridge 171:3a7713b1edbc 2477 * @arg @ref LL_ADC_CHANNEL_15
AnnaBridge 171:3a7713b1edbc 2478 * @arg @ref LL_ADC_CHANNEL_16
AnnaBridge 171:3a7713b1edbc 2479 * @arg @ref LL_ADC_CHANNEL_17
AnnaBridge 171:3a7713b1edbc 2480 * @arg @ref LL_ADC_CHANNEL_18
AnnaBridge 171:3a7713b1edbc 2481 * @arg @ref LL_ADC_CHANNEL_VREFINT (1)
AnnaBridge 171:3a7713b1edbc 2482 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (1)(2)
AnnaBridge 171:3a7713b1edbc 2483 * @arg @ref LL_ADC_CHANNEL_VBAT (1)
AnnaBridge 171:3a7713b1edbc 2484 *
AnnaBridge 171:3a7713b1edbc 2485 * (1) On STM32F7, parameter available only on ADC instance: ADC1.\n
AnnaBridge 171:3a7713b1edbc 2486 * (2) On devices STM32F75x, STM32F74x, STM32F76x, STM32F77x, STM32F72x and STM32F73x: this internal channel is shared between temperature sensor and Vbat, only 1 measurement path must be enabled.
AnnaBridge 171:3a7713b1edbc 2487 * @retval None
AnnaBridge 171:3a7713b1edbc 2488 */
AnnaBridge 171:3a7713b1edbc 2489 __STATIC_INLINE void LL_ADC_REG_SetSequencerRanks(ADC_TypeDef *ADCx, uint32_t Rank, uint32_t Channel)
AnnaBridge 171:3a7713b1edbc 2490 {
AnnaBridge 171:3a7713b1edbc 2491 /* Set bits with content of parameter "Channel" with bits position */
AnnaBridge 171:3a7713b1edbc 2492 /* in register and register position depending on parameter "Rank". */
AnnaBridge 171:3a7713b1edbc 2493 /* Parameters "Rank" and "Channel" are used with masks because containing */
AnnaBridge 171:3a7713b1edbc 2494 /* other bits reserved for other purpose. */
AnnaBridge 171:3a7713b1edbc 2495 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->SQR1, __ADC_MASK_SHIFT(Rank, ADC_REG_SQRX_REGOFFSET_MASK));
AnnaBridge 171:3a7713b1edbc 2496
AnnaBridge 171:3a7713b1edbc 2497 MODIFY_REG(*preg,
AnnaBridge 171:3a7713b1edbc 2498 ADC_CHANNEL_ID_NUMBER_MASK << (Rank & ADC_REG_RANK_ID_SQRX_MASK),
AnnaBridge 171:3a7713b1edbc 2499 (Channel & ADC_CHANNEL_ID_NUMBER_MASK) << (Rank & ADC_REG_RANK_ID_SQRX_MASK));
AnnaBridge 171:3a7713b1edbc 2500 }
AnnaBridge 171:3a7713b1edbc 2501
AnnaBridge 171:3a7713b1edbc 2502 /**
AnnaBridge 171:3a7713b1edbc 2503 * @brief Get ADC group regular sequence: channel on the selected
AnnaBridge 171:3a7713b1edbc 2504 * scan sequence rank.
AnnaBridge 171:3a7713b1edbc 2505 * @note On this STM32 serie, ADC group regular sequencer is
AnnaBridge 171:3a7713b1edbc 2506 * fully configurable: sequencer length and each rank
AnnaBridge 171:3a7713b1edbc 2507 * affectation to a channel are configurable.
AnnaBridge 171:3a7713b1edbc 2508 * Refer to description of function @ref LL_ADC_REG_SetSequencerLength().
AnnaBridge 171:3a7713b1edbc 2509 * @note Depending on devices and packages, some channels may not be available.
AnnaBridge 171:3a7713b1edbc 2510 * Refer to device datasheet for channels availability.
AnnaBridge 171:3a7713b1edbc 2511 * @note Usage of the returned channel number:
AnnaBridge 171:3a7713b1edbc 2512 * - To reinject this channel into another function LL_ADC_xxx:
AnnaBridge 171:3a7713b1edbc 2513 * the returned channel number is only partly formatted on definition
AnnaBridge 171:3a7713b1edbc 2514 * of literals LL_ADC_CHANNEL_x. Therefore, it has to be compared
AnnaBridge 171:3a7713b1edbc 2515 * with parts of literals LL_ADC_CHANNEL_x or using
AnnaBridge 171:3a7713b1edbc 2516 * helper macro @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
AnnaBridge 171:3a7713b1edbc 2517 * Then the selected literal LL_ADC_CHANNEL_x can be used
AnnaBridge 171:3a7713b1edbc 2518 * as parameter for another function.
AnnaBridge 171:3a7713b1edbc 2519 * - To get the channel number in decimal format:
AnnaBridge 171:3a7713b1edbc 2520 * process the returned value with the helper macro
AnnaBridge 171:3a7713b1edbc 2521 * @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
AnnaBridge 171:3a7713b1edbc 2522 * @rmtoll SQR3 SQ1 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2523 * SQR3 SQ2 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2524 * SQR3 SQ3 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2525 * SQR3 SQ4 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2526 * SQR3 SQ5 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2527 * SQR3 SQ6 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2528 * SQR2 SQ7 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2529 * SQR2 SQ8 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2530 * SQR2 SQ9 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2531 * SQR2 SQ10 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2532 * SQR2 SQ11 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2533 * SQR2 SQ12 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2534 * SQR1 SQ13 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2535 * SQR1 SQ14 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2536 * SQR1 SQ15 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2537 * SQR1 SQ16 LL_ADC_REG_GetSequencerRanks
AnnaBridge 171:3a7713b1edbc 2538 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2539 * @param Rank This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2540 * @arg @ref LL_ADC_REG_RANK_1
AnnaBridge 171:3a7713b1edbc 2541 * @arg @ref LL_ADC_REG_RANK_2
AnnaBridge 171:3a7713b1edbc 2542 * @arg @ref LL_ADC_REG_RANK_3
AnnaBridge 171:3a7713b1edbc 2543 * @arg @ref LL_ADC_REG_RANK_4
AnnaBridge 171:3a7713b1edbc 2544 * @arg @ref LL_ADC_REG_RANK_5
AnnaBridge 171:3a7713b1edbc 2545 * @arg @ref LL_ADC_REG_RANK_6
AnnaBridge 171:3a7713b1edbc 2546 * @arg @ref LL_ADC_REG_RANK_7
AnnaBridge 171:3a7713b1edbc 2547 * @arg @ref LL_ADC_REG_RANK_8
AnnaBridge 171:3a7713b1edbc 2548 * @arg @ref LL_ADC_REG_RANK_9
AnnaBridge 171:3a7713b1edbc 2549 * @arg @ref LL_ADC_REG_RANK_10
AnnaBridge 171:3a7713b1edbc 2550 * @arg @ref LL_ADC_REG_RANK_11
AnnaBridge 171:3a7713b1edbc 2551 * @arg @ref LL_ADC_REG_RANK_12
AnnaBridge 171:3a7713b1edbc 2552 * @arg @ref LL_ADC_REG_RANK_13
AnnaBridge 171:3a7713b1edbc 2553 * @arg @ref LL_ADC_REG_RANK_14
AnnaBridge 171:3a7713b1edbc 2554 * @arg @ref LL_ADC_REG_RANK_15
AnnaBridge 171:3a7713b1edbc 2555 * @arg @ref LL_ADC_REG_RANK_16
AnnaBridge 171:3a7713b1edbc 2556 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2557 * @arg @ref LL_ADC_CHANNEL_0
AnnaBridge 171:3a7713b1edbc 2558 * @arg @ref LL_ADC_CHANNEL_1
AnnaBridge 171:3a7713b1edbc 2559 * @arg @ref LL_ADC_CHANNEL_2
AnnaBridge 171:3a7713b1edbc 2560 * @arg @ref LL_ADC_CHANNEL_3
AnnaBridge 171:3a7713b1edbc 2561 * @arg @ref LL_ADC_CHANNEL_4
AnnaBridge 171:3a7713b1edbc 2562 * @arg @ref LL_ADC_CHANNEL_5
AnnaBridge 171:3a7713b1edbc 2563 * @arg @ref LL_ADC_CHANNEL_6
AnnaBridge 171:3a7713b1edbc 2564 * @arg @ref LL_ADC_CHANNEL_7
AnnaBridge 171:3a7713b1edbc 2565 * @arg @ref LL_ADC_CHANNEL_8
AnnaBridge 171:3a7713b1edbc 2566 * @arg @ref LL_ADC_CHANNEL_9
AnnaBridge 171:3a7713b1edbc 2567 * @arg @ref LL_ADC_CHANNEL_10
AnnaBridge 171:3a7713b1edbc 2568 * @arg @ref LL_ADC_CHANNEL_11
AnnaBridge 171:3a7713b1edbc 2569 * @arg @ref LL_ADC_CHANNEL_12
AnnaBridge 171:3a7713b1edbc 2570 * @arg @ref LL_ADC_CHANNEL_13
AnnaBridge 171:3a7713b1edbc 2571 * @arg @ref LL_ADC_CHANNEL_14
AnnaBridge 171:3a7713b1edbc 2572 * @arg @ref LL_ADC_CHANNEL_15
AnnaBridge 171:3a7713b1edbc 2573 * @arg @ref LL_ADC_CHANNEL_16
AnnaBridge 171:3a7713b1edbc 2574 * @arg @ref LL_ADC_CHANNEL_17
AnnaBridge 171:3a7713b1edbc 2575 * @arg @ref LL_ADC_CHANNEL_18
AnnaBridge 171:3a7713b1edbc 2576 * @arg @ref LL_ADC_CHANNEL_VREFINT (1)
AnnaBridge 171:3a7713b1edbc 2577 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (1)(2)
AnnaBridge 171:3a7713b1edbc 2578 * @arg @ref LL_ADC_CHANNEL_VBAT (1)
AnnaBridge 171:3a7713b1edbc 2579 *
AnnaBridge 171:3a7713b1edbc 2580 * (1) On STM32F7, parameter available only on ADC instance: ADC1.\n
AnnaBridge 171:3a7713b1edbc 2581 * (2) On devices STM32F75x, STM32F74x, STM32F76x, STM32F77x, STM32F72x and STM32F73x limitation: this internal channel is shared between temperature sensor and Vbat, only 1 measurement path must be enabled.\n
AnnaBridge 171:3a7713b1edbc 2582 * (1) For ADC channel read back from ADC register,
AnnaBridge 171:3a7713b1edbc 2583 * comparison with internal channel parameter to be done
AnnaBridge 171:3a7713b1edbc 2584 * using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL().
AnnaBridge 171:3a7713b1edbc 2585 */
AnnaBridge 171:3a7713b1edbc 2586 __STATIC_INLINE uint32_t LL_ADC_REG_GetSequencerRanks(ADC_TypeDef *ADCx, uint32_t Rank)
AnnaBridge 171:3a7713b1edbc 2587 {
AnnaBridge 171:3a7713b1edbc 2588 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->SQR1, __ADC_MASK_SHIFT(Rank, ADC_REG_SQRX_REGOFFSET_MASK));
AnnaBridge 171:3a7713b1edbc 2589
AnnaBridge 171:3a7713b1edbc 2590 return (uint32_t) (READ_BIT(*preg,
AnnaBridge 171:3a7713b1edbc 2591 ADC_CHANNEL_ID_NUMBER_MASK << (Rank & ADC_REG_RANK_ID_SQRX_MASK))
AnnaBridge 171:3a7713b1edbc 2592 >> (Rank & ADC_REG_RANK_ID_SQRX_MASK)
AnnaBridge 171:3a7713b1edbc 2593 );
AnnaBridge 171:3a7713b1edbc 2594 }
AnnaBridge 171:3a7713b1edbc 2595
AnnaBridge 171:3a7713b1edbc 2596 /**
AnnaBridge 171:3a7713b1edbc 2597 * @brief Set ADC continuous conversion mode on ADC group regular.
AnnaBridge 171:3a7713b1edbc 2598 * @note Description of ADC continuous conversion mode:
AnnaBridge 171:3a7713b1edbc 2599 * - single mode: one conversion per trigger
AnnaBridge 171:3a7713b1edbc 2600 * - continuous mode: after the first trigger, following
AnnaBridge 171:3a7713b1edbc 2601 * conversions launched successively automatically.
AnnaBridge 171:3a7713b1edbc 2602 * @note It is not possible to enable both ADC group regular
AnnaBridge 171:3a7713b1edbc 2603 * continuous mode and sequencer discontinuous mode.
AnnaBridge 171:3a7713b1edbc 2604 * @rmtoll CR2 CONT LL_ADC_REG_SetContinuousMode
AnnaBridge 171:3a7713b1edbc 2605 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2606 * @param Continuous This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2607 * @arg @ref LL_ADC_REG_CONV_SINGLE
AnnaBridge 171:3a7713b1edbc 2608 * @arg @ref LL_ADC_REG_CONV_CONTINUOUS
AnnaBridge 171:3a7713b1edbc 2609 * @retval None
AnnaBridge 171:3a7713b1edbc 2610 */
AnnaBridge 171:3a7713b1edbc 2611 __STATIC_INLINE void LL_ADC_REG_SetContinuousMode(ADC_TypeDef *ADCx, uint32_t Continuous)
AnnaBridge 171:3a7713b1edbc 2612 {
AnnaBridge 171:3a7713b1edbc 2613 MODIFY_REG(ADCx->CR2, ADC_CR2_CONT, Continuous);
AnnaBridge 171:3a7713b1edbc 2614 }
AnnaBridge 171:3a7713b1edbc 2615
AnnaBridge 171:3a7713b1edbc 2616 /**
AnnaBridge 171:3a7713b1edbc 2617 * @brief Get ADC continuous conversion mode on ADC group regular.
AnnaBridge 171:3a7713b1edbc 2618 * @note Description of ADC continuous conversion mode:
AnnaBridge 171:3a7713b1edbc 2619 * - single mode: one conversion per trigger
AnnaBridge 171:3a7713b1edbc 2620 * - continuous mode: after the first trigger, following
AnnaBridge 171:3a7713b1edbc 2621 * conversions launched successively automatically.
AnnaBridge 171:3a7713b1edbc 2622 * @rmtoll CR2 CONT LL_ADC_REG_GetContinuousMode
AnnaBridge 171:3a7713b1edbc 2623 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2624 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2625 * @arg @ref LL_ADC_REG_CONV_SINGLE
AnnaBridge 171:3a7713b1edbc 2626 * @arg @ref LL_ADC_REG_CONV_CONTINUOUS
AnnaBridge 171:3a7713b1edbc 2627 */
AnnaBridge 171:3a7713b1edbc 2628 __STATIC_INLINE uint32_t LL_ADC_REG_GetContinuousMode(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 2629 {
AnnaBridge 171:3a7713b1edbc 2630 return (uint32_t)(READ_BIT(ADCx->CR2, ADC_CR2_CONT));
AnnaBridge 171:3a7713b1edbc 2631 }
AnnaBridge 171:3a7713b1edbc 2632
AnnaBridge 171:3a7713b1edbc 2633 /**
AnnaBridge 171:3a7713b1edbc 2634 * @brief Set ADC group regular conversion data transfer: no transfer or
AnnaBridge 171:3a7713b1edbc 2635 * transfer by DMA, and DMA requests mode.
AnnaBridge 171:3a7713b1edbc 2636 * @note If transfer by DMA selected, specifies the DMA requests
AnnaBridge 171:3a7713b1edbc 2637 * mode:
AnnaBridge 171:3a7713b1edbc 2638 * - Limited mode (One shot mode): DMA transfer requests are stopped
AnnaBridge 171:3a7713b1edbc 2639 * when number of DMA data transfers (number of
AnnaBridge 171:3a7713b1edbc 2640 * ADC conversions) is reached.
AnnaBridge 171:3a7713b1edbc 2641 * This ADC mode is intended to be used with DMA mode non-circular.
AnnaBridge 171:3a7713b1edbc 2642 * - Unlimited mode: DMA transfer requests are unlimited,
AnnaBridge 171:3a7713b1edbc 2643 * whatever number of DMA data transfers (number of
AnnaBridge 171:3a7713b1edbc 2644 * ADC conversions).
AnnaBridge 171:3a7713b1edbc 2645 * This ADC mode is intended to be used with DMA mode circular.
AnnaBridge 171:3a7713b1edbc 2646 * @note If ADC DMA requests mode is set to unlimited and DMA is set to
AnnaBridge 171:3a7713b1edbc 2647 * mode non-circular:
AnnaBridge 171:3a7713b1edbc 2648 * when DMA transfers size will be reached, DMA will stop transfers of
AnnaBridge 171:3a7713b1edbc 2649 * ADC conversions data ADC will raise an overrun error
AnnaBridge 171:3a7713b1edbc 2650 * (overrun flag and interruption if enabled).
AnnaBridge 171:3a7713b1edbc 2651 * @note For devices with several ADC instances: ADC multimode DMA
AnnaBridge 171:3a7713b1edbc 2652 * settings are available using function @ref LL_ADC_SetMultiDMATransfer().
AnnaBridge 171:3a7713b1edbc 2653 * @note To configure DMA source address (peripheral address),
AnnaBridge 171:3a7713b1edbc 2654 * use function @ref LL_ADC_DMA_GetRegAddr().
AnnaBridge 171:3a7713b1edbc 2655 * @rmtoll CR2 DMA LL_ADC_REG_SetDMATransfer\n
AnnaBridge 171:3a7713b1edbc 2656 * CR2 DDS LL_ADC_REG_SetDMATransfer
AnnaBridge 171:3a7713b1edbc 2657 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2658 * @param DMATransfer This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2659 * @arg @ref LL_ADC_REG_DMA_TRANSFER_NONE
AnnaBridge 171:3a7713b1edbc 2660 * @arg @ref LL_ADC_REG_DMA_TRANSFER_LIMITED
AnnaBridge 171:3a7713b1edbc 2661 * @arg @ref LL_ADC_REG_DMA_TRANSFER_UNLIMITED
AnnaBridge 171:3a7713b1edbc 2662 * @retval None
AnnaBridge 171:3a7713b1edbc 2663 */
AnnaBridge 171:3a7713b1edbc 2664 __STATIC_INLINE void LL_ADC_REG_SetDMATransfer(ADC_TypeDef *ADCx, uint32_t DMATransfer)
AnnaBridge 171:3a7713b1edbc 2665 {
AnnaBridge 171:3a7713b1edbc 2666 MODIFY_REG(ADCx->CR2, ADC_CR2_DMA | ADC_CR2_DDS, DMATransfer);
AnnaBridge 171:3a7713b1edbc 2667 }
AnnaBridge 171:3a7713b1edbc 2668
AnnaBridge 171:3a7713b1edbc 2669 /**
AnnaBridge 171:3a7713b1edbc 2670 * @brief Get ADC group regular conversion data transfer: no transfer or
AnnaBridge 171:3a7713b1edbc 2671 * transfer by DMA, and DMA requests mode.
AnnaBridge 171:3a7713b1edbc 2672 * @note If transfer by DMA selected, specifies the DMA requests
AnnaBridge 171:3a7713b1edbc 2673 * mode:
AnnaBridge 171:3a7713b1edbc 2674 * - Limited mode (One shot mode): DMA transfer requests are stopped
AnnaBridge 171:3a7713b1edbc 2675 * when number of DMA data transfers (number of
AnnaBridge 171:3a7713b1edbc 2676 * ADC conversions) is reached.
AnnaBridge 171:3a7713b1edbc 2677 * This ADC mode is intended to be used with DMA mode non-circular.
AnnaBridge 171:3a7713b1edbc 2678 * - Unlimited mode: DMA transfer requests are unlimited,
AnnaBridge 171:3a7713b1edbc 2679 * whatever number of DMA data transfers (number of
AnnaBridge 171:3a7713b1edbc 2680 * ADC conversions).
AnnaBridge 171:3a7713b1edbc 2681 * This ADC mode is intended to be used with DMA mode circular.
AnnaBridge 171:3a7713b1edbc 2682 * @note If ADC DMA requests mode is set to unlimited and DMA is set to
AnnaBridge 171:3a7713b1edbc 2683 * mode non-circular:
AnnaBridge 171:3a7713b1edbc 2684 * when DMA transfers size will be reached, DMA will stop transfers of
AnnaBridge 171:3a7713b1edbc 2685 * ADC conversions data ADC will raise an overrun error
AnnaBridge 171:3a7713b1edbc 2686 * (overrun flag and interruption if enabled).
AnnaBridge 171:3a7713b1edbc 2687 * @note For devices with several ADC instances: ADC multimode DMA
AnnaBridge 171:3a7713b1edbc 2688 * settings are available using function @ref LL_ADC_GetMultiDMATransfer().
AnnaBridge 171:3a7713b1edbc 2689 * @note To configure DMA source address (peripheral address),
AnnaBridge 171:3a7713b1edbc 2690 * use function @ref LL_ADC_DMA_GetRegAddr().
AnnaBridge 171:3a7713b1edbc 2691 * @rmtoll CR2 DMA LL_ADC_REG_GetDMATransfer\n
AnnaBridge 171:3a7713b1edbc 2692 * CR2 DDS LL_ADC_REG_GetDMATransfer
AnnaBridge 171:3a7713b1edbc 2693 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2694 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2695 * @arg @ref LL_ADC_REG_DMA_TRANSFER_NONE
AnnaBridge 171:3a7713b1edbc 2696 * @arg @ref LL_ADC_REG_DMA_TRANSFER_LIMITED
AnnaBridge 171:3a7713b1edbc 2697 * @arg @ref LL_ADC_REG_DMA_TRANSFER_UNLIMITED
AnnaBridge 171:3a7713b1edbc 2698 */
AnnaBridge 171:3a7713b1edbc 2699 __STATIC_INLINE uint32_t LL_ADC_REG_GetDMATransfer(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 2700 {
AnnaBridge 171:3a7713b1edbc 2701 return (uint32_t)(READ_BIT(ADCx->CR2, ADC_CR2_DMA | ADC_CR2_DDS));
AnnaBridge 171:3a7713b1edbc 2702 }
AnnaBridge 171:3a7713b1edbc 2703
AnnaBridge 171:3a7713b1edbc 2704 /**
AnnaBridge 171:3a7713b1edbc 2705 * @brief Specify which ADC flag between EOC (end of unitary conversion)
AnnaBridge 171:3a7713b1edbc 2706 * or EOS (end of sequence conversions) is used to indicate
AnnaBridge 171:3a7713b1edbc 2707 * the end of conversion.
AnnaBridge 171:3a7713b1edbc 2708 * @note This feature is aimed to be set when using ADC with
AnnaBridge 171:3a7713b1edbc 2709 * programming model by polling or interruption
AnnaBridge 171:3a7713b1edbc 2710 * (programming model by DMA usually uses DMA interruptions
AnnaBridge 171:3a7713b1edbc 2711 * to indicate end of conversion and data transfer).
AnnaBridge 171:3a7713b1edbc 2712 * @note For ADC group injected, end of conversion (flag&IT) is raised
AnnaBridge 171:3a7713b1edbc 2713 * only at the end of the sequence.
AnnaBridge 171:3a7713b1edbc 2714 * @rmtoll CR2 EOCS LL_ADC_REG_SetFlagEndOfConversion
AnnaBridge 171:3a7713b1edbc 2715 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2716 * @param EocSelection This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2717 * @arg @ref LL_ADC_REG_FLAG_EOC_SEQUENCE_CONV
AnnaBridge 171:3a7713b1edbc 2718 * @arg @ref LL_ADC_REG_FLAG_EOC_UNITARY_CONV
AnnaBridge 171:3a7713b1edbc 2719 * @retval None
AnnaBridge 171:3a7713b1edbc 2720 */
AnnaBridge 171:3a7713b1edbc 2721 __STATIC_INLINE void LL_ADC_REG_SetFlagEndOfConversion(ADC_TypeDef *ADCx, uint32_t EocSelection)
AnnaBridge 171:3a7713b1edbc 2722 {
AnnaBridge 171:3a7713b1edbc 2723 MODIFY_REG(ADCx->CR2, ADC_CR2_EOCS, EocSelection);
AnnaBridge 171:3a7713b1edbc 2724 }
AnnaBridge 171:3a7713b1edbc 2725
AnnaBridge 171:3a7713b1edbc 2726 /**
AnnaBridge 171:3a7713b1edbc 2727 * @brief Get which ADC flag between EOC (end of unitary conversion)
AnnaBridge 171:3a7713b1edbc 2728 * or EOS (end of sequence conversions) is used to indicate
AnnaBridge 171:3a7713b1edbc 2729 * the end of conversion.
AnnaBridge 171:3a7713b1edbc 2730 * @rmtoll CR2 EOCS LL_ADC_REG_GetFlagEndOfConversion
AnnaBridge 171:3a7713b1edbc 2731 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2732 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2733 * @arg @ref LL_ADC_REG_FLAG_EOC_SEQUENCE_CONV
AnnaBridge 171:3a7713b1edbc 2734 * @arg @ref LL_ADC_REG_FLAG_EOC_UNITARY_CONV
AnnaBridge 171:3a7713b1edbc 2735 */
AnnaBridge 171:3a7713b1edbc 2736 __STATIC_INLINE uint32_t LL_ADC_REG_GetFlagEndOfConversion(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 2737 {
AnnaBridge 171:3a7713b1edbc 2738 return (uint32_t)(READ_BIT(ADCx->CR2, ADC_CR2_EOCS));
AnnaBridge 171:3a7713b1edbc 2739 }
AnnaBridge 171:3a7713b1edbc 2740
AnnaBridge 171:3a7713b1edbc 2741 /**
AnnaBridge 171:3a7713b1edbc 2742 * @}
AnnaBridge 171:3a7713b1edbc 2743 */
AnnaBridge 171:3a7713b1edbc 2744
AnnaBridge 171:3a7713b1edbc 2745 /** @defgroup ADC_LL_EF_Configuration_ADC_Group_Injected Configuration of ADC hierarchical scope: group injected
AnnaBridge 171:3a7713b1edbc 2746 * @{
AnnaBridge 171:3a7713b1edbc 2747 */
AnnaBridge 171:3a7713b1edbc 2748
AnnaBridge 171:3a7713b1edbc 2749 /**
AnnaBridge 171:3a7713b1edbc 2750 * @brief Set ADC group injected conversion trigger source:
AnnaBridge 171:3a7713b1edbc 2751 * internal (SW start) or from external IP (timer event,
AnnaBridge 171:3a7713b1edbc 2752 * external interrupt line).
AnnaBridge 171:3a7713b1edbc 2753 * @note On this STM32 serie, setting of external trigger edge is performed
AnnaBridge 171:3a7713b1edbc 2754 * using function @ref LL_ADC_INJ_StartConversionExtTrig().
AnnaBridge 171:3a7713b1edbc 2755 * @note Availability of parameters of trigger sources from timer
AnnaBridge 171:3a7713b1edbc 2756 * depends on timers availability on the selected device.
AnnaBridge 171:3a7713b1edbc 2757 * @rmtoll CR2 JEXTSEL LL_ADC_INJ_SetTriggerSource\n
AnnaBridge 171:3a7713b1edbc 2758 * CR2 JEXTEN LL_ADC_INJ_SetTriggerSource
AnnaBridge 171:3a7713b1edbc 2759 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2760 * @param TriggerSource This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2761 * @arg @ref LL_ADC_INJ_TRIG_SOFTWARE
AnnaBridge 171:3a7713b1edbc 2762 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_TRGO
AnnaBridge 171:3a7713b1edbc 2763 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_CH4
AnnaBridge 171:3a7713b1edbc 2764 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_TRGO
AnnaBridge 171:3a7713b1edbc 2765 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_CH1
AnnaBridge 171:3a7713b1edbc 2766 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH4
AnnaBridge 171:3a7713b1edbc 2767 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_TRGO
AnnaBridge 171:3a7713b1edbc 2768 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_CH4
AnnaBridge 171:3a7713b1edbc 2769 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_TRGO2
AnnaBridge 171:3a7713b1edbc 2770 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_TRGO
AnnaBridge 171:3a7713b1edbc 2771 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_TRGO2
AnnaBridge 171:3a7713b1edbc 2772 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH3
AnnaBridge 171:3a7713b1edbc 2773 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM5_TRGO
AnnaBridge 171:3a7713b1edbc 2774 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH1
AnnaBridge 171:3a7713b1edbc 2775 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM6_TRGO
AnnaBridge 171:3a7713b1edbc 2776 * @retval None
AnnaBridge 171:3a7713b1edbc 2777 */
AnnaBridge 171:3a7713b1edbc 2778 __STATIC_INLINE void LL_ADC_INJ_SetTriggerSource(ADC_TypeDef *ADCx, uint32_t TriggerSource)
AnnaBridge 171:3a7713b1edbc 2779 {
AnnaBridge 171:3a7713b1edbc 2780 /* Note: On this STM32 serie, ADC group injected external trigger edge */
AnnaBridge 171:3a7713b1edbc 2781 /* is used to perform a ADC conversion start. */
AnnaBridge 171:3a7713b1edbc 2782 /* This function does not set external trigger edge. */
AnnaBridge 171:3a7713b1edbc 2783 /* This feature is set using function */
AnnaBridge 171:3a7713b1edbc 2784 /* @ref LL_ADC_INJ_StartConversionExtTrig(). */
AnnaBridge 171:3a7713b1edbc 2785 MODIFY_REG(ADCx->CR2, ADC_CR2_JEXTSEL, (TriggerSource & ADC_CR2_JEXTSEL));
AnnaBridge 171:3a7713b1edbc 2786 }
AnnaBridge 171:3a7713b1edbc 2787
AnnaBridge 171:3a7713b1edbc 2788 /**
AnnaBridge 171:3a7713b1edbc 2789 * @brief Get ADC group injected conversion trigger source:
AnnaBridge 171:3a7713b1edbc 2790 * internal (SW start) or from external IP (timer event,
AnnaBridge 171:3a7713b1edbc 2791 * external interrupt line).
AnnaBridge 171:3a7713b1edbc 2792 * @note To determine whether group injected trigger source is
AnnaBridge 171:3a7713b1edbc 2793 * internal (SW start) or external, without detail
AnnaBridge 171:3a7713b1edbc 2794 * of which peripheral is selected as external trigger,
AnnaBridge 171:3a7713b1edbc 2795 * (equivalent to
AnnaBridge 171:3a7713b1edbc 2796 * "if(LL_ADC_INJ_GetTriggerSource(ADC1) == LL_ADC_INJ_TRIG_SOFTWARE)")
AnnaBridge 171:3a7713b1edbc 2797 * use function @ref LL_ADC_INJ_IsTriggerSourceSWStart.
AnnaBridge 171:3a7713b1edbc 2798 * @note Availability of parameters of trigger sources from timer
AnnaBridge 171:3a7713b1edbc 2799 * depends on timers availability on the selected device.
AnnaBridge 171:3a7713b1edbc 2800 * @rmtoll CR2 JEXTSEL LL_ADC_INJ_GetTriggerSource\n
AnnaBridge 171:3a7713b1edbc 2801 * CR2 JEXTEN LL_ADC_INJ_GetTriggerSource
AnnaBridge 171:3a7713b1edbc 2802 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2803 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2804 * @arg @ref LL_ADC_INJ_TRIG_SOFTWARE
AnnaBridge 171:3a7713b1edbc 2805 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_TRGO
AnnaBridge 171:3a7713b1edbc 2806 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_CH4
AnnaBridge 171:3a7713b1edbc 2807 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_TRGO
AnnaBridge 171:3a7713b1edbc 2808 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_CH1
AnnaBridge 171:3a7713b1edbc 2809 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH4
AnnaBridge 171:3a7713b1edbc 2810 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_TRGO
AnnaBridge 171:3a7713b1edbc 2811 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_CH4
AnnaBridge 171:3a7713b1edbc 2812 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_TRGO2
AnnaBridge 171:3a7713b1edbc 2813 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_TRGO
AnnaBridge 171:3a7713b1edbc 2814 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_TRGO2
AnnaBridge 171:3a7713b1edbc 2815 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH3
AnnaBridge 171:3a7713b1edbc 2816 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM5_TRGO
AnnaBridge 171:3a7713b1edbc 2817 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH1
AnnaBridge 171:3a7713b1edbc 2818 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM6_TRGO
AnnaBridge 171:3a7713b1edbc 2819 */
AnnaBridge 171:3a7713b1edbc 2820 __STATIC_INLINE uint32_t LL_ADC_INJ_GetTriggerSource(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 2821 {
AnnaBridge 171:3a7713b1edbc 2822 register uint32_t TriggerSource = READ_BIT(ADCx->CR2, ADC_CR2_JEXTSEL | ADC_CR2_JEXTEN);
AnnaBridge 171:3a7713b1edbc 2823
AnnaBridge 171:3a7713b1edbc 2824 /* Value for shift of {0; 4; 8; 12} depending on value of bitfield */
AnnaBridge 171:3a7713b1edbc 2825 /* corresponding to ADC_CR2_JEXTEN {0; 1; 2; 3}. */
AnnaBridge 171:3a7713b1edbc 2826 register uint32_t ShiftExten = ((TriggerSource & ADC_CR2_JEXTEN) >> (ADC_INJ_TRIG_EXTEN_BITOFFSET_POS - 2U));
AnnaBridge 171:3a7713b1edbc 2827
AnnaBridge 171:3a7713b1edbc 2828 /* Set bitfield corresponding to ADC_CR2_JEXTEN and ADC_CR2_JEXTSEL */
AnnaBridge 171:3a7713b1edbc 2829 /* to match with triggers literals definition. */
AnnaBridge 171:3a7713b1edbc 2830 return ((TriggerSource
AnnaBridge 171:3a7713b1edbc 2831 & (ADC_INJ_TRIG_SOURCE_MASK << ShiftExten) & ADC_CR2_JEXTSEL)
AnnaBridge 171:3a7713b1edbc 2832 | ((ADC_INJ_TRIG_EDGE_MASK << ShiftExten) & ADC_CR2_JEXTEN)
AnnaBridge 171:3a7713b1edbc 2833 );
AnnaBridge 171:3a7713b1edbc 2834 }
AnnaBridge 171:3a7713b1edbc 2835
AnnaBridge 171:3a7713b1edbc 2836 /**
AnnaBridge 171:3a7713b1edbc 2837 * @brief Get ADC group injected conversion trigger source internal (SW start)
AnnaBridge 171:3a7713b1edbc 2838 or external
AnnaBridge 171:3a7713b1edbc 2839 * @note In case of group injected trigger source set to external trigger,
AnnaBridge 171:3a7713b1edbc 2840 * to determine which peripheral is selected as external trigger,
AnnaBridge 171:3a7713b1edbc 2841 * use function @ref LL_ADC_INJ_GetTriggerSource.
AnnaBridge 171:3a7713b1edbc 2842 * @rmtoll CR2 JEXTEN LL_ADC_INJ_IsTriggerSourceSWStart
AnnaBridge 171:3a7713b1edbc 2843 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2844 * @retval Value "0" if trigger source external trigger
AnnaBridge 171:3a7713b1edbc 2845 * Value "1" if trigger source SW start.
AnnaBridge 171:3a7713b1edbc 2846 */
AnnaBridge 171:3a7713b1edbc 2847 __STATIC_INLINE uint32_t LL_ADC_INJ_IsTriggerSourceSWStart(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 2848 {
AnnaBridge 171:3a7713b1edbc 2849 return (READ_BIT(ADCx->CR2, ADC_CR2_JEXTEN) == (LL_ADC_INJ_TRIG_SOFTWARE & ADC_CR2_JEXTEN));
AnnaBridge 171:3a7713b1edbc 2850 }
AnnaBridge 171:3a7713b1edbc 2851
AnnaBridge 171:3a7713b1edbc 2852 /**
AnnaBridge 171:3a7713b1edbc 2853 * @brief Get ADC group injected conversion trigger polarity.
AnnaBridge 171:3a7713b1edbc 2854 * Applicable only for trigger source set to external trigger.
AnnaBridge 171:3a7713b1edbc 2855 * @rmtoll CR2 JEXTEN LL_ADC_INJ_GetTriggerEdge
AnnaBridge 171:3a7713b1edbc 2856 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2857 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2858 * @arg @ref LL_ADC_INJ_TRIG_EXT_RISING
AnnaBridge 171:3a7713b1edbc 2859 * @arg @ref LL_ADC_INJ_TRIG_EXT_FALLING
AnnaBridge 171:3a7713b1edbc 2860 * @arg @ref LL_ADC_INJ_TRIG_EXT_RISINGFALLING
AnnaBridge 171:3a7713b1edbc 2861 */
AnnaBridge 171:3a7713b1edbc 2862 __STATIC_INLINE uint32_t LL_ADC_INJ_GetTriggerEdge(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 2863 {
AnnaBridge 171:3a7713b1edbc 2864 return (uint32_t)(READ_BIT(ADCx->CR2, ADC_CR2_JEXTEN));
AnnaBridge 171:3a7713b1edbc 2865 }
AnnaBridge 171:3a7713b1edbc 2866
AnnaBridge 171:3a7713b1edbc 2867 /**
AnnaBridge 171:3a7713b1edbc 2868 * @brief Set ADC group injected sequencer length and scan direction.
AnnaBridge 171:3a7713b1edbc 2869 * @note This function performs configuration of:
AnnaBridge 171:3a7713b1edbc 2870 * - Sequence length: Number of ranks in the scan sequence.
AnnaBridge 171:3a7713b1edbc 2871 * - Sequence direction: Unless specified in parameters, sequencer
AnnaBridge 171:3a7713b1edbc 2872 * scan direction is forward (from rank 1 to rank n).
AnnaBridge 171:3a7713b1edbc 2873 * @note On this STM32 serie, group injected sequencer configuration
AnnaBridge 171:3a7713b1edbc 2874 * is conditioned to ADC instance sequencer mode.
AnnaBridge 171:3a7713b1edbc 2875 * If ADC instance sequencer mode is disabled, sequencers of
AnnaBridge 171:3a7713b1edbc 2876 * all groups (group regular, group injected) can be configured
AnnaBridge 171:3a7713b1edbc 2877 * but their execution is disabled (limited to rank 1).
AnnaBridge 171:3a7713b1edbc 2878 * Refer to function @ref LL_ADC_SetSequencersScanMode().
AnnaBridge 171:3a7713b1edbc 2879 * @note Sequencer disabled is equivalent to sequencer of 1 rank:
AnnaBridge 171:3a7713b1edbc 2880 * ADC conversion on only 1 channel.
AnnaBridge 171:3a7713b1edbc 2881 * @rmtoll JSQR JL LL_ADC_INJ_SetSequencerLength
AnnaBridge 171:3a7713b1edbc 2882 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2883 * @param SequencerNbRanks This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2884 * @arg @ref LL_ADC_INJ_SEQ_SCAN_DISABLE
AnnaBridge 171:3a7713b1edbc 2885 * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_2RANKS
AnnaBridge 171:3a7713b1edbc 2886 * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_3RANKS
AnnaBridge 171:3a7713b1edbc 2887 * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_4RANKS
AnnaBridge 171:3a7713b1edbc 2888 * @retval None
AnnaBridge 171:3a7713b1edbc 2889 */
AnnaBridge 171:3a7713b1edbc 2890 __STATIC_INLINE void LL_ADC_INJ_SetSequencerLength(ADC_TypeDef *ADCx, uint32_t SequencerNbRanks)
AnnaBridge 171:3a7713b1edbc 2891 {
AnnaBridge 171:3a7713b1edbc 2892 MODIFY_REG(ADCx->JSQR, ADC_JSQR_JL, SequencerNbRanks);
AnnaBridge 171:3a7713b1edbc 2893 }
AnnaBridge 171:3a7713b1edbc 2894
AnnaBridge 171:3a7713b1edbc 2895 /**
AnnaBridge 171:3a7713b1edbc 2896 * @brief Get ADC group injected sequencer length and scan direction.
AnnaBridge 171:3a7713b1edbc 2897 * @note This function retrieves:
AnnaBridge 171:3a7713b1edbc 2898 * - Sequence length: Number of ranks in the scan sequence.
AnnaBridge 171:3a7713b1edbc 2899 * - Sequence direction: Unless specified in parameters, sequencer
AnnaBridge 171:3a7713b1edbc 2900 * scan direction is forward (from rank 1 to rank n).
AnnaBridge 171:3a7713b1edbc 2901 * @note On this STM32 serie, group injected sequencer configuration
AnnaBridge 171:3a7713b1edbc 2902 * is conditioned to ADC instance sequencer mode.
AnnaBridge 171:3a7713b1edbc 2903 * If ADC instance sequencer mode is disabled, sequencers of
AnnaBridge 171:3a7713b1edbc 2904 * all groups (group regular, group injected) can be configured
AnnaBridge 171:3a7713b1edbc 2905 * but their execution is disabled (limited to rank 1).
AnnaBridge 171:3a7713b1edbc 2906 * Refer to function @ref LL_ADC_SetSequencersScanMode().
AnnaBridge 171:3a7713b1edbc 2907 * @note Sequencer disabled is equivalent to sequencer of 1 rank:
AnnaBridge 171:3a7713b1edbc 2908 * ADC conversion on only 1 channel.
AnnaBridge 171:3a7713b1edbc 2909 * @rmtoll JSQR JL LL_ADC_INJ_GetSequencerLength
AnnaBridge 171:3a7713b1edbc 2910 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2911 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2912 * @arg @ref LL_ADC_INJ_SEQ_SCAN_DISABLE
AnnaBridge 171:3a7713b1edbc 2913 * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_2RANKS
AnnaBridge 171:3a7713b1edbc 2914 * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_3RANKS
AnnaBridge 171:3a7713b1edbc 2915 * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_4RANKS
AnnaBridge 171:3a7713b1edbc 2916 */
AnnaBridge 171:3a7713b1edbc 2917 __STATIC_INLINE uint32_t LL_ADC_INJ_GetSequencerLength(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 2918 {
AnnaBridge 171:3a7713b1edbc 2919 return (uint32_t)(READ_BIT(ADCx->JSQR, ADC_JSQR_JL));
AnnaBridge 171:3a7713b1edbc 2920 }
AnnaBridge 171:3a7713b1edbc 2921
AnnaBridge 171:3a7713b1edbc 2922 /**
AnnaBridge 171:3a7713b1edbc 2923 * @brief Set ADC group injected sequencer discontinuous mode:
AnnaBridge 171:3a7713b1edbc 2924 * sequence subdivided and scan conversions interrupted every selected
AnnaBridge 171:3a7713b1edbc 2925 * number of ranks.
AnnaBridge 171:3a7713b1edbc 2926 * @note It is not possible to enable both ADC group injected
AnnaBridge 171:3a7713b1edbc 2927 * auto-injected mode and sequencer discontinuous mode.
AnnaBridge 171:3a7713b1edbc 2928 * @rmtoll CR1 DISCEN LL_ADC_INJ_SetSequencerDiscont
AnnaBridge 171:3a7713b1edbc 2929 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2930 * @param SeqDiscont This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2931 * @arg @ref LL_ADC_INJ_SEQ_DISCONT_DISABLE
AnnaBridge 171:3a7713b1edbc 2932 * @arg @ref LL_ADC_INJ_SEQ_DISCONT_1RANK
AnnaBridge 171:3a7713b1edbc 2933 * @retval None
AnnaBridge 171:3a7713b1edbc 2934 */
AnnaBridge 171:3a7713b1edbc 2935 __STATIC_INLINE void LL_ADC_INJ_SetSequencerDiscont(ADC_TypeDef *ADCx, uint32_t SeqDiscont)
AnnaBridge 171:3a7713b1edbc 2936 {
AnnaBridge 171:3a7713b1edbc 2937 MODIFY_REG(ADCx->CR1, ADC_CR1_JDISCEN, SeqDiscont);
AnnaBridge 171:3a7713b1edbc 2938 }
AnnaBridge 171:3a7713b1edbc 2939
AnnaBridge 171:3a7713b1edbc 2940 /**
AnnaBridge 171:3a7713b1edbc 2941 * @brief Get ADC group injected sequencer discontinuous mode:
AnnaBridge 171:3a7713b1edbc 2942 * sequence subdivided and scan conversions interrupted every selected
AnnaBridge 171:3a7713b1edbc 2943 * number of ranks.
AnnaBridge 171:3a7713b1edbc 2944 * @rmtoll CR1 DISCEN LL_ADC_REG_GetSequencerDiscont
AnnaBridge 171:3a7713b1edbc 2945 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2946 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2947 * @arg @ref LL_ADC_INJ_SEQ_DISCONT_DISABLE
AnnaBridge 171:3a7713b1edbc 2948 * @arg @ref LL_ADC_INJ_SEQ_DISCONT_1RANK
AnnaBridge 171:3a7713b1edbc 2949 */
AnnaBridge 171:3a7713b1edbc 2950 __STATIC_INLINE uint32_t LL_ADC_INJ_GetSequencerDiscont(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 2951 {
AnnaBridge 171:3a7713b1edbc 2952 return (uint32_t)(READ_BIT(ADCx->CR1, ADC_CR1_JDISCEN));
AnnaBridge 171:3a7713b1edbc 2953 }
AnnaBridge 171:3a7713b1edbc 2954
AnnaBridge 171:3a7713b1edbc 2955 /**
AnnaBridge 171:3a7713b1edbc 2956 * @brief Set ADC group injected sequence: channel on the selected
AnnaBridge 171:3a7713b1edbc 2957 * sequence rank.
AnnaBridge 171:3a7713b1edbc 2958 * @note Depending on devices and packages, some channels may not be available.
AnnaBridge 171:3a7713b1edbc 2959 * Refer to device datasheet for channels availability.
AnnaBridge 171:3a7713b1edbc 2960 * @note On this STM32 serie, to measure internal channels (VrefInt,
AnnaBridge 171:3a7713b1edbc 2961 * TempSensor, ...), measurement paths to internal channels must be
AnnaBridge 171:3a7713b1edbc 2962 * enabled separately.
AnnaBridge 171:3a7713b1edbc 2963 * This can be done using function @ref LL_ADC_SetCommonPathInternalCh().
AnnaBridge 171:3a7713b1edbc 2964 * @rmtoll JSQR JSQ1 LL_ADC_INJ_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2965 * JSQR JSQ2 LL_ADC_INJ_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2966 * JSQR JSQ3 LL_ADC_INJ_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2967 * JSQR JSQ4 LL_ADC_INJ_SetSequencerRanks
AnnaBridge 171:3a7713b1edbc 2968 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2969 * @param Rank This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2970 * @arg @ref LL_ADC_INJ_RANK_1
AnnaBridge 171:3a7713b1edbc 2971 * @arg @ref LL_ADC_INJ_RANK_2
AnnaBridge 171:3a7713b1edbc 2972 * @arg @ref LL_ADC_INJ_RANK_3
AnnaBridge 171:3a7713b1edbc 2973 * @arg @ref LL_ADC_INJ_RANK_4
AnnaBridge 171:3a7713b1edbc 2974 * @param Channel This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2975 * @arg @ref LL_ADC_CHANNEL_0
AnnaBridge 171:3a7713b1edbc 2976 * @arg @ref LL_ADC_CHANNEL_1
AnnaBridge 171:3a7713b1edbc 2977 * @arg @ref LL_ADC_CHANNEL_2
AnnaBridge 171:3a7713b1edbc 2978 * @arg @ref LL_ADC_CHANNEL_3
AnnaBridge 171:3a7713b1edbc 2979 * @arg @ref LL_ADC_CHANNEL_4
AnnaBridge 171:3a7713b1edbc 2980 * @arg @ref LL_ADC_CHANNEL_5
AnnaBridge 171:3a7713b1edbc 2981 * @arg @ref LL_ADC_CHANNEL_6
AnnaBridge 171:3a7713b1edbc 2982 * @arg @ref LL_ADC_CHANNEL_7
AnnaBridge 171:3a7713b1edbc 2983 * @arg @ref LL_ADC_CHANNEL_8
AnnaBridge 171:3a7713b1edbc 2984 * @arg @ref LL_ADC_CHANNEL_9
AnnaBridge 171:3a7713b1edbc 2985 * @arg @ref LL_ADC_CHANNEL_10
AnnaBridge 171:3a7713b1edbc 2986 * @arg @ref LL_ADC_CHANNEL_11
AnnaBridge 171:3a7713b1edbc 2987 * @arg @ref LL_ADC_CHANNEL_12
AnnaBridge 171:3a7713b1edbc 2988 * @arg @ref LL_ADC_CHANNEL_13
AnnaBridge 171:3a7713b1edbc 2989 * @arg @ref LL_ADC_CHANNEL_14
AnnaBridge 171:3a7713b1edbc 2990 * @arg @ref LL_ADC_CHANNEL_15
AnnaBridge 171:3a7713b1edbc 2991 * @arg @ref LL_ADC_CHANNEL_16
AnnaBridge 171:3a7713b1edbc 2992 * @arg @ref LL_ADC_CHANNEL_17
AnnaBridge 171:3a7713b1edbc 2993 * @arg @ref LL_ADC_CHANNEL_18
AnnaBridge 171:3a7713b1edbc 2994 * @arg @ref LL_ADC_CHANNEL_VREFINT (1)
AnnaBridge 171:3a7713b1edbc 2995 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (1)(2)
AnnaBridge 171:3a7713b1edbc 2996 * @arg @ref LL_ADC_CHANNEL_VBAT (1)
AnnaBridge 171:3a7713b1edbc 2997 *
AnnaBridge 171:3a7713b1edbc 2998 * (1) On STM32F7, parameter available only on ADC instance: ADC1.\n
AnnaBridge 171:3a7713b1edbc 2999 * (2) On devices STM32F75x, STM32F74x, STM32F76x, STM32F77x, STM32F72x and STM32F73x: this internal channel is shared between temperature sensor and Vbat, only 1 measurement path must be enabled.
AnnaBridge 171:3a7713b1edbc 3000 * @retval None
AnnaBridge 171:3a7713b1edbc 3001 */
AnnaBridge 171:3a7713b1edbc 3002 __STATIC_INLINE void LL_ADC_INJ_SetSequencerRanks(ADC_TypeDef *ADCx, uint32_t Rank, uint32_t Channel)
AnnaBridge 171:3a7713b1edbc 3003 {
AnnaBridge 171:3a7713b1edbc 3004 /* Set bits with content of parameter "Channel" with bits position */
AnnaBridge 171:3a7713b1edbc 3005 /* in register depending on parameter "Rank". */
AnnaBridge 171:3a7713b1edbc 3006 /* Parameters "Rank" and "Channel" are used with masks because containing */
AnnaBridge 171:3a7713b1edbc 3007 /* other bits reserved for other purpose. */
AnnaBridge 171:3a7713b1edbc 3008 MODIFY_REG(ADCx->JSQR,
AnnaBridge 171:3a7713b1edbc 3009 ADC_CHANNEL_ID_NUMBER_MASK << (Rank & ADC_INJ_RANK_ID_JSQR_MASK),
AnnaBridge 171:3a7713b1edbc 3010 (Channel & ADC_CHANNEL_ID_NUMBER_MASK) << (Rank & ADC_INJ_RANK_ID_JSQR_MASK));
AnnaBridge 171:3a7713b1edbc 3011 }
AnnaBridge 171:3a7713b1edbc 3012
AnnaBridge 171:3a7713b1edbc 3013 /**
AnnaBridge 171:3a7713b1edbc 3014 * @brief Get ADC group injected sequence: channel on the selected
AnnaBridge 171:3a7713b1edbc 3015 * sequence rank.
AnnaBridge 171:3a7713b1edbc 3016 * @note Depending on devices and packages, some channels may not be available.
AnnaBridge 171:3a7713b1edbc 3017 * Refer to device datasheet for channels availability.
AnnaBridge 171:3a7713b1edbc 3018 * @note Usage of the returned channel number:
AnnaBridge 171:3a7713b1edbc 3019 * - To reinject this channel into another function LL_ADC_xxx:
AnnaBridge 171:3a7713b1edbc 3020 * the returned channel number is only partly formatted on definition
AnnaBridge 171:3a7713b1edbc 3021 * of literals LL_ADC_CHANNEL_x. Therefore, it has to be compared
AnnaBridge 171:3a7713b1edbc 3022 * with parts of literals LL_ADC_CHANNEL_x or using
AnnaBridge 171:3a7713b1edbc 3023 * helper macro @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
AnnaBridge 171:3a7713b1edbc 3024 * Then the selected literal LL_ADC_CHANNEL_x can be used
AnnaBridge 171:3a7713b1edbc 3025 * as parameter for another function.
AnnaBridge 171:3a7713b1edbc 3026 * - To get the channel number in decimal format:
AnnaBridge 171:3a7713b1edbc 3027 * process the returned value with the helper macro
AnnaBridge 171:3a7713b1edbc 3028 * @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
AnnaBridge 171:3a7713b1edbc 3029 * @rmtoll JSQR JSQ1 LL_ADC_INJ_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 3030 * JSQR JSQ2 LL_ADC_INJ_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 3031 * JSQR JSQ3 LL_ADC_INJ_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 3032 * JSQR JSQ4 LL_ADC_INJ_SetSequencerRanks
AnnaBridge 171:3a7713b1edbc 3033 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 3034 * @param Rank This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3035 * @arg @ref LL_ADC_INJ_RANK_1
AnnaBridge 171:3a7713b1edbc 3036 * @arg @ref LL_ADC_INJ_RANK_2
AnnaBridge 171:3a7713b1edbc 3037 * @arg @ref LL_ADC_INJ_RANK_3
AnnaBridge 171:3a7713b1edbc 3038 * @arg @ref LL_ADC_INJ_RANK_4
AnnaBridge 171:3a7713b1edbc 3039 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3040 * @arg @ref LL_ADC_CHANNEL_0
AnnaBridge 171:3a7713b1edbc 3041 * @arg @ref LL_ADC_CHANNEL_1
AnnaBridge 171:3a7713b1edbc 3042 * @arg @ref LL_ADC_CHANNEL_2
AnnaBridge 171:3a7713b1edbc 3043 * @arg @ref LL_ADC_CHANNEL_3
AnnaBridge 171:3a7713b1edbc 3044 * @arg @ref LL_ADC_CHANNEL_4
AnnaBridge 171:3a7713b1edbc 3045 * @arg @ref LL_ADC_CHANNEL_5
AnnaBridge 171:3a7713b1edbc 3046 * @arg @ref LL_ADC_CHANNEL_6
AnnaBridge 171:3a7713b1edbc 3047 * @arg @ref LL_ADC_CHANNEL_7
AnnaBridge 171:3a7713b1edbc 3048 * @arg @ref LL_ADC_CHANNEL_8
AnnaBridge 171:3a7713b1edbc 3049 * @arg @ref LL_ADC_CHANNEL_9
AnnaBridge 171:3a7713b1edbc 3050 * @arg @ref LL_ADC_CHANNEL_10
AnnaBridge 171:3a7713b1edbc 3051 * @arg @ref LL_ADC_CHANNEL_11
AnnaBridge 171:3a7713b1edbc 3052 * @arg @ref LL_ADC_CHANNEL_12
AnnaBridge 171:3a7713b1edbc 3053 * @arg @ref LL_ADC_CHANNEL_13
AnnaBridge 171:3a7713b1edbc 3054 * @arg @ref LL_ADC_CHANNEL_14
AnnaBridge 171:3a7713b1edbc 3055 * @arg @ref LL_ADC_CHANNEL_15
AnnaBridge 171:3a7713b1edbc 3056 * @arg @ref LL_ADC_CHANNEL_16
AnnaBridge 171:3a7713b1edbc 3057 * @arg @ref LL_ADC_CHANNEL_17
AnnaBridge 171:3a7713b1edbc 3058 * @arg @ref LL_ADC_CHANNEL_18
AnnaBridge 171:3a7713b1edbc 3059 * @arg @ref LL_ADC_CHANNEL_VREFINT (1)
AnnaBridge 171:3a7713b1edbc 3060 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (1)(2)
AnnaBridge 171:3a7713b1edbc 3061 * @arg @ref LL_ADC_CHANNEL_VBAT (1)
AnnaBridge 171:3a7713b1edbc 3062 *
AnnaBridge 171:3a7713b1edbc 3063 * (1) On STM32F7, parameter available only on ADC instance: ADC1.\n
AnnaBridge 171:3a7713b1edbc 3064 * (2) On devices STM32F75x, STM32F74x, STM32F76x, STM32F77x, STM32F72x and STM32F73x limitation: this internal channel is shared between temperature sensor and Vbat, only 1 measurement path must be enabled.\n
AnnaBridge 171:3a7713b1edbc 3065 * (1) For ADC channel read back from ADC register,
AnnaBridge 171:3a7713b1edbc 3066 * comparison with internal channel parameter to be done
AnnaBridge 171:3a7713b1edbc 3067 * using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL().
AnnaBridge 171:3a7713b1edbc 3068 */
AnnaBridge 171:3a7713b1edbc 3069 __STATIC_INLINE uint32_t LL_ADC_INJ_GetSequencerRanks(ADC_TypeDef *ADCx, uint32_t Rank)
AnnaBridge 171:3a7713b1edbc 3070 {
AnnaBridge 171:3a7713b1edbc 3071 return (uint32_t)(READ_BIT(ADCx->JSQR,
AnnaBridge 171:3a7713b1edbc 3072 ADC_CHANNEL_ID_NUMBER_MASK << (Rank & ADC_INJ_RANK_ID_JSQR_MASK))
AnnaBridge 171:3a7713b1edbc 3073 >> (Rank & ADC_INJ_RANK_ID_JSQR_MASK)
AnnaBridge 171:3a7713b1edbc 3074 );
AnnaBridge 171:3a7713b1edbc 3075 }
AnnaBridge 171:3a7713b1edbc 3076
AnnaBridge 171:3a7713b1edbc 3077 /**
AnnaBridge 171:3a7713b1edbc 3078 * @brief Set ADC group injected conversion trigger:
AnnaBridge 171:3a7713b1edbc 3079 * independent or from ADC group regular.
AnnaBridge 171:3a7713b1edbc 3080 * @note This mode can be used to extend number of data registers
AnnaBridge 171:3a7713b1edbc 3081 * updated after one ADC conversion trigger and with data
AnnaBridge 171:3a7713b1edbc 3082 * permanently kept (not erased by successive conversions of scan of
AnnaBridge 171:3a7713b1edbc 3083 * ADC sequencer ranks), up to 5 data registers:
AnnaBridge 171:3a7713b1edbc 3084 * 1 data register on ADC group regular, 4 data registers
AnnaBridge 171:3a7713b1edbc 3085 * on ADC group injected.
AnnaBridge 171:3a7713b1edbc 3086 * @note If ADC group injected injected trigger source is set to an
AnnaBridge 171:3a7713b1edbc 3087 * external trigger, this feature must be must be set to
AnnaBridge 171:3a7713b1edbc 3088 * independent trigger.
AnnaBridge 171:3a7713b1edbc 3089 * ADC group injected automatic trigger is compliant only with
AnnaBridge 171:3a7713b1edbc 3090 * group injected trigger source set to SW start, without any
AnnaBridge 171:3a7713b1edbc 3091 * further action on ADC group injected conversion start or stop:
AnnaBridge 171:3a7713b1edbc 3092 * in this case, ADC group injected is controlled only
AnnaBridge 171:3a7713b1edbc 3093 * from ADC group regular.
AnnaBridge 171:3a7713b1edbc 3094 * @note It is not possible to enable both ADC group injected
AnnaBridge 171:3a7713b1edbc 3095 * auto-injected mode and sequencer discontinuous mode.
AnnaBridge 171:3a7713b1edbc 3096 * @rmtoll CR1 JAUTO LL_ADC_INJ_SetTrigAuto
AnnaBridge 171:3a7713b1edbc 3097 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 3098 * @param TrigAuto This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3099 * @arg @ref LL_ADC_INJ_TRIG_INDEPENDENT
AnnaBridge 171:3a7713b1edbc 3100 * @arg @ref LL_ADC_INJ_TRIG_FROM_GRP_REGULAR
AnnaBridge 171:3a7713b1edbc 3101 * @retval None
AnnaBridge 171:3a7713b1edbc 3102 */
AnnaBridge 171:3a7713b1edbc 3103 __STATIC_INLINE void LL_ADC_INJ_SetTrigAuto(ADC_TypeDef *ADCx, uint32_t TrigAuto)
AnnaBridge 171:3a7713b1edbc 3104 {
AnnaBridge 171:3a7713b1edbc 3105 MODIFY_REG(ADCx->CR1, ADC_CR1_JAUTO, TrigAuto);
AnnaBridge 171:3a7713b1edbc 3106 }
AnnaBridge 171:3a7713b1edbc 3107
AnnaBridge 171:3a7713b1edbc 3108 /**
AnnaBridge 171:3a7713b1edbc 3109 * @brief Get ADC group injected conversion trigger:
AnnaBridge 171:3a7713b1edbc 3110 * independent or from ADC group regular.
AnnaBridge 171:3a7713b1edbc 3111 * @rmtoll CR1 JAUTO LL_ADC_INJ_GetTrigAuto
AnnaBridge 171:3a7713b1edbc 3112 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 3113 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3114 * @arg @ref LL_ADC_INJ_TRIG_INDEPENDENT
AnnaBridge 171:3a7713b1edbc 3115 * @arg @ref LL_ADC_INJ_TRIG_FROM_GRP_REGULAR
AnnaBridge 171:3a7713b1edbc 3116 */
AnnaBridge 171:3a7713b1edbc 3117 __STATIC_INLINE uint32_t LL_ADC_INJ_GetTrigAuto(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 3118 {
AnnaBridge 171:3a7713b1edbc 3119 return (uint32_t)(READ_BIT(ADCx->CR1, ADC_CR1_JAUTO));
AnnaBridge 171:3a7713b1edbc 3120 }
AnnaBridge 171:3a7713b1edbc 3121
AnnaBridge 171:3a7713b1edbc 3122 /**
AnnaBridge 171:3a7713b1edbc 3123 * @brief Set ADC group injected offset.
AnnaBridge 171:3a7713b1edbc 3124 * @note It sets:
AnnaBridge 171:3a7713b1edbc 3125 * - ADC group injected rank to which the offset programmed
AnnaBridge 171:3a7713b1edbc 3126 * will be applied
AnnaBridge 171:3a7713b1edbc 3127 * - Offset level (offset to be subtracted from the raw
AnnaBridge 171:3a7713b1edbc 3128 * converted data).
AnnaBridge 171:3a7713b1edbc 3129 * Caution: Offset format is dependent to ADC resolution:
AnnaBridge 171:3a7713b1edbc 3130 * offset has to be left-aligned on bit 11, the LSB (right bits)
AnnaBridge 171:3a7713b1edbc 3131 * are set to 0.
AnnaBridge 171:3a7713b1edbc 3132 * @note Offset cannot be enabled or disabled.
AnnaBridge 171:3a7713b1edbc 3133 * To emulate offset disabled, set an offset value equal to 0.
AnnaBridge 171:3a7713b1edbc 3134 * @rmtoll JOFR1 JOFFSET1 LL_ADC_INJ_SetOffset\n
AnnaBridge 171:3a7713b1edbc 3135 * JOFR2 JOFFSET2 LL_ADC_INJ_SetOffset\n
AnnaBridge 171:3a7713b1edbc 3136 * JOFR3 JOFFSET3 LL_ADC_INJ_SetOffset\n
AnnaBridge 171:3a7713b1edbc 3137 * JOFR4 JOFFSET4 LL_ADC_INJ_SetOffset
AnnaBridge 171:3a7713b1edbc 3138 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 3139 * @param Rank This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3140 * @arg @ref LL_ADC_INJ_RANK_1
AnnaBridge 171:3a7713b1edbc 3141 * @arg @ref LL_ADC_INJ_RANK_2
AnnaBridge 171:3a7713b1edbc 3142 * @arg @ref LL_ADC_INJ_RANK_3
AnnaBridge 171:3a7713b1edbc 3143 * @arg @ref LL_ADC_INJ_RANK_4
AnnaBridge 171:3a7713b1edbc 3144 * @param OffsetLevel Value between Min_Data=0x000 and Max_Data=0xFFF
AnnaBridge 171:3a7713b1edbc 3145 * @retval None
AnnaBridge 171:3a7713b1edbc 3146 */
AnnaBridge 171:3a7713b1edbc 3147 __STATIC_INLINE void LL_ADC_INJ_SetOffset(ADC_TypeDef *ADCx, uint32_t Rank, uint32_t OffsetLevel)
AnnaBridge 171:3a7713b1edbc 3148 {
AnnaBridge 171:3a7713b1edbc 3149 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JOFR1, __ADC_MASK_SHIFT(Rank, ADC_INJ_JOFRX_REGOFFSET_MASK));
AnnaBridge 171:3a7713b1edbc 3150
AnnaBridge 171:3a7713b1edbc 3151 MODIFY_REG(*preg,
AnnaBridge 171:3a7713b1edbc 3152 ADC_JOFR1_JOFFSET1,
AnnaBridge 171:3a7713b1edbc 3153 OffsetLevel);
AnnaBridge 171:3a7713b1edbc 3154 }
AnnaBridge 171:3a7713b1edbc 3155
AnnaBridge 171:3a7713b1edbc 3156 /**
AnnaBridge 171:3a7713b1edbc 3157 * @brief Get ADC group injected offset.
AnnaBridge 171:3a7713b1edbc 3158 * @note It gives offset level (offset to be subtracted from the raw converted data).
AnnaBridge 171:3a7713b1edbc 3159 * Caution: Offset format is dependent to ADC resolution:
AnnaBridge 171:3a7713b1edbc 3160 * offset has to be left-aligned on bit 11, the LSB (right bits)
AnnaBridge 171:3a7713b1edbc 3161 * are set to 0.
AnnaBridge 171:3a7713b1edbc 3162 * @rmtoll JOFR1 JOFFSET1 LL_ADC_INJ_GetOffset\n
AnnaBridge 171:3a7713b1edbc 3163 * JOFR2 JOFFSET2 LL_ADC_INJ_GetOffset\n
AnnaBridge 171:3a7713b1edbc 3164 * JOFR3 JOFFSET3 LL_ADC_INJ_GetOffset\n
AnnaBridge 171:3a7713b1edbc 3165 * JOFR4 JOFFSET4 LL_ADC_INJ_GetOffset
AnnaBridge 171:3a7713b1edbc 3166 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 3167 * @param Rank This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3168 * @arg @ref LL_ADC_INJ_RANK_1
AnnaBridge 171:3a7713b1edbc 3169 * @arg @ref LL_ADC_INJ_RANK_2
AnnaBridge 171:3a7713b1edbc 3170 * @arg @ref LL_ADC_INJ_RANK_3
AnnaBridge 171:3a7713b1edbc 3171 * @arg @ref LL_ADC_INJ_RANK_4
AnnaBridge 171:3a7713b1edbc 3172 * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
AnnaBridge 171:3a7713b1edbc 3173 */
AnnaBridge 171:3a7713b1edbc 3174 __STATIC_INLINE uint32_t LL_ADC_INJ_GetOffset(ADC_TypeDef *ADCx, uint32_t Rank)
AnnaBridge 171:3a7713b1edbc 3175 {
AnnaBridge 171:3a7713b1edbc 3176 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JOFR1, __ADC_MASK_SHIFT(Rank, ADC_INJ_JOFRX_REGOFFSET_MASK));
AnnaBridge 171:3a7713b1edbc 3177
AnnaBridge 171:3a7713b1edbc 3178 return (uint32_t)(READ_BIT(*preg,
AnnaBridge 171:3a7713b1edbc 3179 ADC_JOFR1_JOFFSET1)
AnnaBridge 171:3a7713b1edbc 3180 );
AnnaBridge 171:3a7713b1edbc 3181 }
AnnaBridge 171:3a7713b1edbc 3182
AnnaBridge 171:3a7713b1edbc 3183 /**
AnnaBridge 171:3a7713b1edbc 3184 * @}
AnnaBridge 171:3a7713b1edbc 3185 */
AnnaBridge 171:3a7713b1edbc 3186
AnnaBridge 171:3a7713b1edbc 3187 /** @defgroup ADC_LL_EF_Configuration_Channels Configuration of ADC hierarchical scope: channels
AnnaBridge 171:3a7713b1edbc 3188 * @{
AnnaBridge 171:3a7713b1edbc 3189 */
AnnaBridge 171:3a7713b1edbc 3190
AnnaBridge 171:3a7713b1edbc 3191 /**
AnnaBridge 171:3a7713b1edbc 3192 * @brief Set sampling time of the selected ADC channel
AnnaBridge 171:3a7713b1edbc 3193 * Unit: ADC clock cycles.
AnnaBridge 171:3a7713b1edbc 3194 * @note On this device, sampling time is on channel scope: independently
AnnaBridge 171:3a7713b1edbc 3195 * of channel mapped on ADC group regular or injected.
AnnaBridge 171:3a7713b1edbc 3196 * @note In case of internal channel (VrefInt, TempSensor, ...) to be
AnnaBridge 171:3a7713b1edbc 3197 * converted:
AnnaBridge 171:3a7713b1edbc 3198 * sampling time constraints must be respected (sampling time can be
AnnaBridge 171:3a7713b1edbc 3199 * adjusted in function of ADC clock frequency and sampling time
AnnaBridge 171:3a7713b1edbc 3200 * setting).
AnnaBridge 171:3a7713b1edbc 3201 * Refer to device datasheet for timings values (parameters TS_vrefint,
AnnaBridge 171:3a7713b1edbc 3202 * TS_temp, ...).
AnnaBridge 171:3a7713b1edbc 3203 * @note Conversion time is the addition of sampling time and processing time.
AnnaBridge 171:3a7713b1edbc 3204 * Refer to reference manual for ADC processing time of
AnnaBridge 171:3a7713b1edbc 3205 * this STM32 serie.
AnnaBridge 171:3a7713b1edbc 3206 * @note In case of ADC conversion of internal channel (VrefInt,
AnnaBridge 171:3a7713b1edbc 3207 * temperature sensor, ...), a sampling time minimum value
AnnaBridge 171:3a7713b1edbc 3208 * is required.
AnnaBridge 171:3a7713b1edbc 3209 * Refer to device datasheet.
AnnaBridge 171:3a7713b1edbc 3210 * @rmtoll SMPR1 SMP18 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3211 * SMPR1 SMP17 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3212 * SMPR1 SMP16 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3213 * SMPR1 SMP15 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3214 * SMPR1 SMP14 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3215 * SMPR1 SMP13 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3216 * SMPR1 SMP12 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3217 * SMPR1 SMP11 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3218 * SMPR1 SMP10 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3219 * SMPR2 SMP9 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3220 * SMPR2 SMP8 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3221 * SMPR2 SMP7 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3222 * SMPR2 SMP6 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3223 * SMPR2 SMP5 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3224 * SMPR2 SMP4 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3225 * SMPR2 SMP3 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3226 * SMPR2 SMP2 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3227 * SMPR2 SMP1 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3228 * SMPR2 SMP0 LL_ADC_SetChannelSamplingTime
AnnaBridge 171:3a7713b1edbc 3229 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 3230 * @param Channel This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3231 * @arg @ref LL_ADC_CHANNEL_0
AnnaBridge 171:3a7713b1edbc 3232 * @arg @ref LL_ADC_CHANNEL_1
AnnaBridge 171:3a7713b1edbc 3233 * @arg @ref LL_ADC_CHANNEL_2
AnnaBridge 171:3a7713b1edbc 3234 * @arg @ref LL_ADC_CHANNEL_3
AnnaBridge 171:3a7713b1edbc 3235 * @arg @ref LL_ADC_CHANNEL_4
AnnaBridge 171:3a7713b1edbc 3236 * @arg @ref LL_ADC_CHANNEL_5
AnnaBridge 171:3a7713b1edbc 3237 * @arg @ref LL_ADC_CHANNEL_6
AnnaBridge 171:3a7713b1edbc 3238 * @arg @ref LL_ADC_CHANNEL_7
AnnaBridge 171:3a7713b1edbc 3239 * @arg @ref LL_ADC_CHANNEL_8
AnnaBridge 171:3a7713b1edbc 3240 * @arg @ref LL_ADC_CHANNEL_9
AnnaBridge 171:3a7713b1edbc 3241 * @arg @ref LL_ADC_CHANNEL_10
AnnaBridge 171:3a7713b1edbc 3242 * @arg @ref LL_ADC_CHANNEL_11
AnnaBridge 171:3a7713b1edbc 3243 * @arg @ref LL_ADC_CHANNEL_12
AnnaBridge 171:3a7713b1edbc 3244 * @arg @ref LL_ADC_CHANNEL_13
AnnaBridge 171:3a7713b1edbc 3245 * @arg @ref LL_ADC_CHANNEL_14
AnnaBridge 171:3a7713b1edbc 3246 * @arg @ref LL_ADC_CHANNEL_15
AnnaBridge 171:3a7713b1edbc 3247 * @arg @ref LL_ADC_CHANNEL_16
AnnaBridge 171:3a7713b1edbc 3248 * @arg @ref LL_ADC_CHANNEL_17
AnnaBridge 171:3a7713b1edbc 3249 * @arg @ref LL_ADC_CHANNEL_18
AnnaBridge 171:3a7713b1edbc 3250 * @arg @ref LL_ADC_CHANNEL_VREFINT (1)
AnnaBridge 171:3a7713b1edbc 3251 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (1)(2)
AnnaBridge 171:3a7713b1edbc 3252 * @arg @ref LL_ADC_CHANNEL_VBAT (1)
AnnaBridge 171:3a7713b1edbc 3253 *
AnnaBridge 171:3a7713b1edbc 3254 * (1) On STM32F7, parameter available only on ADC instance: ADC1.\n
AnnaBridge 171:3a7713b1edbc 3255 * (2) On devices STM32F75x, STM32F74x, STM32F76x, STM32F77x, STM32F72x and STM32F73x: this internal channel is shared between temperature sensor and Vbat, only 1 measurement path must be enabled.
AnnaBridge 171:3a7713b1edbc 3256 * @param SamplingTime This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3257 * @arg @ref LL_ADC_SAMPLINGTIME_3CYCLES
AnnaBridge 171:3a7713b1edbc 3258 * @arg @ref LL_ADC_SAMPLINGTIME_15CYCLES
AnnaBridge 171:3a7713b1edbc 3259 * @arg @ref LL_ADC_SAMPLINGTIME_28CYCLES
AnnaBridge 171:3a7713b1edbc 3260 * @arg @ref LL_ADC_SAMPLINGTIME_56CYCLES
AnnaBridge 171:3a7713b1edbc 3261 * @arg @ref LL_ADC_SAMPLINGTIME_84CYCLES
AnnaBridge 171:3a7713b1edbc 3262 * @arg @ref LL_ADC_SAMPLINGTIME_112CYCLES
AnnaBridge 171:3a7713b1edbc 3263 * @arg @ref LL_ADC_SAMPLINGTIME_144CYCLES
AnnaBridge 171:3a7713b1edbc 3264 * @arg @ref LL_ADC_SAMPLINGTIME_480CYCLES
AnnaBridge 171:3a7713b1edbc 3265 * @retval None
AnnaBridge 171:3a7713b1edbc 3266 */
AnnaBridge 171:3a7713b1edbc 3267 __STATIC_INLINE void LL_ADC_SetChannelSamplingTime(ADC_TypeDef *ADCx, uint32_t Channel, uint32_t SamplingTime)
AnnaBridge 171:3a7713b1edbc 3268 {
AnnaBridge 171:3a7713b1edbc 3269 /* Set bits with content of parameter "SamplingTime" with bits position */
AnnaBridge 171:3a7713b1edbc 3270 /* in register and register position depending on parameter "Channel". */
AnnaBridge 171:3a7713b1edbc 3271 /* Parameter "Channel" is used with masks because containing */
AnnaBridge 171:3a7713b1edbc 3272 /* other bits reserved for other purpose. */
AnnaBridge 171:3a7713b1edbc 3273 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->SMPR1, __ADC_MASK_SHIFT(Channel, ADC_CHANNEL_SMPRX_REGOFFSET_MASK));
AnnaBridge 171:3a7713b1edbc 3274
AnnaBridge 171:3a7713b1edbc 3275 MODIFY_REG(*preg,
AnnaBridge 171:3a7713b1edbc 3276 ADC_SMPR2_SMP0 << __ADC_MASK_SHIFT(Channel, ADC_CHANNEL_SMPx_BITOFFSET_MASK),
AnnaBridge 171:3a7713b1edbc 3277 SamplingTime << __ADC_MASK_SHIFT(Channel, ADC_CHANNEL_SMPx_BITOFFSET_MASK));
AnnaBridge 171:3a7713b1edbc 3278 }
AnnaBridge 171:3a7713b1edbc 3279
AnnaBridge 171:3a7713b1edbc 3280 /**
AnnaBridge 171:3a7713b1edbc 3281 * @brief Get sampling time of the selected ADC channel
AnnaBridge 171:3a7713b1edbc 3282 * Unit: ADC clock cycles.
AnnaBridge 171:3a7713b1edbc 3283 * @note On this device, sampling time is on channel scope: independently
AnnaBridge 171:3a7713b1edbc 3284 * of channel mapped on ADC group regular or injected.
AnnaBridge 171:3a7713b1edbc 3285 * @note Conversion time is the addition of sampling time and processing time.
AnnaBridge 171:3a7713b1edbc 3286 * Refer to reference manual for ADC processing time of
AnnaBridge 171:3a7713b1edbc 3287 * this STM32 serie.
AnnaBridge 171:3a7713b1edbc 3288 * @rmtoll SMPR1 SMP18 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3289 * SMPR1 SMP17 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3290 * SMPR1 SMP16 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3291 * SMPR1 SMP15 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3292 * SMPR1 SMP14 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3293 * SMPR1 SMP13 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3294 * SMPR1 SMP12 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3295 * SMPR1 SMP11 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3296 * SMPR1 SMP10 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3297 * SMPR2 SMP9 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3298 * SMPR2 SMP8 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3299 * SMPR2 SMP7 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3300 * SMPR2 SMP6 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3301 * SMPR2 SMP5 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3302 * SMPR2 SMP4 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3303 * SMPR2 SMP3 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3304 * SMPR2 SMP2 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3305 * SMPR2 SMP1 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3306 * SMPR2 SMP0 LL_ADC_GetChannelSamplingTime
AnnaBridge 171:3a7713b1edbc 3307 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 3308 * @param Channel This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3309 * @arg @ref LL_ADC_CHANNEL_0
AnnaBridge 171:3a7713b1edbc 3310 * @arg @ref LL_ADC_CHANNEL_1
AnnaBridge 171:3a7713b1edbc 3311 * @arg @ref LL_ADC_CHANNEL_2
AnnaBridge 171:3a7713b1edbc 3312 * @arg @ref LL_ADC_CHANNEL_3
AnnaBridge 171:3a7713b1edbc 3313 * @arg @ref LL_ADC_CHANNEL_4
AnnaBridge 171:3a7713b1edbc 3314 * @arg @ref LL_ADC_CHANNEL_5
AnnaBridge 171:3a7713b1edbc 3315 * @arg @ref LL_ADC_CHANNEL_6
AnnaBridge 171:3a7713b1edbc 3316 * @arg @ref LL_ADC_CHANNEL_7
AnnaBridge 171:3a7713b1edbc 3317 * @arg @ref LL_ADC_CHANNEL_8
AnnaBridge 171:3a7713b1edbc 3318 * @arg @ref LL_ADC_CHANNEL_9
AnnaBridge 171:3a7713b1edbc 3319 * @arg @ref LL_ADC_CHANNEL_10
AnnaBridge 171:3a7713b1edbc 3320 * @arg @ref LL_ADC_CHANNEL_11
AnnaBridge 171:3a7713b1edbc 3321 * @arg @ref LL_ADC_CHANNEL_12
AnnaBridge 171:3a7713b1edbc 3322 * @arg @ref LL_ADC_CHANNEL_13
AnnaBridge 171:3a7713b1edbc 3323 * @arg @ref LL_ADC_CHANNEL_14
AnnaBridge 171:3a7713b1edbc 3324 * @arg @ref LL_ADC_CHANNEL_15
AnnaBridge 171:3a7713b1edbc 3325 * @arg @ref LL_ADC_CHANNEL_16
AnnaBridge 171:3a7713b1edbc 3326 * @arg @ref LL_ADC_CHANNEL_17
AnnaBridge 171:3a7713b1edbc 3327 * @arg @ref LL_ADC_CHANNEL_18
AnnaBridge 171:3a7713b1edbc 3328 * @arg @ref LL_ADC_CHANNEL_VREFINT (1)
AnnaBridge 171:3a7713b1edbc 3329 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (1)(2)
AnnaBridge 171:3a7713b1edbc 3330 * @arg @ref LL_ADC_CHANNEL_VBAT (1)
AnnaBridge 171:3a7713b1edbc 3331 *
AnnaBridge 171:3a7713b1edbc 3332 * (1) On STM32F7, parameter available only on ADC instance: ADC1.\n
AnnaBridge 171:3a7713b1edbc 3333 * (2) On devices STM32F75x, STM32F74x, STM32F76x, STM32F77x, STM32F72x and STM32F73x: this internal channel is shared between temperature sensor and Vbat, only 1 measurement path must be enabled.
AnnaBridge 171:3a7713b1edbc 3334 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3335 * @arg @ref LL_ADC_SAMPLINGTIME_3CYCLES
AnnaBridge 171:3a7713b1edbc 3336 * @arg @ref LL_ADC_SAMPLINGTIME_15CYCLES
AnnaBridge 171:3a7713b1edbc 3337 * @arg @ref LL_ADC_SAMPLINGTIME_28CYCLES
AnnaBridge 171:3a7713b1edbc 3338 * @arg @ref LL_ADC_SAMPLINGTIME_56CYCLES
AnnaBridge 171:3a7713b1edbc 3339 * @arg @ref LL_ADC_SAMPLINGTIME_84CYCLES
AnnaBridge 171:3a7713b1edbc 3340 * @arg @ref LL_ADC_SAMPLINGTIME_112CYCLES
AnnaBridge 171:3a7713b1edbc 3341 * @arg @ref LL_ADC_SAMPLINGTIME_144CYCLES
AnnaBridge 171:3a7713b1edbc 3342 * @arg @ref LL_ADC_SAMPLINGTIME_480CYCLES
AnnaBridge 171:3a7713b1edbc 3343 */
AnnaBridge 171:3a7713b1edbc 3344 __STATIC_INLINE uint32_t LL_ADC_GetChannelSamplingTime(ADC_TypeDef *ADCx, uint32_t Channel)
AnnaBridge 171:3a7713b1edbc 3345 {
AnnaBridge 171:3a7713b1edbc 3346 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->SMPR1, __ADC_MASK_SHIFT(Channel, ADC_CHANNEL_SMPRX_REGOFFSET_MASK));
AnnaBridge 171:3a7713b1edbc 3347
AnnaBridge 171:3a7713b1edbc 3348 return (uint32_t)(READ_BIT(*preg,
AnnaBridge 171:3a7713b1edbc 3349 ADC_SMPR2_SMP0 << __ADC_MASK_SHIFT(Channel, ADC_CHANNEL_SMPx_BITOFFSET_MASK))
AnnaBridge 171:3a7713b1edbc 3350 >> __ADC_MASK_SHIFT(Channel, ADC_CHANNEL_SMPx_BITOFFSET_MASK)
AnnaBridge 171:3a7713b1edbc 3351 );
AnnaBridge 171:3a7713b1edbc 3352 }
AnnaBridge 171:3a7713b1edbc 3353
AnnaBridge 171:3a7713b1edbc 3354 /**
AnnaBridge 171:3a7713b1edbc 3355 * @}
AnnaBridge 171:3a7713b1edbc 3356 */
AnnaBridge 171:3a7713b1edbc 3357
AnnaBridge 171:3a7713b1edbc 3358 /** @defgroup ADC_LL_EF_Configuration_ADC_AnalogWatchdog Configuration of ADC transversal scope: analog watchdog
AnnaBridge 171:3a7713b1edbc 3359 * @{
AnnaBridge 171:3a7713b1edbc 3360 */
AnnaBridge 171:3a7713b1edbc 3361
AnnaBridge 171:3a7713b1edbc 3362 /**
AnnaBridge 171:3a7713b1edbc 3363 * @brief Set ADC analog watchdog monitored channels:
AnnaBridge 171:3a7713b1edbc 3364 * a single channel or all channels,
AnnaBridge 171:3a7713b1edbc 3365 * on ADC groups regular and-or injected.
AnnaBridge 171:3a7713b1edbc 3366 * @note Once monitored channels are selected, analog watchdog
AnnaBridge 171:3a7713b1edbc 3367 * is enabled.
AnnaBridge 171:3a7713b1edbc 3368 * @note In case of need to define a single channel to monitor
AnnaBridge 171:3a7713b1edbc 3369 * with analog watchdog from sequencer channel definition,
AnnaBridge 171:3a7713b1edbc 3370 * use helper macro @ref __LL_ADC_ANALOGWD_CHANNEL_GROUP().
AnnaBridge 171:3a7713b1edbc 3371 * @note On this STM32 serie, there is only 1 kind of analog watchdog
AnnaBridge 171:3a7713b1edbc 3372 * instance:
AnnaBridge 171:3a7713b1edbc 3373 * - AWD standard (instance AWD1):
AnnaBridge 171:3a7713b1edbc 3374 * - channels monitored: can monitor 1 channel or all channels.
AnnaBridge 171:3a7713b1edbc 3375 * - groups monitored: ADC groups regular and-or injected.
AnnaBridge 171:3a7713b1edbc 3376 * - resolution: resolution is not limited (corresponds to
AnnaBridge 171:3a7713b1edbc 3377 * ADC resolution configured).
AnnaBridge 171:3a7713b1edbc 3378 * @rmtoll CR1 AWD1CH LL_ADC_SetAnalogWDMonitChannels\n
AnnaBridge 171:3a7713b1edbc 3379 * CR1 AWD1SGL LL_ADC_SetAnalogWDMonitChannels\n
AnnaBridge 171:3a7713b1edbc 3380 * CR1 AWD1EN LL_ADC_SetAnalogWDMonitChannels
AnnaBridge 171:3a7713b1edbc 3381 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 3382 * @param AWDChannelGroup This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3383 * @arg @ref LL_ADC_AWD_DISABLE
AnnaBridge 171:3a7713b1edbc 3384 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG
AnnaBridge 171:3a7713b1edbc 3385 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_INJ
AnnaBridge 171:3a7713b1edbc 3386 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG_INJ
AnnaBridge 171:3a7713b1edbc 3387 * @arg @ref LL_ADC_AWD_CHANNEL_0_REG
AnnaBridge 171:3a7713b1edbc 3388 * @arg @ref LL_ADC_AWD_CHANNEL_0_INJ
AnnaBridge 171:3a7713b1edbc 3389 * @arg @ref LL_ADC_AWD_CHANNEL_0_REG_INJ
AnnaBridge 171:3a7713b1edbc 3390 * @arg @ref LL_ADC_AWD_CHANNEL_1_REG
AnnaBridge 171:3a7713b1edbc 3391 * @arg @ref LL_ADC_AWD_CHANNEL_1_INJ
AnnaBridge 171:3a7713b1edbc 3392 * @arg @ref LL_ADC_AWD_CHANNEL_1_REG_INJ
AnnaBridge 171:3a7713b1edbc 3393 * @arg @ref LL_ADC_AWD_CHANNEL_2_REG
AnnaBridge 171:3a7713b1edbc 3394 * @arg @ref LL_ADC_AWD_CHANNEL_2_INJ
AnnaBridge 171:3a7713b1edbc 3395 * @arg @ref LL_ADC_AWD_CHANNEL_2_REG_INJ
AnnaBridge 171:3a7713b1edbc 3396 * @arg @ref LL_ADC_AWD_CHANNEL_3_REG
AnnaBridge 171:3a7713b1edbc 3397 * @arg @ref LL_ADC_AWD_CHANNEL_3_INJ
AnnaBridge 171:3a7713b1edbc 3398 * @arg @ref LL_ADC_AWD_CHANNEL_3_REG_INJ
AnnaBridge 171:3a7713b1edbc 3399 * @arg @ref LL_ADC_AWD_CHANNEL_4_REG
AnnaBridge 171:3a7713b1edbc 3400 * @arg @ref LL_ADC_AWD_CHANNEL_4_INJ
AnnaBridge 171:3a7713b1edbc 3401 * @arg @ref LL_ADC_AWD_CHANNEL_4_REG_INJ
AnnaBridge 171:3a7713b1edbc 3402 * @arg @ref LL_ADC_AWD_CHANNEL_5_REG
AnnaBridge 171:3a7713b1edbc 3403 * @arg @ref LL_ADC_AWD_CHANNEL_5_INJ
AnnaBridge 171:3a7713b1edbc 3404 * @arg @ref LL_ADC_AWD_CHANNEL_5_REG_INJ
AnnaBridge 171:3a7713b1edbc 3405 * @arg @ref LL_ADC_AWD_CHANNEL_6_REG
AnnaBridge 171:3a7713b1edbc 3406 * @arg @ref LL_ADC_AWD_CHANNEL_6_INJ
AnnaBridge 171:3a7713b1edbc 3407 * @arg @ref LL_ADC_AWD_CHANNEL_6_REG_INJ
AnnaBridge 171:3a7713b1edbc 3408 * @arg @ref LL_ADC_AWD_CHANNEL_7_REG
AnnaBridge 171:3a7713b1edbc 3409 * @arg @ref LL_ADC_AWD_CHANNEL_7_INJ
AnnaBridge 171:3a7713b1edbc 3410 * @arg @ref LL_ADC_AWD_CHANNEL_7_REG_INJ
AnnaBridge 171:3a7713b1edbc 3411 * @arg @ref LL_ADC_AWD_CHANNEL_8_REG
AnnaBridge 171:3a7713b1edbc 3412 * @arg @ref LL_ADC_AWD_CHANNEL_8_INJ
AnnaBridge 171:3a7713b1edbc 3413 * @arg @ref LL_ADC_AWD_CHANNEL_8_REG_INJ
AnnaBridge 171:3a7713b1edbc 3414 * @arg @ref LL_ADC_AWD_CHANNEL_9_REG
AnnaBridge 171:3a7713b1edbc 3415 * @arg @ref LL_ADC_AWD_CHANNEL_9_INJ
AnnaBridge 171:3a7713b1edbc 3416 * @arg @ref LL_ADC_AWD_CHANNEL_9_REG_INJ
AnnaBridge 171:3a7713b1edbc 3417 * @arg @ref LL_ADC_AWD_CHANNEL_10_REG
AnnaBridge 171:3a7713b1edbc 3418 * @arg @ref LL_ADC_AWD_CHANNEL_10_INJ
AnnaBridge 171:3a7713b1edbc 3419 * @arg @ref LL_ADC_AWD_CHANNEL_10_REG_INJ
AnnaBridge 171:3a7713b1edbc 3420 * @arg @ref LL_ADC_AWD_CHANNEL_11_REG
AnnaBridge 171:3a7713b1edbc 3421 * @arg @ref LL_ADC_AWD_CHANNEL_11_INJ
AnnaBridge 171:3a7713b1edbc 3422 * @arg @ref LL_ADC_AWD_CHANNEL_11_REG_INJ
AnnaBridge 171:3a7713b1edbc 3423 * @arg @ref LL_ADC_AWD_CHANNEL_12_REG
AnnaBridge 171:3a7713b1edbc 3424 * @arg @ref LL_ADC_AWD_CHANNEL_12_INJ
AnnaBridge 171:3a7713b1edbc 3425 * @arg @ref LL_ADC_AWD_CHANNEL_12_REG_INJ
AnnaBridge 171:3a7713b1edbc 3426 * @arg @ref LL_ADC_AWD_CHANNEL_13_REG
AnnaBridge 171:3a7713b1edbc 3427 * @arg @ref LL_ADC_AWD_CHANNEL_13_INJ
AnnaBridge 171:3a7713b1edbc 3428 * @arg @ref LL_ADC_AWD_CHANNEL_13_REG_INJ
AnnaBridge 171:3a7713b1edbc 3429 * @arg @ref LL_ADC_AWD_CHANNEL_14_REG
AnnaBridge 171:3a7713b1edbc 3430 * @arg @ref LL_ADC_AWD_CHANNEL_14_INJ
AnnaBridge 171:3a7713b1edbc 3431 * @arg @ref LL_ADC_AWD_CHANNEL_14_REG_INJ
AnnaBridge 171:3a7713b1edbc 3432 * @arg @ref LL_ADC_AWD_CHANNEL_15_REG
AnnaBridge 171:3a7713b1edbc 3433 * @arg @ref LL_ADC_AWD_CHANNEL_15_INJ
AnnaBridge 171:3a7713b1edbc 3434 * @arg @ref LL_ADC_AWD_CHANNEL_15_REG_INJ
AnnaBridge 171:3a7713b1edbc 3435 * @arg @ref LL_ADC_AWD_CHANNEL_16_REG
AnnaBridge 171:3a7713b1edbc 3436 * @arg @ref LL_ADC_AWD_CHANNEL_16_INJ
AnnaBridge 171:3a7713b1edbc 3437 * @arg @ref LL_ADC_AWD_CHANNEL_16_REG_INJ
AnnaBridge 171:3a7713b1edbc 3438 * @arg @ref LL_ADC_AWD_CHANNEL_17_REG
AnnaBridge 171:3a7713b1edbc 3439 * @arg @ref LL_ADC_AWD_CHANNEL_17_INJ
AnnaBridge 171:3a7713b1edbc 3440 * @arg @ref LL_ADC_AWD_CHANNEL_17_REG_INJ
AnnaBridge 171:3a7713b1edbc 3441 * @arg @ref LL_ADC_AWD_CHANNEL_18_REG
AnnaBridge 171:3a7713b1edbc 3442 * @arg @ref LL_ADC_AWD_CHANNEL_18_INJ
AnnaBridge 171:3a7713b1edbc 3443 * @arg @ref LL_ADC_AWD_CHANNEL_18_REG_INJ
AnnaBridge 171:3a7713b1edbc 3444 * @arg @ref LL_ADC_AWD_CH_VREFINT_REG (1)
AnnaBridge 171:3a7713b1edbc 3445 * @arg @ref LL_ADC_AWD_CH_VREFINT_INJ (1)
AnnaBridge 171:3a7713b1edbc 3446 * @arg @ref LL_ADC_AWD_CH_VREFINT_REG_INJ (1)
AnnaBridge 171:3a7713b1edbc 3447 * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_REG (1)(2)
AnnaBridge 171:3a7713b1edbc 3448 * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_INJ (1)(2)
AnnaBridge 171:3a7713b1edbc 3449 * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_REG_INJ (1)(2)
AnnaBridge 171:3a7713b1edbc 3450 * @arg @ref LL_ADC_AWD_CH_VBAT_REG (1)
AnnaBridge 171:3a7713b1edbc 3451 * @arg @ref LL_ADC_AWD_CH_VBAT_INJ (1)
AnnaBridge 171:3a7713b1edbc 3452 * @arg @ref LL_ADC_AWD_CH_VBAT_REG_INJ (1)
AnnaBridge 171:3a7713b1edbc 3453 *
AnnaBridge 171:3a7713b1edbc 3454 * (1) On STM32F7, parameter available only on ADC instance: ADC1.\n
AnnaBridge 171:3a7713b1edbc 3455 * (2) On devices STM32F7xx,a limitation: this internal channel is shared between temperature sensor and Vbat, only 1 measurement path must be enabled.
AnnaBridge 171:3a7713b1edbc 3456 * @retval None
AnnaBridge 171:3a7713b1edbc 3457 */
AnnaBridge 171:3a7713b1edbc 3458 __STATIC_INLINE void LL_ADC_SetAnalogWDMonitChannels(ADC_TypeDef *ADCx, uint32_t AWDChannelGroup)
AnnaBridge 171:3a7713b1edbc 3459 {
AnnaBridge 171:3a7713b1edbc 3460 MODIFY_REG(ADCx->CR1,
AnnaBridge 171:3a7713b1edbc 3461 (ADC_CR1_AWDEN | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL | ADC_CR1_AWDCH),
AnnaBridge 171:3a7713b1edbc 3462 AWDChannelGroup);
AnnaBridge 171:3a7713b1edbc 3463 }
AnnaBridge 171:3a7713b1edbc 3464
AnnaBridge 171:3a7713b1edbc 3465 /**
AnnaBridge 171:3a7713b1edbc 3466 * @brief Get ADC analog watchdog monitored channel.
AnnaBridge 171:3a7713b1edbc 3467 * @note Usage of the returned channel number:
AnnaBridge 171:3a7713b1edbc 3468 * - To reinject this channel into another function LL_ADC_xxx:
AnnaBridge 171:3a7713b1edbc 3469 * the returned channel number is only partly formatted on definition
AnnaBridge 171:3a7713b1edbc 3470 * of literals LL_ADC_CHANNEL_x. Therefore, it has to be compared
AnnaBridge 171:3a7713b1edbc 3471 * with parts of literals LL_ADC_CHANNEL_x or using
AnnaBridge 171:3a7713b1edbc 3472 * helper macro @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
AnnaBridge 171:3a7713b1edbc 3473 * Then the selected literal LL_ADC_CHANNEL_x can be used
AnnaBridge 171:3a7713b1edbc 3474 * as parameter for another function.
AnnaBridge 171:3a7713b1edbc 3475 * - To get the channel number in decimal format:
AnnaBridge 171:3a7713b1edbc 3476 * process the returned value with the helper macro
AnnaBridge 171:3a7713b1edbc 3477 * @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
AnnaBridge 171:3a7713b1edbc 3478 * Applicable only when the analog watchdog is set to monitor
AnnaBridge 171:3a7713b1edbc 3479 * one channel.
AnnaBridge 171:3a7713b1edbc 3480 * @note On this STM32 serie, there is only 1 kind of analog watchdog
AnnaBridge 171:3a7713b1edbc 3481 * instance:
AnnaBridge 171:3a7713b1edbc 3482 * - AWD standard (instance AWD1):
AnnaBridge 171:3a7713b1edbc 3483 * - channels monitored: can monitor 1 channel or all channels.
AnnaBridge 171:3a7713b1edbc 3484 * - groups monitored: ADC groups regular and-or injected.
AnnaBridge 171:3a7713b1edbc 3485 * - resolution: resolution is not limited (corresponds to
AnnaBridge 171:3a7713b1edbc 3486 * ADC resolution configured).
AnnaBridge 171:3a7713b1edbc 3487 * @rmtoll CR1 AWD1CH LL_ADC_GetAnalogWDMonitChannels\n
AnnaBridge 171:3a7713b1edbc 3488 * CR1 AWD1SGL LL_ADC_GetAnalogWDMonitChannels\n
AnnaBridge 171:3a7713b1edbc 3489 * CR1 AWD1EN LL_ADC_GetAnalogWDMonitChannels
AnnaBridge 171:3a7713b1edbc 3490 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 3491 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3492 * @arg @ref LL_ADC_AWD_DISABLE
AnnaBridge 171:3a7713b1edbc 3493 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG
AnnaBridge 171:3a7713b1edbc 3494 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_INJ
AnnaBridge 171:3a7713b1edbc 3495 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG_INJ
AnnaBridge 171:3a7713b1edbc 3496 * @arg @ref LL_ADC_AWD_CHANNEL_0_REG
AnnaBridge 171:3a7713b1edbc 3497 * @arg @ref LL_ADC_AWD_CHANNEL_0_INJ
AnnaBridge 171:3a7713b1edbc 3498 * @arg @ref LL_ADC_AWD_CHANNEL_0_REG_INJ
AnnaBridge 171:3a7713b1edbc 3499 * @arg @ref LL_ADC_AWD_CHANNEL_1_REG
AnnaBridge 171:3a7713b1edbc 3500 * @arg @ref LL_ADC_AWD_CHANNEL_1_INJ
AnnaBridge 171:3a7713b1edbc 3501 * @arg @ref LL_ADC_AWD_CHANNEL_1_REG_INJ
AnnaBridge 171:3a7713b1edbc 3502 * @arg @ref LL_ADC_AWD_CHANNEL_2_REG
AnnaBridge 171:3a7713b1edbc 3503 * @arg @ref LL_ADC_AWD_CHANNEL_2_INJ
AnnaBridge 171:3a7713b1edbc 3504 * @arg @ref LL_ADC_AWD_CHANNEL_2_REG_INJ
AnnaBridge 171:3a7713b1edbc 3505 * @arg @ref LL_ADC_AWD_CHANNEL_3_REG
AnnaBridge 171:3a7713b1edbc 3506 * @arg @ref LL_ADC_AWD_CHANNEL_3_INJ
AnnaBridge 171:3a7713b1edbc 3507 * @arg @ref LL_ADC_AWD_CHANNEL_3_REG_INJ
AnnaBridge 171:3a7713b1edbc 3508 * @arg @ref LL_ADC_AWD_CHANNEL_4_REG
AnnaBridge 171:3a7713b1edbc 3509 * @arg @ref LL_ADC_AWD_CHANNEL_4_INJ
AnnaBridge 171:3a7713b1edbc 3510 * @arg @ref LL_ADC_AWD_CHANNEL_4_REG_INJ
AnnaBridge 171:3a7713b1edbc 3511 * @arg @ref LL_ADC_AWD_CHANNEL_5_REG
AnnaBridge 171:3a7713b1edbc 3512 * @arg @ref LL_ADC_AWD_CHANNEL_5_INJ
AnnaBridge 171:3a7713b1edbc 3513 * @arg @ref LL_ADC_AWD_CHANNEL_5_REG_INJ
AnnaBridge 171:3a7713b1edbc 3514 * @arg @ref LL_ADC_AWD_CHANNEL_6_REG
AnnaBridge 171:3a7713b1edbc 3515 * @arg @ref LL_ADC_AWD_CHANNEL_6_INJ
AnnaBridge 171:3a7713b1edbc 3516 * @arg @ref LL_ADC_AWD_CHANNEL_6_REG_INJ
AnnaBridge 171:3a7713b1edbc 3517 * @arg @ref LL_ADC_AWD_CHANNEL_7_REG
AnnaBridge 171:3a7713b1edbc 3518 * @arg @ref LL_ADC_AWD_CHANNEL_7_INJ
AnnaBridge 171:3a7713b1edbc 3519 * @arg @ref LL_ADC_AWD_CHANNEL_7_REG_INJ
AnnaBridge 171:3a7713b1edbc 3520 * @arg @ref LL_ADC_AWD_CHANNEL_8_REG
AnnaBridge 171:3a7713b1edbc 3521 * @arg @ref LL_ADC_AWD_CHANNEL_8_INJ
AnnaBridge 171:3a7713b1edbc 3522 * @arg @ref LL_ADC_AWD_CHANNEL_8_REG_INJ
AnnaBridge 171:3a7713b1edbc 3523 * @arg @ref LL_ADC_AWD_CHANNEL_9_REG
AnnaBridge 171:3a7713b1edbc 3524 * @arg @ref LL_ADC_AWD_CHANNEL_9_INJ
AnnaBridge 171:3a7713b1edbc 3525 * @arg @ref LL_ADC_AWD_CHANNEL_9_REG_INJ
AnnaBridge 171:3a7713b1edbc 3526 * @arg @ref LL_ADC_AWD_CHANNEL_10_REG
AnnaBridge 171:3a7713b1edbc 3527 * @arg @ref LL_ADC_AWD_CHANNEL_10_INJ
AnnaBridge 171:3a7713b1edbc 3528 * @arg @ref LL_ADC_AWD_CHANNEL_10_REG_INJ
AnnaBridge 171:3a7713b1edbc 3529 * @arg @ref LL_ADC_AWD_CHANNEL_11_REG
AnnaBridge 171:3a7713b1edbc 3530 * @arg @ref LL_ADC_AWD_CHANNEL_11_INJ
AnnaBridge 171:3a7713b1edbc 3531 * @arg @ref LL_ADC_AWD_CHANNEL_11_REG_INJ
AnnaBridge 171:3a7713b1edbc 3532 * @arg @ref LL_ADC_AWD_CHANNEL_12_REG
AnnaBridge 171:3a7713b1edbc 3533 * @arg @ref LL_ADC_AWD_CHANNEL_12_INJ
AnnaBridge 171:3a7713b1edbc 3534 * @arg @ref LL_ADC_AWD_CHANNEL_12_REG_INJ
AnnaBridge 171:3a7713b1edbc 3535 * @arg @ref LL_ADC_AWD_CHANNEL_13_REG
AnnaBridge 171:3a7713b1edbc 3536 * @arg @ref LL_ADC_AWD_CHANNEL_13_INJ
AnnaBridge 171:3a7713b1edbc 3537 * @arg @ref LL_ADC_AWD_CHANNEL_13_REG_INJ
AnnaBridge 171:3a7713b1edbc 3538 * @arg @ref LL_ADC_AWD_CHANNEL_14_REG
AnnaBridge 171:3a7713b1edbc 3539 * @arg @ref LL_ADC_AWD_CHANNEL_14_INJ
AnnaBridge 171:3a7713b1edbc 3540 * @arg @ref LL_ADC_AWD_CHANNEL_14_REG_INJ
AnnaBridge 171:3a7713b1edbc 3541 * @arg @ref LL_ADC_AWD_CHANNEL_15_REG
AnnaBridge 171:3a7713b1edbc 3542 * @arg @ref LL_ADC_AWD_CHANNEL_15_INJ
AnnaBridge 171:3a7713b1edbc 3543 * @arg @ref LL_ADC_AWD_CHANNEL_15_REG_INJ
AnnaBridge 171:3a7713b1edbc 3544 * @arg @ref LL_ADC_AWD_CHANNEL_16_REG
AnnaBridge 171:3a7713b1edbc 3545 * @arg @ref LL_ADC_AWD_CHANNEL_16_INJ
AnnaBridge 171:3a7713b1edbc 3546 * @arg @ref LL_ADC_AWD_CHANNEL_16_REG_INJ
AnnaBridge 171:3a7713b1edbc 3547 * @arg @ref LL_ADC_AWD_CHANNEL_17_REG
AnnaBridge 171:3a7713b1edbc 3548 * @arg @ref LL_ADC_AWD_CHANNEL_17_INJ
AnnaBridge 171:3a7713b1edbc 3549 * @arg @ref LL_ADC_AWD_CHANNEL_17_REG_INJ
AnnaBridge 171:3a7713b1edbc 3550 * @arg @ref LL_ADC_AWD_CHANNEL_18_REG
AnnaBridge 171:3a7713b1edbc 3551 * @arg @ref LL_ADC_AWD_CHANNEL_18_INJ
AnnaBridge 171:3a7713b1edbc 3552 * @arg @ref LL_ADC_AWD_CHANNEL_18_REG_INJ
AnnaBridge 171:3a7713b1edbc 3553 */
AnnaBridge 171:3a7713b1edbc 3554 __STATIC_INLINE uint32_t LL_ADC_GetAnalogWDMonitChannels(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 3555 {
AnnaBridge 171:3a7713b1edbc 3556 return (uint32_t)(READ_BIT(ADCx->CR1, (ADC_CR1_AWDEN | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL | ADC_CR1_AWDCH)));
AnnaBridge 171:3a7713b1edbc 3557 }
AnnaBridge 171:3a7713b1edbc 3558
AnnaBridge 171:3a7713b1edbc 3559 /**
AnnaBridge 171:3a7713b1edbc 3560 * @brief Set ADC analog watchdog threshold value of threshold
AnnaBridge 171:3a7713b1edbc 3561 * high or low.
AnnaBridge 171:3a7713b1edbc 3562 * @note In case of ADC resolution different of 12 bits,
AnnaBridge 171:3a7713b1edbc 3563 * analog watchdog thresholds data require a specific shift.
AnnaBridge 171:3a7713b1edbc 3564 * Use helper macro @ref __LL_ADC_ANALOGWD_SET_THRESHOLD_RESOLUTION().
AnnaBridge 171:3a7713b1edbc 3565 * @note On this STM32 serie, there is only 1 kind of analog watchdog
AnnaBridge 171:3a7713b1edbc 3566 * instance:
AnnaBridge 171:3a7713b1edbc 3567 * - AWD standard (instance AWD1):
AnnaBridge 171:3a7713b1edbc 3568 * - channels monitored: can monitor 1 channel or all channels.
AnnaBridge 171:3a7713b1edbc 3569 * - groups monitored: ADC groups regular and-or injected.
AnnaBridge 171:3a7713b1edbc 3570 * - resolution: resolution is not limited (corresponds to
AnnaBridge 171:3a7713b1edbc 3571 * ADC resolution configured).
AnnaBridge 171:3a7713b1edbc 3572 * @rmtoll HTR HT LL_ADC_SetAnalogWDThresholds\n
AnnaBridge 171:3a7713b1edbc 3573 * LTR LT LL_ADC_SetAnalogWDThresholds
AnnaBridge 171:3a7713b1edbc 3574 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 3575 * @param AWDThresholdsHighLow This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3576 * @arg @ref LL_ADC_AWD_THRESHOLD_HIGH
AnnaBridge 171:3a7713b1edbc 3577 * @arg @ref LL_ADC_AWD_THRESHOLD_LOW
AnnaBridge 171:3a7713b1edbc 3578 * @param AWDThresholdValue Value between Min_Data=0x000 and Max_Data=0xFFF
AnnaBridge 171:3a7713b1edbc 3579 * @retval None
AnnaBridge 171:3a7713b1edbc 3580 */
AnnaBridge 171:3a7713b1edbc 3581 __STATIC_INLINE void LL_ADC_SetAnalogWDThresholds(ADC_TypeDef *ADCx, uint32_t AWDThresholdsHighLow, uint32_t AWDThresholdValue)
AnnaBridge 171:3a7713b1edbc 3582 {
AnnaBridge 171:3a7713b1edbc 3583 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->HTR, AWDThresholdsHighLow);
AnnaBridge 171:3a7713b1edbc 3584
AnnaBridge 171:3a7713b1edbc 3585 MODIFY_REG(*preg,
AnnaBridge 171:3a7713b1edbc 3586 ADC_HTR_HT,
AnnaBridge 171:3a7713b1edbc 3587 AWDThresholdValue);
AnnaBridge 171:3a7713b1edbc 3588 }
AnnaBridge 171:3a7713b1edbc 3589
AnnaBridge 171:3a7713b1edbc 3590 /**
AnnaBridge 171:3a7713b1edbc 3591 * @brief Get ADC analog watchdog threshold value of threshold high or
AnnaBridge 171:3a7713b1edbc 3592 * threshold low.
AnnaBridge 171:3a7713b1edbc 3593 * @note In case of ADC resolution different of 12 bits,
AnnaBridge 171:3a7713b1edbc 3594 * analog watchdog thresholds data require a specific shift.
AnnaBridge 171:3a7713b1edbc 3595 * Use helper macro @ref __LL_ADC_ANALOGWD_GET_THRESHOLD_RESOLUTION().
AnnaBridge 171:3a7713b1edbc 3596 * @rmtoll HTR HT LL_ADC_GetAnalogWDThresholds\n
AnnaBridge 171:3a7713b1edbc 3597 * LTR LT LL_ADC_GetAnalogWDThresholds
AnnaBridge 171:3a7713b1edbc 3598 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 3599 * @param AWDThresholdsHighLow This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3600 * @arg @ref LL_ADC_AWD_THRESHOLD_HIGH
AnnaBridge 171:3a7713b1edbc 3601 * @arg @ref LL_ADC_AWD_THRESHOLD_LOW
AnnaBridge 171:3a7713b1edbc 3602 * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
AnnaBridge 171:3a7713b1edbc 3603 */
AnnaBridge 171:3a7713b1edbc 3604 __STATIC_INLINE uint32_t LL_ADC_GetAnalogWDThresholds(ADC_TypeDef *ADCx, uint32_t AWDThresholdsHighLow)
AnnaBridge 171:3a7713b1edbc 3605 {
AnnaBridge 171:3a7713b1edbc 3606 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->HTR, AWDThresholdsHighLow);
AnnaBridge 171:3a7713b1edbc 3607
AnnaBridge 171:3a7713b1edbc 3608 return (uint32_t)(READ_BIT(*preg, ADC_HTR_HT));
AnnaBridge 171:3a7713b1edbc 3609 }
AnnaBridge 171:3a7713b1edbc 3610
AnnaBridge 171:3a7713b1edbc 3611 /**
AnnaBridge 171:3a7713b1edbc 3612 * @}
AnnaBridge 171:3a7713b1edbc 3613 */
AnnaBridge 171:3a7713b1edbc 3614
AnnaBridge 171:3a7713b1edbc 3615 /** @defgroup ADC_LL_EF_Configuration_ADC_Multimode Configuration of ADC hierarchical scope: multimode
AnnaBridge 171:3a7713b1edbc 3616 * @{
AnnaBridge 171:3a7713b1edbc 3617 */
AnnaBridge 171:3a7713b1edbc 3618
AnnaBridge 171:3a7713b1edbc 3619 /**
AnnaBridge 171:3a7713b1edbc 3620 * @brief Set ADC multimode configuration to operate in independent mode
AnnaBridge 171:3a7713b1edbc 3621 * or multimode (for devices with several ADC instances).
AnnaBridge 171:3a7713b1edbc 3622 * @note If multimode configuration: the selected ADC instance is
AnnaBridge 171:3a7713b1edbc 3623 * either master or slave depending on hardware.
AnnaBridge 171:3a7713b1edbc 3624 * Refer to reference manual.
AnnaBridge 171:3a7713b1edbc 3625 * @rmtoll CCR MULTI LL_ADC_SetMultimode
AnnaBridge 171:3a7713b1edbc 3626 * @param ADCxy_COMMON ADC common instance
AnnaBridge 171:3a7713b1edbc 3627 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 171:3a7713b1edbc 3628 * @param Multimode This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3629 * @arg @ref LL_ADC_MULTI_INDEPENDENT
AnnaBridge 171:3a7713b1edbc 3630 * @arg @ref LL_ADC_MULTI_DUAL_REG_SIMULT
AnnaBridge 171:3a7713b1edbc 3631 * @arg @ref LL_ADC_MULTI_DUAL_REG_INTERL
AnnaBridge 171:3a7713b1edbc 3632 * @arg @ref LL_ADC_MULTI_DUAL_INJ_SIMULT
AnnaBridge 171:3a7713b1edbc 3633 * @arg @ref LL_ADC_MULTI_DUAL_INJ_ALTERN
AnnaBridge 171:3a7713b1edbc 3634 * @arg @ref LL_ADC_MULTI_DUAL_REG_SIM_INJ_SIM
AnnaBridge 171:3a7713b1edbc 3635 * @arg @ref LL_ADC_MULTI_DUAL_REG_SIM_INJ_ALT
AnnaBridge 171:3a7713b1edbc 3636 * @arg @ref LL_ADC_MULTI_DUAL_REG_INT_INJ_SIM
AnnaBridge 171:3a7713b1edbc 3637 * @arg @ref LL_ADC_MULTI_TRIPLE_REG_SIM_INJ_SIM
AnnaBridge 171:3a7713b1edbc 3638 * @arg @ref LL_ADC_MULTI_TRIPLE_REG_SIM_INJ_ALT
AnnaBridge 171:3a7713b1edbc 3639 * @arg @ref LL_ADC_MULTI_TRIPLE_INJ_SIMULT
AnnaBridge 171:3a7713b1edbc 3640 * @arg @ref LL_ADC_MULTI_TRIPLE_REG_SIMULT
AnnaBridge 171:3a7713b1edbc 3641 * @arg @ref LL_ADC_MULTI_TRIPLE_REG_INTERL
AnnaBridge 171:3a7713b1edbc 3642 * @arg @ref LL_ADC_MULTI_TRIPLE_INJ_ALTERN
AnnaBridge 171:3a7713b1edbc 3643 * @retval None
AnnaBridge 171:3a7713b1edbc 3644 */
AnnaBridge 171:3a7713b1edbc 3645 __STATIC_INLINE void LL_ADC_SetMultimode(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t Multimode)
AnnaBridge 171:3a7713b1edbc 3646 {
AnnaBridge 171:3a7713b1edbc 3647 MODIFY_REG(ADCxy_COMMON->CCR, ADC_CCR_MULTI, Multimode);
AnnaBridge 171:3a7713b1edbc 3648 }
AnnaBridge 171:3a7713b1edbc 3649
AnnaBridge 171:3a7713b1edbc 3650 /**
AnnaBridge 171:3a7713b1edbc 3651 * @brief Get ADC multimode configuration to operate in independent mode
AnnaBridge 171:3a7713b1edbc 3652 * or multimode (for devices with several ADC instances).
AnnaBridge 171:3a7713b1edbc 3653 * @note If multimode configuration: the selected ADC instance is
AnnaBridge 171:3a7713b1edbc 3654 * either master or slave depending on hardware.
AnnaBridge 171:3a7713b1edbc 3655 * Refer to reference manual.
AnnaBridge 171:3a7713b1edbc 3656 * @rmtoll CCR MULTI LL_ADC_GetMultimode
AnnaBridge 171:3a7713b1edbc 3657 * @param ADCxy_COMMON ADC common instance
AnnaBridge 171:3a7713b1edbc 3658 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 171:3a7713b1edbc 3659 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3660 * @arg @ref LL_ADC_MULTI_INDEPENDENT
AnnaBridge 171:3a7713b1edbc 3661 * @arg @ref LL_ADC_MULTI_DUAL_REG_SIMULT
AnnaBridge 171:3a7713b1edbc 3662 * @arg @ref LL_ADC_MULTI_DUAL_REG_INTERL
AnnaBridge 171:3a7713b1edbc 3663 * @arg @ref LL_ADC_MULTI_DUAL_INJ_SIMULT
AnnaBridge 171:3a7713b1edbc 3664 * @arg @ref LL_ADC_MULTI_DUAL_INJ_ALTERN
AnnaBridge 171:3a7713b1edbc 3665 * @arg @ref LL_ADC_MULTI_DUAL_REG_SIM_INJ_SIM
AnnaBridge 171:3a7713b1edbc 3666 * @arg @ref LL_ADC_MULTI_DUAL_REG_SIM_INJ_ALT
AnnaBridge 171:3a7713b1edbc 3667 * @arg @ref LL_ADC_MULTI_DUAL_REG_INT_INJ_SIM
AnnaBridge 171:3a7713b1edbc 3668 * @arg @ref LL_ADC_MULTI_TRIPLE_REG_SIM_INJ_SIM
AnnaBridge 171:3a7713b1edbc 3669 * @arg @ref LL_ADC_MULTI_TRIPLE_REG_SIM_INJ_ALT
AnnaBridge 171:3a7713b1edbc 3670 * @arg @ref LL_ADC_MULTI_TRIPLE_INJ_SIMULT
AnnaBridge 171:3a7713b1edbc 3671 * @arg @ref LL_ADC_MULTI_TRIPLE_REG_SIMULT
AnnaBridge 171:3a7713b1edbc 3672 * @arg @ref LL_ADC_MULTI_TRIPLE_REG_INTERL
AnnaBridge 171:3a7713b1edbc 3673 * @arg @ref LL_ADC_MULTI_TRIPLE_INJ_ALTERN
AnnaBridge 171:3a7713b1edbc 3674 */
AnnaBridge 171:3a7713b1edbc 3675 __STATIC_INLINE uint32_t LL_ADC_GetMultimode(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 171:3a7713b1edbc 3676 {
AnnaBridge 171:3a7713b1edbc 3677 return (uint32_t)(READ_BIT(ADCxy_COMMON->CCR, ADC_CCR_MULTI));
AnnaBridge 171:3a7713b1edbc 3678 }
AnnaBridge 171:3a7713b1edbc 3679
AnnaBridge 171:3a7713b1edbc 3680 /**
AnnaBridge 171:3a7713b1edbc 3681 * @brief Set ADC multimode conversion data transfer: no transfer
AnnaBridge 171:3a7713b1edbc 3682 * or transfer by DMA.
AnnaBridge 171:3a7713b1edbc 3683 * @note If ADC multimode transfer by DMA is not selected:
AnnaBridge 171:3a7713b1edbc 3684 * each ADC uses its own DMA channel, with its individual
AnnaBridge 171:3a7713b1edbc 3685 * DMA transfer settings.
AnnaBridge 171:3a7713b1edbc 3686 * If ADC multimode transfer by DMA is selected:
AnnaBridge 171:3a7713b1edbc 3687 * One DMA channel is used for both ADC (DMA of ADC master)
AnnaBridge 171:3a7713b1edbc 3688 * Specifies the DMA requests mode:
AnnaBridge 171:3a7713b1edbc 3689 * - Limited mode (One shot mode): DMA transfer requests are stopped
AnnaBridge 171:3a7713b1edbc 3690 * when number of DMA data transfers (number of
AnnaBridge 171:3a7713b1edbc 3691 * ADC conversions) is reached.
AnnaBridge 171:3a7713b1edbc 3692 * This ADC mode is intended to be used with DMA mode non-circular.
AnnaBridge 171:3a7713b1edbc 3693 * - Unlimited mode: DMA transfer requests are unlimited,
AnnaBridge 171:3a7713b1edbc 3694 * whatever number of DMA data transfers (number of
AnnaBridge 171:3a7713b1edbc 3695 * ADC conversions).
AnnaBridge 171:3a7713b1edbc 3696 * This ADC mode is intended to be used with DMA mode circular.
AnnaBridge 171:3a7713b1edbc 3697 * @note If ADC DMA requests mode is set to unlimited and DMA is set to
AnnaBridge 171:3a7713b1edbc 3698 * mode non-circular:
AnnaBridge 171:3a7713b1edbc 3699 * when DMA transfers size will be reached, DMA will stop transfers of
AnnaBridge 171:3a7713b1edbc 3700 * ADC conversions data ADC will raise an overrun error
AnnaBridge 171:3a7713b1edbc 3701 * (overrun flag and interruption if enabled).
AnnaBridge 171:3a7713b1edbc 3702 * @note How to retrieve multimode conversion data:
AnnaBridge 171:3a7713b1edbc 3703 * Whatever multimode transfer by DMA setting: using function
AnnaBridge 171:3a7713b1edbc 3704 * @ref LL_ADC_REG_ReadMultiConversionData32().
AnnaBridge 171:3a7713b1edbc 3705 * If ADC multimode transfer by DMA is selected: conversion data
AnnaBridge 171:3a7713b1edbc 3706 * is a raw data with ADC master and slave concatenated.
AnnaBridge 171:3a7713b1edbc 3707 * A macro is available to get the conversion data of
AnnaBridge 171:3a7713b1edbc 3708 * ADC master or ADC slave: see helper macro
AnnaBridge 171:3a7713b1edbc 3709 * @ref __LL_ADC_MULTI_CONV_DATA_MASTER_SLAVE().
AnnaBridge 171:3a7713b1edbc 3710 * @rmtoll CCR MDMA LL_ADC_SetMultiDMATransfer\n
AnnaBridge 171:3a7713b1edbc 3711 * CCR DDS LL_ADC_SetMultiDMATransfer
AnnaBridge 171:3a7713b1edbc 3712 * @param ADCxy_COMMON ADC common instance
AnnaBridge 171:3a7713b1edbc 3713 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 171:3a7713b1edbc 3714 * @param MultiDMATransfer This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3715 * @arg @ref LL_ADC_MULTI_REG_DMA_EACH_ADC
AnnaBridge 171:3a7713b1edbc 3716 * @arg @ref LL_ADC_MULTI_REG_DMA_LIMIT_1
AnnaBridge 171:3a7713b1edbc 3717 * @arg @ref LL_ADC_MULTI_REG_DMA_LIMIT_2
AnnaBridge 171:3a7713b1edbc 3718 * @arg @ref LL_ADC_MULTI_REG_DMA_LIMIT_3
AnnaBridge 171:3a7713b1edbc 3719 * @arg @ref LL_ADC_MULTI_REG_DMA_UNLMT_1
AnnaBridge 171:3a7713b1edbc 3720 * @arg @ref LL_ADC_MULTI_REG_DMA_UNLMT_2
AnnaBridge 171:3a7713b1edbc 3721 * @arg @ref LL_ADC_MULTI_REG_DMA_UNLMT_3
AnnaBridge 171:3a7713b1edbc 3722 * @retval None
AnnaBridge 171:3a7713b1edbc 3723 */
AnnaBridge 171:3a7713b1edbc 3724 __STATIC_INLINE void LL_ADC_SetMultiDMATransfer(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t MultiDMATransfer)
AnnaBridge 171:3a7713b1edbc 3725 {
AnnaBridge 171:3a7713b1edbc 3726 MODIFY_REG(ADCxy_COMMON->CCR, ADC_CCR_DMA | ADC_CCR_DDS, MultiDMATransfer);
AnnaBridge 171:3a7713b1edbc 3727 }
AnnaBridge 171:3a7713b1edbc 3728
AnnaBridge 171:3a7713b1edbc 3729 /**
AnnaBridge 171:3a7713b1edbc 3730 * @brief Get ADC multimode conversion data transfer: no transfer
AnnaBridge 171:3a7713b1edbc 3731 * or transfer by DMA.
AnnaBridge 171:3a7713b1edbc 3732 * @note If ADC multimode transfer by DMA is not selected:
AnnaBridge 171:3a7713b1edbc 3733 * each ADC uses its own DMA channel, with its individual
AnnaBridge 171:3a7713b1edbc 3734 * DMA transfer settings.
AnnaBridge 171:3a7713b1edbc 3735 * If ADC multimode transfer by DMA is selected:
AnnaBridge 171:3a7713b1edbc 3736 * One DMA channel is used for both ADC (DMA of ADC master)
AnnaBridge 171:3a7713b1edbc 3737 * Specifies the DMA requests mode:
AnnaBridge 171:3a7713b1edbc 3738 * - Limited mode (One shot mode): DMA transfer requests are stopped
AnnaBridge 171:3a7713b1edbc 3739 * when number of DMA data transfers (number of
AnnaBridge 171:3a7713b1edbc 3740 * ADC conversions) is reached.
AnnaBridge 171:3a7713b1edbc 3741 * This ADC mode is intended to be used with DMA mode non-circular.
AnnaBridge 171:3a7713b1edbc 3742 * - Unlimited mode: DMA transfer requests are unlimited,
AnnaBridge 171:3a7713b1edbc 3743 * whatever number of DMA data transfers (number of
AnnaBridge 171:3a7713b1edbc 3744 * ADC conversions).
AnnaBridge 171:3a7713b1edbc 3745 * This ADC mode is intended to be used with DMA mode circular.
AnnaBridge 171:3a7713b1edbc 3746 * @note If ADC DMA requests mode is set to unlimited and DMA is set to
AnnaBridge 171:3a7713b1edbc 3747 * mode non-circular:
AnnaBridge 171:3a7713b1edbc 3748 * when DMA transfers size will be reached, DMA will stop transfers of
AnnaBridge 171:3a7713b1edbc 3749 * ADC conversions data ADC will raise an overrun error
AnnaBridge 171:3a7713b1edbc 3750 * (overrun flag and interruption if enabled).
AnnaBridge 171:3a7713b1edbc 3751 * @note How to retrieve multimode conversion data:
AnnaBridge 171:3a7713b1edbc 3752 * Whatever multimode transfer by DMA setting: using function
AnnaBridge 171:3a7713b1edbc 3753 * @ref LL_ADC_REG_ReadMultiConversionData32().
AnnaBridge 171:3a7713b1edbc 3754 * If ADC multimode transfer by DMA is selected: conversion data
AnnaBridge 171:3a7713b1edbc 3755 * is a raw data with ADC master and slave concatenated.
AnnaBridge 171:3a7713b1edbc 3756 * A macro is available to get the conversion data of
AnnaBridge 171:3a7713b1edbc 3757 * ADC master or ADC slave: see helper macro
AnnaBridge 171:3a7713b1edbc 3758 * @ref __LL_ADC_MULTI_CONV_DATA_MASTER_SLAVE().
AnnaBridge 171:3a7713b1edbc 3759 * @rmtoll CCR MDMA LL_ADC_GetMultiDMATransfer\n
AnnaBridge 171:3a7713b1edbc 3760 * CCR DDS LL_ADC_GetMultiDMATransfer
AnnaBridge 171:3a7713b1edbc 3761 * @param ADCxy_COMMON ADC common instance
AnnaBridge 171:3a7713b1edbc 3762 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 171:3a7713b1edbc 3763 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3764 * @arg @ref LL_ADC_MULTI_REG_DMA_EACH_ADC
AnnaBridge 171:3a7713b1edbc 3765 * @arg @ref LL_ADC_MULTI_REG_DMA_LIMIT_1
AnnaBridge 171:3a7713b1edbc 3766 * @arg @ref LL_ADC_MULTI_REG_DMA_LIMIT_2
AnnaBridge 171:3a7713b1edbc 3767 * @arg @ref LL_ADC_MULTI_REG_DMA_LIMIT_3
AnnaBridge 171:3a7713b1edbc 3768 * @arg @ref LL_ADC_MULTI_REG_DMA_UNLMT_1
AnnaBridge 171:3a7713b1edbc 3769 * @arg @ref LL_ADC_MULTI_REG_DMA_UNLMT_2
AnnaBridge 171:3a7713b1edbc 3770 * @arg @ref LL_ADC_MULTI_REG_DMA_UNLMT_3
AnnaBridge 171:3a7713b1edbc 3771 */
AnnaBridge 171:3a7713b1edbc 3772 __STATIC_INLINE uint32_t LL_ADC_GetMultiDMATransfer(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 171:3a7713b1edbc 3773 {
AnnaBridge 171:3a7713b1edbc 3774 return (uint32_t)(READ_BIT(ADCxy_COMMON->CCR, ADC_CCR_DMA | ADC_CCR_DDS));
AnnaBridge 171:3a7713b1edbc 3775 }
AnnaBridge 171:3a7713b1edbc 3776
AnnaBridge 171:3a7713b1edbc 3777 /**
AnnaBridge 171:3a7713b1edbc 3778 * @brief Set ADC multimode delay between 2 sampling phases.
AnnaBridge 171:3a7713b1edbc 3779 * @note The sampling delay range depends on ADC resolution:
AnnaBridge 171:3a7713b1edbc 3780 * - ADC resolution 12 bits can have maximum delay of 12 cycles.
AnnaBridge 171:3a7713b1edbc 3781 * - ADC resolution 10 bits can have maximum delay of 10 cycles.
AnnaBridge 171:3a7713b1edbc 3782 * - ADC resolution 8 bits can have maximum delay of 8 cycles.
AnnaBridge 171:3a7713b1edbc 3783 * - ADC resolution 6 bits can have maximum delay of 6 cycles.
AnnaBridge 171:3a7713b1edbc 3784 * @rmtoll CCR DELAY LL_ADC_SetMultiTwoSamplingDelay
AnnaBridge 171:3a7713b1edbc 3785 * @param ADCxy_COMMON ADC common instance
AnnaBridge 171:3a7713b1edbc 3786 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 171:3a7713b1edbc 3787 * @param MultiTwoSamplingDelay This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3788 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_5CYCLES
AnnaBridge 171:3a7713b1edbc 3789 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_6CYCLES
AnnaBridge 171:3a7713b1edbc 3790 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_7CYCLES
AnnaBridge 171:3a7713b1edbc 3791 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_8CYCLES
AnnaBridge 171:3a7713b1edbc 3792 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_9CYCLES
AnnaBridge 171:3a7713b1edbc 3793 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_10CYCLES
AnnaBridge 171:3a7713b1edbc 3794 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_11CYCLES
AnnaBridge 171:3a7713b1edbc 3795 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_12CYCLES
AnnaBridge 171:3a7713b1edbc 3796 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_13CYCLES
AnnaBridge 171:3a7713b1edbc 3797 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_14CYCLES
AnnaBridge 171:3a7713b1edbc 3798 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_15CYCLES
AnnaBridge 171:3a7713b1edbc 3799 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_16CYCLES
AnnaBridge 171:3a7713b1edbc 3800 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_17CYCLES
AnnaBridge 171:3a7713b1edbc 3801 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_18CYCLES
AnnaBridge 171:3a7713b1edbc 3802 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_19CYCLES
AnnaBridge 171:3a7713b1edbc 3803 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_20CYCLES
AnnaBridge 171:3a7713b1edbc 3804 * @retval None
AnnaBridge 171:3a7713b1edbc 3805 */
AnnaBridge 171:3a7713b1edbc 3806 __STATIC_INLINE void LL_ADC_SetMultiTwoSamplingDelay(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t MultiTwoSamplingDelay)
AnnaBridge 171:3a7713b1edbc 3807 {
AnnaBridge 171:3a7713b1edbc 3808 MODIFY_REG(ADCxy_COMMON->CCR, ADC_CCR_DELAY, MultiTwoSamplingDelay);
AnnaBridge 171:3a7713b1edbc 3809 }
AnnaBridge 171:3a7713b1edbc 3810
AnnaBridge 171:3a7713b1edbc 3811 /**
AnnaBridge 171:3a7713b1edbc 3812 * @brief Get ADC multimode delay between 2 sampling phases.
AnnaBridge 171:3a7713b1edbc 3813 * @rmtoll CCR DELAY LL_ADC_GetMultiTwoSamplingDelay
AnnaBridge 171:3a7713b1edbc 3814 * @param ADCxy_COMMON ADC common instance
AnnaBridge 171:3a7713b1edbc 3815 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 171:3a7713b1edbc 3816 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3817 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_5CYCLES
AnnaBridge 171:3a7713b1edbc 3818 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_6CYCLES
AnnaBridge 171:3a7713b1edbc 3819 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_7CYCLES
AnnaBridge 171:3a7713b1edbc 3820 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_8CYCLES
AnnaBridge 171:3a7713b1edbc 3821 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_9CYCLES
AnnaBridge 171:3a7713b1edbc 3822 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_10CYCLES
AnnaBridge 171:3a7713b1edbc 3823 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_11CYCLES
AnnaBridge 171:3a7713b1edbc 3824 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_12CYCLES
AnnaBridge 171:3a7713b1edbc 3825 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_13CYCLES
AnnaBridge 171:3a7713b1edbc 3826 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_14CYCLES
AnnaBridge 171:3a7713b1edbc 3827 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_15CYCLES
AnnaBridge 171:3a7713b1edbc 3828 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_16CYCLES
AnnaBridge 171:3a7713b1edbc 3829 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_17CYCLES
AnnaBridge 171:3a7713b1edbc 3830 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_18CYCLES
AnnaBridge 171:3a7713b1edbc 3831 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_19CYCLES
AnnaBridge 171:3a7713b1edbc 3832 * @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_20CYCLES
AnnaBridge 171:3a7713b1edbc 3833 */
AnnaBridge 171:3a7713b1edbc 3834 __STATIC_INLINE uint32_t LL_ADC_GetMultiTwoSamplingDelay(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 171:3a7713b1edbc 3835 {
AnnaBridge 171:3a7713b1edbc 3836 return (uint32_t)(READ_BIT(ADCxy_COMMON->CCR, ADC_CCR_DELAY));
AnnaBridge 171:3a7713b1edbc 3837 }
AnnaBridge 171:3a7713b1edbc 3838
AnnaBridge 171:3a7713b1edbc 3839 /**
AnnaBridge 171:3a7713b1edbc 3840 * @}
AnnaBridge 171:3a7713b1edbc 3841 */
AnnaBridge 171:3a7713b1edbc 3842 /** @defgroup ADC_LL_EF_Operation_ADC_Instance Operation on ADC hierarchical scope: ADC instance
AnnaBridge 171:3a7713b1edbc 3843 * @{
AnnaBridge 171:3a7713b1edbc 3844 */
AnnaBridge 171:3a7713b1edbc 3845
AnnaBridge 171:3a7713b1edbc 3846 /**
AnnaBridge 171:3a7713b1edbc 3847 * @brief Enable the selected ADC instance.
AnnaBridge 171:3a7713b1edbc 3848 * @note On this STM32 serie, after ADC enable, a delay for
AnnaBridge 171:3a7713b1edbc 3849 * ADC internal analog stabilization is required before performing a
AnnaBridge 171:3a7713b1edbc 3850 * ADC conversion start.
AnnaBridge 171:3a7713b1edbc 3851 * Refer to device datasheet, parameter tSTAB.
AnnaBridge 171:3a7713b1edbc 3852 * @rmtoll CR2 ADON LL_ADC_Enable
AnnaBridge 171:3a7713b1edbc 3853 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 3854 * @retval None
AnnaBridge 171:3a7713b1edbc 3855 */
AnnaBridge 171:3a7713b1edbc 3856 __STATIC_INLINE void LL_ADC_Enable(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 3857 {
AnnaBridge 171:3a7713b1edbc 3858 SET_BIT(ADCx->CR2, ADC_CR2_ADON);
AnnaBridge 171:3a7713b1edbc 3859 }
AnnaBridge 171:3a7713b1edbc 3860
AnnaBridge 171:3a7713b1edbc 3861 /**
AnnaBridge 171:3a7713b1edbc 3862 * @brief Disable the selected ADC instance.
AnnaBridge 171:3a7713b1edbc 3863 * @rmtoll CR2 ADON LL_ADC_Disable
AnnaBridge 171:3a7713b1edbc 3864 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 3865 * @retval None
AnnaBridge 171:3a7713b1edbc 3866 */
AnnaBridge 171:3a7713b1edbc 3867 __STATIC_INLINE void LL_ADC_Disable(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 3868 {
AnnaBridge 171:3a7713b1edbc 3869 CLEAR_BIT(ADCx->CR2, ADC_CR2_ADON);
AnnaBridge 171:3a7713b1edbc 3870 }
AnnaBridge 171:3a7713b1edbc 3871
AnnaBridge 171:3a7713b1edbc 3872 /**
AnnaBridge 171:3a7713b1edbc 3873 * @brief Get the selected ADC instance enable state.
AnnaBridge 171:3a7713b1edbc 3874 * @rmtoll CR2 ADON LL_ADC_IsEnabled
AnnaBridge 171:3a7713b1edbc 3875 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 3876 * @retval 0: ADC is disabled, 1: ADC is enabled.
AnnaBridge 171:3a7713b1edbc 3877 */
AnnaBridge 171:3a7713b1edbc 3878 __STATIC_INLINE uint32_t LL_ADC_IsEnabled(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 3879 {
AnnaBridge 171:3a7713b1edbc 3880 return (READ_BIT(ADCx->CR2, ADC_CR2_ADON) == (ADC_CR2_ADON));
AnnaBridge 171:3a7713b1edbc 3881 }
AnnaBridge 171:3a7713b1edbc 3882
AnnaBridge 171:3a7713b1edbc 3883 /**
AnnaBridge 171:3a7713b1edbc 3884 * @}
AnnaBridge 171:3a7713b1edbc 3885 */
AnnaBridge 171:3a7713b1edbc 3886
AnnaBridge 171:3a7713b1edbc 3887 /** @defgroup ADC_LL_EF_Operation_ADC_Group_Regular Operation on ADC hierarchical scope: group regular
AnnaBridge 171:3a7713b1edbc 3888 * @{
AnnaBridge 171:3a7713b1edbc 3889 */
AnnaBridge 171:3a7713b1edbc 3890
AnnaBridge 171:3a7713b1edbc 3891 /**
AnnaBridge 171:3a7713b1edbc 3892 * @brief Start ADC group regular conversion.
AnnaBridge 171:3a7713b1edbc 3893 * @note On this STM32 serie, this function is relevant only for
AnnaBridge 171:3a7713b1edbc 3894 * internal trigger (SW start), not for external trigger:
AnnaBridge 171:3a7713b1edbc 3895 * - If ADC trigger has been set to software start, ADC conversion
AnnaBridge 171:3a7713b1edbc 3896 * starts immediately.
AnnaBridge 171:3a7713b1edbc 3897 * - If ADC trigger has been set to external trigger, ADC conversion
AnnaBridge 171:3a7713b1edbc 3898 * start must be performed using function
AnnaBridge 171:3a7713b1edbc 3899 * @ref LL_ADC_REG_StartConversionExtTrig().
AnnaBridge 171:3a7713b1edbc 3900 * (if external trigger edge would have been set during ADC other
AnnaBridge 171:3a7713b1edbc 3901 * settings, ADC conversion would start at trigger event
AnnaBridge 171:3a7713b1edbc 3902 * as soon as ADC is enabled).
AnnaBridge 171:3a7713b1edbc 3903 * @rmtoll CR2 SWSTART LL_ADC_REG_StartConversionSWStart
AnnaBridge 171:3a7713b1edbc 3904 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 3905 * @retval None
AnnaBridge 171:3a7713b1edbc 3906 */
AnnaBridge 171:3a7713b1edbc 3907 __STATIC_INLINE void LL_ADC_REG_StartConversionSWStart(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 3908 {
AnnaBridge 171:3a7713b1edbc 3909 SET_BIT(ADCx->CR2, ADC_CR2_SWSTART);
AnnaBridge 171:3a7713b1edbc 3910 }
AnnaBridge 171:3a7713b1edbc 3911
AnnaBridge 171:3a7713b1edbc 3912 /**
AnnaBridge 171:3a7713b1edbc 3913 * @brief Start ADC group regular conversion from external trigger.
AnnaBridge 171:3a7713b1edbc 3914 * @note ADC conversion will start at next trigger event (on the selected
AnnaBridge 171:3a7713b1edbc 3915 * trigger edge) following the ADC start conversion command.
AnnaBridge 171:3a7713b1edbc 3916 * @note On this STM32 serie, this function is relevant for
AnnaBridge 171:3a7713b1edbc 3917 * ADC conversion start from external trigger.
AnnaBridge 171:3a7713b1edbc 3918 * If internal trigger (SW start) is needed, perform ADC conversion
AnnaBridge 171:3a7713b1edbc 3919 * start using function @ref LL_ADC_REG_StartConversionSWStart().
AnnaBridge 171:3a7713b1edbc 3920 * @rmtoll CR2 EXTEN LL_ADC_REG_StartConversionExtTrig
AnnaBridge 171:3a7713b1edbc 3921 * @param ExternalTriggerEdge This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3922 * @arg @ref LL_ADC_REG_TRIG_EXT_RISING
AnnaBridge 171:3a7713b1edbc 3923 * @arg @ref LL_ADC_REG_TRIG_EXT_FALLING
AnnaBridge 171:3a7713b1edbc 3924 * @arg @ref LL_ADC_REG_TRIG_EXT_RISINGFALLING
AnnaBridge 171:3a7713b1edbc 3925 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 3926 * @retval None
AnnaBridge 171:3a7713b1edbc 3927 */
AnnaBridge 171:3a7713b1edbc 3928 __STATIC_INLINE void LL_ADC_REG_StartConversionExtTrig(ADC_TypeDef *ADCx, uint32_t ExternalTriggerEdge)
AnnaBridge 171:3a7713b1edbc 3929 {
AnnaBridge 171:3a7713b1edbc 3930 SET_BIT(ADCx->CR2, ExternalTriggerEdge);
AnnaBridge 171:3a7713b1edbc 3931 }
AnnaBridge 171:3a7713b1edbc 3932
AnnaBridge 171:3a7713b1edbc 3933 /**
AnnaBridge 171:3a7713b1edbc 3934 * @brief Stop ADC group regular conversion from external trigger.
AnnaBridge 171:3a7713b1edbc 3935 * @note No more ADC conversion will start at next trigger event
AnnaBridge 171:3a7713b1edbc 3936 * following the ADC stop conversion command.
AnnaBridge 171:3a7713b1edbc 3937 * If a conversion is on-going, it will be completed.
AnnaBridge 171:3a7713b1edbc 3938 * @note On this STM32 serie, there is no specific command
AnnaBridge 171:3a7713b1edbc 3939 * to stop a conversion on-going or to stop ADC converting
AnnaBridge 171:3a7713b1edbc 3940 * in continuous mode. These actions can be performed
AnnaBridge 171:3a7713b1edbc 3941 * using function @ref LL_ADC_Disable().
AnnaBridge 171:3a7713b1edbc 3942 * @rmtoll CR2 EXTEN LL_ADC_REG_StopConversionExtTrig
AnnaBridge 171:3a7713b1edbc 3943 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 3944 * @retval None
AnnaBridge 171:3a7713b1edbc 3945 */
AnnaBridge 171:3a7713b1edbc 3946 __STATIC_INLINE void LL_ADC_REG_StopConversionExtTrig(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 3947 {
AnnaBridge 171:3a7713b1edbc 3948 CLEAR_BIT(ADCx->CR2, ADC_CR2_EXTEN);
AnnaBridge 171:3a7713b1edbc 3949 }
AnnaBridge 171:3a7713b1edbc 3950
AnnaBridge 171:3a7713b1edbc 3951 /**
AnnaBridge 171:3a7713b1edbc 3952 * @brief Get ADC group regular conversion data, range fit for
AnnaBridge 171:3a7713b1edbc 3953 * all ADC configurations: all ADC resolutions and
AnnaBridge 171:3a7713b1edbc 3954 * all oversampling increased data width (for devices
AnnaBridge 171:3a7713b1edbc 3955 * with feature oversampling).
AnnaBridge 171:3a7713b1edbc 3956 * @rmtoll DR RDATA LL_ADC_REG_ReadConversionData32
AnnaBridge 171:3a7713b1edbc 3957 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 3958 * @retval Value between Min_Data=0x00000000 and Max_Data=0xFFFFFFFF
AnnaBridge 171:3a7713b1edbc 3959 */
AnnaBridge 171:3a7713b1edbc 3960 __STATIC_INLINE uint32_t LL_ADC_REG_ReadConversionData32(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 3961 {
AnnaBridge 171:3a7713b1edbc 3962 return (uint16_t)(READ_BIT(ADCx->DR, ADC_DR_DATA));
AnnaBridge 171:3a7713b1edbc 3963 }
AnnaBridge 171:3a7713b1edbc 3964
AnnaBridge 171:3a7713b1edbc 3965 /**
AnnaBridge 171:3a7713b1edbc 3966 * @brief Get ADC group regular conversion data, range fit for
AnnaBridge 171:3a7713b1edbc 3967 * ADC resolution 12 bits.
AnnaBridge 171:3a7713b1edbc 3968 * @note For devices with feature oversampling: Oversampling
AnnaBridge 171:3a7713b1edbc 3969 * can increase data width, function for extended range
AnnaBridge 171:3a7713b1edbc 3970 * may be needed: @ref LL_ADC_REG_ReadConversionData32.
AnnaBridge 171:3a7713b1edbc 3971 * @rmtoll DR RDATA LL_ADC_REG_ReadConversionData12
AnnaBridge 171:3a7713b1edbc 3972 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 3973 * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
AnnaBridge 171:3a7713b1edbc 3974 */
AnnaBridge 171:3a7713b1edbc 3975 __STATIC_INLINE uint16_t LL_ADC_REG_ReadConversionData12(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 3976 {
AnnaBridge 171:3a7713b1edbc 3977 return (uint16_t)(READ_BIT(ADCx->DR, ADC_DR_DATA));
AnnaBridge 171:3a7713b1edbc 3978 }
AnnaBridge 171:3a7713b1edbc 3979
AnnaBridge 171:3a7713b1edbc 3980 /**
AnnaBridge 171:3a7713b1edbc 3981 * @brief Get ADC group regular conversion data, range fit for
AnnaBridge 171:3a7713b1edbc 3982 * ADC resolution 10 bits.
AnnaBridge 171:3a7713b1edbc 3983 * @note For devices with feature oversampling: Oversampling
AnnaBridge 171:3a7713b1edbc 3984 * can increase data width, function for extended range
AnnaBridge 171:3a7713b1edbc 3985 * may be needed: @ref LL_ADC_REG_ReadConversionData32.
AnnaBridge 171:3a7713b1edbc 3986 * @rmtoll DR RDATA LL_ADC_REG_ReadConversionData10
AnnaBridge 171:3a7713b1edbc 3987 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 3988 * @retval Value between Min_Data=0x000 and Max_Data=0x3FF
AnnaBridge 171:3a7713b1edbc 3989 */
AnnaBridge 171:3a7713b1edbc 3990 __STATIC_INLINE uint16_t LL_ADC_REG_ReadConversionData10(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 3991 {
AnnaBridge 171:3a7713b1edbc 3992 return (uint16_t)(READ_BIT(ADCx->DR, ADC_DR_DATA));
AnnaBridge 171:3a7713b1edbc 3993 }
AnnaBridge 171:3a7713b1edbc 3994
AnnaBridge 171:3a7713b1edbc 3995 /**
AnnaBridge 171:3a7713b1edbc 3996 * @brief Get ADC group regular conversion data, range fit for
AnnaBridge 171:3a7713b1edbc 3997 * ADC resolution 8 bits.
AnnaBridge 171:3a7713b1edbc 3998 * @note For devices with feature oversampling: Oversampling
AnnaBridge 171:3a7713b1edbc 3999 * can increase data width, function for extended range
AnnaBridge 171:3a7713b1edbc 4000 * may be needed: @ref LL_ADC_REG_ReadConversionData32.
AnnaBridge 171:3a7713b1edbc 4001 * @rmtoll DR RDATA LL_ADC_REG_ReadConversionData8
AnnaBridge 171:3a7713b1edbc 4002 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4003 * @retval Value between Min_Data=0x00 and Max_Data=0xFF
AnnaBridge 171:3a7713b1edbc 4004 */
AnnaBridge 171:3a7713b1edbc 4005 __STATIC_INLINE uint8_t LL_ADC_REG_ReadConversionData8(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4006 {
AnnaBridge 171:3a7713b1edbc 4007 return (uint16_t)(READ_BIT(ADCx->DR, ADC_DR_DATA));
AnnaBridge 171:3a7713b1edbc 4008 }
AnnaBridge 171:3a7713b1edbc 4009
AnnaBridge 171:3a7713b1edbc 4010 /**
AnnaBridge 171:3a7713b1edbc 4011 * @brief Get ADC group regular conversion data, range fit for
AnnaBridge 171:3a7713b1edbc 4012 * ADC resolution 6 bits.
AnnaBridge 171:3a7713b1edbc 4013 * @note For devices with feature oversampling: Oversampling
AnnaBridge 171:3a7713b1edbc 4014 * can increase data width, function for extended range
AnnaBridge 171:3a7713b1edbc 4015 * may be needed: @ref LL_ADC_REG_ReadConversionData32.
AnnaBridge 171:3a7713b1edbc 4016 * @rmtoll DR RDATA LL_ADC_REG_ReadConversionData6
AnnaBridge 171:3a7713b1edbc 4017 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4018 * @retval Value between Min_Data=0x00 and Max_Data=0x3F
AnnaBridge 171:3a7713b1edbc 4019 */
AnnaBridge 171:3a7713b1edbc 4020 __STATIC_INLINE uint8_t LL_ADC_REG_ReadConversionData6(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4021 {
AnnaBridge 171:3a7713b1edbc 4022 return (uint16_t)(READ_BIT(ADCx->DR, ADC_DR_DATA));
AnnaBridge 171:3a7713b1edbc 4023 }
AnnaBridge 171:3a7713b1edbc 4024
AnnaBridge 171:3a7713b1edbc 4025 /**
AnnaBridge 171:3a7713b1edbc 4026 * @brief Get ADC multimode conversion data of ADC master, ADC slave
AnnaBridge 171:3a7713b1edbc 4027 * or raw data with ADC master and slave concatenated.
AnnaBridge 171:3a7713b1edbc 4028 * @note If raw data with ADC master and slave concatenated is retrieved,
AnnaBridge 171:3a7713b1edbc 4029 * a macro is available to get the conversion data of
AnnaBridge 171:3a7713b1edbc 4030 * ADC master or ADC slave: see helper macro
AnnaBridge 171:3a7713b1edbc 4031 * @ref __LL_ADC_MULTI_CONV_DATA_MASTER_SLAVE().
AnnaBridge 171:3a7713b1edbc 4032 * (however this macro is mainly intended for multimode
AnnaBridge 171:3a7713b1edbc 4033 * transfer by DMA, because this function can do the same
AnnaBridge 171:3a7713b1edbc 4034 * by getting multimode conversion data of ADC master or ADC slave
AnnaBridge 171:3a7713b1edbc 4035 * separately).
AnnaBridge 171:3a7713b1edbc 4036 * @rmtoll CDR DATA1 LL_ADC_REG_ReadMultiConversionData32\n
AnnaBridge 171:3a7713b1edbc 4037 * CDR DATA2 LL_ADC_REG_ReadMultiConversionData32
AnnaBridge 171:3a7713b1edbc 4038 * @param ADCxy_COMMON ADC common instance
AnnaBridge 171:3a7713b1edbc 4039 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 171:3a7713b1edbc 4040 * @param ConversionData This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 4041 * @arg @ref LL_ADC_MULTI_MASTER
AnnaBridge 171:3a7713b1edbc 4042 * @arg @ref LL_ADC_MULTI_SLAVE
AnnaBridge 171:3a7713b1edbc 4043 * @arg @ref LL_ADC_MULTI_MASTER_SLAVE
AnnaBridge 171:3a7713b1edbc 4044 * @retval Value between Min_Data=0x00000000 and Max_Data=0xFFFFFFFF
AnnaBridge 171:3a7713b1edbc 4045 */
AnnaBridge 171:3a7713b1edbc 4046 __STATIC_INLINE uint32_t LL_ADC_REG_ReadMultiConversionData32(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t ConversionData)
AnnaBridge 171:3a7713b1edbc 4047 {
AnnaBridge 171:3a7713b1edbc 4048 return (uint32_t)(READ_BIT(ADCxy_COMMON->CDR,
AnnaBridge 171:3a7713b1edbc 4049 ADC_DR_ADC2DATA)
AnnaBridge 171:3a7713b1edbc 4050 >> POSITION_VAL(ConversionData)
AnnaBridge 171:3a7713b1edbc 4051 );
AnnaBridge 171:3a7713b1edbc 4052 }
AnnaBridge 171:3a7713b1edbc 4053
AnnaBridge 171:3a7713b1edbc 4054 /**
AnnaBridge 171:3a7713b1edbc 4055 * @}
AnnaBridge 171:3a7713b1edbc 4056 */
AnnaBridge 171:3a7713b1edbc 4057
AnnaBridge 171:3a7713b1edbc 4058 /** @defgroup ADC_LL_EF_Operation_ADC_Group_Injected Operation on ADC hierarchical scope: group injected
AnnaBridge 171:3a7713b1edbc 4059 * @{
AnnaBridge 171:3a7713b1edbc 4060 */
AnnaBridge 171:3a7713b1edbc 4061
AnnaBridge 171:3a7713b1edbc 4062 /**
AnnaBridge 171:3a7713b1edbc 4063 * @brief Start ADC group injected conversion.
AnnaBridge 171:3a7713b1edbc 4064 * @note On this STM32 serie, this function is relevant only for
AnnaBridge 171:3a7713b1edbc 4065 * internal trigger (SW start), not for external trigger:
AnnaBridge 171:3a7713b1edbc 4066 * - If ADC trigger has been set to software start, ADC conversion
AnnaBridge 171:3a7713b1edbc 4067 * starts immediately.
AnnaBridge 171:3a7713b1edbc 4068 * - If ADC trigger has been set to external trigger, ADC conversion
AnnaBridge 171:3a7713b1edbc 4069 * start must be performed using function
AnnaBridge 171:3a7713b1edbc 4070 * @ref LL_ADC_INJ_StartConversionExtTrig().
AnnaBridge 171:3a7713b1edbc 4071 * (if external trigger edge would have been set during ADC other
AnnaBridge 171:3a7713b1edbc 4072 * settings, ADC conversion would start at trigger event
AnnaBridge 171:3a7713b1edbc 4073 * as soon as ADC is enabled).
AnnaBridge 171:3a7713b1edbc 4074 * @rmtoll CR2 JSWSTART LL_ADC_INJ_StartConversionSWStart
AnnaBridge 171:3a7713b1edbc 4075 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4076 * @retval None
AnnaBridge 171:3a7713b1edbc 4077 */
AnnaBridge 171:3a7713b1edbc 4078 __STATIC_INLINE void LL_ADC_INJ_StartConversionSWStart(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4079 {
AnnaBridge 171:3a7713b1edbc 4080 SET_BIT(ADCx->CR2, ADC_CR2_JSWSTART);
AnnaBridge 171:3a7713b1edbc 4081 }
AnnaBridge 171:3a7713b1edbc 4082
AnnaBridge 171:3a7713b1edbc 4083 /**
AnnaBridge 171:3a7713b1edbc 4084 * @brief Start ADC group injected conversion from external trigger.
AnnaBridge 171:3a7713b1edbc 4085 * @note ADC conversion will start at next trigger event (on the selected
AnnaBridge 171:3a7713b1edbc 4086 * trigger edge) following the ADC start conversion command.
AnnaBridge 171:3a7713b1edbc 4087 * @note On this STM32 serie, this function is relevant for
AnnaBridge 171:3a7713b1edbc 4088 * ADC conversion start from external trigger.
AnnaBridge 171:3a7713b1edbc 4089 * If internal trigger (SW start) is needed, perform ADC conversion
AnnaBridge 171:3a7713b1edbc 4090 * start using function @ref LL_ADC_INJ_StartConversionSWStart().
AnnaBridge 171:3a7713b1edbc 4091 * @rmtoll CR2 JEXTEN LL_ADC_INJ_StartConversionExtTrig
AnnaBridge 171:3a7713b1edbc 4092 * @param ExternalTriggerEdge This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 4093 * @arg @ref LL_ADC_INJ_TRIG_EXT_RISING
AnnaBridge 171:3a7713b1edbc 4094 * @arg @ref LL_ADC_INJ_TRIG_EXT_FALLING
AnnaBridge 171:3a7713b1edbc 4095 * @arg @ref LL_ADC_INJ_TRIG_EXT_RISINGFALLING
AnnaBridge 171:3a7713b1edbc 4096 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4097 * @retval None
AnnaBridge 171:3a7713b1edbc 4098 */
AnnaBridge 171:3a7713b1edbc 4099 __STATIC_INLINE void LL_ADC_INJ_StartConversionExtTrig(ADC_TypeDef *ADCx, uint32_t ExternalTriggerEdge)
AnnaBridge 171:3a7713b1edbc 4100 {
AnnaBridge 171:3a7713b1edbc 4101 SET_BIT(ADCx->CR2, ExternalTriggerEdge);
AnnaBridge 171:3a7713b1edbc 4102 }
AnnaBridge 171:3a7713b1edbc 4103
AnnaBridge 171:3a7713b1edbc 4104 /**
AnnaBridge 171:3a7713b1edbc 4105 * @brief Stop ADC group injected conversion from external trigger.
AnnaBridge 171:3a7713b1edbc 4106 * @note No more ADC conversion will start at next trigger event
AnnaBridge 171:3a7713b1edbc 4107 * following the ADC stop conversion command.
AnnaBridge 171:3a7713b1edbc 4108 * If a conversion is on-going, it will be completed.
AnnaBridge 171:3a7713b1edbc 4109 * @note On this STM32 serie, there is no specific command
AnnaBridge 171:3a7713b1edbc 4110 * to stop a conversion on-going or to stop ADC converting
AnnaBridge 171:3a7713b1edbc 4111 * in continuous mode. These actions can be performed
AnnaBridge 171:3a7713b1edbc 4112 * using function @ref LL_ADC_Disable().
AnnaBridge 171:3a7713b1edbc 4113 * @rmtoll CR2 JEXTEN LL_ADC_INJ_StopConversionExtTrig
AnnaBridge 171:3a7713b1edbc 4114 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4115 * @retval None
AnnaBridge 171:3a7713b1edbc 4116 */
AnnaBridge 171:3a7713b1edbc 4117 __STATIC_INLINE void LL_ADC_INJ_StopConversionExtTrig(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4118 {
AnnaBridge 171:3a7713b1edbc 4119 CLEAR_BIT(ADCx->CR2, ADC_CR2_JEXTEN);
AnnaBridge 171:3a7713b1edbc 4120 }
AnnaBridge 171:3a7713b1edbc 4121
AnnaBridge 171:3a7713b1edbc 4122 /**
AnnaBridge 171:3a7713b1edbc 4123 * @brief Get ADC group regular conversion data, range fit for
AnnaBridge 171:3a7713b1edbc 4124 * all ADC configurations: all ADC resolutions and
AnnaBridge 171:3a7713b1edbc 4125 * all oversampling increased data width (for devices
AnnaBridge 171:3a7713b1edbc 4126 * with feature oversampling).
AnnaBridge 171:3a7713b1edbc 4127 * @rmtoll JDR1 JDATA LL_ADC_INJ_ReadConversionData32\n
AnnaBridge 171:3a7713b1edbc 4128 * JDR2 JDATA LL_ADC_INJ_ReadConversionData32\n
AnnaBridge 171:3a7713b1edbc 4129 * JDR3 JDATA LL_ADC_INJ_ReadConversionData32\n
AnnaBridge 171:3a7713b1edbc 4130 * JDR4 JDATA LL_ADC_INJ_ReadConversionData32
AnnaBridge 171:3a7713b1edbc 4131 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4132 * @param Rank This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 4133 * @arg @ref LL_ADC_INJ_RANK_1
AnnaBridge 171:3a7713b1edbc 4134 * @arg @ref LL_ADC_INJ_RANK_2
AnnaBridge 171:3a7713b1edbc 4135 * @arg @ref LL_ADC_INJ_RANK_3
AnnaBridge 171:3a7713b1edbc 4136 * @arg @ref LL_ADC_INJ_RANK_4
AnnaBridge 171:3a7713b1edbc 4137 * @retval Value between Min_Data=0x00000000 and Max_Data=0xFFFFFFFF
AnnaBridge 171:3a7713b1edbc 4138 */
AnnaBridge 171:3a7713b1edbc 4139 __STATIC_INLINE uint32_t LL_ADC_INJ_ReadConversionData32(ADC_TypeDef *ADCx, uint32_t Rank)
AnnaBridge 171:3a7713b1edbc 4140 {
AnnaBridge 171:3a7713b1edbc 4141 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JDR1, __ADC_MASK_SHIFT(Rank, ADC_INJ_JDRX_REGOFFSET_MASK));
AnnaBridge 171:3a7713b1edbc 4142
AnnaBridge 171:3a7713b1edbc 4143 return (uint32_t)(READ_BIT(*preg,
AnnaBridge 171:3a7713b1edbc 4144 ADC_JDR1_JDATA)
AnnaBridge 171:3a7713b1edbc 4145 );
AnnaBridge 171:3a7713b1edbc 4146 }
AnnaBridge 171:3a7713b1edbc 4147
AnnaBridge 171:3a7713b1edbc 4148 /**
AnnaBridge 171:3a7713b1edbc 4149 * @brief Get ADC group injected conversion data, range fit for
AnnaBridge 171:3a7713b1edbc 4150 * ADC resolution 12 bits.
AnnaBridge 171:3a7713b1edbc 4151 * @note For devices with feature oversampling: Oversampling
AnnaBridge 171:3a7713b1edbc 4152 * can increase data width, function for extended range
AnnaBridge 171:3a7713b1edbc 4153 * may be needed: @ref LL_ADC_INJ_ReadConversionData32.
AnnaBridge 171:3a7713b1edbc 4154 * @rmtoll JDR1 JDATA LL_ADC_INJ_ReadConversionData12\n
AnnaBridge 171:3a7713b1edbc 4155 * JDR2 JDATA LL_ADC_INJ_ReadConversionData12\n
AnnaBridge 171:3a7713b1edbc 4156 * JDR3 JDATA LL_ADC_INJ_ReadConversionData12\n
AnnaBridge 171:3a7713b1edbc 4157 * JDR4 JDATA LL_ADC_INJ_ReadConversionData12
AnnaBridge 171:3a7713b1edbc 4158 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4159 * @param Rank This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 4160 * @arg @ref LL_ADC_INJ_RANK_1
AnnaBridge 171:3a7713b1edbc 4161 * @arg @ref LL_ADC_INJ_RANK_2
AnnaBridge 171:3a7713b1edbc 4162 * @arg @ref LL_ADC_INJ_RANK_3
AnnaBridge 171:3a7713b1edbc 4163 * @arg @ref LL_ADC_INJ_RANK_4
AnnaBridge 171:3a7713b1edbc 4164 * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
AnnaBridge 171:3a7713b1edbc 4165 */
AnnaBridge 171:3a7713b1edbc 4166 __STATIC_INLINE uint16_t LL_ADC_INJ_ReadConversionData12(ADC_TypeDef *ADCx, uint32_t Rank)
AnnaBridge 171:3a7713b1edbc 4167 {
AnnaBridge 171:3a7713b1edbc 4168 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JDR1, __ADC_MASK_SHIFT(Rank, ADC_INJ_JDRX_REGOFFSET_MASK));
AnnaBridge 171:3a7713b1edbc 4169
AnnaBridge 171:3a7713b1edbc 4170 return (uint16_t)(READ_BIT(*preg,
AnnaBridge 171:3a7713b1edbc 4171 ADC_JDR1_JDATA)
AnnaBridge 171:3a7713b1edbc 4172 );
AnnaBridge 171:3a7713b1edbc 4173 }
AnnaBridge 171:3a7713b1edbc 4174
AnnaBridge 171:3a7713b1edbc 4175 /**
AnnaBridge 171:3a7713b1edbc 4176 * @brief Get ADC group injected conversion data, range fit for
AnnaBridge 171:3a7713b1edbc 4177 * ADC resolution 10 bits.
AnnaBridge 171:3a7713b1edbc 4178 * @note For devices with feature oversampling: Oversampling
AnnaBridge 171:3a7713b1edbc 4179 * can increase data width, function for extended range
AnnaBridge 171:3a7713b1edbc 4180 * may be needed: @ref LL_ADC_INJ_ReadConversionData32.
AnnaBridge 171:3a7713b1edbc 4181 * @rmtoll JDR1 JDATA LL_ADC_INJ_ReadConversionData10\n
AnnaBridge 171:3a7713b1edbc 4182 * JDR2 JDATA LL_ADC_INJ_ReadConversionData10\n
AnnaBridge 171:3a7713b1edbc 4183 * JDR3 JDATA LL_ADC_INJ_ReadConversionData10\n
AnnaBridge 171:3a7713b1edbc 4184 * JDR4 JDATA LL_ADC_INJ_ReadConversionData10
AnnaBridge 171:3a7713b1edbc 4185 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4186 * @param Rank This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 4187 * @arg @ref LL_ADC_INJ_RANK_1
AnnaBridge 171:3a7713b1edbc 4188 * @arg @ref LL_ADC_INJ_RANK_2
AnnaBridge 171:3a7713b1edbc 4189 * @arg @ref LL_ADC_INJ_RANK_3
AnnaBridge 171:3a7713b1edbc 4190 * @arg @ref LL_ADC_INJ_RANK_4
AnnaBridge 171:3a7713b1edbc 4191 * @retval Value between Min_Data=0x000 and Max_Data=0x3FF
AnnaBridge 171:3a7713b1edbc 4192 */
AnnaBridge 171:3a7713b1edbc 4193 __STATIC_INLINE uint16_t LL_ADC_INJ_ReadConversionData10(ADC_TypeDef *ADCx, uint32_t Rank)
AnnaBridge 171:3a7713b1edbc 4194 {
AnnaBridge 171:3a7713b1edbc 4195 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JDR1, __ADC_MASK_SHIFT(Rank, ADC_INJ_JDRX_REGOFFSET_MASK));
AnnaBridge 171:3a7713b1edbc 4196
AnnaBridge 171:3a7713b1edbc 4197 return (uint16_t)(READ_BIT(*preg,
AnnaBridge 171:3a7713b1edbc 4198 ADC_JDR1_JDATA)
AnnaBridge 171:3a7713b1edbc 4199 );
AnnaBridge 171:3a7713b1edbc 4200 }
AnnaBridge 171:3a7713b1edbc 4201
AnnaBridge 171:3a7713b1edbc 4202 /**
AnnaBridge 171:3a7713b1edbc 4203 * @brief Get ADC group injected conversion data, range fit for
AnnaBridge 171:3a7713b1edbc 4204 * ADC resolution 8 bits.
AnnaBridge 171:3a7713b1edbc 4205 * @note For devices with feature oversampling: Oversampling
AnnaBridge 171:3a7713b1edbc 4206 * can increase data width, function for extended range
AnnaBridge 171:3a7713b1edbc 4207 * may be needed: @ref LL_ADC_INJ_ReadConversionData32.
AnnaBridge 171:3a7713b1edbc 4208 * @rmtoll JDR1 JDATA LL_ADC_INJ_ReadConversionData8\n
AnnaBridge 171:3a7713b1edbc 4209 * JDR2 JDATA LL_ADC_INJ_ReadConversionData8\n
AnnaBridge 171:3a7713b1edbc 4210 * JDR3 JDATA LL_ADC_INJ_ReadConversionData8\n
AnnaBridge 171:3a7713b1edbc 4211 * JDR4 JDATA LL_ADC_INJ_ReadConversionData8
AnnaBridge 171:3a7713b1edbc 4212 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4213 * @param Rank This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 4214 * @arg @ref LL_ADC_INJ_RANK_1
AnnaBridge 171:3a7713b1edbc 4215 * @arg @ref LL_ADC_INJ_RANK_2
AnnaBridge 171:3a7713b1edbc 4216 * @arg @ref LL_ADC_INJ_RANK_3
AnnaBridge 171:3a7713b1edbc 4217 * @arg @ref LL_ADC_INJ_RANK_4
AnnaBridge 171:3a7713b1edbc 4218 * @retval Value between Min_Data=0x00 and Max_Data=0xFF
AnnaBridge 171:3a7713b1edbc 4219 */
AnnaBridge 171:3a7713b1edbc 4220 __STATIC_INLINE uint8_t LL_ADC_INJ_ReadConversionData8(ADC_TypeDef *ADCx, uint32_t Rank)
AnnaBridge 171:3a7713b1edbc 4221 {
AnnaBridge 171:3a7713b1edbc 4222 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JDR1, __ADC_MASK_SHIFT(Rank, ADC_INJ_JDRX_REGOFFSET_MASK));
AnnaBridge 171:3a7713b1edbc 4223
AnnaBridge 171:3a7713b1edbc 4224 return (uint8_t)(READ_BIT(*preg,
AnnaBridge 171:3a7713b1edbc 4225 ADC_JDR1_JDATA)
AnnaBridge 171:3a7713b1edbc 4226 );
AnnaBridge 171:3a7713b1edbc 4227 }
AnnaBridge 171:3a7713b1edbc 4228
AnnaBridge 171:3a7713b1edbc 4229 /**
AnnaBridge 171:3a7713b1edbc 4230 * @brief Get ADC group injected conversion data, range fit for
AnnaBridge 171:3a7713b1edbc 4231 * ADC resolution 6 bits.
AnnaBridge 171:3a7713b1edbc 4232 * @note For devices with feature oversampling: Oversampling
AnnaBridge 171:3a7713b1edbc 4233 * can increase data width, function for extended range
AnnaBridge 171:3a7713b1edbc 4234 * may be needed: @ref LL_ADC_INJ_ReadConversionData32.
AnnaBridge 171:3a7713b1edbc 4235 * @rmtoll JDR1 JDATA LL_ADC_INJ_ReadConversionData6\n
AnnaBridge 171:3a7713b1edbc 4236 * JDR2 JDATA LL_ADC_INJ_ReadConversionData6\n
AnnaBridge 171:3a7713b1edbc 4237 * JDR3 JDATA LL_ADC_INJ_ReadConversionData6\n
AnnaBridge 171:3a7713b1edbc 4238 * JDR4 JDATA LL_ADC_INJ_ReadConversionData6
AnnaBridge 171:3a7713b1edbc 4239 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4240 * @param Rank This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 4241 * @arg @ref LL_ADC_INJ_RANK_1
AnnaBridge 171:3a7713b1edbc 4242 * @arg @ref LL_ADC_INJ_RANK_2
AnnaBridge 171:3a7713b1edbc 4243 * @arg @ref LL_ADC_INJ_RANK_3
AnnaBridge 171:3a7713b1edbc 4244 * @arg @ref LL_ADC_INJ_RANK_4
AnnaBridge 171:3a7713b1edbc 4245 * @retval Value between Min_Data=0x00 and Max_Data=0x3F
AnnaBridge 171:3a7713b1edbc 4246 */
AnnaBridge 171:3a7713b1edbc 4247 __STATIC_INLINE uint8_t LL_ADC_INJ_ReadConversionData6(ADC_TypeDef *ADCx, uint32_t Rank)
AnnaBridge 171:3a7713b1edbc 4248 {
AnnaBridge 171:3a7713b1edbc 4249 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JDR1, __ADC_MASK_SHIFT(Rank, ADC_INJ_JDRX_REGOFFSET_MASK));
AnnaBridge 171:3a7713b1edbc 4250
AnnaBridge 171:3a7713b1edbc 4251 return (uint8_t)(READ_BIT(*preg,
AnnaBridge 171:3a7713b1edbc 4252 ADC_JDR1_JDATA)
AnnaBridge 171:3a7713b1edbc 4253 );
AnnaBridge 171:3a7713b1edbc 4254 }
AnnaBridge 171:3a7713b1edbc 4255
AnnaBridge 171:3a7713b1edbc 4256 /**
AnnaBridge 171:3a7713b1edbc 4257 * @}
AnnaBridge 171:3a7713b1edbc 4258 */
AnnaBridge 171:3a7713b1edbc 4259
AnnaBridge 171:3a7713b1edbc 4260 /** @defgroup ADC_LL_EF_FLAG_Management ADC flag management
AnnaBridge 171:3a7713b1edbc 4261 * @{
AnnaBridge 171:3a7713b1edbc 4262 */
AnnaBridge 171:3a7713b1edbc 4263
AnnaBridge 171:3a7713b1edbc 4264 /**
AnnaBridge 171:3a7713b1edbc 4265 * @brief Get flag ADC group regular end of unitary conversion
AnnaBridge 171:3a7713b1edbc 4266 * or end of sequence conversions, depending on
AnnaBridge 171:3a7713b1edbc 4267 * ADC configuration.
AnnaBridge 171:3a7713b1edbc 4268 * @note To configure flag of end of conversion,
AnnaBridge 171:3a7713b1edbc 4269 * use function @ref LL_ADC_REG_SetFlagEndOfConversion().
AnnaBridge 171:3a7713b1edbc 4270 * @rmtoll SR EOC LL_ADC_IsActiveFlag_EOCS
AnnaBridge 171:3a7713b1edbc 4271 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4272 * @retval State of bit (1 or 0).
AnnaBridge 171:3a7713b1edbc 4273 */
AnnaBridge 171:3a7713b1edbc 4274 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_EOCS(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4275 {
AnnaBridge 171:3a7713b1edbc 4276 return (READ_BIT(ADCx->SR, LL_ADC_FLAG_EOCS) == (LL_ADC_FLAG_EOCS));
AnnaBridge 171:3a7713b1edbc 4277 }
AnnaBridge 171:3a7713b1edbc 4278
AnnaBridge 171:3a7713b1edbc 4279 /**
AnnaBridge 171:3a7713b1edbc 4280 * @brief Get flag ADC group regular overrun.
AnnaBridge 171:3a7713b1edbc 4281 * @rmtoll SR OVR LL_ADC_IsActiveFlag_OVR
AnnaBridge 171:3a7713b1edbc 4282 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4283 * @retval State of bit (1 or 0).
AnnaBridge 171:3a7713b1edbc 4284 */
AnnaBridge 171:3a7713b1edbc 4285 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_OVR(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4286 {
AnnaBridge 171:3a7713b1edbc 4287 return (READ_BIT(ADCx->SR, LL_ADC_FLAG_OVR) == (LL_ADC_FLAG_OVR));
AnnaBridge 171:3a7713b1edbc 4288 }
AnnaBridge 171:3a7713b1edbc 4289
AnnaBridge 171:3a7713b1edbc 4290
AnnaBridge 171:3a7713b1edbc 4291 /**
AnnaBridge 171:3a7713b1edbc 4292 * @brief Get flag ADC group injected end of sequence conversions.
AnnaBridge 171:3a7713b1edbc 4293 * @rmtoll SR JEOC LL_ADC_IsActiveFlag_JEOS
AnnaBridge 171:3a7713b1edbc 4294 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4295 * @retval State of bit (1 or 0).
AnnaBridge 171:3a7713b1edbc 4296 */
AnnaBridge 171:3a7713b1edbc 4297 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_JEOS(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4298 {
AnnaBridge 171:3a7713b1edbc 4299 /* Note: on this STM32 serie, there is no flag ADC group injected */
AnnaBridge 171:3a7713b1edbc 4300 /* end of unitary conversion. */
AnnaBridge 171:3a7713b1edbc 4301 /* Flag noted as "JEOC" is corresponding to flag "JEOS" */
AnnaBridge 171:3a7713b1edbc 4302 /* in other STM32 families). */
AnnaBridge 171:3a7713b1edbc 4303 return (READ_BIT(ADCx->SR, LL_ADC_FLAG_JEOS) == (LL_ADC_FLAG_JEOS));
AnnaBridge 171:3a7713b1edbc 4304 }
AnnaBridge 171:3a7713b1edbc 4305
AnnaBridge 171:3a7713b1edbc 4306 /**
AnnaBridge 171:3a7713b1edbc 4307 * @brief Get flag ADC analog watchdog 1 flag
AnnaBridge 171:3a7713b1edbc 4308 * @rmtoll SR AWD LL_ADC_IsActiveFlag_AWD1
AnnaBridge 171:3a7713b1edbc 4309 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4310 * @retval State of bit (1 or 0).
AnnaBridge 171:3a7713b1edbc 4311 */
AnnaBridge 171:3a7713b1edbc 4312 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_AWD1(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4313 {
AnnaBridge 171:3a7713b1edbc 4314 return (READ_BIT(ADCx->SR, LL_ADC_FLAG_AWD1) == (LL_ADC_FLAG_AWD1));
AnnaBridge 171:3a7713b1edbc 4315 }
AnnaBridge 171:3a7713b1edbc 4316
AnnaBridge 171:3a7713b1edbc 4317 /**
AnnaBridge 171:3a7713b1edbc 4318 * @brief Clear flag ADC group regular end of unitary conversion
AnnaBridge 171:3a7713b1edbc 4319 * or end of sequence conversions, depending on
AnnaBridge 171:3a7713b1edbc 4320 * ADC configuration.
AnnaBridge 171:3a7713b1edbc 4321 * @note To configure flag of end of conversion,
AnnaBridge 171:3a7713b1edbc 4322 * use function @ref LL_ADC_REG_SetFlagEndOfConversion().
AnnaBridge 171:3a7713b1edbc 4323 * @rmtoll SR EOC LL_ADC_ClearFlag_EOCS
AnnaBridge 171:3a7713b1edbc 4324 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4325 * @retval None
AnnaBridge 171:3a7713b1edbc 4326 */
AnnaBridge 171:3a7713b1edbc 4327 __STATIC_INLINE void LL_ADC_ClearFlag_EOCS(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4328 {
AnnaBridge 171:3a7713b1edbc 4329 WRITE_REG(ADCx->SR, ~LL_ADC_FLAG_EOCS);
AnnaBridge 171:3a7713b1edbc 4330 }
AnnaBridge 171:3a7713b1edbc 4331
AnnaBridge 171:3a7713b1edbc 4332 /**
AnnaBridge 171:3a7713b1edbc 4333 * @brief Clear flag ADC group regular overrun.
AnnaBridge 171:3a7713b1edbc 4334 * @rmtoll SR OVR LL_ADC_ClearFlag_OVR
AnnaBridge 171:3a7713b1edbc 4335 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4336 * @retval None
AnnaBridge 171:3a7713b1edbc 4337 */
AnnaBridge 171:3a7713b1edbc 4338 __STATIC_INLINE void LL_ADC_ClearFlag_OVR(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4339 {
AnnaBridge 171:3a7713b1edbc 4340 WRITE_REG(ADCx->SR, ~LL_ADC_FLAG_OVR);
AnnaBridge 171:3a7713b1edbc 4341 }
AnnaBridge 171:3a7713b1edbc 4342
AnnaBridge 171:3a7713b1edbc 4343
AnnaBridge 171:3a7713b1edbc 4344 /**
AnnaBridge 171:3a7713b1edbc 4345 * @brief Clear flag ADC group injected end of sequence conversions.
AnnaBridge 171:3a7713b1edbc 4346 * @rmtoll SR JEOC LL_ADC_ClearFlag_JEOS
AnnaBridge 171:3a7713b1edbc 4347 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4348 * @retval None
AnnaBridge 171:3a7713b1edbc 4349 */
AnnaBridge 171:3a7713b1edbc 4350 __STATIC_INLINE void LL_ADC_ClearFlag_JEOS(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4351 {
AnnaBridge 171:3a7713b1edbc 4352 /* Note: on this STM32 serie, there is no flag ADC group injected */
AnnaBridge 171:3a7713b1edbc 4353 /* end of unitary conversion. */
AnnaBridge 171:3a7713b1edbc 4354 /* Flag noted as "JEOC" is corresponding to flag "JEOS" */
AnnaBridge 171:3a7713b1edbc 4355 /* in other STM32 families). */
AnnaBridge 171:3a7713b1edbc 4356 WRITE_REG(ADCx->SR, ~LL_ADC_FLAG_JEOS);
AnnaBridge 171:3a7713b1edbc 4357 }
AnnaBridge 171:3a7713b1edbc 4358
AnnaBridge 171:3a7713b1edbc 4359 /**
AnnaBridge 171:3a7713b1edbc 4360 * @brief Clear flag ADC analog watchdog 1.
AnnaBridge 171:3a7713b1edbc 4361 * @rmtoll SR AWD LL_ADC_ClearFlag_AWD1
AnnaBridge 171:3a7713b1edbc 4362 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4363 * @retval None
AnnaBridge 171:3a7713b1edbc 4364 */
AnnaBridge 171:3a7713b1edbc 4365 __STATIC_INLINE void LL_ADC_ClearFlag_AWD1(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4366 {
AnnaBridge 171:3a7713b1edbc 4367 WRITE_REG(ADCx->SR, ~LL_ADC_FLAG_AWD1);
AnnaBridge 171:3a7713b1edbc 4368 }
AnnaBridge 171:3a7713b1edbc 4369
AnnaBridge 171:3a7713b1edbc 4370 /**
AnnaBridge 171:3a7713b1edbc 4371 * @brief Get flag multimode ADC group regular end of unitary conversion
AnnaBridge 171:3a7713b1edbc 4372 * or end of sequence conversions, depending on
AnnaBridge 171:3a7713b1edbc 4373 * ADC configuration, of the ADC master.
AnnaBridge 171:3a7713b1edbc 4374 * @note To configure flag of end of conversion,
AnnaBridge 171:3a7713b1edbc 4375 * use function @ref LL_ADC_REG_SetFlagEndOfConversion().
AnnaBridge 171:3a7713b1edbc 4376 * @rmtoll CSR EOC1 LL_ADC_IsActiveFlag_MST_EOCS
AnnaBridge 171:3a7713b1edbc 4377 * @param ADCxy_COMMON ADC common instance
AnnaBridge 171:3a7713b1edbc 4378 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 171:3a7713b1edbc 4379 * @retval State of bit (1 or 0).
AnnaBridge 171:3a7713b1edbc 4380 */
AnnaBridge 171:3a7713b1edbc 4381 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_EOCS(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 171:3a7713b1edbc 4382 {
AnnaBridge 171:3a7713b1edbc 4383 return (READ_BIT(ADC1->SR, LL_ADC_FLAG_EOCS) == (LL_ADC_FLAG_EOCS));
AnnaBridge 171:3a7713b1edbc 4384 }
AnnaBridge 171:3a7713b1edbc 4385
AnnaBridge 171:3a7713b1edbc 4386 /**
AnnaBridge 171:3a7713b1edbc 4387 * @brief Get flag multimode ADC group regular end of unitary conversion
AnnaBridge 171:3a7713b1edbc 4388 * or end of sequence conversions, depending on
AnnaBridge 171:3a7713b1edbc 4389 * ADC configuration, of the ADC slave 1.
AnnaBridge 171:3a7713b1edbc 4390 * @note To configure flag of end of conversion,
AnnaBridge 171:3a7713b1edbc 4391 * use function @ref LL_ADC_REG_SetFlagEndOfConversion().
AnnaBridge 171:3a7713b1edbc 4392 * @rmtoll CSR EOC2 LL_ADC_IsActiveFlag_SLV1_EOCS
AnnaBridge 171:3a7713b1edbc 4393 * @param ADCxy_COMMON ADC common instance
AnnaBridge 171:3a7713b1edbc 4394 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 171:3a7713b1edbc 4395 * @retval State of bit (1 or 0).
AnnaBridge 171:3a7713b1edbc 4396 */
AnnaBridge 171:3a7713b1edbc 4397 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV1_EOCS(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 171:3a7713b1edbc 4398 {
AnnaBridge 171:3a7713b1edbc 4399 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_EOCS_SLV1) == (LL_ADC_FLAG_EOCS_SLV1));
AnnaBridge 171:3a7713b1edbc 4400 }
AnnaBridge 171:3a7713b1edbc 4401
AnnaBridge 171:3a7713b1edbc 4402 /**
AnnaBridge 171:3a7713b1edbc 4403 * @brief Get flag multimode ADC group regular end of unitary conversion
AnnaBridge 171:3a7713b1edbc 4404 * or end of sequence conversions, depending on
AnnaBridge 171:3a7713b1edbc 4405 * ADC configuration, of the ADC slave 2.
AnnaBridge 171:3a7713b1edbc 4406 * @note To configure flag of end of conversion,
AnnaBridge 171:3a7713b1edbc 4407 * use function @ref LL_ADC_REG_SetFlagEndOfConversion().
AnnaBridge 171:3a7713b1edbc 4408 * @rmtoll CSR EOC3 LL_ADC_IsActiveFlag_SLV2_EOCS
AnnaBridge 171:3a7713b1edbc 4409 * @param ADCxy_COMMON ADC common instance
AnnaBridge 171:3a7713b1edbc 4410 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 171:3a7713b1edbc 4411 * @retval State of bit (1 or 0).
AnnaBridge 171:3a7713b1edbc 4412 */
AnnaBridge 171:3a7713b1edbc 4413 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV2_EOCS(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 171:3a7713b1edbc 4414 {
AnnaBridge 171:3a7713b1edbc 4415 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_EOCS_SLV2) == (LL_ADC_FLAG_EOCS_SLV2));
AnnaBridge 171:3a7713b1edbc 4416 }
AnnaBridge 171:3a7713b1edbc 4417 /**
AnnaBridge 171:3a7713b1edbc 4418 * @brief Get flag multimode ADC group regular overrun of the ADC master.
AnnaBridge 171:3a7713b1edbc 4419 * @rmtoll CSR OVR1 LL_ADC_IsActiveFlag_MST_OVR
AnnaBridge 171:3a7713b1edbc 4420 * @param ADCxy_COMMON ADC common instance
AnnaBridge 171:3a7713b1edbc 4421 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 171:3a7713b1edbc 4422 * @retval State of bit (1 or 0).
AnnaBridge 171:3a7713b1edbc 4423 */
AnnaBridge 171:3a7713b1edbc 4424 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_OVR(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 171:3a7713b1edbc 4425 {
AnnaBridge 171:3a7713b1edbc 4426 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_OVR_MST) == (LL_ADC_FLAG_OVR_MST));
AnnaBridge 171:3a7713b1edbc 4427 }
AnnaBridge 171:3a7713b1edbc 4428
AnnaBridge 171:3a7713b1edbc 4429 /**
AnnaBridge 171:3a7713b1edbc 4430 * @brief Get flag multimode ADC group regular overrun of the ADC slave 1.
AnnaBridge 171:3a7713b1edbc 4431 * @rmtoll CSR OVR2 LL_ADC_IsActiveFlag_SLV1_OVR
AnnaBridge 171:3a7713b1edbc 4432 * @param ADCxy_COMMON ADC common instance
AnnaBridge 171:3a7713b1edbc 4433 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 171:3a7713b1edbc 4434 * @retval State of bit (1 or 0).
AnnaBridge 171:3a7713b1edbc 4435 */
AnnaBridge 171:3a7713b1edbc 4436 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV1_OVR(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 171:3a7713b1edbc 4437 {
AnnaBridge 171:3a7713b1edbc 4438 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_OVR_SLV1) == (LL_ADC_FLAG_OVR_SLV1));
AnnaBridge 171:3a7713b1edbc 4439 }
AnnaBridge 171:3a7713b1edbc 4440
AnnaBridge 171:3a7713b1edbc 4441 /**
AnnaBridge 171:3a7713b1edbc 4442 * @brief Get flag multimode ADC group regular overrun of the ADC slave 2.
AnnaBridge 171:3a7713b1edbc 4443 * @rmtoll CSR OVR3 LL_ADC_IsActiveFlag_SLV2_OVR
AnnaBridge 171:3a7713b1edbc 4444 * @param ADCxy_COMMON ADC common instance
AnnaBridge 171:3a7713b1edbc 4445 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 171:3a7713b1edbc 4446 * @retval State of bit (1 or 0).
AnnaBridge 171:3a7713b1edbc 4447 */
AnnaBridge 171:3a7713b1edbc 4448 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV2_OVR(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 171:3a7713b1edbc 4449 {
AnnaBridge 171:3a7713b1edbc 4450 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_OVR_SLV2) == (LL_ADC_FLAG_OVR_SLV2));
AnnaBridge 171:3a7713b1edbc 4451 }
AnnaBridge 171:3a7713b1edbc 4452
AnnaBridge 171:3a7713b1edbc 4453
AnnaBridge 171:3a7713b1edbc 4454 /**
AnnaBridge 171:3a7713b1edbc 4455 * @brief Get flag multimode ADC group injected end of sequence conversions of the ADC master.
AnnaBridge 171:3a7713b1edbc 4456 * @rmtoll CSR JEOC LL_ADC_IsActiveFlag_MST_EOCS
AnnaBridge 171:3a7713b1edbc 4457 * @param ADCxy_COMMON ADC common instance
AnnaBridge 171:3a7713b1edbc 4458 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 171:3a7713b1edbc 4459 * @retval State of bit (1 or 0).
AnnaBridge 171:3a7713b1edbc 4460 */
AnnaBridge 171:3a7713b1edbc 4461 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_JEOS(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 171:3a7713b1edbc 4462 {
AnnaBridge 171:3a7713b1edbc 4463 /* Note: on this STM32 serie, there is no flag ADC group injected */
AnnaBridge 171:3a7713b1edbc 4464 /* end of unitary conversion. */
AnnaBridge 171:3a7713b1edbc 4465 /* Flag noted as "JEOC" is corresponding to flag "JEOS" */
AnnaBridge 171:3a7713b1edbc 4466 /* in other STM32 families). */
AnnaBridge 171:3a7713b1edbc 4467 return (READ_BIT(ADCxy_COMMON->CSR, ADC_CSR_JEOC1) == (ADC_CSR_JEOC1));
AnnaBridge 171:3a7713b1edbc 4468 }
AnnaBridge 171:3a7713b1edbc 4469
AnnaBridge 171:3a7713b1edbc 4470 /**
AnnaBridge 171:3a7713b1edbc 4471 * @brief Get flag multimode ADC group injected end of sequence conversions of the ADC slave 1.
AnnaBridge 171:3a7713b1edbc 4472 * @rmtoll CSR JEOC2 LL_ADC_IsActiveFlag_SLV1_JEOS
AnnaBridge 171:3a7713b1edbc 4473 * @param ADCxy_COMMON ADC common instance
AnnaBridge 171:3a7713b1edbc 4474 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 171:3a7713b1edbc 4475 * @retval State of bit (1 or 0).
AnnaBridge 171:3a7713b1edbc 4476 */
AnnaBridge 171:3a7713b1edbc 4477 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV1_JEOS(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 171:3a7713b1edbc 4478 {
AnnaBridge 171:3a7713b1edbc 4479 /* Note: on this STM32 serie, there is no flag ADC group injected */
AnnaBridge 171:3a7713b1edbc 4480 /* end of unitary conversion. */
AnnaBridge 171:3a7713b1edbc 4481 /* Flag noted as "JEOC" is corresponding to flag "JEOS" */
AnnaBridge 171:3a7713b1edbc 4482 /* in other STM32 families). */
AnnaBridge 171:3a7713b1edbc 4483 return (READ_BIT(ADCxy_COMMON->CSR, ADC_CSR_JEOC2) == (ADC_CSR_JEOC2));
AnnaBridge 171:3a7713b1edbc 4484 }
AnnaBridge 171:3a7713b1edbc 4485
AnnaBridge 171:3a7713b1edbc 4486 /**
AnnaBridge 171:3a7713b1edbc 4487 * @brief Get flag multimode ADC group injected end of sequence conversions of the ADC slave 2.
AnnaBridge 171:3a7713b1edbc 4488 * @rmtoll CSR JEOC3 LL_ADC_IsActiveFlag_SLV2_JEOS
AnnaBridge 171:3a7713b1edbc 4489 * @param ADCxy_COMMON ADC common instance
AnnaBridge 171:3a7713b1edbc 4490 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 171:3a7713b1edbc 4491 * @retval State of bit (1 or 0).
AnnaBridge 171:3a7713b1edbc 4492 */
AnnaBridge 171:3a7713b1edbc 4493 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV2_JEOS(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 171:3a7713b1edbc 4494 {
AnnaBridge 171:3a7713b1edbc 4495 /* Note: on this STM32 serie, there is no flag ADC group injected */
AnnaBridge 171:3a7713b1edbc 4496 /* end of unitary conversion. */
AnnaBridge 171:3a7713b1edbc 4497 /* Flag noted as "JEOC" is corresponding to flag "JEOS" */
AnnaBridge 171:3a7713b1edbc 4498 /* in other STM32 families). */
AnnaBridge 171:3a7713b1edbc 4499 return (READ_BIT(ADCxy_COMMON->CSR, ADC_CSR_JEOC3) == (ADC_CSR_JEOC3));
AnnaBridge 171:3a7713b1edbc 4500 }
AnnaBridge 171:3a7713b1edbc 4501
AnnaBridge 171:3a7713b1edbc 4502 /**
AnnaBridge 171:3a7713b1edbc 4503 * @brief Get flag multimode ADC analog watchdog 1 of the ADC master.
AnnaBridge 171:3a7713b1edbc 4504 * @rmtoll CSR AWD1 LL_ADC_IsActiveFlag_MST_AWD1
AnnaBridge 171:3a7713b1edbc 4505 * @param ADCxy_COMMON ADC common instance
AnnaBridge 171:3a7713b1edbc 4506 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 171:3a7713b1edbc 4507 * @retval State of bit (1 or 0).
AnnaBridge 171:3a7713b1edbc 4508 */
AnnaBridge 171:3a7713b1edbc 4509 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_MST_AWD1(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 171:3a7713b1edbc 4510 {
AnnaBridge 171:3a7713b1edbc 4511 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_AWD1_MST) == (LL_ADC_FLAG_AWD1_MST));
AnnaBridge 171:3a7713b1edbc 4512 }
AnnaBridge 171:3a7713b1edbc 4513
AnnaBridge 171:3a7713b1edbc 4514 /**
AnnaBridge 171:3a7713b1edbc 4515 * @brief Get flag multimode analog watchdog 1 of the ADC slave 1.
AnnaBridge 171:3a7713b1edbc 4516 * @rmtoll CSR AWD2 LL_ADC_IsActiveFlag_SLV1_AWD1
AnnaBridge 171:3a7713b1edbc 4517 * @param ADCxy_COMMON ADC common instance
AnnaBridge 171:3a7713b1edbc 4518 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 171:3a7713b1edbc 4519 * @retval State of bit (1 or 0).
AnnaBridge 171:3a7713b1edbc 4520 */
AnnaBridge 171:3a7713b1edbc 4521 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV1_AWD1(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 171:3a7713b1edbc 4522 {
AnnaBridge 171:3a7713b1edbc 4523 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_AWD1_SLV1) == (LL_ADC_FLAG_AWD1_SLV1));
AnnaBridge 171:3a7713b1edbc 4524 }
AnnaBridge 171:3a7713b1edbc 4525
AnnaBridge 171:3a7713b1edbc 4526 /**
AnnaBridge 171:3a7713b1edbc 4527 * @brief Get flag multimode analog watchdog 1 of the ADC slave 2.
AnnaBridge 171:3a7713b1edbc 4528 * @rmtoll CSR AWD3 LL_ADC_IsActiveFlag_SLV2_AWD1
AnnaBridge 171:3a7713b1edbc 4529 * @param ADCxy_COMMON ADC common instance
AnnaBridge 171:3a7713b1edbc 4530 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 171:3a7713b1edbc 4531 * @retval State of bit (1 or 0).
AnnaBridge 171:3a7713b1edbc 4532 */
AnnaBridge 171:3a7713b1edbc 4533 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_SLV2_AWD1(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 171:3a7713b1edbc 4534 {
AnnaBridge 171:3a7713b1edbc 4535 return (READ_BIT(ADCxy_COMMON->CSR, LL_ADC_FLAG_AWD1_SLV2) == (LL_ADC_FLAG_AWD1_SLV2));
AnnaBridge 171:3a7713b1edbc 4536 }
AnnaBridge 171:3a7713b1edbc 4537
AnnaBridge 171:3a7713b1edbc 4538
AnnaBridge 171:3a7713b1edbc 4539 /**
AnnaBridge 171:3a7713b1edbc 4540 * @}
AnnaBridge 171:3a7713b1edbc 4541 */
AnnaBridge 171:3a7713b1edbc 4542
AnnaBridge 171:3a7713b1edbc 4543 /** @defgroup ADC_LL_EF_IT_Management ADC IT management
AnnaBridge 171:3a7713b1edbc 4544 * @{
AnnaBridge 171:3a7713b1edbc 4545 */
AnnaBridge 171:3a7713b1edbc 4546
AnnaBridge 171:3a7713b1edbc 4547 /**
AnnaBridge 171:3a7713b1edbc 4548 * @brief Enable interruption ADC group regular end of unitary conversion
AnnaBridge 171:3a7713b1edbc 4549 * or end of sequence conversions, depending on
AnnaBridge 171:3a7713b1edbc 4550 * ADC configuration.
AnnaBridge 171:3a7713b1edbc 4551 * @note To configure flag of end of conversion,
AnnaBridge 171:3a7713b1edbc 4552 * use function @ref LL_ADC_REG_SetFlagEndOfConversion().
AnnaBridge 171:3a7713b1edbc 4553 * @rmtoll CR1 EOCIE LL_ADC_EnableIT_EOCS
AnnaBridge 171:3a7713b1edbc 4554 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4555 * @retval None
AnnaBridge 171:3a7713b1edbc 4556 */
AnnaBridge 171:3a7713b1edbc 4557 __STATIC_INLINE void LL_ADC_EnableIT_EOCS(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4558 {
AnnaBridge 171:3a7713b1edbc 4559 SET_BIT(ADCx->CR1, LL_ADC_IT_EOCS);
AnnaBridge 171:3a7713b1edbc 4560 }
AnnaBridge 171:3a7713b1edbc 4561
AnnaBridge 171:3a7713b1edbc 4562 /**
AnnaBridge 171:3a7713b1edbc 4563 * @brief Enable ADC group regular interruption overrun.
AnnaBridge 171:3a7713b1edbc 4564 * @rmtoll CR1 OVRIE LL_ADC_EnableIT_OVR
AnnaBridge 171:3a7713b1edbc 4565 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4566 * @retval None
AnnaBridge 171:3a7713b1edbc 4567 */
AnnaBridge 171:3a7713b1edbc 4568 __STATIC_INLINE void LL_ADC_EnableIT_OVR(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4569 {
AnnaBridge 171:3a7713b1edbc 4570 SET_BIT(ADCx->CR1, LL_ADC_IT_OVR);
AnnaBridge 171:3a7713b1edbc 4571 }
AnnaBridge 171:3a7713b1edbc 4572
AnnaBridge 171:3a7713b1edbc 4573
AnnaBridge 171:3a7713b1edbc 4574 /**
AnnaBridge 171:3a7713b1edbc 4575 * @brief Enable interruption ADC group injected end of sequence conversions.
AnnaBridge 171:3a7713b1edbc 4576 * @rmtoll CR1 JEOCIE LL_ADC_EnableIT_JEOS
AnnaBridge 171:3a7713b1edbc 4577 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4578 * @retval None
AnnaBridge 171:3a7713b1edbc 4579 */
AnnaBridge 171:3a7713b1edbc 4580 __STATIC_INLINE void LL_ADC_EnableIT_JEOS(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4581 {
AnnaBridge 171:3a7713b1edbc 4582 /* Note: on this STM32 serie, there is no flag ADC group injected */
AnnaBridge 171:3a7713b1edbc 4583 /* end of unitary conversion. */
AnnaBridge 171:3a7713b1edbc 4584 /* Flag noted as "JEOC" is corresponding to flag "JEOS" */
AnnaBridge 171:3a7713b1edbc 4585 /* in other STM32 families). */
AnnaBridge 171:3a7713b1edbc 4586 SET_BIT(ADCx->CR1, LL_ADC_IT_JEOS);
AnnaBridge 171:3a7713b1edbc 4587 }
AnnaBridge 171:3a7713b1edbc 4588
AnnaBridge 171:3a7713b1edbc 4589 /**
AnnaBridge 171:3a7713b1edbc 4590 * @brief Enable interruption ADC analog watchdog 1.
AnnaBridge 171:3a7713b1edbc 4591 * @rmtoll CR1 AWDIE LL_ADC_EnableIT_AWD1
AnnaBridge 171:3a7713b1edbc 4592 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4593 * @retval None
AnnaBridge 171:3a7713b1edbc 4594 */
AnnaBridge 171:3a7713b1edbc 4595 __STATIC_INLINE void LL_ADC_EnableIT_AWD1(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4596 {
AnnaBridge 171:3a7713b1edbc 4597 SET_BIT(ADCx->CR1, LL_ADC_IT_AWD1);
AnnaBridge 171:3a7713b1edbc 4598 }
AnnaBridge 171:3a7713b1edbc 4599
AnnaBridge 171:3a7713b1edbc 4600 /**
AnnaBridge 171:3a7713b1edbc 4601 * @brief Disable interruption ADC group regular end of unitary conversion
AnnaBridge 171:3a7713b1edbc 4602 * or end of sequence conversions, depending on
AnnaBridge 171:3a7713b1edbc 4603 * ADC configuration.
AnnaBridge 171:3a7713b1edbc 4604 * @note To configure flag of end of conversion,
AnnaBridge 171:3a7713b1edbc 4605 * use function @ref LL_ADC_REG_SetFlagEndOfConversion().
AnnaBridge 171:3a7713b1edbc 4606 * @rmtoll CR1 EOCIE LL_ADC_DisableIT_EOCS
AnnaBridge 171:3a7713b1edbc 4607 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4608 * @retval None
AnnaBridge 171:3a7713b1edbc 4609 */
AnnaBridge 171:3a7713b1edbc 4610 __STATIC_INLINE void LL_ADC_DisableIT_EOCS(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4611 {
AnnaBridge 171:3a7713b1edbc 4612 CLEAR_BIT(ADCx->CR1, LL_ADC_IT_EOCS);
AnnaBridge 171:3a7713b1edbc 4613 }
AnnaBridge 171:3a7713b1edbc 4614
AnnaBridge 171:3a7713b1edbc 4615 /**
AnnaBridge 171:3a7713b1edbc 4616 * @brief Disable interruption ADC group regular overrun.
AnnaBridge 171:3a7713b1edbc 4617 * @rmtoll CR1 OVRIE LL_ADC_DisableIT_OVR
AnnaBridge 171:3a7713b1edbc 4618 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4619 * @retval None
AnnaBridge 171:3a7713b1edbc 4620 */
AnnaBridge 171:3a7713b1edbc 4621 __STATIC_INLINE void LL_ADC_DisableIT_OVR(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4622 {
AnnaBridge 171:3a7713b1edbc 4623 CLEAR_BIT(ADCx->CR1, LL_ADC_IT_OVR);
AnnaBridge 171:3a7713b1edbc 4624 }
AnnaBridge 171:3a7713b1edbc 4625
AnnaBridge 171:3a7713b1edbc 4626
AnnaBridge 171:3a7713b1edbc 4627 /**
AnnaBridge 171:3a7713b1edbc 4628 * @brief Disable interruption ADC group injected end of sequence conversions.
AnnaBridge 171:3a7713b1edbc 4629 * @rmtoll CR1 JEOCIE LL_ADC_EnableIT_JEOS
AnnaBridge 171:3a7713b1edbc 4630 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4631 * @retval None
AnnaBridge 171:3a7713b1edbc 4632 */
AnnaBridge 171:3a7713b1edbc 4633 __STATIC_INLINE void LL_ADC_DisableIT_JEOS(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4634 {
AnnaBridge 171:3a7713b1edbc 4635 /* Note: on this STM32 serie, there is no flag ADC group injected */
AnnaBridge 171:3a7713b1edbc 4636 /* end of unitary conversion. */
AnnaBridge 171:3a7713b1edbc 4637 /* Flag noted as "JEOC" is corresponding to flag "JEOS" */
AnnaBridge 171:3a7713b1edbc 4638 /* in other STM32 families). */
AnnaBridge 171:3a7713b1edbc 4639 CLEAR_BIT(ADCx->CR1, LL_ADC_IT_JEOS);
AnnaBridge 171:3a7713b1edbc 4640 }
AnnaBridge 171:3a7713b1edbc 4641
AnnaBridge 171:3a7713b1edbc 4642 /**
AnnaBridge 171:3a7713b1edbc 4643 * @brief Disable interruption ADC analog watchdog 1.
AnnaBridge 171:3a7713b1edbc 4644 * @rmtoll CR1 AWDIE LL_ADC_EnableIT_AWD1
AnnaBridge 171:3a7713b1edbc 4645 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4646 * @retval None
AnnaBridge 171:3a7713b1edbc 4647 */
AnnaBridge 171:3a7713b1edbc 4648 __STATIC_INLINE void LL_ADC_DisableIT_AWD1(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4649 {
AnnaBridge 171:3a7713b1edbc 4650 CLEAR_BIT(ADCx->CR1, LL_ADC_IT_AWD1);
AnnaBridge 171:3a7713b1edbc 4651 }
AnnaBridge 171:3a7713b1edbc 4652
AnnaBridge 171:3a7713b1edbc 4653 /**
AnnaBridge 171:3a7713b1edbc 4654 * @brief Get state of interruption ADC group regular end of unitary conversion
AnnaBridge 171:3a7713b1edbc 4655 * or end of sequence conversions, depending on
AnnaBridge 171:3a7713b1edbc 4656 * ADC configuration.
AnnaBridge 171:3a7713b1edbc 4657 * @note To configure flag of end of conversion,
AnnaBridge 171:3a7713b1edbc 4658 * use function @ref LL_ADC_REG_SetFlagEndOfConversion().
AnnaBridge 171:3a7713b1edbc 4659 * (0: interrupt disabled, 1: interrupt enabled)
AnnaBridge 171:3a7713b1edbc 4660 * @rmtoll CR1 EOCIE LL_ADC_IsEnabledIT_EOCS
AnnaBridge 171:3a7713b1edbc 4661 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4662 * @retval State of bit (1 or 0).
AnnaBridge 171:3a7713b1edbc 4663 */
AnnaBridge 171:3a7713b1edbc 4664 __STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_EOCS(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4665 {
AnnaBridge 171:3a7713b1edbc 4666 return (READ_BIT(ADCx->CR1, LL_ADC_IT_EOCS) == (LL_ADC_IT_EOCS));
AnnaBridge 171:3a7713b1edbc 4667 }
AnnaBridge 171:3a7713b1edbc 4668
AnnaBridge 171:3a7713b1edbc 4669 /**
AnnaBridge 171:3a7713b1edbc 4670 * @brief Get state of interruption ADC group regular overrun
AnnaBridge 171:3a7713b1edbc 4671 * (0: interrupt disabled, 1: interrupt enabled).
AnnaBridge 171:3a7713b1edbc 4672 * @rmtoll CR1 OVRIE LL_ADC_IsEnabledIT_OVR
AnnaBridge 171:3a7713b1edbc 4673 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4674 * @retval State of bit (1 or 0).
AnnaBridge 171:3a7713b1edbc 4675 */
AnnaBridge 171:3a7713b1edbc 4676 __STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_OVR(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4677 {
AnnaBridge 171:3a7713b1edbc 4678 return (READ_BIT(ADCx->CR1, LL_ADC_IT_OVR) == (LL_ADC_IT_OVR));
AnnaBridge 171:3a7713b1edbc 4679 }
AnnaBridge 171:3a7713b1edbc 4680
AnnaBridge 171:3a7713b1edbc 4681
AnnaBridge 171:3a7713b1edbc 4682 /**
AnnaBridge 171:3a7713b1edbc 4683 * @brief Get state of interruption ADC group injected end of sequence conversions
AnnaBridge 171:3a7713b1edbc 4684 * (0: interrupt disabled, 1: interrupt enabled).
AnnaBridge 171:3a7713b1edbc 4685 * @rmtoll CR1 JEOCIE LL_ADC_EnableIT_JEOS
AnnaBridge 171:3a7713b1edbc 4686 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4687 * @retval State of bit (1 or 0).
AnnaBridge 171:3a7713b1edbc 4688 */
AnnaBridge 171:3a7713b1edbc 4689 __STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_JEOS(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4690 {
AnnaBridge 171:3a7713b1edbc 4691 /* Note: on this STM32 serie, there is no flag ADC group injected */
AnnaBridge 171:3a7713b1edbc 4692 /* end of unitary conversion. */
AnnaBridge 171:3a7713b1edbc 4693 /* Flag noted as "JEOC" is corresponding to flag "JEOS" */
AnnaBridge 171:3a7713b1edbc 4694 /* in other STM32 families). */
AnnaBridge 171:3a7713b1edbc 4695 return (READ_BIT(ADCx->CR1, LL_ADC_IT_JEOS) == (LL_ADC_IT_JEOS));
AnnaBridge 171:3a7713b1edbc 4696 }
AnnaBridge 171:3a7713b1edbc 4697
AnnaBridge 171:3a7713b1edbc 4698 /**
AnnaBridge 171:3a7713b1edbc 4699 * @brief Get state of interruption ADC analog watchdog 1
AnnaBridge 171:3a7713b1edbc 4700 * (0: interrupt disabled, 1: interrupt enabled).
AnnaBridge 171:3a7713b1edbc 4701 * @rmtoll CR1 AWDIE LL_ADC_EnableIT_AWD1
AnnaBridge 171:3a7713b1edbc 4702 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4703 * @retval State of bit (1 or 0).
AnnaBridge 171:3a7713b1edbc 4704 */
AnnaBridge 171:3a7713b1edbc 4705 __STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_AWD1(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4706 {
AnnaBridge 171:3a7713b1edbc 4707 return (READ_BIT(ADCx->CR1, LL_ADC_IT_AWD1) == (LL_ADC_IT_AWD1));
AnnaBridge 171:3a7713b1edbc 4708 }
AnnaBridge 171:3a7713b1edbc 4709
AnnaBridge 171:3a7713b1edbc 4710 /**
AnnaBridge 171:3a7713b1edbc 4711 * @}
AnnaBridge 171:3a7713b1edbc 4712 */
AnnaBridge 171:3a7713b1edbc 4713
AnnaBridge 171:3a7713b1edbc 4714 #if defined(USE_FULL_LL_DRIVER)
AnnaBridge 171:3a7713b1edbc 4715 /** @defgroup ADC_LL_EF_Init Initialization and de-initialization functions
AnnaBridge 171:3a7713b1edbc 4716 * @{
AnnaBridge 171:3a7713b1edbc 4717 */
AnnaBridge 171:3a7713b1edbc 4718
AnnaBridge 171:3a7713b1edbc 4719 /* Initialization of some features of ADC common parameters and multimode */
AnnaBridge 171:3a7713b1edbc 4720 ErrorStatus LL_ADC_CommonDeInit(ADC_Common_TypeDef *ADCxy_COMMON);
AnnaBridge 171:3a7713b1edbc 4721 ErrorStatus LL_ADC_CommonInit(ADC_Common_TypeDef *ADCxy_COMMON, LL_ADC_CommonInitTypeDef *ADC_CommonInitStruct);
AnnaBridge 171:3a7713b1edbc 4722 void LL_ADC_CommonStructInit(LL_ADC_CommonInitTypeDef *ADC_CommonInitStruct);
AnnaBridge 171:3a7713b1edbc 4723
AnnaBridge 171:3a7713b1edbc 4724 /* De-initialization of ADC instance, ADC group regular and ADC group injected */
AnnaBridge 171:3a7713b1edbc 4725 /* (availability of ADC group injected depends on STM32 families) */
AnnaBridge 171:3a7713b1edbc 4726 ErrorStatus LL_ADC_DeInit(ADC_TypeDef *ADCx);
AnnaBridge 171:3a7713b1edbc 4727
AnnaBridge 171:3a7713b1edbc 4728 /* Initialization of some features of ADC instance */
AnnaBridge 171:3a7713b1edbc 4729 ErrorStatus LL_ADC_Init(ADC_TypeDef *ADCx, LL_ADC_InitTypeDef *ADC_InitStruct);
AnnaBridge 171:3a7713b1edbc 4730 void LL_ADC_StructInit(LL_ADC_InitTypeDef *ADC_InitStruct);
AnnaBridge 171:3a7713b1edbc 4731
AnnaBridge 171:3a7713b1edbc 4732 /* Initialization of some features of ADC instance and ADC group regular */
AnnaBridge 171:3a7713b1edbc 4733 ErrorStatus LL_ADC_REG_Init(ADC_TypeDef *ADCx, LL_ADC_REG_InitTypeDef *ADC_REG_InitStruct);
AnnaBridge 171:3a7713b1edbc 4734 void LL_ADC_REG_StructInit(LL_ADC_REG_InitTypeDef *ADC_REG_InitStruct);
AnnaBridge 171:3a7713b1edbc 4735
AnnaBridge 171:3a7713b1edbc 4736 /* Initialization of some features of ADC instance and ADC group injected */
AnnaBridge 171:3a7713b1edbc 4737 ErrorStatus LL_ADC_INJ_Init(ADC_TypeDef *ADCx, LL_ADC_INJ_InitTypeDef *ADC_INJ_InitStruct);
AnnaBridge 171:3a7713b1edbc 4738 void LL_ADC_INJ_StructInit(LL_ADC_INJ_InitTypeDef *ADC_INJ_InitStruct);
AnnaBridge 171:3a7713b1edbc 4739
AnnaBridge 171:3a7713b1edbc 4740 /**
AnnaBridge 171:3a7713b1edbc 4741 * @}
AnnaBridge 171:3a7713b1edbc 4742 */
AnnaBridge 171:3a7713b1edbc 4743 #endif /* USE_FULL_LL_DRIVER */
AnnaBridge 171:3a7713b1edbc 4744
AnnaBridge 171:3a7713b1edbc 4745 /**
AnnaBridge 171:3a7713b1edbc 4746 * @}
AnnaBridge 171:3a7713b1edbc 4747 */
AnnaBridge 171:3a7713b1edbc 4748
AnnaBridge 171:3a7713b1edbc 4749 /**
AnnaBridge 171:3a7713b1edbc 4750 * @}
AnnaBridge 171:3a7713b1edbc 4751 */
AnnaBridge 171:3a7713b1edbc 4752
AnnaBridge 171:3a7713b1edbc 4753 #endif /* ADC1 || ADC2 || ADC3 */
AnnaBridge 171:3a7713b1edbc 4754
AnnaBridge 171:3a7713b1edbc 4755 /**
AnnaBridge 171:3a7713b1edbc 4756 * @}
AnnaBridge 171:3a7713b1edbc 4757 */
AnnaBridge 171:3a7713b1edbc 4758
AnnaBridge 171:3a7713b1edbc 4759 #ifdef __cplusplus
AnnaBridge 171:3a7713b1edbc 4760 }
AnnaBridge 171:3a7713b1edbc 4761 #endif
AnnaBridge 171:3a7713b1edbc 4762
AnnaBridge 171:3a7713b1edbc 4763 #endif /* __STM32F7xx_LL_ADC_H */
AnnaBridge 171:3a7713b1edbc 4764
AnnaBridge 171:3a7713b1edbc 4765 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/