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:
Mon Sep 28 20:15:09 2015 +0100
Revision:
634:ac7d6880524d
Parent:
632:7687fb9c4f91
Synchronized with git revision 9b7d23d47153c298a6d24de9a415202705889d11

Full URL: https://github.com/mbedmicro/mbed/commit/9b7d23d47153c298a6d24de9a415202705889d11/

Revert "[NUCLEO_F303K8] add support of the STM32F303K8"

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 634:ac7d6880524d 5 * @version V1.1.0
mbed_official 634:ac7d6880524d 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 634:ac7d6880524d 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****/