mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

This library was superseded by mbed-dev - https://os.mbed.com/users/mbed_official/code/mbed-dev/.

Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.

If you are looking for a stable and tested release, please import one of the official mbed library releases:

Import librarymbed

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

Committer:
mbed_official
Date:
Fri Aug 14 13:15:17 2015 +0100
Revision:
610:813dcc80987e
Parent:
573:ad23fe03a082
Synchronized with git revision 6d84db41c6833e0b9b024741eb0616a5f62d5599

Full URL: https://github.com/mbedmicro/mbed/commit/6d84db41c6833e0b9b024741eb0616a5f62d5599/

DISCO_F746NG - Improvements

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 573:ad23fe03a082 1 /**
mbed_official 573:ad23fe03a082 2 ******************************************************************************
mbed_official 573:ad23fe03a082 3 * @file stm32f7xx_hal_adc.h
mbed_official 573:ad23fe03a082 4 * @author MCD Application Team
mbed_official 610:813dcc80987e 5 * @version V1.0.1
mbed_official 610:813dcc80987e 6 * @date 25-June-2015
mbed_official 573:ad23fe03a082 7 * @brief Header file of ADC HAL extension module.
mbed_official 573:ad23fe03a082 8 ******************************************************************************
mbed_official 573:ad23fe03a082 9 * @attention
mbed_official 573:ad23fe03a082 10 *
mbed_official 573:ad23fe03a082 11 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
mbed_official 573:ad23fe03a082 12 *
mbed_official 573:ad23fe03a082 13 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 573:ad23fe03a082 14 * are permitted provided that the following conditions are met:
mbed_official 573:ad23fe03a082 15 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 573:ad23fe03a082 16 * this list of conditions and the following disclaimer.
mbed_official 573:ad23fe03a082 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 573:ad23fe03a082 18 * this list of conditions and the following disclaimer in the documentation
mbed_official 573:ad23fe03a082 19 * and/or other materials provided with the distribution.
mbed_official 573:ad23fe03a082 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 573:ad23fe03a082 21 * may be used to endorse or promote products derived from this software
mbed_official 573:ad23fe03a082 22 * without specific prior written permission.
mbed_official 573:ad23fe03a082 23 *
mbed_official 573:ad23fe03a082 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 573:ad23fe03a082 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 573:ad23fe03a082 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 573:ad23fe03a082 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 573:ad23fe03a082 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 573:ad23fe03a082 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 573:ad23fe03a082 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 573:ad23fe03a082 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 573:ad23fe03a082 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 573:ad23fe03a082 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 573:ad23fe03a082 34 *
mbed_official 573:ad23fe03a082 35 ******************************************************************************
mbed_official 573:ad23fe03a082 36 */
mbed_official 573:ad23fe03a082 37
mbed_official 573:ad23fe03a082 38 /* Define to prevent recursive inclusion -------------------------------------*/
mbed_official 573:ad23fe03a082 39 #ifndef __STM32F7xx_ADC_H
mbed_official 573:ad23fe03a082 40 #define __STM32F7xx_ADC_H
mbed_official 573:ad23fe03a082 41
mbed_official 573:ad23fe03a082 42 #ifdef __cplusplus
mbed_official 573:ad23fe03a082 43 extern "C" {
mbed_official 573:ad23fe03a082 44 #endif
mbed_official 573:ad23fe03a082 45
mbed_official 573:ad23fe03a082 46 /* Includes ------------------------------------------------------------------*/
mbed_official 573:ad23fe03a082 47 #include "stm32f7xx_hal_def.h"
mbed_official 573:ad23fe03a082 48
mbed_official 573:ad23fe03a082 49 /** @addtogroup STM32F7xx_HAL_Driver
mbed_official 573:ad23fe03a082 50 * @{
mbed_official 573:ad23fe03a082 51 */
mbed_official 573:ad23fe03a082 52
mbed_official 573:ad23fe03a082 53 /** @addtogroup ADC
mbed_official 573:ad23fe03a082 54 * @{
mbed_official 573:ad23fe03a082 55 */
mbed_official 573:ad23fe03a082 56
mbed_official 573:ad23fe03a082 57 /* Exported types ------------------------------------------------------------*/
mbed_official 573:ad23fe03a082 58 /** @defgroup ADC_Exported_Types ADC Exported Types
mbed_official 573:ad23fe03a082 59 * @{
mbed_official 573:ad23fe03a082 60 */
mbed_official 573:ad23fe03a082 61
mbed_official 573:ad23fe03a082 62 /**
mbed_official 573:ad23fe03a082 63 * @brief HAL State structures definition
mbed_official 573:ad23fe03a082 64 */
mbed_official 573:ad23fe03a082 65 typedef enum
mbed_official 573:ad23fe03a082 66 {
mbed_official 573:ad23fe03a082 67 HAL_ADC_STATE_RESET = 0x00, /*!< ADC not yet initialized or disabled */
mbed_official 573:ad23fe03a082 68 HAL_ADC_STATE_READY = 0x01, /*!< ADC peripheral ready for use */
mbed_official 573:ad23fe03a082 69 HAL_ADC_STATE_BUSY = 0x02, /*!< An internal process is ongoing */
mbed_official 573:ad23fe03a082 70 HAL_ADC_STATE_BUSY_REG = 0x12, /*!< Regular conversion is ongoing */
mbed_official 573:ad23fe03a082 71 HAL_ADC_STATE_BUSY_INJ = 0x22, /*!< Injected conversion is ongoing */
mbed_official 573:ad23fe03a082 72 HAL_ADC_STATE_BUSY_INJ_REG = 0x32, /*!< Injected and regular conversion are ongoing */
mbed_official 573:ad23fe03a082 73 HAL_ADC_STATE_TIMEOUT = 0x03, /*!< Timeout state */
mbed_official 573:ad23fe03a082 74 HAL_ADC_STATE_ERROR = 0x04, /*!< ADC state error */
mbed_official 573:ad23fe03a082 75 HAL_ADC_STATE_EOC = 0x05, /*!< Conversion is completed */
mbed_official 573:ad23fe03a082 76 HAL_ADC_STATE_EOC_REG = 0x15, /*!< Regular conversion is completed */
mbed_official 573:ad23fe03a082 77 HAL_ADC_STATE_EOC_INJ = 0x25, /*!< Injected conversion is completed */
mbed_official 573:ad23fe03a082 78 HAL_ADC_STATE_EOC_INJ_REG = 0x35, /*!< Injected and regular conversion are completed */
mbed_official 573:ad23fe03a082 79 HAL_ADC_STATE_AWD = 0x06 /*!< ADC state analog watchdog */
mbed_official 573:ad23fe03a082 80
mbed_official 573:ad23fe03a082 81 }HAL_ADC_StateTypeDef;
mbed_official 573:ad23fe03a082 82
mbed_official 573:ad23fe03a082 83 /**
mbed_official 573:ad23fe03a082 84 * @brief ADC Init structure definition
mbed_official 573:ad23fe03a082 85 */
mbed_official 573:ad23fe03a082 86 typedef struct
mbed_official 573:ad23fe03a082 87 {
mbed_official 573:ad23fe03a082 88 uint32_t ClockPrescaler; /*!< Select the frequency of the clock to the ADC. The clock is common for
mbed_official 573:ad23fe03a082 89 all the ADCs.
mbed_official 573:ad23fe03a082 90 This parameter can be a value of @ref ADC_ClockPrescaler */
mbed_official 573:ad23fe03a082 91 uint32_t Resolution; /*!< Configures the ADC resolution dual mode.
mbed_official 573:ad23fe03a082 92 This parameter can be a value of @ref ADC_Resolution */
mbed_official 573:ad23fe03a082 93 uint32_t DataAlign; /*!< Specifies whether the ADC data alignment is left or right.
mbed_official 573:ad23fe03a082 94 This parameter can be a value of @ref ADC_data_align */
mbed_official 573:ad23fe03a082 95 uint32_t ScanConvMode; /*!< Specifies whether the conversion is performed in Scan (multi channels) or
mbed_official 573:ad23fe03a082 96 Single (one channel) mode.
mbed_official 573:ad23fe03a082 97 This parameter can be set to ENABLE or DISABLE */
mbed_official 573:ad23fe03a082 98 uint32_t EOCSelection; /*!< Specifies whether the EOC flag is set
mbed_official 573:ad23fe03a082 99 at the end of single channel conversion or at the end of all conversions.
mbed_official 573:ad23fe03a082 100 This parameter can be a value of @ref ADC_EOCSelection */
mbed_official 573:ad23fe03a082 101 uint32_t ContinuousConvMode; /*!< Specifies whether the conversion is performed in Continuous or Single mode.
mbed_official 573:ad23fe03a082 102 This parameter can be set to ENABLE or DISABLE. */
mbed_official 573:ad23fe03a082 103 uint32_t DMAContinuousRequests; /*!< Specifies whether the DMA requests is performed in Continuous or in Single mode.
mbed_official 573:ad23fe03a082 104 This parameter can be set to ENABLE or DISABLE. */
mbed_official 573:ad23fe03a082 105 uint32_t NbrOfConversion; /*!< Specifies the number of ADC conversions that will be done using the sequencer for
mbed_official 573:ad23fe03a082 106 regular channel group.
mbed_official 573:ad23fe03a082 107 This parameter must be a number between Min_Data = 1 and Max_Data = 16. */
mbed_official 573:ad23fe03a082 108 uint32_t DiscontinuousConvMode; /*!< Specifies whether the conversion is performed in Discontinuous or not
mbed_official 573:ad23fe03a082 109 for regular channels.
mbed_official 573:ad23fe03a082 110 This parameter can be set to ENABLE or DISABLE. */
mbed_official 573:ad23fe03a082 111 uint32_t NbrOfDiscConversion; /*!< Specifies the number of ADC discontinuous conversions that will be done
mbed_official 573:ad23fe03a082 112 using the sequencer for regular channel group.
mbed_official 573:ad23fe03a082 113 This parameter must be a number between Min_Data = 1 and Max_Data = 8. */
mbed_official 573:ad23fe03a082 114 uint32_t ExternalTrigConv; /*!< Selects the external event used to trigger the conversion start of regular group.
mbed_official 573:ad23fe03a082 115 If set to ADC_SOFTWARE_START, external triggers are disabled.
mbed_official 573:ad23fe03a082 116 This parameter can be a value of @ref ADC_External_trigger_Source_Regular
mbed_official 573:ad23fe03a082 117 Note: This parameter can be modified only if there is no conversion is ongoing. */
mbed_official 573:ad23fe03a082 118 uint32_t ExternalTrigConvEdge; /*!< Selects the external trigger edge of regular group.
mbed_official 573:ad23fe03a082 119 If trigger is set to ADC_SOFTWARE_START, this parameter is discarded.
mbed_official 573:ad23fe03a082 120 This parameter can be a value of @ref ADC_External_trigger_edge_Regular
mbed_official 573:ad23fe03a082 121 Note: This parameter can be modified only if there is no conversion is ongoing. */
mbed_official 573:ad23fe03a082 122 }ADC_InitTypeDef;
mbed_official 573:ad23fe03a082 123
mbed_official 573:ad23fe03a082 124 /**
mbed_official 573:ad23fe03a082 125 * @brief ADC handle Structure definition
mbed_official 573:ad23fe03a082 126 */
mbed_official 573:ad23fe03a082 127 typedef struct
mbed_official 573:ad23fe03a082 128 {
mbed_official 573:ad23fe03a082 129 ADC_TypeDef *Instance; /*!< Register base address */
mbed_official 573:ad23fe03a082 130
mbed_official 573:ad23fe03a082 131 ADC_InitTypeDef Init; /*!< ADC required parameters */
mbed_official 573:ad23fe03a082 132
mbed_official 573:ad23fe03a082 133 __IO uint32_t NbrOfCurrentConversionRank; /*!< ADC number of current conversion rank */
mbed_official 573:ad23fe03a082 134
mbed_official 573:ad23fe03a082 135 DMA_HandleTypeDef *DMA_Handle; /*!< Pointer DMA Handler */
mbed_official 573:ad23fe03a082 136
mbed_official 573:ad23fe03a082 137 HAL_LockTypeDef Lock; /*!< ADC locking object */
mbed_official 573:ad23fe03a082 138
mbed_official 573:ad23fe03a082 139 __IO HAL_ADC_StateTypeDef State; /*!< ADC communication state */
mbed_official 573:ad23fe03a082 140
mbed_official 573:ad23fe03a082 141 __IO uint32_t ErrorCode; /*!< ADC Error code */
mbed_official 573:ad23fe03a082 142 }ADC_HandleTypeDef;
mbed_official 573:ad23fe03a082 143
mbed_official 573:ad23fe03a082 144 /**
mbed_official 573:ad23fe03a082 145 * @brief ADC Configuration regular Channel structure definition
mbed_official 573:ad23fe03a082 146 */
mbed_official 573:ad23fe03a082 147 typedef struct
mbed_official 573:ad23fe03a082 148 {
mbed_official 573:ad23fe03a082 149 uint32_t Channel; /*!< The ADC channel to configure.
mbed_official 573:ad23fe03a082 150 This parameter can be a value of @ref ADC_channels */
mbed_official 573:ad23fe03a082 151 uint32_t Rank; /*!< The rank in the regular group sequencer.
mbed_official 573:ad23fe03a082 152 This parameter must be a number between Min_Data = 1 and Max_Data = 16 */
mbed_official 573:ad23fe03a082 153 uint32_t SamplingTime; /*!< The sample time value to be set for the selected channel.
mbed_official 573:ad23fe03a082 154 This parameter can be a value of @ref ADC_sampling_times */
mbed_official 573:ad23fe03a082 155 uint32_t Offset; /*!< Reserved for future use, can be set to 0 */
mbed_official 573:ad23fe03a082 156 }ADC_ChannelConfTypeDef;
mbed_official 573:ad23fe03a082 157
mbed_official 573:ad23fe03a082 158 /**
mbed_official 573:ad23fe03a082 159 * @brief ADC Configuration multi-mode structure definition
mbed_official 573:ad23fe03a082 160 */
mbed_official 573:ad23fe03a082 161 typedef struct
mbed_official 573:ad23fe03a082 162 {
mbed_official 573:ad23fe03a082 163 uint32_t WatchdogMode; /*!< Configures the ADC analog watchdog mode.
mbed_official 573:ad23fe03a082 164 This parameter can be a value of @ref ADC_analog_watchdog_selection */
mbed_official 573:ad23fe03a082 165 uint32_t HighThreshold; /*!< Configures the ADC analog watchdog High threshold value.
mbed_official 573:ad23fe03a082 166 This parameter must be a 12-bit value. */
mbed_official 573:ad23fe03a082 167 uint32_t LowThreshold; /*!< Configures the ADC analog watchdog High threshold value.
mbed_official 573:ad23fe03a082 168 This parameter must be a 12-bit value. */
mbed_official 573:ad23fe03a082 169 uint32_t Channel; /*!< Configures ADC channel for the analog watchdog.
mbed_official 573:ad23fe03a082 170 This parameter has an effect only if watchdog mode is configured on single channel
mbed_official 573:ad23fe03a082 171 This parameter can be a value of @ref ADC_channels */
mbed_official 573:ad23fe03a082 172 uint32_t ITMode; /*!< Specifies whether the analog watchdog is configured
mbed_official 573:ad23fe03a082 173 is interrupt mode or in polling mode.
mbed_official 573:ad23fe03a082 174 This parameter can be set to ENABLE or DISABLE */
mbed_official 573:ad23fe03a082 175 uint32_t WatchdogNumber; /*!< Reserved for future use, can be set to 0 */
mbed_official 573:ad23fe03a082 176 }ADC_AnalogWDGConfTypeDef;
mbed_official 573:ad23fe03a082 177 /**
mbed_official 573:ad23fe03a082 178 * @}
mbed_official 573:ad23fe03a082 179 */
mbed_official 573:ad23fe03a082 180
mbed_official 573:ad23fe03a082 181 /* Exported constants --------------------------------------------------------*/
mbed_official 573:ad23fe03a082 182
mbed_official 573:ad23fe03a082 183 /** @defgroup ADC_Exported_Constants ADC Exported Constants
mbed_official 573:ad23fe03a082 184 * @{
mbed_official 573:ad23fe03a082 185 */
mbed_official 573:ad23fe03a082 186
mbed_official 573:ad23fe03a082 187
mbed_official 573:ad23fe03a082 188 /** @defgroup ADC_Error_Code ADC Error Code
mbed_official 573:ad23fe03a082 189 * @{
mbed_official 573:ad23fe03a082 190 */
mbed_official 573:ad23fe03a082 191
mbed_official 573:ad23fe03a082 192 #define HAL_ADC_ERROR_NONE ((uint32_t)0x00) /*!< No error */
mbed_official 573:ad23fe03a082 193 #define HAL_ADC_ERROR_OVR ((uint32_t)0x01) /*!< OVR error */
mbed_official 573:ad23fe03a082 194 #define HAL_ADC_ERROR_DMA ((uint32_t)0x02) /*!< DMA transfer error */
mbed_official 573:ad23fe03a082 195 /**
mbed_official 573:ad23fe03a082 196 * @}
mbed_official 573:ad23fe03a082 197 */
mbed_official 573:ad23fe03a082 198
mbed_official 573:ad23fe03a082 199
mbed_official 573:ad23fe03a082 200 /** @defgroup ADC_ClockPrescaler ADC Clock Prescaler
mbed_official 573:ad23fe03a082 201 * @{
mbed_official 573:ad23fe03a082 202 */
mbed_official 573:ad23fe03a082 203 #define ADC_CLOCK_SYNC_PCLK_DIV2 ((uint32_t)0x00000000)
mbed_official 573:ad23fe03a082 204 #define ADC_CLOCK_SYNC_PCLK_DIV4 ((uint32_t)ADC_CCR_ADCPRE_0)
mbed_official 573:ad23fe03a082 205 #define ADC_CLOCK_SYNC_PCLK_DIV6 ((uint32_t)ADC_CCR_ADCPRE_1)
mbed_official 573:ad23fe03a082 206 #define ADC_CLOCK_SYNC_PCLK_DIV8 ((uint32_t)ADC_CCR_ADCPRE)
mbed_official 573:ad23fe03a082 207 /**
mbed_official 573:ad23fe03a082 208 * @}
mbed_official 573:ad23fe03a082 209 */
mbed_official 573:ad23fe03a082 210
mbed_official 573:ad23fe03a082 211 /** @defgroup ADC_delay_between_2_sampling_phases ADC Delay Between 2 Sampling Phases
mbed_official 573:ad23fe03a082 212 * @{
mbed_official 573:ad23fe03a082 213 */
mbed_official 573:ad23fe03a082 214 #define ADC_TWOSAMPLINGDELAY_5CYCLES ((uint32_t)0x00000000)
mbed_official 573:ad23fe03a082 215 #define ADC_TWOSAMPLINGDELAY_6CYCLES ((uint32_t)ADC_CCR_DELAY_0)
mbed_official 573:ad23fe03a082 216 #define ADC_TWOSAMPLINGDELAY_7CYCLES ((uint32_t)ADC_CCR_DELAY_1)
mbed_official 573:ad23fe03a082 217 #define ADC_TWOSAMPLINGDELAY_8CYCLES ((uint32_t)(ADC_CCR_DELAY_1 | ADC_CCR_DELAY_0))
mbed_official 573:ad23fe03a082 218 #define ADC_TWOSAMPLINGDELAY_9CYCLES ((uint32_t)ADC_CCR_DELAY_2)
mbed_official 573:ad23fe03a082 219 #define ADC_TWOSAMPLINGDELAY_10CYCLES ((uint32_t)(ADC_CCR_DELAY_2 | ADC_CCR_DELAY_0))
mbed_official 573:ad23fe03a082 220 #define ADC_TWOSAMPLINGDELAY_11CYCLES ((uint32_t)(ADC_CCR_DELAY_2 | ADC_CCR_DELAY_1))
mbed_official 573:ad23fe03a082 221 #define ADC_TWOSAMPLINGDELAY_12CYCLES ((uint32_t)(ADC_CCR_DELAY_2 | ADC_CCR_DELAY_1 | ADC_CCR_DELAY_0))
mbed_official 573:ad23fe03a082 222 #define ADC_TWOSAMPLINGDELAY_13CYCLES ((uint32_t)ADC_CCR_DELAY_3)
mbed_official 573:ad23fe03a082 223 #define ADC_TWOSAMPLINGDELAY_14CYCLES ((uint32_t)(ADC_CCR_DELAY_3 | ADC_CCR_DELAY_0))
mbed_official 573:ad23fe03a082 224 #define ADC_TWOSAMPLINGDELAY_15CYCLES ((uint32_t)(ADC_CCR_DELAY_3 | ADC_CCR_DELAY_1))
mbed_official 573:ad23fe03a082 225 #define ADC_TWOSAMPLINGDELAY_16CYCLES ((uint32_t)(ADC_CCR_DELAY_3 | ADC_CCR_DELAY_1 | ADC_CCR_DELAY_0))
mbed_official 573:ad23fe03a082 226 #define ADC_TWOSAMPLINGDELAY_17CYCLES ((uint32_t)(ADC_CCR_DELAY_3 | ADC_CCR_DELAY_2))
mbed_official 573:ad23fe03a082 227 #define ADC_TWOSAMPLINGDELAY_18CYCLES ((uint32_t)(ADC_CCR_DELAY_3 | ADC_CCR_DELAY_2 | ADC_CCR_DELAY_0))
mbed_official 573:ad23fe03a082 228 #define ADC_TWOSAMPLINGDELAY_19CYCLES ((uint32_t)(ADC_CCR_DELAY_3 | ADC_CCR_DELAY_2 | ADC_CCR_DELAY_1))
mbed_official 573:ad23fe03a082 229 #define ADC_TWOSAMPLINGDELAY_20CYCLES ((uint32_t)ADC_CCR_DELAY)
mbed_official 573:ad23fe03a082 230 /**
mbed_official 573:ad23fe03a082 231 * @}
mbed_official 573:ad23fe03a082 232 */
mbed_official 573:ad23fe03a082 233
mbed_official 573:ad23fe03a082 234 /** @defgroup ADC_Resolution ADC Resolution
mbed_official 573:ad23fe03a082 235 * @{
mbed_official 573:ad23fe03a082 236 */
mbed_official 573:ad23fe03a082 237 #define ADC_RESOLUTION_12B ((uint32_t)0x00000000)
mbed_official 573:ad23fe03a082 238 #define ADC_RESOLUTION_10B ((uint32_t)ADC_CR1_RES_0)
mbed_official 573:ad23fe03a082 239 #define ADC_RESOLUTION_8B ((uint32_t)ADC_CR1_RES_1)
mbed_official 573:ad23fe03a082 240 #define ADC_RESOLUTION_6B ((uint32_t)ADC_CR1_RES)
mbed_official 573:ad23fe03a082 241 /**
mbed_official 573:ad23fe03a082 242 * @}
mbed_official 573:ad23fe03a082 243 */
mbed_official 573:ad23fe03a082 244
mbed_official 573:ad23fe03a082 245 /** @defgroup ADC_External_trigger_edge_Regular ADC External Trigger Edge Regular
mbed_official 573:ad23fe03a082 246 * @{
mbed_official 573:ad23fe03a082 247 */
mbed_official 573:ad23fe03a082 248 #define ADC_EXTERNALTRIGCONVEDGE_NONE ((uint32_t)0x00000000)
mbed_official 573:ad23fe03a082 249 #define ADC_EXTERNALTRIGCONVEDGE_RISING ((uint32_t)ADC_CR2_EXTEN_0)
mbed_official 573:ad23fe03a082 250 #define ADC_EXTERNALTRIGCONVEDGE_FALLING ((uint32_t)ADC_CR2_EXTEN_1)
mbed_official 573:ad23fe03a082 251 #define ADC_EXTERNALTRIGCONVEDGE_RISINGFALLING ((uint32_t)ADC_CR2_EXTEN)
mbed_official 573:ad23fe03a082 252 /**
mbed_official 573:ad23fe03a082 253 * @}
mbed_official 573:ad23fe03a082 254 */
mbed_official 573:ad23fe03a082 255
mbed_official 573:ad23fe03a082 256 /** @defgroup ADC_External_trigger_Source_Regular ADC External Trigger Source Regular
mbed_official 573:ad23fe03a082 257 * @{
mbed_official 573:ad23fe03a082 258 */
mbed_official 573:ad23fe03a082 259 /* Note: Parameter ADC_SOFTWARE_START is a software parameter used for */
mbed_official 573:ad23fe03a082 260 /* compatibility with other STM32 devices. */
mbed_official 573:ad23fe03a082 261 #define ADC_EXTERNALTRIGCONV_T1_CC1 ((uint32_t)0x00000000)
mbed_official 573:ad23fe03a082 262 #define ADC_EXTERNALTRIGCONV_T1_CC2 ((uint32_t)ADC_CR2_EXTSEL_0)
mbed_official 573:ad23fe03a082 263 #define ADC_EXTERNALTRIGCONV_T1_CC3 ((uint32_t)ADC_CR2_EXTSEL_1)
mbed_official 573:ad23fe03a082 264 #define ADC_EXTERNALTRIGCONV_T2_CC2 ((uint32_t)(ADC_CR2_EXTSEL_1 | ADC_CR2_EXTSEL_0))
mbed_official 573:ad23fe03a082 265 #define ADC_EXTERNALTRIGCONV_T5_TRGO ((uint32_t)ADC_CR2_EXTSEL_2)
mbed_official 573:ad23fe03a082 266 #define ADC_EXTERNALTRIGCONV_T4_CC4 ((uint32_t)(ADC_CR2_EXTSEL_2 | ADC_CR2_EXTSEL_0))
mbed_official 573:ad23fe03a082 267 #define ADC_EXTERNALTRIGCONV_T3_CC4 ((uint32_t)(ADC_CR2_EXTSEL_2 | ADC_CR2_EXTSEL_1))
mbed_official 573:ad23fe03a082 268 #define ADC_EXTERNALTRIGCONV_T8_TRGO ((uint32_t)(ADC_CR2_EXTSEL_2 | ADC_CR2_EXTSEL_1 | ADC_CR2_EXTSEL_0))
mbed_official 573:ad23fe03a082 269 #define ADC_EXTERNALTRIGCONV_T8_TRGO2 ((uint32_t)ADC_CR2_EXTSEL_3)
mbed_official 573:ad23fe03a082 270 #define ADC_EXTERNALTRIGCONV_T1_TRGO ((uint32_t)(ADC_CR2_EXTSEL_3 | ADC_CR2_EXTSEL_0))
mbed_official 573:ad23fe03a082 271 #define ADC_EXTERNALTRIGCONV_T1_TRGO2 ((uint32_t)(ADC_CR2_EXTSEL_3 | ADC_CR2_EXTSEL_1))
mbed_official 573:ad23fe03a082 272 #define ADC_EXTERNALTRIGCONV_T2_TRGO ((uint32_t)(ADC_CR2_EXTSEL_3 | ADC_CR2_EXTSEL_1 | ADC_CR2_EXTSEL_0))
mbed_official 573:ad23fe03a082 273 #define ADC_EXTERNALTRIGCONV_T4_TRGO ((uint32_t)(ADC_CR2_EXTSEL_3 | ADC_CR2_EXTSEL_2))
mbed_official 573:ad23fe03a082 274 #define ADC_EXTERNALTRIGCONV_T6_TRGO ((uint32_t)(ADC_CR2_EXTSEL_3 | ADC_CR2_EXTSEL_2 | ADC_CR2_EXTSEL_0))
mbed_official 573:ad23fe03a082 275
mbed_official 573:ad23fe03a082 276 #define ADC_EXTERNALTRIGCONV_EXT_IT11 ((uint32_t)ADC_CR2_EXTSEL)
mbed_official 573:ad23fe03a082 277 #define ADC_SOFTWARE_START ((uint32_t)ADC_CR2_EXTSEL + 1)
mbed_official 573:ad23fe03a082 278 /**
mbed_official 573:ad23fe03a082 279 * @}
mbed_official 573:ad23fe03a082 280 */
mbed_official 573:ad23fe03a082 281
mbed_official 573:ad23fe03a082 282 /** @defgroup ADC_data_align ADC Data Align
mbed_official 573:ad23fe03a082 283 * @{
mbed_official 573:ad23fe03a082 284 */
mbed_official 573:ad23fe03a082 285 #define ADC_DATAALIGN_RIGHT ((uint32_t)0x00000000)
mbed_official 573:ad23fe03a082 286 #define ADC_DATAALIGN_LEFT ((uint32_t)ADC_CR2_ALIGN)
mbed_official 573:ad23fe03a082 287 /**
mbed_official 573:ad23fe03a082 288 * @}
mbed_official 573:ad23fe03a082 289 */
mbed_official 573:ad23fe03a082 290
mbed_official 573:ad23fe03a082 291 /** @defgroup ADC_channels ADC Common Channels
mbed_official 573:ad23fe03a082 292 * @{
mbed_official 573:ad23fe03a082 293 */
mbed_official 573:ad23fe03a082 294 #define ADC_CHANNEL_0 ((uint32_t)0x00000000)
mbed_official 573:ad23fe03a082 295 #define ADC_CHANNEL_1 ((uint32_t)ADC_CR1_AWDCH_0)
mbed_official 573:ad23fe03a082 296 #define ADC_CHANNEL_2 ((uint32_t)ADC_CR1_AWDCH_1)
mbed_official 573:ad23fe03a082 297 #define ADC_CHANNEL_3 ((uint32_t)(ADC_CR1_AWDCH_1 | ADC_CR1_AWDCH_0))
mbed_official 573:ad23fe03a082 298 #define ADC_CHANNEL_4 ((uint32_t)ADC_CR1_AWDCH_2)
mbed_official 573:ad23fe03a082 299 #define ADC_CHANNEL_5 ((uint32_t)(ADC_CR1_AWDCH_2 | ADC_CR1_AWDCH_0))
mbed_official 573:ad23fe03a082 300 #define ADC_CHANNEL_6 ((uint32_t)(ADC_CR1_AWDCH_2 | ADC_CR1_AWDCH_1))
mbed_official 573:ad23fe03a082 301 #define ADC_CHANNEL_7 ((uint32_t)(ADC_CR1_AWDCH_2 | ADC_CR1_AWDCH_1 | ADC_CR1_AWDCH_0))
mbed_official 573:ad23fe03a082 302 #define ADC_CHANNEL_8 ((uint32_t)ADC_CR1_AWDCH_3)
mbed_official 573:ad23fe03a082 303 #define ADC_CHANNEL_9 ((uint32_t)(ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_0))
mbed_official 573:ad23fe03a082 304 #define ADC_CHANNEL_10 ((uint32_t)(ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_1))
mbed_official 573:ad23fe03a082 305 #define ADC_CHANNEL_11 ((uint32_t)(ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_1 | ADC_CR1_AWDCH_0))
mbed_official 573:ad23fe03a082 306 #define ADC_CHANNEL_12 ((uint32_t)(ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_2))
mbed_official 573:ad23fe03a082 307 #define ADC_CHANNEL_13 ((uint32_t)(ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_2 | ADC_CR1_AWDCH_0))
mbed_official 573:ad23fe03a082 308 #define ADC_CHANNEL_14 ((uint32_t)(ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_2 | ADC_CR1_AWDCH_1))
mbed_official 573:ad23fe03a082 309 #define ADC_CHANNEL_15 ((uint32_t)(ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_2 | ADC_CR1_AWDCH_1 | ADC_CR1_AWDCH_0))
mbed_official 573:ad23fe03a082 310 #define ADC_CHANNEL_16 ((uint32_t)ADC_CR1_AWDCH_4)
mbed_official 573:ad23fe03a082 311 #define ADC_CHANNEL_17 ((uint32_t)(ADC_CR1_AWDCH_4 | ADC_CR1_AWDCH_0))
mbed_official 573:ad23fe03a082 312 #define ADC_CHANNEL_18 ((uint32_t)(ADC_CR1_AWDCH_4 | ADC_CR1_AWDCH_1))
mbed_official 573:ad23fe03a082 313
mbed_official 573:ad23fe03a082 314 #define ADC_CHANNEL_VREFINT ((uint32_t)ADC_CHANNEL_17)
mbed_official 573:ad23fe03a082 315 #define ADC_CHANNEL_VBAT ((uint32_t)ADC_CHANNEL_18)
mbed_official 573:ad23fe03a082 316 /**
mbed_official 573:ad23fe03a082 317 * @}
mbed_official 573:ad23fe03a082 318 */
mbed_official 573:ad23fe03a082 319
mbed_official 573:ad23fe03a082 320 /** @defgroup ADC_sampling_times ADC Sampling Times
mbed_official 573:ad23fe03a082 321 * @{
mbed_official 573:ad23fe03a082 322 */
mbed_official 573:ad23fe03a082 323 #define ADC_SAMPLETIME_3CYCLES ((uint32_t)0x00000000)
mbed_official 573:ad23fe03a082 324 #define ADC_SAMPLETIME_15CYCLES ((uint32_t)ADC_SMPR1_SMP10_0)
mbed_official 573:ad23fe03a082 325 #define ADC_SAMPLETIME_28CYCLES ((uint32_t)ADC_SMPR1_SMP10_1)
mbed_official 573:ad23fe03a082 326 #define ADC_SAMPLETIME_56CYCLES ((uint32_t)(ADC_SMPR1_SMP10_1 | ADC_SMPR1_SMP10_0))
mbed_official 573:ad23fe03a082 327 #define ADC_SAMPLETIME_84CYCLES ((uint32_t)ADC_SMPR1_SMP10_2)
mbed_official 573:ad23fe03a082 328 #define ADC_SAMPLETIME_112CYCLES ((uint32_t)(ADC_SMPR1_SMP10_2 | ADC_SMPR1_SMP10_0))
mbed_official 573:ad23fe03a082 329 #define ADC_SAMPLETIME_144CYCLES ((uint32_t)(ADC_SMPR1_SMP10_2 | ADC_SMPR1_SMP10_1))
mbed_official 573:ad23fe03a082 330 #define ADC_SAMPLETIME_480CYCLES ((uint32_t)ADC_SMPR1_SMP10)
mbed_official 573:ad23fe03a082 331 /**
mbed_official 573:ad23fe03a082 332 * @}
mbed_official 573:ad23fe03a082 333 */
mbed_official 573:ad23fe03a082 334
mbed_official 573:ad23fe03a082 335 /** @defgroup ADC_EOCSelection ADC EOC Selection
mbed_official 573:ad23fe03a082 336 * @{
mbed_official 573:ad23fe03a082 337 */
mbed_official 573:ad23fe03a082 338 #define ADC_EOC_SEQ_CONV ((uint32_t)0x00000000)
mbed_official 573:ad23fe03a082 339 #define ADC_EOC_SINGLE_CONV ((uint32_t)0x00000001)
mbed_official 573:ad23fe03a082 340 #define ADC_EOC_SINGLE_SEQ_CONV ((uint32_t)0x00000002) /*!< reserved for future use */
mbed_official 573:ad23fe03a082 341 /**
mbed_official 573:ad23fe03a082 342 * @}
mbed_official 573:ad23fe03a082 343 */
mbed_official 573:ad23fe03a082 344
mbed_official 573:ad23fe03a082 345 /** @defgroup ADC_Event_type ADC Event Type
mbed_official 573:ad23fe03a082 346 * @{
mbed_official 573:ad23fe03a082 347 */
mbed_official 573:ad23fe03a082 348 #define ADC_AWD_EVENT ((uint32_t)ADC_FLAG_AWD)
mbed_official 573:ad23fe03a082 349 #define ADC_OVR_EVENT ((uint32_t)ADC_FLAG_OVR)
mbed_official 573:ad23fe03a082 350 /**
mbed_official 573:ad23fe03a082 351 * @}
mbed_official 573:ad23fe03a082 352 */
mbed_official 573:ad23fe03a082 353
mbed_official 573:ad23fe03a082 354 /** @defgroup ADC_analog_watchdog_selection ADC Analog Watchdog Selection
mbed_official 573:ad23fe03a082 355 * @{
mbed_official 573:ad23fe03a082 356 */
mbed_official 573:ad23fe03a082 357 #define ADC_ANALOGWATCHDOG_SINGLE_REG ((uint32_t)(ADC_CR1_AWDSGL | ADC_CR1_AWDEN))
mbed_official 573:ad23fe03a082 358 #define ADC_ANALOGWATCHDOG_SINGLE_INJEC ((uint32_t)(ADC_CR1_AWDSGL | ADC_CR1_JAWDEN))
mbed_official 573:ad23fe03a082 359 #define ADC_ANALOGWATCHDOG_SINGLE_REGINJEC ((uint32_t)(ADC_CR1_AWDSGL | ADC_CR1_AWDEN | ADC_CR1_JAWDEN))
mbed_official 573:ad23fe03a082 360 #define ADC_ANALOGWATCHDOG_ALL_REG ((uint32_t)ADC_CR1_AWDEN)
mbed_official 573:ad23fe03a082 361 #define ADC_ANALOGWATCHDOG_ALL_INJEC ((uint32_t)ADC_CR1_JAWDEN)
mbed_official 573:ad23fe03a082 362 #define ADC_ANALOGWATCHDOG_ALL_REGINJEC ((uint32_t)(ADC_CR1_AWDEN | ADC_CR1_JAWDEN))
mbed_official 573:ad23fe03a082 363 #define ADC_ANALOGWATCHDOG_NONE ((uint32_t)0x00000000)
mbed_official 573:ad23fe03a082 364 /**
mbed_official 573:ad23fe03a082 365 * @}
mbed_official 573:ad23fe03a082 366 */
mbed_official 573:ad23fe03a082 367
mbed_official 573:ad23fe03a082 368 /** @defgroup ADC_interrupts_definition ADC Interrupts Definition
mbed_official 573:ad23fe03a082 369 * @{
mbed_official 573:ad23fe03a082 370 */
mbed_official 573:ad23fe03a082 371 #define ADC_IT_EOC ((uint32_t)ADC_CR1_EOCIE)
mbed_official 573:ad23fe03a082 372 #define ADC_IT_AWD ((uint32_t)ADC_CR1_AWDIE)
mbed_official 573:ad23fe03a082 373 #define ADC_IT_JEOC ((uint32_t)ADC_CR1_JEOCIE)
mbed_official 573:ad23fe03a082 374 #define ADC_IT_OVR ((uint32_t)ADC_CR1_OVRIE)
mbed_official 573:ad23fe03a082 375 /**
mbed_official 573:ad23fe03a082 376 * @}
mbed_official 573:ad23fe03a082 377 */
mbed_official 573:ad23fe03a082 378
mbed_official 573:ad23fe03a082 379 /** @defgroup ADC_flags_definition ADC Flags Definition
mbed_official 573:ad23fe03a082 380 * @{
mbed_official 573:ad23fe03a082 381 */
mbed_official 573:ad23fe03a082 382 #define ADC_FLAG_AWD ((uint32_t)ADC_SR_AWD)
mbed_official 573:ad23fe03a082 383 #define ADC_FLAG_EOC ((uint32_t)ADC_SR_EOC)
mbed_official 573:ad23fe03a082 384 #define ADC_FLAG_JEOC ((uint32_t)ADC_SR_JEOC)
mbed_official 573:ad23fe03a082 385 #define ADC_FLAG_JSTRT ((uint32_t)ADC_SR_JSTRT)
mbed_official 573:ad23fe03a082 386 #define ADC_FLAG_STRT ((uint32_t)ADC_SR_STRT)
mbed_official 573:ad23fe03a082 387 #define ADC_FLAG_OVR ((uint32_t)ADC_SR_OVR)
mbed_official 573:ad23fe03a082 388 /**
mbed_official 573:ad23fe03a082 389 * @}
mbed_official 573:ad23fe03a082 390 */
mbed_official 573:ad23fe03a082 391
mbed_official 573:ad23fe03a082 392 /** @defgroup ADC_channels_type ADC Channels Type
mbed_official 573:ad23fe03a082 393 * @{
mbed_official 573:ad23fe03a082 394 */
mbed_official 573:ad23fe03a082 395 #define ADC_ALL_CHANNELS ((uint32_t)0x00000001)
mbed_official 573:ad23fe03a082 396 #define ADC_REGULAR_CHANNELS ((uint32_t)0x00000002) /*!< reserved for future use */
mbed_official 573:ad23fe03a082 397 #define ADC_INJECTED_CHANNELS ((uint32_t)0x00000003) /*!< reserved for future use */
mbed_official 573:ad23fe03a082 398 /**
mbed_official 573:ad23fe03a082 399 * @}
mbed_official 573:ad23fe03a082 400 */
mbed_official 573:ad23fe03a082 401
mbed_official 573:ad23fe03a082 402 /**
mbed_official 573:ad23fe03a082 403 * @}
mbed_official 573:ad23fe03a082 404 */
mbed_official 573:ad23fe03a082 405
mbed_official 573:ad23fe03a082 406 /* Exported macro ------------------------------------------------------------*/
mbed_official 573:ad23fe03a082 407 /** @defgroup ADC_Exported_Macros ADC Exported Macros
mbed_official 573:ad23fe03a082 408 * @{
mbed_official 573:ad23fe03a082 409 */
mbed_official 573:ad23fe03a082 410
mbed_official 573:ad23fe03a082 411 /** @brief Reset ADC handle state
mbed_official 573:ad23fe03a082 412 * @param __HANDLE__: ADC handle
mbed_official 573:ad23fe03a082 413 * @retval None
mbed_official 573:ad23fe03a082 414 */
mbed_official 573:ad23fe03a082 415 #define __HAL_ADC_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_ADC_STATE_RESET)
mbed_official 573:ad23fe03a082 416
mbed_official 573:ad23fe03a082 417 /**
mbed_official 573:ad23fe03a082 418 * @brief Enable the ADC peripheral.
mbed_official 573:ad23fe03a082 419 * @param __HANDLE__: ADC handle
mbed_official 573:ad23fe03a082 420 * @retval None
mbed_official 573:ad23fe03a082 421 */
mbed_official 573:ad23fe03a082 422 #define __HAL_ADC_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR2 |= ADC_CR2_ADON)
mbed_official 573:ad23fe03a082 423
mbed_official 573:ad23fe03a082 424 /**
mbed_official 573:ad23fe03a082 425 * @brief Disable the ADC peripheral.
mbed_official 573:ad23fe03a082 426 * @param __HANDLE__: ADC handle
mbed_official 573:ad23fe03a082 427 * @retval None
mbed_official 573:ad23fe03a082 428 */
mbed_official 573:ad23fe03a082 429 #define __HAL_ADC_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR2 &= ~ADC_CR2_ADON)
mbed_official 573:ad23fe03a082 430
mbed_official 573:ad23fe03a082 431 /**
mbed_official 573:ad23fe03a082 432 * @brief Enable the ADC end of conversion interrupt.
mbed_official 573:ad23fe03a082 433 * @param __HANDLE__: specifies the ADC Handle.
mbed_official 573:ad23fe03a082 434 * @param __INTERRUPT__: ADC Interrupt.
mbed_official 573:ad23fe03a082 435 * @retval None
mbed_official 573:ad23fe03a082 436 */
mbed_official 573:ad23fe03a082 437 #define __HAL_ADC_ENABLE_IT(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->CR1) |= (__INTERRUPT__))
mbed_official 573:ad23fe03a082 438
mbed_official 573:ad23fe03a082 439 /**
mbed_official 573:ad23fe03a082 440 * @brief Disable the ADC end of conversion interrupt.
mbed_official 573:ad23fe03a082 441 * @param __HANDLE__: specifies the ADC Handle.
mbed_official 573:ad23fe03a082 442 * @param __INTERRUPT__: ADC interrupt.
mbed_official 573:ad23fe03a082 443 * @retval None
mbed_official 573:ad23fe03a082 444 */
mbed_official 573:ad23fe03a082 445 #define __HAL_ADC_DISABLE_IT(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->CR1) &= ~(__INTERRUPT__))
mbed_official 573:ad23fe03a082 446
mbed_official 573:ad23fe03a082 447 /** @brief Check if the specified ADC interrupt source is enabled or disabled.
mbed_official 573:ad23fe03a082 448 * @param __HANDLE__: specifies the ADC Handle.
mbed_official 573:ad23fe03a082 449 * @param __INTERRUPT__: specifies the ADC interrupt source to check.
mbed_official 573:ad23fe03a082 450 * @retval The new state of __IT__ (TRUE or FALSE).
mbed_official 573:ad23fe03a082 451 */
mbed_official 573:ad23fe03a082 452 #define __HAL_ADC_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->CR1 & (__INTERRUPT__)) == (__INTERRUPT__))
mbed_official 573:ad23fe03a082 453
mbed_official 573:ad23fe03a082 454 /**
mbed_official 573:ad23fe03a082 455 * @brief Clear the ADC's pending flags.
mbed_official 573:ad23fe03a082 456 * @param __HANDLE__: specifies the ADC Handle.
mbed_official 573:ad23fe03a082 457 * @param __FLAG__: ADC flag.
mbed_official 573:ad23fe03a082 458 * @retval None
mbed_official 573:ad23fe03a082 459 */
mbed_official 573:ad23fe03a082 460 #define __HAL_ADC_CLEAR_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->SR) = ~(__FLAG__))
mbed_official 573:ad23fe03a082 461
mbed_official 573:ad23fe03a082 462 /**
mbed_official 573:ad23fe03a082 463 * @brief Get the selected ADC's flag status.
mbed_official 573:ad23fe03a082 464 * @param __HANDLE__: specifies the ADC Handle.
mbed_official 573:ad23fe03a082 465 * @param __FLAG__: ADC flag.
mbed_official 573:ad23fe03a082 466 * @retval None
mbed_official 573:ad23fe03a082 467 */
mbed_official 573:ad23fe03a082 468 #define __HAL_ADC_GET_FLAG(__HANDLE__, __FLAG__) ((((__HANDLE__)->Instance->SR) & (__FLAG__)) == (__FLAG__))
mbed_official 573:ad23fe03a082 469
mbed_official 573:ad23fe03a082 470 /**
mbed_official 573:ad23fe03a082 471 * @}
mbed_official 573:ad23fe03a082 472 */
mbed_official 573:ad23fe03a082 473
mbed_official 573:ad23fe03a082 474 /* Include ADC HAL Extension module */
mbed_official 573:ad23fe03a082 475 #include "stm32f7xx_hal_adc_ex.h"
mbed_official 573:ad23fe03a082 476
mbed_official 573:ad23fe03a082 477 /* Exported functions --------------------------------------------------------*/
mbed_official 573:ad23fe03a082 478 /** @addtogroup ADC_Exported_Functions
mbed_official 573:ad23fe03a082 479 * @{
mbed_official 573:ad23fe03a082 480 */
mbed_official 573:ad23fe03a082 481
mbed_official 573:ad23fe03a082 482 /** @addtogroup ADC_Exported_Functions_Group1
mbed_official 573:ad23fe03a082 483 * @{
mbed_official 573:ad23fe03a082 484 */
mbed_official 573:ad23fe03a082 485 /* Initialization/de-initialization functions ***********************************/
mbed_official 573:ad23fe03a082 486 HAL_StatusTypeDef HAL_ADC_Init(ADC_HandleTypeDef* hadc);
mbed_official 573:ad23fe03a082 487 HAL_StatusTypeDef HAL_ADC_DeInit(ADC_HandleTypeDef *hadc);
mbed_official 573:ad23fe03a082 488 void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc);
mbed_official 573:ad23fe03a082 489 void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc);
mbed_official 573:ad23fe03a082 490 /**
mbed_official 573:ad23fe03a082 491 * @}
mbed_official 573:ad23fe03a082 492 */
mbed_official 573:ad23fe03a082 493
mbed_official 573:ad23fe03a082 494 /** @addtogroup ADC_Exported_Functions_Group2
mbed_official 573:ad23fe03a082 495 * @{
mbed_official 573:ad23fe03a082 496 */
mbed_official 573:ad23fe03a082 497 /* I/O operation functions ******************************************************/
mbed_official 573:ad23fe03a082 498 HAL_StatusTypeDef HAL_ADC_Start(ADC_HandleTypeDef* hadc);
mbed_official 573:ad23fe03a082 499 HAL_StatusTypeDef HAL_ADC_Stop(ADC_HandleTypeDef* hadc);
mbed_official 573:ad23fe03a082 500 HAL_StatusTypeDef HAL_ADC_PollForConversion(ADC_HandleTypeDef* hadc, uint32_t Timeout);
mbed_official 573:ad23fe03a082 501
mbed_official 573:ad23fe03a082 502 HAL_StatusTypeDef HAL_ADC_PollForEvent(ADC_HandleTypeDef* hadc, uint32_t EventType, uint32_t Timeout);
mbed_official 573:ad23fe03a082 503
mbed_official 573:ad23fe03a082 504 HAL_StatusTypeDef HAL_ADC_Start_IT(ADC_HandleTypeDef* hadc);
mbed_official 573:ad23fe03a082 505 HAL_StatusTypeDef HAL_ADC_Stop_IT(ADC_HandleTypeDef* hadc);
mbed_official 573:ad23fe03a082 506
mbed_official 573:ad23fe03a082 507 void HAL_ADC_IRQHandler(ADC_HandleTypeDef* hadc);
mbed_official 573:ad23fe03a082 508
mbed_official 573:ad23fe03a082 509 HAL_StatusTypeDef HAL_ADC_Start_DMA(ADC_HandleTypeDef* hadc, uint32_t* pData, uint32_t Length);
mbed_official 573:ad23fe03a082 510 HAL_StatusTypeDef HAL_ADC_Stop_DMA(ADC_HandleTypeDef* hadc);
mbed_official 573:ad23fe03a082 511
mbed_official 573:ad23fe03a082 512 uint32_t HAL_ADC_GetValue(ADC_HandleTypeDef* hadc);
mbed_official 573:ad23fe03a082 513
mbed_official 573:ad23fe03a082 514 void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc);
mbed_official 573:ad23fe03a082 515 void HAL_ADC_ConvHalfCpltCallback(ADC_HandleTypeDef* hadc);
mbed_official 573:ad23fe03a082 516 void HAL_ADC_LevelOutOfWindowCallback(ADC_HandleTypeDef* hadc);
mbed_official 573:ad23fe03a082 517 void HAL_ADC_ErrorCallback(ADC_HandleTypeDef *hadc);
mbed_official 573:ad23fe03a082 518 /**
mbed_official 573:ad23fe03a082 519 * @}
mbed_official 573:ad23fe03a082 520 */
mbed_official 573:ad23fe03a082 521
mbed_official 573:ad23fe03a082 522 /** @addtogroup ADC_Exported_Functions_Group3
mbed_official 573:ad23fe03a082 523 * @{
mbed_official 573:ad23fe03a082 524 */
mbed_official 573:ad23fe03a082 525 /* Peripheral Control functions *************************************************/
mbed_official 573:ad23fe03a082 526 HAL_StatusTypeDef HAL_ADC_ConfigChannel(ADC_HandleTypeDef* hadc, ADC_ChannelConfTypeDef* sConfig);
mbed_official 573:ad23fe03a082 527 HAL_StatusTypeDef HAL_ADC_AnalogWDGConfig(ADC_HandleTypeDef* hadc, ADC_AnalogWDGConfTypeDef* AnalogWDGConfig);
mbed_official 573:ad23fe03a082 528 /**
mbed_official 573:ad23fe03a082 529 * @}
mbed_official 573:ad23fe03a082 530 */
mbed_official 573:ad23fe03a082 531
mbed_official 573:ad23fe03a082 532 /** @addtogroup ADC_Exported_Functions_Group4
mbed_official 573:ad23fe03a082 533 * @{
mbed_official 573:ad23fe03a082 534 */
mbed_official 573:ad23fe03a082 535 /* Peripheral State functions ***************************************************/
mbed_official 573:ad23fe03a082 536 HAL_ADC_StateTypeDef HAL_ADC_GetState(ADC_HandleTypeDef* hadc);
mbed_official 573:ad23fe03a082 537 uint32_t HAL_ADC_GetError(ADC_HandleTypeDef *hadc);
mbed_official 573:ad23fe03a082 538 /**
mbed_official 573:ad23fe03a082 539 * @}
mbed_official 573:ad23fe03a082 540 */
mbed_official 573:ad23fe03a082 541
mbed_official 573:ad23fe03a082 542 /**
mbed_official 573:ad23fe03a082 543 * @}
mbed_official 573:ad23fe03a082 544 */
mbed_official 573:ad23fe03a082 545
mbed_official 573:ad23fe03a082 546 /* Private types -------------------------------------------------------------*/
mbed_official 573:ad23fe03a082 547 /* Private variables ---------------------------------------------------------*/
mbed_official 573:ad23fe03a082 548 /* Private constants ---------------------------------------------------------*/
mbed_official 573:ad23fe03a082 549 /** @defgroup ADC_Private_Constants ADC Private Constants
mbed_official 573:ad23fe03a082 550 * @{
mbed_official 573:ad23fe03a082 551 */
mbed_official 573:ad23fe03a082 552 /* Delay for ADC stabilization time. */
mbed_official 573:ad23fe03a082 553 /* Maximum delay is 1us (refer to device datasheet, parameter tSTAB). */
mbed_official 573:ad23fe03a082 554 /* Unit: us */
mbed_official 573:ad23fe03a082 555 #define ADC_STAB_DELAY_US ((uint32_t) 3)
mbed_official 573:ad23fe03a082 556 /* Delay for temperature sensor stabilization time. */
mbed_official 573:ad23fe03a082 557 /* Maximum delay is 10us (refer to device datasheet, parameter tSTART). */
mbed_official 573:ad23fe03a082 558 /* Unit: us */
mbed_official 573:ad23fe03a082 559 #define ADC_TEMPSENSOR_DELAY_US ((uint32_t) 10)
mbed_official 573:ad23fe03a082 560 /**
mbed_official 573:ad23fe03a082 561 * @}
mbed_official 573:ad23fe03a082 562 */
mbed_official 573:ad23fe03a082 563
mbed_official 573:ad23fe03a082 564 /* Private macros ------------------------------------------------------------*/
mbed_official 573:ad23fe03a082 565 /** @defgroup ADC_Private_Macros ADC Private Macros
mbed_official 573:ad23fe03a082 566 * @{
mbed_official 573:ad23fe03a082 567 */
mbed_official 573:ad23fe03a082 568 #define IS_ADC_CLOCKPRESCALER(__ADC_CLOCK__) (((__ADC_CLOCK__) == ADC_CLOCK_SYNC_PCLK_DIV2) || \
mbed_official 573:ad23fe03a082 569 ((__ADC_CLOCK__) == ADC_CLOCK_SYNC_PCLK_DIV4) || \
mbed_official 573:ad23fe03a082 570 ((__ADC_CLOCK__) == ADC_CLOCK_SYNC_PCLK_DIV6) || \
mbed_official 573:ad23fe03a082 571 ((__ADC_CLOCK__) == ADC_CLOCK_SYNC_PCLK_DIV8))
mbed_official 573:ad23fe03a082 572 #define IS_ADC_SAMPLING_DELAY(__DELAY__) (((__DELAY__) == ADC_TWOSAMPLINGDELAY_5CYCLES) || \
mbed_official 573:ad23fe03a082 573 ((__DELAY__) == ADC_TWOSAMPLINGDELAY_6CYCLES) || \
mbed_official 573:ad23fe03a082 574 ((__DELAY__) == ADC_TWOSAMPLINGDELAY_7CYCLES) || \
mbed_official 573:ad23fe03a082 575 ((__DELAY__) == ADC_TWOSAMPLINGDELAY_8CYCLES) || \
mbed_official 573:ad23fe03a082 576 ((__DELAY__) == ADC_TWOSAMPLINGDELAY_9CYCLES) || \
mbed_official 573:ad23fe03a082 577 ((__DELAY__) == ADC_TWOSAMPLINGDELAY_10CYCLES) || \
mbed_official 573:ad23fe03a082 578 ((__DELAY__) == ADC_TWOSAMPLINGDELAY_11CYCLES) || \
mbed_official 573:ad23fe03a082 579 ((__DELAY__) == ADC_TWOSAMPLINGDELAY_12CYCLES) || \
mbed_official 573:ad23fe03a082 580 ((__DELAY__) == ADC_TWOSAMPLINGDELAY_13CYCLES) || \
mbed_official 573:ad23fe03a082 581 ((__DELAY__) == ADC_TWOSAMPLINGDELAY_14CYCLES) || \
mbed_official 573:ad23fe03a082 582 ((__DELAY__) == ADC_TWOSAMPLINGDELAY_15CYCLES) || \
mbed_official 573:ad23fe03a082 583 ((__DELAY__) == ADC_TWOSAMPLINGDELAY_16CYCLES) || \
mbed_official 573:ad23fe03a082 584 ((__DELAY__) == ADC_TWOSAMPLINGDELAY_17CYCLES) || \
mbed_official 573:ad23fe03a082 585 ((__DELAY__) == ADC_TWOSAMPLINGDELAY_18CYCLES) || \
mbed_official 573:ad23fe03a082 586 ((__DELAY__) == ADC_TWOSAMPLINGDELAY_19CYCLES) || \
mbed_official 573:ad23fe03a082 587 ((__DELAY__) == ADC_TWOSAMPLINGDELAY_20CYCLES))
mbed_official 573:ad23fe03a082 588 #define IS_ADC_RESOLUTION(__RESOLUTION__) (((__RESOLUTION__) == ADC_RESOLUTION_12B) || \
mbed_official 573:ad23fe03a082 589 ((__RESOLUTION__) == ADC_RESOLUTION_10B) || \
mbed_official 573:ad23fe03a082 590 ((__RESOLUTION__) == ADC_RESOLUTION_8B) || \
mbed_official 573:ad23fe03a082 591 ((__RESOLUTION__) == ADC_RESOLUTION_6B))
mbed_official 573:ad23fe03a082 592 #define IS_ADC_EXT_TRIG_EDGE(__EDGE__) (((__EDGE__) == ADC_EXTERNALTRIGCONVEDGE_NONE) || \
mbed_official 573:ad23fe03a082 593 ((__EDGE__) == ADC_EXTERNALTRIGCONVEDGE_RISING) || \
mbed_official 573:ad23fe03a082 594 ((__EDGE__) == ADC_EXTERNALTRIGCONVEDGE_FALLING) || \
mbed_official 573:ad23fe03a082 595 ((__EDGE__) == ADC_EXTERNALTRIGCONVEDGE_RISINGFALLING))
mbed_official 573:ad23fe03a082 596 #define IS_ADC_EXT_TRIG(__REGTRIG__) (((__REGTRIG__) == ADC_EXTERNALTRIGCONV_T1_CC1) || \
mbed_official 573:ad23fe03a082 597 ((__REGTRIG__) == ADC_EXTERNALTRIGCONV_T1_CC2) || \
mbed_official 573:ad23fe03a082 598 ((__REGTRIG__) == ADC_EXTERNALTRIGCONV_T1_CC3) || \
mbed_official 573:ad23fe03a082 599 ((__REGTRIG__) == ADC_EXTERNALTRIGCONV_T2_CC2) || \
mbed_official 573:ad23fe03a082 600 ((__REGTRIG__) == ADC_EXTERNALTRIGCONV_T5_TRGO) || \
mbed_official 573:ad23fe03a082 601 ((__REGTRIG__) == ADC_EXTERNALTRIGCONV_T4_CC4) || \
mbed_official 573:ad23fe03a082 602 ((__REGTRIG__) == ADC_EXTERNALTRIGCONV_T3_CC4) || \
mbed_official 573:ad23fe03a082 603 ((__REGTRIG__) == ADC_EXTERNALTRIGCONV_T8_TRGO) || \
mbed_official 573:ad23fe03a082 604 ((__REGTRIG__) == ADC_EXTERNALTRIGCONV_T8_TRGO2) || \
mbed_official 573:ad23fe03a082 605 ((__REGTRIG__) == ADC_EXTERNALTRIGCONV_T1_TRGO) || \
mbed_official 573:ad23fe03a082 606 ((__REGTRIG__) == ADC_EXTERNALTRIGCONV_T1_TRGO2) || \
mbed_official 573:ad23fe03a082 607 ((__REGTRIG__) == ADC_EXTERNALTRIGCONV_T2_TRGO) || \
mbed_official 573:ad23fe03a082 608 ((__REGTRIG__) == ADC_EXTERNALTRIGCONV_T4_TRGO) || \
mbed_official 573:ad23fe03a082 609 ((__REGTRIG__) == ADC_EXTERNALTRIGCONV_T6_TRGO) || \
mbed_official 573:ad23fe03a082 610 ((__REGTRIG__) == ADC_EXTERNALTRIGCONV_EXT_IT11) || \
mbed_official 573:ad23fe03a082 611 ((__REGTRIG__) == ADC_SOFTWARE_START))
mbed_official 573:ad23fe03a082 612 #define IS_ADC_DATA_ALIGN(__ALIGN__) (((__ALIGN__) == ADC_DATAALIGN_RIGHT) || \
mbed_official 573:ad23fe03a082 613 ((__ALIGN__) == ADC_DATAALIGN_LEFT))
mbed_official 573:ad23fe03a082 614
mbed_official 573:ad23fe03a082 615 #define IS_ADC_SAMPLE_TIME(__TIME__) (((__TIME__) == ADC_SAMPLETIME_3CYCLES) || \
mbed_official 573:ad23fe03a082 616 ((__TIME__) == ADC_SAMPLETIME_15CYCLES) || \
mbed_official 573:ad23fe03a082 617 ((__TIME__) == ADC_SAMPLETIME_28CYCLES) || \
mbed_official 573:ad23fe03a082 618 ((__TIME__) == ADC_SAMPLETIME_56CYCLES) || \
mbed_official 573:ad23fe03a082 619 ((__TIME__) == ADC_SAMPLETIME_84CYCLES) || \
mbed_official 573:ad23fe03a082 620 ((__TIME__) == ADC_SAMPLETIME_112CYCLES) || \
mbed_official 573:ad23fe03a082 621 ((__TIME__) == ADC_SAMPLETIME_144CYCLES) || \
mbed_official 573:ad23fe03a082 622 ((__TIME__) == ADC_SAMPLETIME_480CYCLES))
mbed_official 573:ad23fe03a082 623 #define IS_ADC_EOCSelection(__EOCSelection__) (((__EOCSelection__) == ADC_EOC_SINGLE_CONV) || \
mbed_official 573:ad23fe03a082 624 ((__EOCSelection__) == ADC_EOC_SEQ_CONV) || \
mbed_official 573:ad23fe03a082 625 ((__EOCSelection__) == ADC_EOC_SINGLE_SEQ_CONV))
mbed_official 573:ad23fe03a082 626 #define IS_ADC_EVENT_TYPE(__EVENT__) (((__EVENT__) == ADC_AWD_EVENT) || \
mbed_official 573:ad23fe03a082 627 ((__EVENT__) == ADC_OVR_EVENT))
mbed_official 573:ad23fe03a082 628 #define IS_ADC_ANALOG_WATCHDOG(__WATCHDOG__) (((__WATCHDOG__) == ADC_ANALOGWATCHDOG_SINGLE_REG) || \
mbed_official 573:ad23fe03a082 629 ((__WATCHDOG__) == ADC_ANALOGWATCHDOG_SINGLE_INJEC) || \
mbed_official 573:ad23fe03a082 630 ((__WATCHDOG__) == ADC_ANALOGWATCHDOG_SINGLE_REGINJEC) || \
mbed_official 573:ad23fe03a082 631 ((__WATCHDOG__) == ADC_ANALOGWATCHDOG_ALL_REG) || \
mbed_official 573:ad23fe03a082 632 ((__WATCHDOG__) == ADC_ANALOGWATCHDOG_ALL_INJEC) || \
mbed_official 573:ad23fe03a082 633 ((__WATCHDOG__) == ADC_ANALOGWATCHDOG_ALL_REGINJEC) || \
mbed_official 573:ad23fe03a082 634 ((__WATCHDOG__) == ADC_ANALOGWATCHDOG_NONE))
mbed_official 573:ad23fe03a082 635 #define IS_ADC_CHANNELS_TYPE(CHANNEL_TYPE) (((CHANNEL_TYPE) == ADC_ALL_CHANNELS) || \
mbed_official 573:ad23fe03a082 636 ((CHANNEL_TYPE) == ADC_REGULAR_CHANNELS) || \
mbed_official 573:ad23fe03a082 637 ((CHANNEL_TYPE) == ADC_INJECTED_CHANNELS))
mbed_official 573:ad23fe03a082 638 #define IS_ADC_THRESHOLD(__THRESHOLD__) ((__THRESHOLD__) <= ((uint32_t)0xFFF))
mbed_official 573:ad23fe03a082 639 #define IS_ADC_REGULAR_LENGTH(__LENGTH__) (((__LENGTH__) >= ((uint32_t)1)) && ((__LENGTH__) <= ((uint32_t)16)))
mbed_official 573:ad23fe03a082 640 #define IS_ADC_REGULAR_RANK(__RANK__) (((__RANK__) >= ((uint32_t)1)) && ((__RANK__) <= ((uint32_t)16)))
mbed_official 573:ad23fe03a082 641 #define IS_ADC_REGULAR_DISC_NUMBER(__NUMBER__) (((__NUMBER__) >= ((uint32_t)1)) && ((__NUMBER__) <= ((uint32_t)8)))
mbed_official 573:ad23fe03a082 642 #define IS_ADC_RANGE(__RESOLUTION__, __ADC_VALUE__) \
mbed_official 573:ad23fe03a082 643 ((((__RESOLUTION__) == ADC_RESOLUTION_12B) && ((__ADC_VALUE__) <= ((uint32_t)0x0FFF))) || \
mbed_official 573:ad23fe03a082 644 (((__RESOLUTION__) == ADC_RESOLUTION_10B) && ((__ADC_VALUE__) <= ((uint32_t)0x03FF))) || \
mbed_official 573:ad23fe03a082 645 (((__RESOLUTION__) == ADC_RESOLUTION_8B) && ((__ADC_VALUE__) <= ((uint32_t)0x00FF))) || \
mbed_official 573:ad23fe03a082 646 (((__RESOLUTION__) == ADC_RESOLUTION_6B) && ((__ADC_VALUE__) <= ((uint32_t)0x003F))))
mbed_official 573:ad23fe03a082 647
mbed_official 573:ad23fe03a082 648 /**
mbed_official 573:ad23fe03a082 649 * @brief Set ADC Regular channel sequence length.
mbed_official 573:ad23fe03a082 650 * @param _NbrOfConversion_: Regular channel sequence length.
mbed_official 573:ad23fe03a082 651 * @retval None
mbed_official 573:ad23fe03a082 652 */
mbed_official 573:ad23fe03a082 653 #define ADC_SQR1(_NbrOfConversion_) (((_NbrOfConversion_) - (uint8_t)1) << 20)
mbed_official 573:ad23fe03a082 654
mbed_official 573:ad23fe03a082 655 /**
mbed_official 573:ad23fe03a082 656 * @brief Set the ADC's sample time for channel numbers between 10 and 18.
mbed_official 573:ad23fe03a082 657 * @param _SAMPLETIME_: Sample time parameter.
mbed_official 573:ad23fe03a082 658 * @param _CHANNELNB_: Channel number.
mbed_official 573:ad23fe03a082 659 * @retval None
mbed_official 573:ad23fe03a082 660 */
mbed_official 573:ad23fe03a082 661 #define ADC_SMPR1(_SAMPLETIME_, _CHANNELNB_) ((_SAMPLETIME_) << (3 * (((uint32_t)((uint16_t)(_CHANNELNB_))) - 10)))
mbed_official 573:ad23fe03a082 662
mbed_official 573:ad23fe03a082 663 /**
mbed_official 573:ad23fe03a082 664 * @brief Set the ADC's sample time for channel numbers between 0 and 9.
mbed_official 573:ad23fe03a082 665 * @param _SAMPLETIME_: Sample time parameter.
mbed_official 573:ad23fe03a082 666 * @param _CHANNELNB_: Channel number.
mbed_official 573:ad23fe03a082 667 * @retval None
mbed_official 573:ad23fe03a082 668 */
mbed_official 573:ad23fe03a082 669 #define ADC_SMPR2(_SAMPLETIME_, _CHANNELNB_) ((_SAMPLETIME_) << (3 * ((uint32_t)((uint16_t)(_CHANNELNB_)))))
mbed_official 573:ad23fe03a082 670
mbed_official 573:ad23fe03a082 671 /**
mbed_official 573:ad23fe03a082 672 * @brief Set the selected regular channel rank for rank between 1 and 6.
mbed_official 573:ad23fe03a082 673 * @param _CHANNELNB_: Channel number.
mbed_official 573:ad23fe03a082 674 * @param _RANKNB_: Rank number.
mbed_official 573:ad23fe03a082 675 * @retval None
mbed_official 573:ad23fe03a082 676 */
mbed_official 573:ad23fe03a082 677 #define ADC_SQR3_RK(_CHANNELNB_, _RANKNB_) (((uint32_t)((uint16_t)(_CHANNELNB_))) << (5 * ((_RANKNB_) - 1)))
mbed_official 573:ad23fe03a082 678
mbed_official 573:ad23fe03a082 679 /**
mbed_official 573:ad23fe03a082 680 * @brief Set the selected regular channel rank for rank between 7 and 12.
mbed_official 573:ad23fe03a082 681 * @param _CHANNELNB_: Channel number.
mbed_official 573:ad23fe03a082 682 * @param _RANKNB_: Rank number.
mbed_official 573:ad23fe03a082 683 * @retval None
mbed_official 573:ad23fe03a082 684 */
mbed_official 573:ad23fe03a082 685 #define ADC_SQR2_RK(_CHANNELNB_, _RANKNB_) (((uint32_t)((uint16_t)(_CHANNELNB_))) << (5 * ((_RANKNB_) - 7)))
mbed_official 573:ad23fe03a082 686
mbed_official 573:ad23fe03a082 687 /**
mbed_official 573:ad23fe03a082 688 * @brief Set the selected regular channel rank for rank between 13 and 16.
mbed_official 573:ad23fe03a082 689 * @param _CHANNELNB_: Channel number.
mbed_official 573:ad23fe03a082 690 * @param _RANKNB_: Rank number.
mbed_official 573:ad23fe03a082 691 * @retval None
mbed_official 573:ad23fe03a082 692 */
mbed_official 573:ad23fe03a082 693 #define ADC_SQR1_RK(_CHANNELNB_, _RANKNB_) (((uint32_t)((uint16_t)(_CHANNELNB_))) << (5 * ((_RANKNB_) - 13)))
mbed_official 573:ad23fe03a082 694
mbed_official 573:ad23fe03a082 695 /**
mbed_official 573:ad23fe03a082 696 * @brief Enable ADC continuous conversion mode.
mbed_official 573:ad23fe03a082 697 * @param _CONTINUOUS_MODE_: Continuous mode.
mbed_official 573:ad23fe03a082 698 * @retval None
mbed_official 573:ad23fe03a082 699 */
mbed_official 573:ad23fe03a082 700 #define ADC_CR2_CONTINUOUS(_CONTINUOUS_MODE_) ((_CONTINUOUS_MODE_) << 1)
mbed_official 573:ad23fe03a082 701
mbed_official 573:ad23fe03a082 702 /**
mbed_official 573:ad23fe03a082 703 * @brief Configures the number of discontinuous conversions for the regular group channels.
mbed_official 573:ad23fe03a082 704 * @param _NBR_DISCONTINUOUSCONV_: Number of discontinuous conversions.
mbed_official 573:ad23fe03a082 705 * @retval None
mbed_official 573:ad23fe03a082 706 */
mbed_official 573:ad23fe03a082 707 #define ADC_CR1_DISCONTINUOUS(_NBR_DISCONTINUOUSCONV_) (((_NBR_DISCONTINUOUSCONV_) - 1) << POSITION_VAL(ADC_CR1_DISCNUM))
mbed_official 573:ad23fe03a082 708
mbed_official 573:ad23fe03a082 709 /**
mbed_official 573:ad23fe03a082 710 * @brief Enable ADC scan mode.
mbed_official 573:ad23fe03a082 711 * @param _SCANCONV_MODE_: Scan conversion mode.
mbed_official 573:ad23fe03a082 712 * @retval None
mbed_official 573:ad23fe03a082 713 */
mbed_official 573:ad23fe03a082 714 #define ADC_CR1_SCANCONV(_SCANCONV_MODE_) ((_SCANCONV_MODE_) << 8)
mbed_official 573:ad23fe03a082 715
mbed_official 573:ad23fe03a082 716 /**
mbed_official 573:ad23fe03a082 717 * @brief Enable the ADC end of conversion selection.
mbed_official 573:ad23fe03a082 718 * @param _EOCSelection_MODE_: End of conversion selection mode.
mbed_official 573:ad23fe03a082 719 * @retval None
mbed_official 573:ad23fe03a082 720 */
mbed_official 573:ad23fe03a082 721 #define ADC_CR2_EOCSelection(_EOCSelection_MODE_) ((_EOCSelection_MODE_) << 10)
mbed_official 573:ad23fe03a082 722
mbed_official 573:ad23fe03a082 723 /**
mbed_official 573:ad23fe03a082 724 * @brief Enable the ADC DMA continuous request.
mbed_official 573:ad23fe03a082 725 * @param _DMAContReq_MODE_: DMA continuous request mode.
mbed_official 573:ad23fe03a082 726 * @retval None
mbed_official 573:ad23fe03a082 727 */
mbed_official 573:ad23fe03a082 728 #define ADC_CR2_DMAContReq(_DMAContReq_MODE_) ((_DMAContReq_MODE_) << 9)
mbed_official 573:ad23fe03a082 729
mbed_official 573:ad23fe03a082 730 /**
mbed_official 573:ad23fe03a082 731 * @brief Return resolution bits in CR1 register.
mbed_official 573:ad23fe03a082 732 * @param __HANDLE__: ADC handle
mbed_official 573:ad23fe03a082 733 * @retval None
mbed_official 573:ad23fe03a082 734 */
mbed_official 573:ad23fe03a082 735 #define ADC_GET_RESOLUTION(__HANDLE__) (((__HANDLE__)->Instance->CR1) & ADC_CR1_RES)
mbed_official 573:ad23fe03a082 736
mbed_official 573:ad23fe03a082 737 /**
mbed_official 573:ad23fe03a082 738 * @}
mbed_official 573:ad23fe03a082 739 */
mbed_official 573:ad23fe03a082 740
mbed_official 573:ad23fe03a082 741 /* Private functions ---------------------------------------------------------*/
mbed_official 573:ad23fe03a082 742 /** @defgroup ADC_Private_Functions ADC Private Functions
mbed_official 573:ad23fe03a082 743 * @{
mbed_official 573:ad23fe03a082 744 */
mbed_official 573:ad23fe03a082 745
mbed_official 573:ad23fe03a082 746 /**
mbed_official 573:ad23fe03a082 747 * @}
mbed_official 573:ad23fe03a082 748 */
mbed_official 573:ad23fe03a082 749
mbed_official 573:ad23fe03a082 750 /**
mbed_official 573:ad23fe03a082 751 * @}
mbed_official 573:ad23fe03a082 752 */
mbed_official 573:ad23fe03a082 753
mbed_official 573:ad23fe03a082 754 /**
mbed_official 573:ad23fe03a082 755 * @}
mbed_official 573:ad23fe03a082 756 */
mbed_official 573:ad23fe03a082 757
mbed_official 573:ad23fe03a082 758 #ifdef __cplusplus
mbed_official 573:ad23fe03a082 759 }
mbed_official 573:ad23fe03a082 760 #endif
mbed_official 573:ad23fe03a082 761
mbed_official 573:ad23fe03a082 762 #endif /*__STM32F7xx_ADC_H */
mbed_official 573:ad23fe03a082 763
mbed_official 573:ad23fe03a082 764
mbed_official 573:ad23fe03a082 765 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/