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

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

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

Committer:
AnnaBridge
Date:
Wed Jun 21 17:31:38 2017 +0100
Revision:
145:64910690c574
Child:
161:aa5281ff4a02
Release 145 of the mbed library.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 145:64910690c574 1 /**
AnnaBridge 145:64910690c574 2 ******************************************************************************
AnnaBridge 145:64910690c574 3 * @file stm32l4xx_hal_opamp.h
AnnaBridge 145:64910690c574 4 * @author MCD Application Team
AnnaBridge 145:64910690c574 5 * @version V1.7.1
AnnaBridge 145:64910690c574 6 * @date 21-April-2017
AnnaBridge 145:64910690c574 7 * @brief Header file of OPAMP HAL module.
AnnaBridge 145:64910690c574 8 ******************************************************************************
AnnaBridge 145:64910690c574 9 * @attention
AnnaBridge 145:64910690c574 10 *
AnnaBridge 145:64910690c574 11 * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
AnnaBridge 145:64910690c574 12 *
AnnaBridge 145:64910690c574 13 * Redistribution and use in source and binary forms, with or without modification,
AnnaBridge 145:64910690c574 14 * are permitted provided that the following conditions are met:
AnnaBridge 145:64910690c574 15 * 1. Redistributions of source code must retain the above copyright notice,
AnnaBridge 145:64910690c574 16 * this list of conditions and the following disclaimer.
AnnaBridge 145:64910690c574 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
AnnaBridge 145:64910690c574 18 * this list of conditions and the following disclaimer in the documentation
AnnaBridge 145:64910690c574 19 * and/or other materials provided with the distribution.
AnnaBridge 145:64910690c574 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
AnnaBridge 145:64910690c574 21 * may be used to endorse or promote products derived from this software
AnnaBridge 145:64910690c574 22 * without specific prior written permission.
AnnaBridge 145:64910690c574 23 *
AnnaBridge 145:64910690c574 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AnnaBridge 145:64910690c574 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
AnnaBridge 145:64910690c574 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
AnnaBridge 145:64910690c574 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
AnnaBridge 145:64910690c574 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
AnnaBridge 145:64910690c574 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
AnnaBridge 145:64910690c574 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
AnnaBridge 145:64910690c574 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
AnnaBridge 145:64910690c574 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
AnnaBridge 145:64910690c574 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
AnnaBridge 145:64910690c574 34 *
AnnaBridge 145:64910690c574 35 ******************************************************************************
AnnaBridge 145:64910690c574 36 */
AnnaBridge 145:64910690c574 37
AnnaBridge 145:64910690c574 38 /* Define to prevent recursive inclusion -------------------------------------*/
AnnaBridge 145:64910690c574 39 #ifndef __STM32L4xx_HAL_OPAMP_H
AnnaBridge 145:64910690c574 40 #define __STM32L4xx_HAL_OPAMP_H
AnnaBridge 145:64910690c574 41
AnnaBridge 145:64910690c574 42 #ifdef __cplusplus
AnnaBridge 145:64910690c574 43 extern "C" {
AnnaBridge 145:64910690c574 44 #endif
AnnaBridge 145:64910690c574 45
AnnaBridge 145:64910690c574 46 /* Includes ------------------------------------------------------------------*/
AnnaBridge 145:64910690c574 47 #include "stm32l4xx_hal_def.h"
AnnaBridge 145:64910690c574 48
AnnaBridge 145:64910690c574 49 /** @addtogroup STM32L4xx_HAL_Driver
AnnaBridge 145:64910690c574 50 * @{
AnnaBridge 145:64910690c574 51 */
AnnaBridge 145:64910690c574 52
AnnaBridge 145:64910690c574 53 /** @addtogroup OPAMP
AnnaBridge 145:64910690c574 54 * @{
AnnaBridge 145:64910690c574 55 */
AnnaBridge 145:64910690c574 56
AnnaBridge 145:64910690c574 57 /* Exported types ------------------------------------------------------------*/
AnnaBridge 145:64910690c574 58
AnnaBridge 145:64910690c574 59 /** @defgroup OPAMP_Exported_Types OPAMP Exported Types
AnnaBridge 145:64910690c574 60 * @{
AnnaBridge 145:64910690c574 61 */
AnnaBridge 145:64910690c574 62
AnnaBridge 145:64910690c574 63 /**
AnnaBridge 145:64910690c574 64 * @brief OPAMP Init structure definition
AnnaBridge 145:64910690c574 65 */
AnnaBridge 145:64910690c574 66
AnnaBridge 145:64910690c574 67 typedef struct
AnnaBridge 145:64910690c574 68 {
AnnaBridge 145:64910690c574 69 uint32_t PowerSupplyRange; /*!< Specifies the power supply range: above or under 2.4V.
AnnaBridge 145:64910690c574 70 This parameter must be a value of @ref OPAMP_PowerSupplyRange
AnnaBridge 145:64910690c574 71 Caution: This parameter is common to all OPAMP instances: a modification of this parameter for the selected OPAMP impacts the other OPAMP instances. */
AnnaBridge 145:64910690c574 72
AnnaBridge 145:64910690c574 73 uint32_t PowerMode; /*!< Specifies the power mode Normal or Low-Power.
AnnaBridge 145:64910690c574 74 This parameter must be a value of @ref OPAMP_PowerMode */
AnnaBridge 145:64910690c574 75
AnnaBridge 145:64910690c574 76 uint32_t Mode; /*!< Specifies the OPAMP mode
AnnaBridge 145:64910690c574 77 This parameter must be a value of @ref OPAMP_Mode
AnnaBridge 145:64910690c574 78 mode is either Standalone, - Follower or PGA */
AnnaBridge 145:64910690c574 79
AnnaBridge 145:64910690c574 80 uint32_t InvertingInput; /*!< Specifies the inverting input in Standalone & PGA modes
AnnaBridge 145:64910690c574 81 - In Standalone mode: i.e. when mode is OPAMP_STANDALONE_MODE
AnnaBridge 145:64910690c574 82 & PGA mode: i.e. when mode is OPAMP_PGA_MODE
AnnaBridge 145:64910690c574 83 This parameter must be a value of @ref OPAMP_InvertingInput
AnnaBridge 145:64910690c574 84 - In Follower mode i.e. when mode is OPAMP_FOLLOWER_MODE
AnnaBridge 145:64910690c574 85 This parameter is Not Applicable */
AnnaBridge 145:64910690c574 86
AnnaBridge 145:64910690c574 87 uint32_t NonInvertingInput; /*!< Specifies the non inverting input of the opamp:
AnnaBridge 145:64910690c574 88 This parameter must be a value of @ref OPAMP_NonInvertingInput */
AnnaBridge 145:64910690c574 89
AnnaBridge 145:64910690c574 90 uint32_t PgaGain; /*!< Specifies the gain in PGA mode
AnnaBridge 145:64910690c574 91 i.e. when mode is OPAMP_PGA_MODE.
AnnaBridge 145:64910690c574 92 This parameter must be a value of @ref OPAMP_PgaGain (2, 4, 8 or 16 ) */
AnnaBridge 145:64910690c574 93
AnnaBridge 145:64910690c574 94 uint32_t UserTrimming; /*!< Specifies the trimming mode
AnnaBridge 145:64910690c574 95 This parameter must be a value of @ref OPAMP_UserTrimming
AnnaBridge 145:64910690c574 96 UserTrimming is either factory or user trimming.*/
AnnaBridge 145:64910690c574 97
AnnaBridge 145:64910690c574 98 uint32_t TrimmingValueP; /*!< Specifies the offset trimming value (PMOS)
AnnaBridge 145:64910690c574 99 i.e. when UserTrimming is OPAMP_TRIMMING_USER.
AnnaBridge 145:64910690c574 100 This parameter must be a number between Min_Data = 0 and Max_Data = 31
AnnaBridge 145:64910690c574 101 16 is typical default value */
AnnaBridge 145:64910690c574 102
AnnaBridge 145:64910690c574 103 uint32_t TrimmingValueN; /*!< Specifies the offset trimming value (NMOS)
AnnaBridge 145:64910690c574 104 i.e. when UserTrimming is OPAMP_TRIMMING_USER.
AnnaBridge 145:64910690c574 105 This parameter must be a number between Min_Data = 0 and Max_Data = 31
AnnaBridge 145:64910690c574 106 16 is typical default value */
AnnaBridge 145:64910690c574 107
AnnaBridge 145:64910690c574 108 uint32_t TrimmingValuePLowPower; /*!< Specifies the offset trimming value (PMOS)
AnnaBridge 145:64910690c574 109 i.e. when UserTrimming is OPAMP_TRIMMING_USER.
AnnaBridge 145:64910690c574 110 This parameter must be a number between Min_Data = 0 and Max_Data = 31
AnnaBridge 145:64910690c574 111 16 is typical default value */
AnnaBridge 145:64910690c574 112
AnnaBridge 145:64910690c574 113 uint32_t TrimmingValueNLowPower; /*!< Specifies the offset trimming value (NMOS)
AnnaBridge 145:64910690c574 114 i.e. when UserTrimming is OPAMP_TRIMMING_USER.
AnnaBridge 145:64910690c574 115 This parameter must be a number between Min_Data = 0 and Max_Data = 31
AnnaBridge 145:64910690c574 116 16 is typical default value */
AnnaBridge 145:64910690c574 117
AnnaBridge 145:64910690c574 118 }OPAMP_InitTypeDef;
AnnaBridge 145:64910690c574 119
AnnaBridge 145:64910690c574 120 /**
AnnaBridge 145:64910690c574 121 * @brief HAL State structures definition
AnnaBridge 145:64910690c574 122 */
AnnaBridge 145:64910690c574 123
AnnaBridge 145:64910690c574 124 typedef enum
AnnaBridge 145:64910690c574 125 {
AnnaBridge 145:64910690c574 126 HAL_OPAMP_STATE_RESET = 0x00000000, /*!< OPAMP is not yet Initialized */
AnnaBridge 145:64910690c574 127
AnnaBridge 145:64910690c574 128 HAL_OPAMP_STATE_READY = 0x00000001, /*!< OPAMP is initialized and ready for use */
AnnaBridge 145:64910690c574 129 HAL_OPAMP_STATE_CALIBBUSY = 0x00000002, /*!< OPAMP is enabled in auto calibration mode */
AnnaBridge 145:64910690c574 130
AnnaBridge 145:64910690c574 131 HAL_OPAMP_STATE_BUSY = 0x00000004, /*!< OPAMP is enabled and running in normal mode */
AnnaBridge 145:64910690c574 132 HAL_OPAMP_STATE_BUSYLOCKED = 0x00000005 /*!< OPAMP is locked
AnnaBridge 145:64910690c574 133 only system reset allows reconfiguring the opamp. */
AnnaBridge 145:64910690c574 134
AnnaBridge 145:64910690c574 135 }HAL_OPAMP_StateTypeDef;
AnnaBridge 145:64910690c574 136
AnnaBridge 145:64910690c574 137 /**
AnnaBridge 145:64910690c574 138 * @brief OPAMP Handle Structure definition
AnnaBridge 145:64910690c574 139 */
AnnaBridge 145:64910690c574 140 typedef struct
AnnaBridge 145:64910690c574 141 {
AnnaBridge 145:64910690c574 142 OPAMP_TypeDef *Instance; /*!< OPAMP instance's registers base address */
AnnaBridge 145:64910690c574 143 OPAMP_InitTypeDef Init; /*!< OPAMP required parameters */
AnnaBridge 145:64910690c574 144 HAL_StatusTypeDef Status; /*!< OPAMP peripheral status */
AnnaBridge 145:64910690c574 145 HAL_LockTypeDef Lock; /*!< Locking object */
AnnaBridge 145:64910690c574 146 __IO HAL_OPAMP_StateTypeDef State; /*!< OPAMP communication state */
AnnaBridge 145:64910690c574 147
AnnaBridge 145:64910690c574 148 } OPAMP_HandleTypeDef;
AnnaBridge 145:64910690c574 149
AnnaBridge 145:64910690c574 150 /**
AnnaBridge 145:64910690c574 151 * @brief HAl_OPAMP_TrimmingValueTypeDef definition
AnnaBridge 145:64910690c574 152 */
AnnaBridge 145:64910690c574 153
AnnaBridge 145:64910690c574 154 typedef uint32_t HAL_OPAMP_TrimmingValueTypeDef;
AnnaBridge 145:64910690c574 155
AnnaBridge 145:64910690c574 156 /**
AnnaBridge 145:64910690c574 157 * @}
AnnaBridge 145:64910690c574 158 */
AnnaBridge 145:64910690c574 159
AnnaBridge 145:64910690c574 160 /* Exported constants --------------------------------------------------------*/
AnnaBridge 145:64910690c574 161
AnnaBridge 145:64910690c574 162 /** @defgroup OPAMP_Exported_Constants OPAMP Exported Constants
AnnaBridge 145:64910690c574 163 * @{
AnnaBridge 145:64910690c574 164 */
AnnaBridge 145:64910690c574 165
AnnaBridge 145:64910690c574 166 /** @defgroup OPAMP_Mode OPAMP Mode
AnnaBridge 145:64910690c574 167 * @{
AnnaBridge 145:64910690c574 168 */
AnnaBridge 145:64910690c574 169 #define OPAMP_STANDALONE_MODE ((uint32_t)0x00000000) /*!< standalone mode */
AnnaBridge 145:64910690c574 170 #define OPAMP_PGA_MODE OPAMP_CSR_OPAMODE_1 /*!< PGA mode */
AnnaBridge 145:64910690c574 171 #define OPAMP_FOLLOWER_MODE OPAMP_CSR_OPAMODE /*!< follower mode */
AnnaBridge 145:64910690c574 172
AnnaBridge 145:64910690c574 173 /**
AnnaBridge 145:64910690c574 174 * @}
AnnaBridge 145:64910690c574 175 */
AnnaBridge 145:64910690c574 176
AnnaBridge 145:64910690c574 177 /** @defgroup OPAMP_NonInvertingInput OPAMP Non Inverting Input
AnnaBridge 145:64910690c574 178 * @{
AnnaBridge 145:64910690c574 179 */
AnnaBridge 145:64910690c574 180
AnnaBridge 145:64910690c574 181 #define OPAMP_NONINVERTINGINPUT_IO0 ((uint32_t)0x00000000) /*!< OPAMP non-inverting input connected to dedicated IO pin */
AnnaBridge 145:64910690c574 182 #define OPAMP_NONINVERTINGINPUT_DAC_CH OPAMP_CSR_VPSEL /*!< OPAMP non-inverting input connected internally to DAC channel */
AnnaBridge 145:64910690c574 183
AnnaBridge 145:64910690c574 184 /**
AnnaBridge 145:64910690c574 185 * @}
AnnaBridge 145:64910690c574 186 */
AnnaBridge 145:64910690c574 187
AnnaBridge 145:64910690c574 188 /** @defgroup OPAMP_InvertingInput OPAMP Inverting Input
AnnaBridge 145:64910690c574 189 * @{
AnnaBridge 145:64910690c574 190 */
AnnaBridge 145:64910690c574 191
AnnaBridge 145:64910690c574 192 #define OPAMP_INVERTINGINPUT_IO0 ((uint32_t)0x00000000) /*!< OPAMP inverting input connected to dedicated IO pin low-leakage */
AnnaBridge 145:64910690c574 193 #define OPAMP_INVERTINGINPUT_IO1 OPAMP_CSR_VMSEL_0 /*!< OPAMP inverting input connected to alternative IO pin available on some device packages */
AnnaBridge 145:64910690c574 194 #define OPAMP_INVERTINGINPUT_CONNECT_NO OPAMP_CSR_VMSEL_1 /*!< OPAMP inverting input not connected externally (PGA mode only) */
AnnaBridge 145:64910690c574 195
AnnaBridge 145:64910690c574 196 /**
AnnaBridge 145:64910690c574 197 * @}
AnnaBridge 145:64910690c574 198 */
AnnaBridge 145:64910690c574 199
AnnaBridge 145:64910690c574 200 /** @defgroup OPAMP_PgaGain OPAMP Pga Gain
AnnaBridge 145:64910690c574 201 * @{
AnnaBridge 145:64910690c574 202 */
AnnaBridge 145:64910690c574 203
AnnaBridge 145:64910690c574 204 #define OPAMP_PGA_GAIN_2 ((uint32_t)0x00000000) /*!< PGA gain = 2 */
AnnaBridge 145:64910690c574 205 #define OPAMP_PGA_GAIN_4 OPAMP_CSR_PGGAIN_0 /*!< PGA gain = 4 */
AnnaBridge 145:64910690c574 206 #define OPAMP_PGA_GAIN_8 OPAMP_CSR_PGGAIN_1 /*!< PGA gain = 8 */
AnnaBridge 145:64910690c574 207 #define OPAMP_PGA_GAIN_16 (OPAMP_CSR_PGGAIN_0 | OPAMP_CSR_PGGAIN_1) /*!< PGA gain = 16 */
AnnaBridge 145:64910690c574 208
AnnaBridge 145:64910690c574 209 /**
AnnaBridge 145:64910690c574 210 * @}
AnnaBridge 145:64910690c574 211 */
AnnaBridge 145:64910690c574 212
AnnaBridge 145:64910690c574 213 /** @defgroup OPAMP_PowerMode OPAMP PowerMode
AnnaBridge 145:64910690c574 214 * @{
AnnaBridge 145:64910690c574 215 */
AnnaBridge 145:64910690c574 216 #define OPAMP_POWERMODE_NORMAL ((uint32_t)0x00000000)
AnnaBridge 145:64910690c574 217 #define OPAMP_POWERMODE_LOWPOWER OPAMP_CSR_OPALPM
AnnaBridge 145:64910690c574 218
AnnaBridge 145:64910690c574 219 /**
AnnaBridge 145:64910690c574 220 * @}
AnnaBridge 145:64910690c574 221 */
AnnaBridge 145:64910690c574 222
AnnaBridge 145:64910690c574 223 /** @defgroup OPAMP_PowerSupplyRange OPAMP PowerSupplyRange
AnnaBridge 145:64910690c574 224 * @{
AnnaBridge 145:64910690c574 225 */
AnnaBridge 145:64910690c574 226 #define OPAMP_POWERSUPPLY_LOW ((uint32_t)0x00000000) /*!< Power supply range low (VDDA lower than 2.4V) */
AnnaBridge 145:64910690c574 227 #define OPAMP_POWERSUPPLY_HIGH OPAMP1_CSR_OPARANGE /*!< Power supply range high (VDDA higher than 2.4V) */
AnnaBridge 145:64910690c574 228
AnnaBridge 145:64910690c574 229 /**
AnnaBridge 145:64910690c574 230 * @}
AnnaBridge 145:64910690c574 231 */
AnnaBridge 145:64910690c574 232
AnnaBridge 145:64910690c574 233 /** @defgroup OPAMP_UserTrimming OPAMP User Trimming
AnnaBridge 145:64910690c574 234 * @{
AnnaBridge 145:64910690c574 235 */
AnnaBridge 145:64910690c574 236 #define OPAMP_TRIMMING_FACTORY ((uint32_t)0x00000000) /*!< Factory trimming */
AnnaBridge 145:64910690c574 237 #define OPAMP_TRIMMING_USER OPAMP_CSR_USERTRIM /*!< User trimming */
AnnaBridge 145:64910690c574 238
AnnaBridge 145:64910690c574 239 /**
AnnaBridge 145:64910690c574 240 * @}
AnnaBridge 145:64910690c574 241 */
AnnaBridge 145:64910690c574 242
AnnaBridge 145:64910690c574 243 /** @defgroup OPAMP_FactoryTrimming OPAMP Factory Trimming
AnnaBridge 145:64910690c574 244 * @{
AnnaBridge 145:64910690c574 245 */
AnnaBridge 145:64910690c574 246 #define OPAMP_FACTORYTRIMMING_DUMMY ((uint32_t)0xFFFFFFFF) /*!< Dummy value if trimming value could not be retrieved */
AnnaBridge 145:64910690c574 247
AnnaBridge 145:64910690c574 248 #define OPAMP_FACTORYTRIMMING_N ((uint32_t)0x00000000) /*!< Offset trimming N */
AnnaBridge 145:64910690c574 249 #define OPAMP_FACTORYTRIMMING_P ((uint32_t)0x00000001) /*!< Offset trimming P */
AnnaBridge 145:64910690c574 250
AnnaBridge 145:64910690c574 251 /**
AnnaBridge 145:64910690c574 252 * @}
AnnaBridge 145:64910690c574 253 */
AnnaBridge 145:64910690c574 254
AnnaBridge 145:64910690c574 255 /**
AnnaBridge 145:64910690c574 256 * @}
AnnaBridge 145:64910690c574 257 */
AnnaBridge 145:64910690c574 258
AnnaBridge 145:64910690c574 259 /* Private constants ---------------------------------------------------------*/
AnnaBridge 145:64910690c574 260 /** @defgroup OPAMP_Private_Constants OPAMP Private Constants
AnnaBridge 145:64910690c574 261 * @brief OPAMP Private constants and defines
AnnaBridge 145:64910690c574 262 * @{
AnnaBridge 145:64910690c574 263 */
AnnaBridge 145:64910690c574 264
AnnaBridge 145:64910690c574 265 /* NONINVERTING bit position in OTR & LPOTR */
AnnaBridge 145:64910690c574 266 #define OPAMP_INPUT_NONINVERTING ((uint32_t) 8) /*!< Non inverting input */
AnnaBridge 145:64910690c574 267
AnnaBridge 145:64910690c574 268 /* Offset trimming time: during calibration, minimum time needed between two */
AnnaBridge 145:64910690c574 269 /* steps to have 1 mV accuracy. */
AnnaBridge 145:64910690c574 270 /* Refer to datasheet, electrical characteristics: parameter tOFFTRIM Typ=1ms.*/
AnnaBridge 145:64910690c574 271 /* Unit: ms. */
AnnaBridge 145:64910690c574 272 #define OPAMP_TRIMMING_DELAY ((uint32_t) 1)
AnnaBridge 145:64910690c574 273
AnnaBridge 145:64910690c574 274 /**
AnnaBridge 145:64910690c574 275 * @}
AnnaBridge 145:64910690c574 276 */
AnnaBridge 145:64910690c574 277
AnnaBridge 145:64910690c574 278 /* Exported macros -----------------------------------------------------------*/
AnnaBridge 145:64910690c574 279 /** @defgroup OPAMP_Exported_Macros OPAMP Exported Macros
AnnaBridge 145:64910690c574 280 * @{
AnnaBridge 145:64910690c574 281 */
AnnaBridge 145:64910690c574 282
AnnaBridge 145:64910690c574 283 /** @brief Reset OPAMP handle state.
AnnaBridge 145:64910690c574 284 * @param __HANDLE__: OPAMP handle.
AnnaBridge 145:64910690c574 285 * @retval None
AnnaBridge 145:64910690c574 286 */
AnnaBridge 145:64910690c574 287 #define __HAL_OPAMP_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_OPAMP_STATE_RESET)
AnnaBridge 145:64910690c574 288
AnnaBridge 145:64910690c574 289 /**
AnnaBridge 145:64910690c574 290 * @}
AnnaBridge 145:64910690c574 291 */
AnnaBridge 145:64910690c574 292
AnnaBridge 145:64910690c574 293 /* Private macro -------------------------------------------------------------*/
AnnaBridge 145:64910690c574 294
AnnaBridge 145:64910690c574 295 /** @defgroup OPAMP_Private_Macros OPAMP Private Macros
AnnaBridge 145:64910690c574 296 * @{
AnnaBridge 145:64910690c574 297 */
AnnaBridge 145:64910690c574 298
AnnaBridge 145:64910690c574 299 #define IS_OPAMP_FUNCTIONAL_NORMALMODE(INPUT) (((INPUT) == OPAMP_STANDALONE_MODE) || \
AnnaBridge 145:64910690c574 300 ((INPUT) == OPAMP_PGA_MODE) || \
AnnaBridge 145:64910690c574 301 ((INPUT) == OPAMP_FOLLOWER_MODE))
AnnaBridge 145:64910690c574 302
AnnaBridge 145:64910690c574 303 #if defined (STM32L471xx) || defined (STM32L475xx) || defined (STM32L476xx) || defined (STM32L485xx) || defined (STM32L486xx) || defined (STM32L496xx) || defined (STM32L4A6xx)
AnnaBridge 145:64910690c574 304
AnnaBridge 145:64910690c574 305 #define IS_OPAMP_INVERTING_INPUT_STANDALONE(INPUT) (((INPUT) == OPAMP_INVERTINGINPUT_IO0) || \
AnnaBridge 145:64910690c574 306 ((INPUT) == OPAMP_INVERTINGINPUT_IO1))
AnnaBridge 145:64910690c574 307 #endif /* STM32L471xx STM32L475xx STM32L476xx STM32L485xx STM32L486xx STM32L496xx STM32L4A6xx */
AnnaBridge 145:64910690c574 308
AnnaBridge 145:64910690c574 309 #if defined (STM32L431xx) || defined (STM32L432xx) || defined (STM32L433xx) || defined (STM32L442xx) || defined (STM32L443xx) || defined (STM32L451xx) || defined (STM32L452xx) || defined (STM32L462xx)
AnnaBridge 145:64910690c574 310 #define IS_OPAMP_INVERTING_INPUT_STANDALONE(INPUT) ((INPUT) == OPAMP_INVERTINGINPUT_IO0)
AnnaBridge 145:64910690c574 311 #endif /* STM32L431xx STM32L432xx STM32L433xx STM32L442xx STM32L443xx STM32L451xx STM32L452xx STM32L462xx */
AnnaBridge 145:64910690c574 312
AnnaBridge 145:64910690c574 313 #define IS_OPAMP_NONINVERTING_INPUT(INPUT) (((INPUT) == OPAMP_NONINVERTINGINPUT_IO0) || \
AnnaBridge 145:64910690c574 314 ((INPUT) == OPAMP_NONINVERTINGINPUT_DAC_CH))
AnnaBridge 145:64910690c574 315
AnnaBridge 145:64910690c574 316 #if defined (STM32L471xx) || defined (STM32L475xx) || defined (STM32L476xx) || defined (STM32L485xx) || defined (STM32L486xx) || defined (STM32L496xx) || defined (STM32L4A6xx)
AnnaBridge 145:64910690c574 317 #define IS_OPAMP_INVERTING_INPUT_PGA(INPUT) (((INPUT) == OPAMP_INVERTINGINPUT_IO0) || \
AnnaBridge 145:64910690c574 318 ((INPUT) == OPAMP_INVERTINGINPUT_IO1)|| \
AnnaBridge 145:64910690c574 319 ((INPUT) == OPAMP_INVERTINGINPUT_CONNECT_NO))
AnnaBridge 145:64910690c574 320 #endif /* STM32L471xx STM32L475xx STM32L476xx STM32L485xx STM32L486xx STM32L496xx STM32L4A6xx */
AnnaBridge 145:64910690c574 321
AnnaBridge 145:64910690c574 322 #if defined (STM32L431xx) || defined (STM32L432xx) || defined (STM32L433xx) || defined (STM32L442xx) || defined (STM32L443xx) || defined (STM32L451xx) || defined (STM32L452xx) || defined (STM32L462xx)
AnnaBridge 145:64910690c574 323 #define IS_OPAMP_INVERTING_INPUT_PGA(INPUT) (((INPUT) == OPAMP_INVERTINGINPUT_IO0) || \
AnnaBridge 145:64910690c574 324 ((INPUT) == OPAMP_INVERTINGINPUT_CONNECT_NO))
AnnaBridge 145:64910690c574 325 #endif /* STM32L431xx STM32L432xx STM32L433xx STM32L442xx STM32L443xx STM32L451xx STM32L452xx STM32L462xx */
AnnaBridge 145:64910690c574 326
AnnaBridge 145:64910690c574 327 #define IS_OPAMP_PGA_GAIN(GAIN) (((GAIN) == OPAMP_PGA_GAIN_2) || \
AnnaBridge 145:64910690c574 328 ((GAIN) == OPAMP_PGA_GAIN_4) || \
AnnaBridge 145:64910690c574 329 ((GAIN) == OPAMP_PGA_GAIN_8) || \
AnnaBridge 145:64910690c574 330 ((GAIN) == OPAMP_PGA_GAIN_16))
AnnaBridge 145:64910690c574 331
AnnaBridge 145:64910690c574 332 #define IS_OPAMP_POWERMODE(TRIMMING) (((TRIMMING) == OPAMP_POWERMODE_NORMAL) || \
AnnaBridge 145:64910690c574 333 ((TRIMMING) == OPAMP_POWERMODE_LOWPOWER) )
AnnaBridge 145:64910690c574 334
AnnaBridge 145:64910690c574 335 #define IS_OPAMP_POWER_SUPPLY_RANGE(RANGE) (((RANGE) == OPAMP_POWERSUPPLY_LOW) || \
AnnaBridge 145:64910690c574 336 ((RANGE) == OPAMP_POWERSUPPLY_HIGH) )
AnnaBridge 145:64910690c574 337
AnnaBridge 145:64910690c574 338 #define IS_OPAMP_TRIMMING(TRIMMING) (((TRIMMING) == OPAMP_TRIMMING_FACTORY) || \
AnnaBridge 145:64910690c574 339 ((TRIMMING) == OPAMP_TRIMMING_USER))
AnnaBridge 145:64910690c574 340
AnnaBridge 145:64910690c574 341
AnnaBridge 145:64910690c574 342 #define IS_OPAMP_TRIMMINGVALUE(TRIMMINGVALUE) ((TRIMMINGVALUE) <= 0x1F)
AnnaBridge 145:64910690c574 343
AnnaBridge 145:64910690c574 344 #define IS_OPAMP_FACTORYTRIMMING(TRIMMING) (((TRIMMING) == OPAMP_FACTORYTRIMMING_N) || \
AnnaBridge 145:64910690c574 345 ((TRIMMING) == OPAMP_FACTORYTRIMMING_P))
AnnaBridge 145:64910690c574 346
AnnaBridge 145:64910690c574 347 /**
AnnaBridge 145:64910690c574 348 * @}
AnnaBridge 145:64910690c574 349 */
AnnaBridge 145:64910690c574 350
AnnaBridge 145:64910690c574 351 /* Include OPAMP HAL Extended module */
AnnaBridge 145:64910690c574 352 #include "stm32l4xx_hal_opamp_ex.h"
AnnaBridge 145:64910690c574 353
AnnaBridge 145:64910690c574 354 /* Exported functions --------------------------------------------------------*/
AnnaBridge 145:64910690c574 355 /** @addtogroup OPAMP_Exported_Functions
AnnaBridge 145:64910690c574 356 * @{
AnnaBridge 145:64910690c574 357 */
AnnaBridge 145:64910690c574 358
AnnaBridge 145:64910690c574 359 /** @addtogroup OPAMP_Exported_Functions_Group1
AnnaBridge 145:64910690c574 360 * @{
AnnaBridge 145:64910690c574 361 */
AnnaBridge 145:64910690c574 362 /* Initialization/de-initialization functions **********************************/
AnnaBridge 145:64910690c574 363 HAL_StatusTypeDef HAL_OPAMP_Init(OPAMP_HandleTypeDef *hopamp);
AnnaBridge 145:64910690c574 364 HAL_StatusTypeDef HAL_OPAMP_DeInit (OPAMP_HandleTypeDef *hopamp);
AnnaBridge 145:64910690c574 365 void HAL_OPAMP_MspInit(OPAMP_HandleTypeDef *hopamp);
AnnaBridge 145:64910690c574 366 void HAL_OPAMP_MspDeInit(OPAMP_HandleTypeDef *hopamp);
AnnaBridge 145:64910690c574 367 /**
AnnaBridge 145:64910690c574 368 * @}
AnnaBridge 145:64910690c574 369 */
AnnaBridge 145:64910690c574 370
AnnaBridge 145:64910690c574 371 /** @addtogroup OPAMP_Exported_Functions_Group2
AnnaBridge 145:64910690c574 372 * @{
AnnaBridge 145:64910690c574 373 */
AnnaBridge 145:64910690c574 374
AnnaBridge 145:64910690c574 375 /* I/O operation functions *****************************************************/
AnnaBridge 145:64910690c574 376 HAL_StatusTypeDef HAL_OPAMP_Start(OPAMP_HandleTypeDef *hopamp);
AnnaBridge 145:64910690c574 377 HAL_StatusTypeDef HAL_OPAMP_Stop(OPAMP_HandleTypeDef *hopamp);
AnnaBridge 145:64910690c574 378 HAL_StatusTypeDef HAL_OPAMP_SelfCalibrate(OPAMP_HandleTypeDef *hopamp);
AnnaBridge 145:64910690c574 379
AnnaBridge 145:64910690c574 380 /**
AnnaBridge 145:64910690c574 381 * @}
AnnaBridge 145:64910690c574 382 */
AnnaBridge 145:64910690c574 383
AnnaBridge 145:64910690c574 384 /** @addtogroup OPAMP_Exported_Functions_Group3
AnnaBridge 145:64910690c574 385 * @{
AnnaBridge 145:64910690c574 386 */
AnnaBridge 145:64910690c574 387
AnnaBridge 145:64910690c574 388 /* Peripheral Control functions ************************************************/
AnnaBridge 145:64910690c574 389 HAL_StatusTypeDef HAL_OPAMP_Lock(OPAMP_HandleTypeDef *hopamp);
AnnaBridge 145:64910690c574 390 HAL_OPAMP_TrimmingValueTypeDef HAL_OPAMP_GetTrimOffset (OPAMP_HandleTypeDef *hopamp, uint32_t trimmingoffset);
AnnaBridge 145:64910690c574 391
AnnaBridge 145:64910690c574 392 /**
AnnaBridge 145:64910690c574 393 * @}
AnnaBridge 145:64910690c574 394 */
AnnaBridge 145:64910690c574 395
AnnaBridge 145:64910690c574 396 /** @addtogroup OPAMP_Exported_Functions_Group4
AnnaBridge 145:64910690c574 397 * @{
AnnaBridge 145:64910690c574 398 */
AnnaBridge 145:64910690c574 399
AnnaBridge 145:64910690c574 400 /* Peripheral State functions **************************************************/
AnnaBridge 145:64910690c574 401 HAL_OPAMP_StateTypeDef HAL_OPAMP_GetState(OPAMP_HandleTypeDef *hopamp);
AnnaBridge 145:64910690c574 402
AnnaBridge 145:64910690c574 403 /**
AnnaBridge 145:64910690c574 404 * @}
AnnaBridge 145:64910690c574 405 */
AnnaBridge 145:64910690c574 406
AnnaBridge 145:64910690c574 407 /**
AnnaBridge 145:64910690c574 408 * @}
AnnaBridge 145:64910690c574 409 */
AnnaBridge 145:64910690c574 410
AnnaBridge 145:64910690c574 411 /**
AnnaBridge 145:64910690c574 412 * @}
AnnaBridge 145:64910690c574 413 */
AnnaBridge 145:64910690c574 414
AnnaBridge 145:64910690c574 415 /**
AnnaBridge 145:64910690c574 416 * @}
AnnaBridge 145:64910690c574 417 */
AnnaBridge 145:64910690c574 418
AnnaBridge 145:64910690c574 419 #ifdef __cplusplus
AnnaBridge 145:64910690c574 420 }
AnnaBridge 145:64910690c574 421 #endif
AnnaBridge 145:64910690c574 422
AnnaBridge 145:64910690c574 423 #endif /* __STM32L4xx_HAL_OPAMP_H */
AnnaBridge 145:64910690c574 424
AnnaBridge 145:64910690c574 425 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/