mbed library sources

Fork of mbed-src by mbed official

Committer:
mbed_official
Date:
Tue Nov 04 09:45:07 2014 +0000
Revision:
385:be64abf45658
Parent:
targets/cmsis/TARGET_STM/TARGET_NUCLEO_F302R8/stm32f3xx_hal_adc.c@330:c80ac197fa6a
Child:
632:7687fb9c4f91
Synchronized with git revision 5a868b18bc02bd5bb19d24424d0a2464cd1930bb

Full URL: https://github.com/mbedmicro/mbed/commit/5a868b18bc02bd5bb19d24424d0a2464cd1930bb/

Targets: Factorisation of NUCLEO_F302R8 and F334R8 cmsis folders

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 330:c80ac197fa6a 1 /**
mbed_official 330:c80ac197fa6a 2 ******************************************************************************
mbed_official 330:c80ac197fa6a 3 * @file stm32f3xx_hal_adc.c
mbed_official 330:c80ac197fa6a 4 * @author MCD Application conversion
mbed_official 330:c80ac197fa6a 5 * @version V1.1.0
mbed_official 330:c80ac197fa6a 6 * @date 12-Sept-2014
mbed_official 330:c80ac197fa6a 7 * @brief This file provides firmware functions to manage the following
mbed_official 330:c80ac197fa6a 8 * functionalities of the Analog to Digital Convertor (ADC)
mbed_official 330:c80ac197fa6a 9 * peripheral:
mbed_official 330:c80ac197fa6a 10 * + Initialization and de-initialization functions
mbed_official 330:c80ac197fa6a 11 * ++ Initialization and Configuration of ADC
mbed_official 330:c80ac197fa6a 12 * + Operation functions
mbed_official 330:c80ac197fa6a 13 * ++ Start, stop, get result of conversions of regular and injected
mbed_official 330:c80ac197fa6a 14 * groups, using 3 possible modes: polling, interruption or DMA.
mbed_official 330:c80ac197fa6a 15 * + Control functions
mbed_official 330:c80ac197fa6a 16 * ++ Analog Watchdog configuration
mbed_official 330:c80ac197fa6a 17 * ++ Channels configuration on regular group
mbed_official 330:c80ac197fa6a 18 * + State functions
mbed_official 330:c80ac197fa6a 19 * ++ ADC state machine management
mbed_official 330:c80ac197fa6a 20 * ++ Interrupts and flags management
mbed_official 330:c80ac197fa6a 21 *
mbed_official 330:c80ac197fa6a 22 @verbatim
mbed_official 330:c80ac197fa6a 23 ==============================================================================
mbed_official 330:c80ac197fa6a 24 ##### ADC specific features #####
mbed_official 330:c80ac197fa6a 25 ==============================================================================
mbed_official 330:c80ac197fa6a 26 [..]
mbed_official 330:c80ac197fa6a 27 (#) 12-bit, 10-bit, 8-bit or 6-bit configurable resolution (available only on
mbed_official 330:c80ac197fa6a 28 STM32F30xxC devices).
mbed_official 330:c80ac197fa6a 29
mbed_official 330:c80ac197fa6a 30 (#) Interrupt generation at the end of regular conversion, end of injected
mbed_official 330:c80ac197fa6a 31 conversion, and in case of analog watchdog or overrun events.
mbed_official 330:c80ac197fa6a 32
mbed_official 330:c80ac197fa6a 33 (#) Single and continuous conversion modes.
mbed_official 330:c80ac197fa6a 34
mbed_official 330:c80ac197fa6a 35 (#) Scan mode for automatic conversion of channel 0 to channel 'n'.
mbed_official 330:c80ac197fa6a 36
mbed_official 330:c80ac197fa6a 37 (#) Data alignment with in-built data coherency.
mbed_official 330:c80ac197fa6a 38
mbed_official 330:c80ac197fa6a 39 (#) Channel-wise programmable sampling time.
mbed_official 330:c80ac197fa6a 40
mbed_official 330:c80ac197fa6a 41 (#) ADC conversion Regular or Injected groups.
mbed_official 330:c80ac197fa6a 42
mbed_official 330:c80ac197fa6a 43 (#) External trigger (timer or EXTI) with configurable polarity for both
mbed_official 330:c80ac197fa6a 44 regular and injected groups.
mbed_official 330:c80ac197fa6a 45
mbed_official 330:c80ac197fa6a 46 (#) DMA request generation for transfer of conversions data of regular group.
mbed_official 330:c80ac197fa6a 47
mbed_official 330:c80ac197fa6a 48 (#) Multimode Dual mode (available on devices with 2 ADCs or more).
mbed_official 330:c80ac197fa6a 49
mbed_official 330:c80ac197fa6a 50 (#) Configurable DMA data storage in Multimode Dual mode (available on devices
mbed_official 330:c80ac197fa6a 51 with 2 DCs or more).
mbed_official 330:c80ac197fa6a 52
mbed_official 330:c80ac197fa6a 53 (#) Configurable delay between conversions in Dual interleaved mode (available
mbed_official 330:c80ac197fa6a 54 on devices with 2 DCs or more).
mbed_official 330:c80ac197fa6a 55
mbed_official 330:c80ac197fa6a 56 (#) ADC calibration
mbed_official 330:c80ac197fa6a 57
mbed_official 330:c80ac197fa6a 58 (#) ADC channels selectable single/differential input (available only on
mbed_official 330:c80ac197fa6a 59 STM32F30xxC devices)
mbed_official 330:c80ac197fa6a 60
mbed_official 330:c80ac197fa6a 61 (#) ADC Injected sequencer&channels configuration context queue (available
mbed_official 330:c80ac197fa6a 62 only on STM32F30xxC devices)
mbed_official 330:c80ac197fa6a 63
mbed_official 330:c80ac197fa6a 64 (#) ADC offset on injected and regular groups (offset on regular group
mbed_official 330:c80ac197fa6a 65 available only on STM32F30xxC devices)
mbed_official 330:c80ac197fa6a 66
mbed_official 330:c80ac197fa6a 67 (#) ADC supply requirements: 2.4 V to 3.6 V at full speed and down to 1.8 V at
mbed_official 330:c80ac197fa6a 68 slower speed.
mbed_official 330:c80ac197fa6a 69
mbed_official 330:c80ac197fa6a 70 (#) ADC input range: from Vref– (connected to Vssa) to Vref+ (connected to
mbed_official 330:c80ac197fa6a 71 Vdda or to an external voltage reference).
mbed_official 330:c80ac197fa6a 72
mbed_official 330:c80ac197fa6a 73
mbed_official 330:c80ac197fa6a 74 ##### How to use this driver #####
mbed_official 330:c80ac197fa6a 75 ==============================================================================
mbed_official 330:c80ac197fa6a 76 [..]
mbed_official 330:c80ac197fa6a 77
mbed_official 330:c80ac197fa6a 78 (#) Enable the ADC interface
mbed_official 330:c80ac197fa6a 79 As prerequisite, into HAL_ADC_MspInit(), ADC clock must be configured
mbed_official 330:c80ac197fa6a 80 at RCC top level: clock source and clock prescaler.
mbed_official 330:c80ac197fa6a 81
mbed_official 330:c80ac197fa6a 82 For STM32F30x/STM32F33x devices:
mbed_official 330:c80ac197fa6a 83 Two possible clock sources: synchronous clock derived from AHB clock
mbed_official 330:c80ac197fa6a 84 or asynchronous clock derived from ADC dedicated PLL 72MHz.
mbed_official 330:c80ac197fa6a 85
mbed_official 330:c80ac197fa6a 86 For example, in case of device with a single ADC:
mbed_official 330:c80ac197fa6a 87 __ADC1_CLK_ENABLE() (mandatory)
mbed_official 330:c80ac197fa6a 88 __HAL_RCC_ADC1_CONFIG(RCC_ADC1PLLCLK_DIV1); (optional)
mbed_official 330:c80ac197fa6a 89
mbed_official 330:c80ac197fa6a 90 For example, in case of device with several ADCs:
mbed_official 330:c80ac197fa6a 91 if((hadc->Instance == ADC1) || (hadc->Instance == ADC2))
mbed_official 330:c80ac197fa6a 92 {
mbed_official 330:c80ac197fa6a 93 __ADC12_CLK_ENABLE() (mandatory)
mbed_official 330:c80ac197fa6a 94 __HAL_RCC_ADC12_CONFIG(RCC_ADC12PLLCLK_DIV1); (optional)
mbed_official 330:c80ac197fa6a 95 }
mbed_official 330:c80ac197fa6a 96 else
mbed_official 330:c80ac197fa6a 97 {
mbed_official 330:c80ac197fa6a 98 __ADC34_CLK_ENABLE() (mandatory)
mbed_official 330:c80ac197fa6a 99 __HAL_RCC_ADC34_CONFIG(RCC_ADC34PLLCLK_DIV1); (optional)
mbed_official 330:c80ac197fa6a 100 }
mbed_official 330:c80ac197fa6a 101
mbed_official 330:c80ac197fa6a 102 For STM32F37x devices:
mbed_official 330:c80ac197fa6a 103 Only one clock source: APB2 clock.
mbed_official 330:c80ac197fa6a 104 Example:
mbed_official 330:c80ac197fa6a 105 __HAL_RCC_ADC1_CONFIG(RCC_ADC1PCLK2_DIV2);
mbed_official 330:c80ac197fa6a 106
mbed_official 330:c80ac197fa6a 107 (#) ADC pins configuration
mbed_official 330:c80ac197fa6a 108 (++) Enable the clock for the ADC GPIOs using the following function:
mbed_official 330:c80ac197fa6a 109 __GPIOx_CLK_ENABLE();
mbed_official 330:c80ac197fa6a 110 (++) Configure these ADC pins in analog mode using HAL_GPIO_Init();
mbed_official 330:c80ac197fa6a 111
mbed_official 330:c80ac197fa6a 112 (#) Configure the ADC parameters (conversion resolution, data alignment,
mbed_official 330:c80ac197fa6a 113 continuous mode, ...) using the HAL_ADC_Init() function.
mbed_official 330:c80ac197fa6a 114
mbed_official 330:c80ac197fa6a 115 (#) Activate the ADC peripheral using one of the start functions:
mbed_official 330:c80ac197fa6a 116 HAL_ADC_Start(), HAL_ADC_Start_IT(), HAL_ADC_Start_DMA()
mbed_official 330:c80ac197fa6a 117 HAL_ADCEx_InjectedStart(), HAL_ADCEx_InjectedStart_IT() or
mbed_official 330:c80ac197fa6a 118 HAL_ADC_MultiModeStart_DMA().
mbed_official 330:c80ac197fa6a 119
mbed_official 330:c80ac197fa6a 120 *** Channels to regular group configuration ***
mbed_official 330:c80ac197fa6a 121 ============================================
mbed_official 330:c80ac197fa6a 122 [..]
mbed_official 330:c80ac197fa6a 123 (+) To configure the ADC regular group features, use
mbed_official 330:c80ac197fa6a 124 HAL_ADC_Init() and HAL_ADC_ConfigChannel() functions.
mbed_official 330:c80ac197fa6a 125 (+) To activate the continuous mode, use the HAL_ADC_Init() function.
mbed_official 330:c80ac197fa6a 126 (+) To read the ADC converted values, use the HAL_ADC_GetValue() function.
mbed_official 330:c80ac197fa6a 127
mbed_official 330:c80ac197fa6a 128 *** Multimode ADCs configuration ***
mbed_official 330:c80ac197fa6a 129 ======================================================
mbed_official 330:c80ac197fa6a 130 [..]
mbed_official 330:c80ac197fa6a 131 (+) Multimode feature is available on devices with 2 ADCs or more.
mbed_official 330:c80ac197fa6a 132 (+) Refer to "Channels to regular group" description to
mbed_official 330:c80ac197fa6a 133 configure the ADC1 and ADC2 regular groups.
mbed_official 330:c80ac197fa6a 134 (+) Select the Multi mode ADC features (dual mode
mbed_official 330:c80ac197fa6a 135 simultaneous, interleaved, ...) and configure the DMA mode using
mbed_official 330:c80ac197fa6a 136 HAL_ADCEx_MultiModeConfigChannel() functions.
mbed_official 330:c80ac197fa6a 137 (+) Read the ADCs converted values using the HAL_ADCEx_MultiModeGetValue()
mbed_official 330:c80ac197fa6a 138 function.
mbed_official 330:c80ac197fa6a 139
mbed_official 330:c80ac197fa6a 140 *** DMA for regular configuration ***
mbed_official 330:c80ac197fa6a 141 =============================================================
mbed_official 330:c80ac197fa6a 142 [..]
mbed_official 330:c80ac197fa6a 143 (+) To enable the DMA mode for regular group, use the
mbed_official 330:c80ac197fa6a 144 HAL_ADC_Start_DMA() function.
mbed_official 330:c80ac197fa6a 145 (+) To enable the generation of DMA requests continuously at the end of
mbed_official 330:c80ac197fa6a 146 the last DMA transfer, use the HAL_ADC_Init() function.
mbed_official 330:c80ac197fa6a 147
mbed_official 330:c80ac197fa6a 148 *** Channels to injected group configuration ***
mbed_official 330:c80ac197fa6a 149 =============================================
mbed_official 330:c80ac197fa6a 150 [..]
mbed_official 330:c80ac197fa6a 151 (+) To configure the ADC Injected channels group features, use
mbed_official 330:c80ac197fa6a 152 HAL_ADCEx_InjectedConfigChannel() functions.
mbed_official 330:c80ac197fa6a 153 (+) To activate the continuous mode, use the HAL_ADC_Init() function.
mbed_official 330:c80ac197fa6a 154 (+) To read the ADC converted values, use the HAL_ADCEx_InjectedGetValue()
mbed_official 330:c80ac197fa6a 155 function.
mbed_official 330:c80ac197fa6a 156
mbed_official 330:c80ac197fa6a 157 @endverbatim
mbed_official 330:c80ac197fa6a 158 ******************************************************************************
mbed_official 330:c80ac197fa6a 159 * @attention
mbed_official 330:c80ac197fa6a 160 *
mbed_official 330:c80ac197fa6a 161 * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
mbed_official 330:c80ac197fa6a 162 *
mbed_official 330:c80ac197fa6a 163 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 330:c80ac197fa6a 164 * are permitted provided that the following conditions are met:
mbed_official 330:c80ac197fa6a 165 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 330:c80ac197fa6a 166 * this list of conditions and the following disclaimer.
mbed_official 330:c80ac197fa6a 167 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 330:c80ac197fa6a 168 * this list of conditions and the following disclaimer in the documentation
mbed_official 330:c80ac197fa6a 169 * and/or other materials provided with the distribution.
mbed_official 330:c80ac197fa6a 170 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 330:c80ac197fa6a 171 * may be used to endorse or promote products derived from this software
mbed_official 330:c80ac197fa6a 172 * without specific prior written permission.
mbed_official 330:c80ac197fa6a 173 *
mbed_official 330:c80ac197fa6a 174 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 330:c80ac197fa6a 175 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 330:c80ac197fa6a 176 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 330:c80ac197fa6a 177 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 330:c80ac197fa6a 178 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 330:c80ac197fa6a 179 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 330:c80ac197fa6a 180 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 330:c80ac197fa6a 181 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 330:c80ac197fa6a 182 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 330:c80ac197fa6a 183 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 330:c80ac197fa6a 184 *
mbed_official 330:c80ac197fa6a 185 ******************************************************************************
mbed_official 330:c80ac197fa6a 186 */
mbed_official 330:c80ac197fa6a 187
mbed_official 330:c80ac197fa6a 188 /* Includes ------------------------------------------------------------------*/
mbed_official 330:c80ac197fa6a 189 #include "stm32f3xx_hal.h"
mbed_official 330:c80ac197fa6a 190
mbed_official 330:c80ac197fa6a 191 /** @addtogroup STM32F3xx_HAL_Driver
mbed_official 330:c80ac197fa6a 192 * @{
mbed_official 330:c80ac197fa6a 193 */
mbed_official 330:c80ac197fa6a 194
mbed_official 330:c80ac197fa6a 195 /** @defgroup ADC ADC HAL module driver
mbed_official 330:c80ac197fa6a 196 * @brief ADC HAL module driver
mbed_official 330:c80ac197fa6a 197 * @{
mbed_official 330:c80ac197fa6a 198 */
mbed_official 330:c80ac197fa6a 199
mbed_official 330:c80ac197fa6a 200 #ifdef HAL_ADC_MODULE_ENABLED
mbed_official 330:c80ac197fa6a 201
mbed_official 330:c80ac197fa6a 202 /* Private typedef -----------------------------------------------------------*/
mbed_official 330:c80ac197fa6a 203 /* Private define ------------------------------------------------------------*/
mbed_official 330:c80ac197fa6a 204 /* Private macro -------------------------------------------------------------*/
mbed_official 330:c80ac197fa6a 205 /* Private variables ---------------------------------------------------------*/
mbed_official 330:c80ac197fa6a 206 /* Private function prototypes -----------------------------------------------*/
mbed_official 330:c80ac197fa6a 207 /* Exported functions --------------------------------------------------------*/
mbed_official 330:c80ac197fa6a 208
mbed_official 330:c80ac197fa6a 209 /** @defgroup ADC_Exported_Functions ADC Exported Functions
mbed_official 330:c80ac197fa6a 210 * @{
mbed_official 330:c80ac197fa6a 211 */
mbed_official 330:c80ac197fa6a 212
mbed_official 330:c80ac197fa6a 213 /** @defgroup ADC_Exported_Functions_Group1 Initialization and de-initialization functions
mbed_official 330:c80ac197fa6a 214 * @brief Initialization and Configuration functions
mbed_official 330:c80ac197fa6a 215 *
mbed_official 330:c80ac197fa6a 216 @verbatim
mbed_official 330:c80ac197fa6a 217 ===============================================================================
mbed_official 330:c80ac197fa6a 218 ##### Initialization and de-initialization functions #####
mbed_official 330:c80ac197fa6a 219 ===============================================================================
mbed_official 330:c80ac197fa6a 220 [..] This section provides functions allowing to:
mbed_official 330:c80ac197fa6a 221 (+) Initialize and configure the ADC.
mbed_official 330:c80ac197fa6a 222 (+) De-initialize the ADC.
mbed_official 330:c80ac197fa6a 223
mbed_official 330:c80ac197fa6a 224 @endverbatim
mbed_official 330:c80ac197fa6a 225 * @{
mbed_official 330:c80ac197fa6a 226 */
mbed_official 330:c80ac197fa6a 227
mbed_official 330:c80ac197fa6a 228 /**
mbed_official 330:c80ac197fa6a 229 * @brief Initializes the ADC peripheral and regular group according to
mbed_official 330:c80ac197fa6a 230 * parameters specified in structure "ADC_InitTypeDef".
mbed_official 330:c80ac197fa6a 231 * @note As prerequisite, ADC clock must be configured at RCC top level
mbed_official 330:c80ac197fa6a 232 * depending on both possible clock sources: PLL clock or AHB clock.
mbed_official 330:c80ac197fa6a 233 * See commented example code below that can be copied and uncommented
mbed_official 330:c80ac197fa6a 234 * into HAL_ADC_MspInit().
mbed_official 330:c80ac197fa6a 235 * @note Possibility to update parameters on the fly:
mbed_official 330:c80ac197fa6a 236 * This function initializes the ADC MSP (HAL_ADC_MspInit()) only when
mbed_official 330:c80ac197fa6a 237 * coming from ADC state reset. Following calls to this function can
mbed_official 330:c80ac197fa6a 238 * be used to reconfigure some parameters of ADC_InitTypeDef
mbed_official 330:c80ac197fa6a 239 * structure on the fly, without modifying MSP configuration. If ADC
mbed_official 330:c80ac197fa6a 240 * MSP has to be modified again, HAL_ADC_DeInit() must be called
mbed_official 330:c80ac197fa6a 241 * before HAL_ADC_Init().
mbed_official 330:c80ac197fa6a 242 * The setting of these parameters is conditioned to ADC state.
mbed_official 330:c80ac197fa6a 243 * For parameters constraints, see comments of structure
mbed_official 330:c80ac197fa6a 244 * "ADC_InitTypeDef".
mbed_official 330:c80ac197fa6a 245 * @note This function configures the ADC within 2 scopes: scope of entire
mbed_official 330:c80ac197fa6a 246 * ADC and scope of regular group. For parameters details, see comments
mbed_official 330:c80ac197fa6a 247 * of structure "ADC_InitTypeDef".
mbed_official 330:c80ac197fa6a 248 * @note For devices with several ADCs: parameters related to common ADC
mbed_official 330:c80ac197fa6a 249 * registers (ADC clock mode) are set only if all ADCs sharing the
mbed_official 330:c80ac197fa6a 250 * same common group are disabled.
mbed_official 330:c80ac197fa6a 251 * If this is not the case, these common parameters setting are
mbed_official 330:c80ac197fa6a 252 * bypassed without error reporting: it can be the intended behaviour in
mbed_official 330:c80ac197fa6a 253 * case of update of a parameter of ADC_InitTypeDef on the fly,
mbed_official 330:c80ac197fa6a 254 * without disabling the other ADCs sharing the same common group.
mbed_official 330:c80ac197fa6a 255 * @param hadc: ADC handle
mbed_official 330:c80ac197fa6a 256 * @retval HAL status
mbed_official 330:c80ac197fa6a 257 */
mbed_official 330:c80ac197fa6a 258 __weak HAL_StatusTypeDef HAL_ADC_Init(ADC_HandleTypeDef* hadc)
mbed_official 330:c80ac197fa6a 259 {
mbed_official 330:c80ac197fa6a 260 /* Note : This function is defined into this file for library reference. */
mbed_official 330:c80ac197fa6a 261 /* Function content is located into file stm32f3xx_hal_adc_ex.c */
mbed_official 330:c80ac197fa6a 262
mbed_official 330:c80ac197fa6a 263 /* Return function status */
mbed_official 330:c80ac197fa6a 264 return HAL_ERROR;
mbed_official 330:c80ac197fa6a 265 }
mbed_official 330:c80ac197fa6a 266
mbed_official 330:c80ac197fa6a 267 /**
mbed_official 330:c80ac197fa6a 268 * @brief Deinitialize the ADC peripheral registers to their default reset
mbed_official 330:c80ac197fa6a 269 * values, with deinitialization of the ADC MSP.
mbed_official 330:c80ac197fa6a 270 * @note For devices with several ADCs: reset of ADC common registers is done
mbed_official 330:c80ac197fa6a 271 * only if all ADCs sharing the same common group are disabled.
mbed_official 330:c80ac197fa6a 272 * If this is not the case, reset of these common parameters reset is
mbed_official 330:c80ac197fa6a 273 * bypassed without error reporting: it can be the intended behaviour in
mbed_official 330:c80ac197fa6a 274 * case of reset of a single ADC while the other ADCs sharing the same
mbed_official 330:c80ac197fa6a 275 * common group is still running.
mbed_official 330:c80ac197fa6a 276 * @note For devices with several ADCs: Global reset of all ADCs sharing a
mbed_official 330:c80ac197fa6a 277 * common group is possible.
mbed_official 330:c80ac197fa6a 278 * As this function is intended to reset a single ADC, to not impact
mbed_official 330:c80ac197fa6a 279 * other ADCs, instructions for global reset of multiple ADCs have been
mbed_official 330:c80ac197fa6a 280 * let commented below.
mbed_official 330:c80ac197fa6a 281 * If needed, the example code can be copied and uncommented into
mbed_official 330:c80ac197fa6a 282 * function HAL_ADC_MspDeInit().
mbed_official 330:c80ac197fa6a 283 * @param hadc: ADC handle
mbed_official 330:c80ac197fa6a 284 * @retval HAL status
mbed_official 330:c80ac197fa6a 285 */
mbed_official 330:c80ac197fa6a 286 __weak HAL_StatusTypeDef HAL_ADC_DeInit(ADC_HandleTypeDef* hadc)
mbed_official 330:c80ac197fa6a 287 {
mbed_official 330:c80ac197fa6a 288 /* Note : This function is defined into this file for library reference. */
mbed_official 330:c80ac197fa6a 289 /* Function content is located into file stm32f3xx_hal_adc_ex.c */
mbed_official 330:c80ac197fa6a 290
mbed_official 330:c80ac197fa6a 291 /* Return function status */
mbed_official 330:c80ac197fa6a 292 return HAL_ERROR;
mbed_official 330:c80ac197fa6a 293 }
mbed_official 330:c80ac197fa6a 294
mbed_official 330:c80ac197fa6a 295 /**
mbed_official 330:c80ac197fa6a 296 * @brief Initializes the ADC MSP.
mbed_official 330:c80ac197fa6a 297 * @param hadc: ADC handle
mbed_official 330:c80ac197fa6a 298 * @retval None
mbed_official 330:c80ac197fa6a 299 */
mbed_official 330:c80ac197fa6a 300 __weak void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
mbed_official 330:c80ac197fa6a 301 {
mbed_official 330:c80ac197fa6a 302 /* NOTE : This function should not be modified. When the callback is needed,
mbed_official 330:c80ac197fa6a 303 function HAL_ADC_MspInit must be implemented in the user file.
mbed_official 330:c80ac197fa6a 304 */
mbed_official 330:c80ac197fa6a 305 }
mbed_official 330:c80ac197fa6a 306
mbed_official 330:c80ac197fa6a 307 /**
mbed_official 330:c80ac197fa6a 308 * @brief DeInitializes the ADC MSP.
mbed_official 330:c80ac197fa6a 309 * @param hadc: ADC handle
mbed_official 330:c80ac197fa6a 310 * @retval None
mbed_official 330:c80ac197fa6a 311 */
mbed_official 330:c80ac197fa6a 312 __weak void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
mbed_official 330:c80ac197fa6a 313 {
mbed_official 330:c80ac197fa6a 314 /* NOTE : This function should not be modified. When the callback is needed,
mbed_official 330:c80ac197fa6a 315 function HAL_ADC_MspDeInit must be implemented in the user file.
mbed_official 330:c80ac197fa6a 316 */
mbed_official 330:c80ac197fa6a 317 }
mbed_official 330:c80ac197fa6a 318
mbed_official 330:c80ac197fa6a 319 /**
mbed_official 330:c80ac197fa6a 320 * @}
mbed_official 330:c80ac197fa6a 321 */
mbed_official 330:c80ac197fa6a 322
mbed_official 330:c80ac197fa6a 323 /** @defgroup ADC_Exported_Functions_Group2 Input and Output operation functions
mbed_official 330:c80ac197fa6a 324 * @brief IO operation functions
mbed_official 330:c80ac197fa6a 325 *
mbed_official 330:c80ac197fa6a 326 @verbatim
mbed_official 330:c80ac197fa6a 327 ===============================================================================
mbed_official 330:c80ac197fa6a 328 ##### IO operation functions #####
mbed_official 330:c80ac197fa6a 329 ===============================================================================
mbed_official 330:c80ac197fa6a 330 [..] This section provides functions allowing to:
mbed_official 330:c80ac197fa6a 331 (+) Start conversion of regular group.
mbed_official 330:c80ac197fa6a 332 (+) Stop conversion of regular group.
mbed_official 330:c80ac197fa6a 333 (+) Poll for conversion complete on regular group.
mbed_official 330:c80ac197fa6a 334 (+) Poll for conversion event.
mbed_official 330:c80ac197fa6a 335 (+) Get result of regular channel conversion.
mbed_official 330:c80ac197fa6a 336 (+) Start conversion of regular group and enable interruptions.
mbed_official 330:c80ac197fa6a 337 (+) Stop conversion of regular group and disable interruptions.
mbed_official 330:c80ac197fa6a 338 (+) Handle ADC interrupt request
mbed_official 330:c80ac197fa6a 339 (+) Start conversion of regular group and enable DMA transfer.
mbed_official 330:c80ac197fa6a 340 (+) Stop conversion of regular group and disable ADC DMA transfer.
mbed_official 330:c80ac197fa6a 341
mbed_official 330:c80ac197fa6a 342 @endverbatim
mbed_official 330:c80ac197fa6a 343 * @{
mbed_official 330:c80ac197fa6a 344 */
mbed_official 330:c80ac197fa6a 345 /**
mbed_official 330:c80ac197fa6a 346 * @brief Enables ADC, starts conversion of regular group.
mbed_official 330:c80ac197fa6a 347 * Interruptions enabled in this function: None.
mbed_official 330:c80ac197fa6a 348 * @note: Case of multimode enabled (for devices with several ADCs): This
mbed_official 330:c80ac197fa6a 349 * function must be called for ADC slave first, then ADC master.
mbed_official 330:c80ac197fa6a 350 * For ADC slave, ADC is enabled only (conversion is not started).
mbed_official 330:c80ac197fa6a 351 * For ADC master, ADC is enabled and multimode conversion is started.
mbed_official 330:c80ac197fa6a 352 * @param hadc: ADC handle
mbed_official 330:c80ac197fa6a 353 * @retval HAL status
mbed_official 330:c80ac197fa6a 354 */
mbed_official 330:c80ac197fa6a 355 __weak HAL_StatusTypeDef HAL_ADC_Start(ADC_HandleTypeDef* hadc)
mbed_official 330:c80ac197fa6a 356 {
mbed_official 330:c80ac197fa6a 357 /* Return function status */
mbed_official 330:c80ac197fa6a 358 return HAL_ERROR;
mbed_official 330:c80ac197fa6a 359 }
mbed_official 330:c80ac197fa6a 360
mbed_official 330:c80ac197fa6a 361 /**
mbed_official 330:c80ac197fa6a 362 * @brief Stop ADC conversion of regular group (and injected group in
mbed_official 330:c80ac197fa6a 363 * case of auto_injection mode), disable ADC peripheral.
mbed_official 330:c80ac197fa6a 364 * @note: ADC peripheral disable is forcing interruption of potential
mbed_official 330:c80ac197fa6a 365 * conversion on injected group. If injected group is under use, it
mbed_official 330:c80ac197fa6a 366 * should be preliminarily stopped using HAL_ADCEx_InjectedStop function.
mbed_official 330:c80ac197fa6a 367 * @note: Case of multimode enabled (for devices with several ADCs): This
mbed_official 330:c80ac197fa6a 368 * function must be called for ADC master first, then ADC slave.
mbed_official 330:c80ac197fa6a 369 * For ADC master, converson is stopped and ADC is disabled.
mbed_official 330:c80ac197fa6a 370 * For ADC slave, ADC is disabled only (conversion stop of ADC master
mbed_official 330:c80ac197fa6a 371 * has already stopped conversion of ADC slave).
mbed_official 330:c80ac197fa6a 372 * @param hadc: ADC handle
mbed_official 330:c80ac197fa6a 373 * @retval HAL status.
mbed_official 330:c80ac197fa6a 374 */
mbed_official 330:c80ac197fa6a 375 __weak HAL_StatusTypeDef HAL_ADC_Stop(ADC_HandleTypeDef* hadc)
mbed_official 330:c80ac197fa6a 376 {
mbed_official 330:c80ac197fa6a 377 /* Note : This function is defined into this file for library reference. */
mbed_official 330:c80ac197fa6a 378 /* Function content is located into file stm32f3xx_hal_adc_ex.c */
mbed_official 330:c80ac197fa6a 379
mbed_official 330:c80ac197fa6a 380 /* Return function status */
mbed_official 330:c80ac197fa6a 381 return HAL_ERROR;
mbed_official 330:c80ac197fa6a 382 }
mbed_official 330:c80ac197fa6a 383
mbed_official 330:c80ac197fa6a 384 /**
mbed_official 330:c80ac197fa6a 385 * @brief Wait for regular group conversion to be completed.
mbed_official 330:c80ac197fa6a 386 * @param hadc: ADC handle
mbed_official 330:c80ac197fa6a 387 * @param Timeout: Timeout value in millisecond.
mbed_official 330:c80ac197fa6a 388 * @retval HAL status
mbed_official 330:c80ac197fa6a 389 */
mbed_official 330:c80ac197fa6a 390 __weak HAL_StatusTypeDef HAL_ADC_PollForConversion(ADC_HandleTypeDef* hadc, uint32_t Timeout)
mbed_official 330:c80ac197fa6a 391 {
mbed_official 330:c80ac197fa6a 392 /* Note : This function is defined into this file for library reference. */
mbed_official 330:c80ac197fa6a 393 /* Function content is located into file stm32f3xx_hal_adc_ex.c */
mbed_official 330:c80ac197fa6a 394
mbed_official 330:c80ac197fa6a 395 /* Return function status */
mbed_official 330:c80ac197fa6a 396 return HAL_ERROR;
mbed_official 330:c80ac197fa6a 397 }
mbed_official 330:c80ac197fa6a 398
mbed_official 330:c80ac197fa6a 399 /**
mbed_official 330:c80ac197fa6a 400 * @brief Poll for conversion event.
mbed_official 330:c80ac197fa6a 401 * @param hadc: ADC handle
mbed_official 330:c80ac197fa6a 402 * @param EventType: the ADC event type.
mbed_official 330:c80ac197fa6a 403 * This parameter can be one of the following values:
mbed_official 330:c80ac197fa6a 404 * @arg AWD_EVENT: ADC Analog watchdog 1 event (main analog watchdog, present on all STM32 devices)
mbed_official 330:c80ac197fa6a 405 * @arg AWD2_EVENT: ADC Analog watchdog 2 event (additional analog watchdog, present only on STM32F3 devices)
mbed_official 330:c80ac197fa6a 406 * @arg AWD3_EVENT: ADC Analog watchdog 3 event (additional analog watchdog, present only on STM32F3 devices)
mbed_official 330:c80ac197fa6a 407 * @arg OVR_EVENT: ADC Overrun event
mbed_official 330:c80ac197fa6a 408 * @arg JQOVF_EVENT: ADC Injected context queue overflow event
mbed_official 330:c80ac197fa6a 409 * @param Timeout: Timeout value in millisecond.
mbed_official 330:c80ac197fa6a 410 * @retval HAL status
mbed_official 330:c80ac197fa6a 411 */
mbed_official 330:c80ac197fa6a 412 __weak HAL_StatusTypeDef HAL_ADC_PollForEvent(ADC_HandleTypeDef* hadc, uint32_t EventType, uint32_t Timeout)
mbed_official 330:c80ac197fa6a 413 {
mbed_official 330:c80ac197fa6a 414 /* Note : This function is defined into this file for library reference. */
mbed_official 330:c80ac197fa6a 415 /* Function content is located into file stm32f3xx_hal_adc_ex.c */
mbed_official 330:c80ac197fa6a 416
mbed_official 330:c80ac197fa6a 417 /* Return function status */
mbed_official 330:c80ac197fa6a 418 return HAL_ERROR;
mbed_official 330:c80ac197fa6a 419 }
mbed_official 330:c80ac197fa6a 420
mbed_official 330:c80ac197fa6a 421 /**
mbed_official 330:c80ac197fa6a 422 * @brief Enables ADC, starts conversion of regular group with interruption.
mbed_official 330:c80ac197fa6a 423 * Interruptions enabled in this function: EOC (end of conversion),
mbed_official 330:c80ac197fa6a 424 * overrun (if available).
mbed_official 330:c80ac197fa6a 425 * Each of these interruptions has its dedicated callback function.
mbed_official 330:c80ac197fa6a 426 * @note: Case of multimode enabled (for devices with several ADCs): This
mbed_official 330:c80ac197fa6a 427 * function must be called for ADC slave first, then ADC master.
mbed_official 330:c80ac197fa6a 428 * For ADC slave, ADC is enabled only (conversion is not started).
mbed_official 330:c80ac197fa6a 429 * For ADC master, ADC is enabled and multimode conversion is started.
mbed_official 330:c80ac197fa6a 430 * @param hadc: ADC handle
mbed_official 330:c80ac197fa6a 431 * @retval HAL status
mbed_official 330:c80ac197fa6a 432 */
mbed_official 330:c80ac197fa6a 433 __weak HAL_StatusTypeDef HAL_ADC_Start_IT(ADC_HandleTypeDef* hadc)
mbed_official 330:c80ac197fa6a 434 {
mbed_official 330:c80ac197fa6a 435 /* Note : This function is defined into this file for library reference. */
mbed_official 330:c80ac197fa6a 436 /* Function content is located into file stm32f3xx_hal_adc_ex.c */
mbed_official 330:c80ac197fa6a 437
mbed_official 330:c80ac197fa6a 438 /* Return function status */
mbed_official 330:c80ac197fa6a 439 return HAL_ERROR;
mbed_official 330:c80ac197fa6a 440 }
mbed_official 330:c80ac197fa6a 441
mbed_official 330:c80ac197fa6a 442 /**
mbed_official 330:c80ac197fa6a 443 * @brief Stop ADC conversion of regular group (and injected group in
mbed_official 330:c80ac197fa6a 444 * case of auto_injection mode), disable interruption of
mbed_official 330:c80ac197fa6a 445 * end-of-conversion, disable ADC peripheral.
mbed_official 330:c80ac197fa6a 446 * @note: ADC peripheral disable is forcing interruption of potential
mbed_official 330:c80ac197fa6a 447 * conversion on injected group. If injected group is under use, it
mbed_official 330:c80ac197fa6a 448 * should be preliminarily stopped using HAL_ADCEx_InjectedStop function.
mbed_official 330:c80ac197fa6a 449 * @note: Case of multimode enabled (for devices with several ADCs): This
mbed_official 330:c80ac197fa6a 450 * function must be called for ADC master first, then ADC slave.
mbed_official 330:c80ac197fa6a 451 * For ADC master, conversion is stopped and ADC is disabled.
mbed_official 330:c80ac197fa6a 452 * For ADC slave, ADC is disabled only (conversion stop of ADC master
mbed_official 330:c80ac197fa6a 453 * has already stopped conversion of ADC slave).
mbed_official 330:c80ac197fa6a 454 * @param hadc: ADC handle
mbed_official 330:c80ac197fa6a 455 * @retval HAL status.
mbed_official 330:c80ac197fa6a 456 */
mbed_official 330:c80ac197fa6a 457 __weak HAL_StatusTypeDef HAL_ADC_Stop_IT(ADC_HandleTypeDef* hadc)
mbed_official 330:c80ac197fa6a 458 {
mbed_official 330:c80ac197fa6a 459 /* Note : This function is defined into this file for library reference. */
mbed_official 330:c80ac197fa6a 460 /* Function content is located into file stm32f3xx_hal_adc_ex.c */
mbed_official 330:c80ac197fa6a 461
mbed_official 330:c80ac197fa6a 462 /* Return function status */
mbed_official 330:c80ac197fa6a 463 return HAL_ERROR;
mbed_official 330:c80ac197fa6a 464 }
mbed_official 330:c80ac197fa6a 465
mbed_official 330:c80ac197fa6a 466 /**
mbed_official 330:c80ac197fa6a 467 * @brief Enables ADC, starts conversion of regular group and transfers result
mbed_official 330:c80ac197fa6a 468 * through DMA.
mbed_official 330:c80ac197fa6a 469 * Interruptions enabled in this function:
mbed_official 330:c80ac197fa6a 470 * overrun (if available), DMA half transfer, DMA transfer complete.
mbed_official 330:c80ac197fa6a 471 * Each of these interruptions has its dedicated callback function.
mbed_official 330:c80ac197fa6a 472 * @note: Case of multimode enabled (for devices with several ADCs): This
mbed_official 330:c80ac197fa6a 473 * function is for single-ADC mode only. For multimode, use the
mbed_official 330:c80ac197fa6a 474 * dedicated MultimodeStart function.
mbed_official 330:c80ac197fa6a 475 * @param hadc: ADC handle
mbed_official 330:c80ac197fa6a 476 * @param pData: The destination Buffer address.
mbed_official 330:c80ac197fa6a 477 * @param Length: The length of data to be transferred from ADC peripheral to memory.
mbed_official 330:c80ac197fa6a 478 * @retval None
mbed_official 330:c80ac197fa6a 479 */
mbed_official 330:c80ac197fa6a 480 __weak HAL_StatusTypeDef HAL_ADC_Start_DMA(ADC_HandleTypeDef* hadc, uint32_t* pData, uint32_t Length)
mbed_official 330:c80ac197fa6a 481 {
mbed_official 330:c80ac197fa6a 482 /* Note : This function is defined into this file for library reference. */
mbed_official 330:c80ac197fa6a 483 /* Function content is located into file stm32f3xx_hal_adc_ex.c */
mbed_official 330:c80ac197fa6a 484
mbed_official 330:c80ac197fa6a 485 /* Return function status */
mbed_official 330:c80ac197fa6a 486 return HAL_ERROR;
mbed_official 330:c80ac197fa6a 487 }
mbed_official 330:c80ac197fa6a 488
mbed_official 330:c80ac197fa6a 489 /**
mbed_official 330:c80ac197fa6a 490 * @brief Stop ADC conversion of regular group (and injected group in
mbed_official 330:c80ac197fa6a 491 * case of auto_injection mode), disable ADC DMA transfer, disable
mbed_official 330:c80ac197fa6a 492 * ADC peripheral.
mbed_official 330:c80ac197fa6a 493 * @note: ADC peripheral disable is forcing interruption of potential
mbed_official 330:c80ac197fa6a 494 * conversion on injected group. If injected group is under use, it
mbed_official 330:c80ac197fa6a 495 * should be preliminarily stopped using HAL_ADCEx_InjectedStop function.
mbed_official 330:c80ac197fa6a 496 * @note: Case of multimode enabled (for devices with several ADCs): This
mbed_official 330:c80ac197fa6a 497 * function is for single-ADC mode only. For multimode, use the
mbed_official 330:c80ac197fa6a 498 * dedicated MultimodeStop function.
mbed_official 330:c80ac197fa6a 499 * @param hadc: ADC handle
mbed_official 330:c80ac197fa6a 500 * @retval HAL status.
mbed_official 330:c80ac197fa6a 501 */
mbed_official 330:c80ac197fa6a 502 __weak HAL_StatusTypeDef HAL_ADC_Stop_DMA(ADC_HandleTypeDef* hadc)
mbed_official 330:c80ac197fa6a 503 {
mbed_official 330:c80ac197fa6a 504 /* Note : This function is defined into this file for library reference. */
mbed_official 330:c80ac197fa6a 505 /* Function content is located into file stm32f3xx_hal_adc_ex.c */
mbed_official 330:c80ac197fa6a 506
mbed_official 330:c80ac197fa6a 507 /* Return function status */
mbed_official 330:c80ac197fa6a 508 return HAL_ERROR;
mbed_official 330:c80ac197fa6a 509 }
mbed_official 330:c80ac197fa6a 510
mbed_official 330:c80ac197fa6a 511 /**
mbed_official 330:c80ac197fa6a 512 * @brief Get ADC regular group conversion result.
mbed_official 330:c80ac197fa6a 513 * @param hadc: ADC handle
mbed_official 330:c80ac197fa6a 514 * @retval Converted value
mbed_official 330:c80ac197fa6a 515 */
mbed_official 330:c80ac197fa6a 516 __weak uint32_t HAL_ADC_GetValue(ADC_HandleTypeDef* hadc)
mbed_official 330:c80ac197fa6a 517 {
mbed_official 330:c80ac197fa6a 518 /* Note : This function is defined into this file for library reference. */
mbed_official 330:c80ac197fa6a 519 /* Function content is located into file stm32f3xx_hal_adc_ex.c */
mbed_official 330:c80ac197fa6a 520
mbed_official 330:c80ac197fa6a 521 /* Return ADC converted value */
mbed_official 330:c80ac197fa6a 522 return hadc->Instance->DR;
mbed_official 330:c80ac197fa6a 523 }
mbed_official 330:c80ac197fa6a 524
mbed_official 330:c80ac197fa6a 525 /**
mbed_official 330:c80ac197fa6a 526 * @brief Handles ADC interrupt request.
mbed_official 330:c80ac197fa6a 527 * @param hadc: ADC handle
mbed_official 330:c80ac197fa6a 528 * @retval None
mbed_official 330:c80ac197fa6a 529 */
mbed_official 330:c80ac197fa6a 530 __weak void HAL_ADC_IRQHandler(ADC_HandleTypeDef* hadc)
mbed_official 330:c80ac197fa6a 531 {
mbed_official 330:c80ac197fa6a 532 /* Note : This function is defined into this file for library reference. */
mbed_official 330:c80ac197fa6a 533 /* Function content is located into file stm32f3xx_hal_adc_ex.c */
mbed_official 330:c80ac197fa6a 534 }
mbed_official 330:c80ac197fa6a 535
mbed_official 330:c80ac197fa6a 536 /**
mbed_official 330:c80ac197fa6a 537 * @brief Conversion complete callback in non blocking mode
mbed_official 330:c80ac197fa6a 538 * @param hadc: ADC handle
mbed_official 330:c80ac197fa6a 539 * @retval None
mbed_official 330:c80ac197fa6a 540 */
mbed_official 330:c80ac197fa6a 541 __weak void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
mbed_official 330:c80ac197fa6a 542 {
mbed_official 330:c80ac197fa6a 543 /* NOTE : This function should not be modified. When the callback is needed,
mbed_official 330:c80ac197fa6a 544 function HAL_ADC_ConvCpltCallback must be implemented in the user file.
mbed_official 330:c80ac197fa6a 545 */
mbed_official 330:c80ac197fa6a 546 }
mbed_official 330:c80ac197fa6a 547
mbed_official 330:c80ac197fa6a 548 /**
mbed_official 330:c80ac197fa6a 549 * @brief Conversion DMA half-transfer callback in non blocking mode
mbed_official 330:c80ac197fa6a 550 * @param hadc: ADC handle
mbed_official 330:c80ac197fa6a 551 * @retval None
mbed_official 330:c80ac197fa6a 552 */
mbed_official 330:c80ac197fa6a 553 __weak void HAL_ADC_ConvHalfCpltCallback(ADC_HandleTypeDef* hadc)
mbed_official 330:c80ac197fa6a 554 {
mbed_official 330:c80ac197fa6a 555 /* NOTE : This function should not be modified. When the callback is needed,
mbed_official 330:c80ac197fa6a 556 function HAL_ADC_ConvHalfCpltCallback must be implemented in the user file.
mbed_official 330:c80ac197fa6a 557 */
mbed_official 330:c80ac197fa6a 558 }
mbed_official 330:c80ac197fa6a 559
mbed_official 330:c80ac197fa6a 560 /**
mbed_official 330:c80ac197fa6a 561 * @brief Analog watchdog callback in non blocking mode.
mbed_official 330:c80ac197fa6a 562 * @note: In case of several analog watchdog enabled, if needed to know
mbed_official 330:c80ac197fa6a 563 which one triggered and on which ADCx, check Analog Watchdog flag
mbed_official 330:c80ac197fa6a 564 ADC_FLAG_AWD1/2/3 into HAL_ADC_LevelOutOfWindowCallback() function.
mbed_official 330:c80ac197fa6a 565 For example:"if (__HAL_ADC_GET_FLAG(hadc1, ADC_FLAG_AWD1) != RESET)"
mbed_official 330:c80ac197fa6a 566 * @param hadc: ADC handle
mbed_official 330:c80ac197fa6a 567 * @retval None
mbed_official 330:c80ac197fa6a 568 */
mbed_official 330:c80ac197fa6a 569 __weak void HAL_ADC_LevelOutOfWindowCallback(ADC_HandleTypeDef* hadc)
mbed_official 330:c80ac197fa6a 570 {
mbed_official 330:c80ac197fa6a 571 /* NOTE : This function should not be modified. When the callback is needed,
mbed_official 330:c80ac197fa6a 572 function HAL_ADC_LevelOoutOfWindowCallback must be implemented in the user file.
mbed_official 330:c80ac197fa6a 573 */
mbed_official 330:c80ac197fa6a 574 }
mbed_official 330:c80ac197fa6a 575
mbed_official 330:c80ac197fa6a 576 /**
mbed_official 330:c80ac197fa6a 577 * @brief ADC error callback in non blocking mode
mbed_official 330:c80ac197fa6a 578 * (ADC conversion with interruption or transfer by DMA)
mbed_official 330:c80ac197fa6a 579 * @param hadc: ADC handle
mbed_official 330:c80ac197fa6a 580 * @retval None
mbed_official 330:c80ac197fa6a 581 */
mbed_official 330:c80ac197fa6a 582 __weak void HAL_ADC_ErrorCallback(ADC_HandleTypeDef *hadc)
mbed_official 330:c80ac197fa6a 583 {
mbed_official 330:c80ac197fa6a 584 /* NOTE : This function should not be modified. When the callback is needed,
mbed_official 330:c80ac197fa6a 585 function HAL_ADC_ErrorCallback must be implemented in the user file.
mbed_official 330:c80ac197fa6a 586 */
mbed_official 330:c80ac197fa6a 587 }
mbed_official 330:c80ac197fa6a 588
mbed_official 330:c80ac197fa6a 589 /**
mbed_official 330:c80ac197fa6a 590 * @}
mbed_official 330:c80ac197fa6a 591 */
mbed_official 330:c80ac197fa6a 592
mbed_official 330:c80ac197fa6a 593 /** @defgroup ADC_Exported_Functions_Group3 Peripheral Control functions
mbed_official 330:c80ac197fa6a 594 * @brief Peripheral Control functions
mbed_official 330:c80ac197fa6a 595 *
mbed_official 330:c80ac197fa6a 596 @verbatim
mbed_official 330:c80ac197fa6a 597 ===============================================================================
mbed_official 330:c80ac197fa6a 598 ##### Peripheral Control functions #####
mbed_official 330:c80ac197fa6a 599 ===============================================================================
mbed_official 330:c80ac197fa6a 600 [..] This section provides functions allowing to:
mbed_official 330:c80ac197fa6a 601 (+) Configure channels on regular group
mbed_official 330:c80ac197fa6a 602 (+) Configure the analog watchdog
mbed_official 330:c80ac197fa6a 603
mbed_official 330:c80ac197fa6a 604 @endverbatim
mbed_official 330:c80ac197fa6a 605 * @{
mbed_official 330:c80ac197fa6a 606 */
mbed_official 330:c80ac197fa6a 607
mbed_official 330:c80ac197fa6a 608 /**
mbed_official 330:c80ac197fa6a 609 * @brief Configures the the selected channel to be linked to the regular
mbed_official 330:c80ac197fa6a 610 * group.
mbed_official 330:c80ac197fa6a 611 * @note In case of usage of internal measurement channels:
mbed_official 330:c80ac197fa6a 612 * Vbat/VrefInt/TempSensor.
mbed_official 330:c80ac197fa6a 613 * The recommended sampling time is at least:
mbed_official 330:c80ac197fa6a 614 * - For devices STM32F37x: 17.1us for temperature sensor
mbed_official 330:c80ac197fa6a 615 * - For the other STM32F3 devices: 2.2us for each of channels
mbed_official 330:c80ac197fa6a 616 * Vbat/VrefInt/TempSensor.
mbed_official 330:c80ac197fa6a 617 * These internal paths can be be disabled using function
mbed_official 330:c80ac197fa6a 618 * HAL_ADC_DeInit().
mbed_official 330:c80ac197fa6a 619 * @note Possibility to update parameters on the fly:
mbed_official 330:c80ac197fa6a 620 * This function initializes channel into regular group, following
mbed_official 330:c80ac197fa6a 621 * calls to this function can be used to reconfigure some parameters
mbed_official 330:c80ac197fa6a 622 * of structure "ADC_ChannelConfTypeDef" on the fly, without reseting
mbed_official 330:c80ac197fa6a 623 * the ADC.
mbed_official 330:c80ac197fa6a 624 * The setting of these parameters is conditioned to ADC state.
mbed_official 330:c80ac197fa6a 625 * For parameters constraints, see comments of structure
mbed_official 330:c80ac197fa6a 626 * "ADC_ChannelConfTypeDef".
mbed_official 330:c80ac197fa6a 627 * @param hadc: ADC handle
mbed_official 330:c80ac197fa6a 628 * @param sConfig: Structure of ADC channel for regular group.
mbed_official 330:c80ac197fa6a 629 * @retval HAL status
mbed_official 330:c80ac197fa6a 630 */
mbed_official 330:c80ac197fa6a 631 __weak HAL_StatusTypeDef HAL_ADC_ConfigChannel(ADC_HandleTypeDef* hadc, ADC_ChannelConfTypeDef* sConfig)
mbed_official 330:c80ac197fa6a 632 {
mbed_official 330:c80ac197fa6a 633 /* Note : This function is defined into this file for library reference. */
mbed_official 330:c80ac197fa6a 634 /* Function content is located into file stm32f3xx_hal_adc_ex.c */
mbed_official 330:c80ac197fa6a 635
mbed_official 330:c80ac197fa6a 636 /* Return function status */
mbed_official 330:c80ac197fa6a 637 return HAL_ERROR;
mbed_official 330:c80ac197fa6a 638 }
mbed_official 330:c80ac197fa6a 639
mbed_official 330:c80ac197fa6a 640 /**
mbed_official 330:c80ac197fa6a 641 * @brief Configures the analog watchdog.
mbed_official 330:c80ac197fa6a 642 * @note Possibility to update parameters on the fly:
mbed_official 330:c80ac197fa6a 643 * This function initializes the selected analog watchdog, following
mbed_official 330:c80ac197fa6a 644 * calls to this function can be used to reconfigure some parameters
mbed_official 330:c80ac197fa6a 645 * of structure "ADC_AnalogWDGConfTypeDef" on the fly, without reseting
mbed_official 330:c80ac197fa6a 646 * the ADC.
mbed_official 330:c80ac197fa6a 647 * The setting of these parameters is conditioned to ADC state.
mbed_official 330:c80ac197fa6a 648 * For parameters constraints, see comments of structure
mbed_official 330:c80ac197fa6a 649 * "ADC_AnalogWDGConfTypeDef".
mbed_official 330:c80ac197fa6a 650 * @param hadc: ADC handle
mbed_official 330:c80ac197fa6a 651 * @param AnalogWDGConfig: Structure of ADC analog watchdog configuration
mbed_official 330:c80ac197fa6a 652 * @retval HAL status
mbed_official 330:c80ac197fa6a 653 */
mbed_official 330:c80ac197fa6a 654 __weak HAL_StatusTypeDef HAL_ADC_AnalogWDGConfig(ADC_HandleTypeDef* hadc, ADC_AnalogWDGConfTypeDef* AnalogWDGConfig)
mbed_official 330:c80ac197fa6a 655 {
mbed_official 330:c80ac197fa6a 656 /* Note : This function is defined into this file for library reference. */
mbed_official 330:c80ac197fa6a 657 /* Function content is located into file stm32f3xx_hal_adc_ex.c */
mbed_official 330:c80ac197fa6a 658
mbed_official 330:c80ac197fa6a 659 /* Return function status */
mbed_official 330:c80ac197fa6a 660 return HAL_ERROR;
mbed_official 330:c80ac197fa6a 661 }
mbed_official 330:c80ac197fa6a 662
mbed_official 330:c80ac197fa6a 663 /**
mbed_official 330:c80ac197fa6a 664 * @}
mbed_official 330:c80ac197fa6a 665 */
mbed_official 330:c80ac197fa6a 666
mbed_official 330:c80ac197fa6a 667 /** @defgroup ADC_Exported_Functions_Group4 Peripheral State functions
mbed_official 330:c80ac197fa6a 668 * @brief ADC Peripheral State functions
mbed_official 330:c80ac197fa6a 669 *
mbed_official 330:c80ac197fa6a 670 @verbatim
mbed_official 330:c80ac197fa6a 671 ===============================================================================
mbed_official 330:c80ac197fa6a 672 ##### Peripheral state and errors functions #####
mbed_official 330:c80ac197fa6a 673 ===============================================================================
mbed_official 330:c80ac197fa6a 674 [..]
mbed_official 330:c80ac197fa6a 675 This subsection provides functions to get in run-time the status of the
mbed_official 330:c80ac197fa6a 676 peripheral.
mbed_official 330:c80ac197fa6a 677 (+) Check the ADC state
mbed_official 330:c80ac197fa6a 678 (+) Check the ADC error code
mbed_official 330:c80ac197fa6a 679
mbed_official 330:c80ac197fa6a 680 @endverbatim
mbed_official 330:c80ac197fa6a 681 * @{
mbed_official 330:c80ac197fa6a 682 */
mbed_official 330:c80ac197fa6a 683
mbed_official 330:c80ac197fa6a 684 /**
mbed_official 330:c80ac197fa6a 685 * @brief return the ADC state
mbed_official 330:c80ac197fa6a 686 * @param hadc: ADC handle
mbed_official 330:c80ac197fa6a 687 * @retval HAL state
mbed_official 330:c80ac197fa6a 688 */
mbed_official 330:c80ac197fa6a 689 HAL_ADC_StateTypeDef HAL_ADC_GetState(ADC_HandleTypeDef* hadc)
mbed_official 330:c80ac197fa6a 690 {
mbed_official 330:c80ac197fa6a 691 /* Check the parameters */
mbed_official 330:c80ac197fa6a 692 assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance));
mbed_official 330:c80ac197fa6a 693
mbed_official 330:c80ac197fa6a 694 /* Return ADC state */
mbed_official 330:c80ac197fa6a 695 return hadc->State;
mbed_official 330:c80ac197fa6a 696 }
mbed_official 330:c80ac197fa6a 697
mbed_official 330:c80ac197fa6a 698 /**
mbed_official 330:c80ac197fa6a 699 * @brief Return the ADC error code
mbed_official 330:c80ac197fa6a 700 * @param hadc: ADC handle
mbed_official 330:c80ac197fa6a 701 * @retval ADC Error Code
mbed_official 330:c80ac197fa6a 702 */
mbed_official 330:c80ac197fa6a 703 uint32_t HAL_ADC_GetError(ADC_HandleTypeDef *hadc)
mbed_official 330:c80ac197fa6a 704 {
mbed_official 330:c80ac197fa6a 705 return hadc->ErrorCode;
mbed_official 330:c80ac197fa6a 706 }
mbed_official 330:c80ac197fa6a 707
mbed_official 330:c80ac197fa6a 708 /**
mbed_official 330:c80ac197fa6a 709 * @}
mbed_official 330:c80ac197fa6a 710 */
mbed_official 330:c80ac197fa6a 711
mbed_official 330:c80ac197fa6a 712 /**
mbed_official 330:c80ac197fa6a 713 * @}
mbed_official 330:c80ac197fa6a 714 */
mbed_official 330:c80ac197fa6a 715
mbed_official 330:c80ac197fa6a 716 #endif /* HAL_ADC_MODULE_ENABLED */
mbed_official 330:c80ac197fa6a 717 /**
mbed_official 330:c80ac197fa6a 718 * @}
mbed_official 330:c80ac197fa6a 719 */
mbed_official 330:c80ac197fa6a 720
mbed_official 330:c80ac197fa6a 721 /**
mbed_official 330:c80ac197fa6a 722 * @}
mbed_official 330:c80ac197fa6a 723 */
mbed_official 330:c80ac197fa6a 724
mbed_official 330:c80ac197fa6a 725 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/