1 /** 2 ****************************************************************************** 3 * @file stm32l1xx_hal_opamp.h 4 * @author MCD Application Team 5 * @brief Header file of OPAMP HAL module. 6 ****************************************************************************** 7 * @attention 8 * 9 * Copyright (c) 2017 STMicroelectronics. 10 * All rights reserved. 11 * 12 * This software is licensed under terms that can be found in the LICENSE file 13 * in the root directory of this software component. 14 * If no LICENSE file comes with this software, it is provided AS-IS. 15 * 16 ****************************************************************************** 17 */ 18 19 /* Define to prevent recursive inclusion -------------------------------------*/ 20 #ifndef STM32L1xx_HAL_OPAMP_H 21 #define STM32L1xx_HAL_OPAMP_H 22 23 #ifdef __cplusplus 24 extern "C" { 25 #endif 26 27 #if defined (STM32L151xCA) || defined (STM32L151xD) || defined (STM32L152xCA) || defined (STM32L152xD) || defined (STM32L162xCA) || defined (STM32L162xD) || defined (STM32L151xE) || defined (STM32L151xDX) || defined (STM32L152xE) || defined (STM32L152xDX) || defined (STM32L162xE) || defined (STM32L162xDX) || defined (STM32L162xC) || defined (STM32L152xC) || defined (STM32L151xC) 28 29 /* Includes ------------------------------------------------------------------*/ 30 #include "stm32l1xx_hal_def.h" 31 32 /** @addtogroup STM32L1xx_HAL_Driver 33 * @{ 34 */ 35 36 /** @addtogroup OPAMP 37 * @{ 38 */ 39 40 /* Exported types ------------------------------------------------------------*/ 41 42 /** @defgroup OPAMP_Exported_Types OPAMP Exported Types 43 * @{ 44 */ 45 46 /** 47 * @brief OPAMP Init structure definition 48 */ 49 50 typedef struct 51 { 52 uint32_t PowerSupplyRange; /*!< Specifies the power supply range: above or under 2.4V. 53 This parameter must be a value of @ref OPAMP_PowerSupplyRange 54 Caution: This parameter is common to all OPAMP instances: a modification of this parameter for the selected OPAMP impacts the other OPAMP instances. */ 55 56 uint32_t PowerMode; /*!< Specifies the power mode Normal or Low-Power. 57 This parameter must be a value of @ref OPAMP_PowerMode */ 58 59 uint32_t Mode; /*!< Specifies the OPAMP mode 60 This parameter must be a value of @ref OPAMP_Mode 61 mode is either Standalone or Follower */ 62 63 uint32_t InvertingInput; /*!< Specifies the inverting input in Standalone mode 64 - In Standalone mode: i.e when mode is OPAMP_STANDALONE_MODE 65 This parameter must be a value of @ref OPAMP_InvertingInput 66 InvertingInput is either VM0 or VM1 67 - In Follower mode: i.e when mode is OPAMP_FOLLOWER_MODE 68 This parameter is Not Applicable */ 69 70 uint32_t NonInvertingInput; /*!< Specifies the non inverting input of the opamp: 71 This parameter must be a value of @ref OPAMP_NonInvertingInput 72 Note: Non-inverting input availability depends on OPAMP instance: 73 OPAMP1: Non-inverting input is either IO0, DAC_Channel1 74 OPAMP2: Non-inverting input is either IO0, DAC_Channel1, DAC_Channel2 75 OPAMP3: Non-inverting input is either IO0, DAC_Channel2 (OPAMP3 availability depends on STM32L1 devices) */ 76 77 uint32_t UserTrimming; /*!< Specifies the trimming mode 78 This parameter must be a value of @ref OPAMP_UserTrimming 79 UserTrimming is either factory or user trimming. 80 Caution: This parameter is common to all OPAMP instances: a modification of this parameter for the selected OPAMP impacts the other OPAMP instances. */ 81 82 uint32_t TrimmingValueP; /*!< Specifies the offset trimming value (PMOS) 83 i.e. when UserTrimming is OPAMP_TRIMMING_USER. 84 This parameter must be a number between Min_Data = 0 and Max_Data = 30 (Trimming value 31 is forbidden) 85 16 is typical default value */ 86 87 uint32_t TrimmingValueN; /*!< Specifies the offset trimming value (NMOS) 88 i.e. when UserTrimming is OPAMP_TRIMMING_USER. 89 This parameter must be a number between Min_Data = 0 and Max_Data = 30 (Trimming value 31 is forbidden) 90 16 is typical default value */ 91 92 uint32_t TrimmingValuePLowPower; /*!< Specifies the offset trimming value (PMOS) 93 i.e. when UserTrimming is OPAMP_TRIMMING_USER. 94 This parameter must be a number between Min_Data = 0 and Max_Data = 30 (Trimming value 31 is forbidden) 95 16 is typical default value */ 96 97 uint32_t TrimmingValueNLowPower; /*!< Specifies the offset trimming value (NMOS) 98 i.e. when UserTrimming is OPAMP_TRIMMING_USER. 99 This parameter must be a number between Min_Data = 0 and Max_Data = 30 (Trimming value 31 is forbidden) 100 16 is typical default value */ 101 102 }OPAMP_InitTypeDef; 103 104 /** 105 * @brief HAL State structures definition 106 */ 107 108 typedef enum 109 { 110 HAL_OPAMP_STATE_RESET = 0x00000000, /*!< OPAMP is not yet Initialized */ 111 112 HAL_OPAMP_STATE_READY = 0x00000001, /*!< OPAMP is initialized and ready for use */ 113 HAL_OPAMP_STATE_CALIBBUSY = 0x00000002, /*!< OPAMP is enabled in auto calibration mode */ 114 115 HAL_OPAMP_STATE_BUSY = 0x00000004, /*!< OPAMP is enabled and running in normal mode */ 116 HAL_OPAMP_STATE_BUSYLOCKED = 0x00000005 /*!< OPAMP is locked 117 only system reset allows reconfiguring the opamp. */ 118 119 }HAL_OPAMP_StateTypeDef; 120 121 /** 122 * @brief OPAMP Handle Structure definition 123 */ 124 #if (USE_HAL_OPAMP_REGISTER_CALLBACKS == 1) 125 typedef struct __OPAMP_HandleTypeDef 126 #else 127 typedef struct 128 #endif /* USE_HAL_OPAMP_REGISTER_CALLBACKS */ 129 { 130 OPAMP_TypeDef *Instance; /*!< OPAMP instance's registers base address */ 131 OPAMP_InitTypeDef Init; /*!< OPAMP required parameters */ 132 HAL_StatusTypeDef Status; /*!< OPAMP peripheral status */ 133 HAL_LockTypeDef Lock; /*!< Locking object */ 134 __IO HAL_OPAMP_StateTypeDef State; /*!< OPAMP communication state */ 135 136 #if (USE_HAL_OPAMP_REGISTER_CALLBACKS == 1) 137 void (* MspInitCallback) (struct __OPAMP_HandleTypeDef *hopamp); 138 void (* MspDeInitCallback) (struct __OPAMP_HandleTypeDef *hopamp); 139 #endif /* USE_HAL_OPAMP_REGISTER_CALLBACKS */ 140 141 } OPAMP_HandleTypeDef; 142 143 /** 144 * @brief HAl_OPAMP_TrimmingValueTypeDef definition 145 */ 146 147 typedef uint32_t HAL_OPAMP_TrimmingValueTypeDef; 148 149 /** 150 * @} 151 */ 152 153 #if (USE_HAL_OPAMP_REGISTER_CALLBACKS == 1) 154 /** 155 * @brief HAL OPAMP Callback ID enumeration definition 156 */ 157 typedef enum 158 { 159 HAL_OPAMP_MSPINIT_CB_ID = 0x01U, /*!< OPAMP MspInit Callback ID */ 160 HAL_OPAMP_MSPDEINIT_CB_ID = 0x02U, /*!< OPAMP MspDeInit Callback ID */ 161 HAL_OPAMP_ALL_CB_ID = 0x03U /*!< OPAMP All ID */ 162 }HAL_OPAMP_CallbackIDTypeDef; 163 164 /** 165 * @brief HAL OPAMP Callback pointer definition 166 */ 167 typedef void (*pOPAMP_CallbackTypeDef)(OPAMP_HandleTypeDef *hopamp); 168 #endif /* USE_HAL_OPAMP_REGISTER_CALLBACKS */ 169 170 171 /* Exported constants --------------------------------------------------------*/ 172 173 /** @defgroup OPAMP_Exported_Constants OPAMP Exported Constants 174 * @{ 175 */ 176 177 /** 178 * OTR register Mask 179 */ 180 #define OPAMP_TRIM_VALUE_MASK OPAMP_OTR_AO1_OPT_OFFSET_TRIM_LOW 181 182 /** 183 * CSR register Mask 184 */ 185 #define OPAMP_CSR_INSTANCE_OFFSET ( 8U) /* Offset of each OPAMP instance into register CSR */ 186 #define OPAMP_OTR_INSTANCE_OFFSET (10U) /* Offset of each OPAMP instance into register OTR */ 187 188 189 /** @defgroup OPAMP_Mode OPAMP Mode 190 * @{ 191 */ 192 #define OPAMP_STANDALONE_MODE 0x00000000U /*!< OPAMP standalone mode */ 193 #define OPAMP_FOLLOWER_MODE 0x00000001U /*!< OPAMP follower mode */ 194 195 /** 196 * @} 197 */ 198 199 /** @defgroup OPAMP_NonInvertingInput OPAMP NonInvertingInput 200 * @{ 201 */ 202 #define OPAMP_NONINVERTINGINPUT_IO0 0x00000000U /*!< Comparator non-inverting input connected to dedicated IO pin low-leakage */ 203 #define OPAMP_NONINVERTINGINPUT_DAC_CH1 0x00000001U /*!< Comparator non-inverting input connected internally to DAC channel 1. Available only on OPAMP1 and OPAMP2. */ 204 #define OPAMP_NONINVERTINGINPUT_DAC_CH2 0x00000002U /*!< Comparator non-inverting input connected internally to DAC channel 2. Available only on OPAMP2 and OPAMP3 (OPAMP3 availability depends on STM32L1 devices). */ 205 206 /** 207 * @} 208 */ 209 210 /** @defgroup OPAMP_InvertingInput OPAMP InvertingInput 211 * @{ 212 */ 213 /* Note: Literal "OPAMP_SEC_INVERTINGINPUT_IO1" is a legacy naming of "OPAMP_INVERTINGINPUT_IO1". It is equivalent and must be replaced by "OPAMP_INVERTINGINPUT_IO1". */ 214 #define OPAMP_INVERTINGINPUT_IO0 0x00000000U /*!< Comparator inverting input connected to dedicated IO pin low-leakage */ 215 #define OPAMP_INVERTINGINPUT_IO1 0x00000001U /*!< Comparator inverting input connected to alternative IO pin available on some device packages */ 216 217 /** 218 * @} 219 */ 220 221 /** @defgroup OPAMP_PowerMode OPAMP PowerMode 222 * @{ 223 */ 224 #define OPAMP_POWERMODE_NORMAL 0x00000000U 225 #define OPAMP_POWERMODE_LOWPOWER 0x00000001U 226 227 /** 228 * @} 229 */ 230 231 /** @defgroup OPAMP_PowerSupplyRange OPAMP PowerSupplyRange 232 * @{ 233 */ 234 #define OPAMP_POWERSUPPLY_LOW 0x00000000U /*!< Power supply range low (VDDA lower than 2.4V) */ 235 #define OPAMP_POWERSUPPLY_HIGH OPAMP_CSR_AOP_RANGE /*!< Power supply range high (VDDA higher than 2.4V) */ 236 237 /** 238 * @} 239 */ 240 241 /** @defgroup OPAMP_UserTrimming OPAMP User Trimming 242 * @{ 243 */ 244 #define OPAMP_TRIMMING_FACTORY 0x00000000U /*!< Factory trimming */ 245 #define OPAMP_TRIMMING_USER OPAMP_OTR_OT_USER /*!< User trimming */ 246 247 /** 248 * @} 249 */ 250 251 /** @defgroup OPAMP_FactoryTrimming OPAMP FactoryTrimming 252 * @{ 253 */ 254 #define OPAMP_FACTORYTRIMMING_DUMMY 0xFFFFFFFFU /*!< Dummy value if trimming value could not be retrieved */ 255 256 #define OPAMP_FACTORYTRIMMING_P 0U /*!< Offset trimming P */ 257 #define OPAMP_FACTORYTRIMMING_N POSITION_VAL(OPAMP_OTR_AO1_OPT_OFFSET_TRIM_HIGH) /*!< Offset trimming N */ 258 259 /** 260 * @} 261 */ 262 263 /** 264 * @} 265 */ 266 267 /* Private constants ---------------------------------------------------------*/ 268 /** @defgroup OPAMP_Private_Constants OPAMP Private Constants 269 * @{ 270 */ 271 272 /* Offset trimming time: during calibration, minimum time needed between two */ 273 /* steps to have 1 mV accuracy. */ 274 /* Refer to datasheet, electrical characteristics: parameter tOFFTRIM Typ=1ms.*/ 275 /* Unit: ms. */ 276 #define OPAMP_TRIMMING_DELAY ((uint32_t) 1) 277 278 /** 279 * @} 280 */ 281 282 /* Exported macros -----------------------------------------------------------*/ 283 284 /** @defgroup OPAMP_Private_Macro OPAMP Private Macro 285 * @{ 286 */ 287 288 /** @brief Reset OPAMP handle state 289 * @param __HANDLE__ OPAMP handle. 290 * @retval None 291 */ 292 #define __HAL_OPAMP_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_OPAMP_STATE_RESET) 293 294 /** 295 * @} 296 */ 297 298 /* Private macro -------------------------------------------------------------*/ 299 300 /** @defgroup OPAMP_Private_Macro OPAMP Private Macro 301 * @{ 302 */ 303 304 /** 305 * @brief Select the OPAMP bit OPAxPD (power-down) corresponding to the 306 * selected OPAMP instance. 307 * @param __HANDLE__: OPAMP handle 308 * @retval None 309 */ 310 #define OPAMP_CSR_OPAXPD(__HANDLE__) \ 311 (OPAMP_CSR_OPA1PD << (OPAMP_INSTANCE_DECIMAL(__HANDLE__) * OPAMP_CSR_INSTANCE_OFFSET)) 312 313 /** 314 * @brief Select the OPAMP bit S3SELx (switch 3) corresponding to the 315 * selected OPAMP instance. 316 * @param __HANDLE__: OPAMP handle 317 * @retval None 318 */ 319 #define OPAMP_CSR_S3SELX(__HANDLE__) \ 320 (OPAMP_CSR_S3SEL1 << ((OPAMP_INSTANCE_DECIMAL(__HANDLE__) * OPAMP_CSR_INSTANCE_OFFSET) & 0x1fU)) 321 322 /** 323 * @brief Select the OPAMP bit S4SELx (switch 4) corresponding to the 324 * selected OPAMP instance. 325 * @param __HANDLE__: OPAMP handle 326 * @retval None 327 */ 328 #define OPAMP_CSR_S4SELX(__HANDLE__) \ 329 (OPAMP_CSR_S4SEL1 << (OPAMP_INSTANCE_DECIMAL(__HANDLE__) * OPAMP_CSR_INSTANCE_OFFSET)) 330 331 /** 332 * @brief Select the OPAMP bit S5SELx (switch 5) corresponding to the 333 * selected OPAMP instance. 334 * @param __HANDLE__: OPAMP handle 335 * @retval None 336 */ 337 #define OPAMP_CSR_S5SELX(__HANDLE__) \ 338 (OPAMP_CSR_S5SEL1 << (OPAMP_INSTANCE_DECIMAL(__HANDLE__) * OPAMP_CSR_INSTANCE_OFFSET)) 339 340 /** 341 * @brief Select the OPAMP bit S3SELx (switch 6) corresponding to the 342 * selected OPAMP instance. 343 * @param __HANDLE__: OPAMP handle 344 * @retval None 345 */ 346 #define OPAMP_CSR_S6SELX(__HANDLE__) \ 347 (OPAMP_CSR_S6SEL1 << (OPAMP_INSTANCE_DECIMAL(__HANDLE__) * OPAMP_CSR_INSTANCE_OFFSET)) 348 349 /** 350 * @brief Select the OPAMP bit OPAxCAL_L (offset calibration for differential 351 * pair P) corresponding to the selected OPAMP instance. 352 * @param __HANDLE__: OPAMP handle 353 * @retval None 354 */ 355 #define OPAMP_CSR_OPAXCAL_L(__HANDLE__) \ 356 (OPAMP_CSR_OPA1CAL_L << (OPAMP_INSTANCE_DECIMAL(__HANDLE__) * OPAMP_CSR_INSTANCE_OFFSET)) 357 358 /** 359 * @brief Select the OPAMP bit OPAxCAL_H (offset calibration for differential 360 * pair N) corresponding to the selected OPAMP instance. 361 * @param __HANDLE__: OPAMP handle 362 * @retval None 363 */ 364 #define OPAMP_CSR_OPAXCAL_H(__HANDLE__) \ 365 (OPAMP_CSR_OPA1CAL_H << (OPAMP_INSTANCE_DECIMAL(__HANDLE__) * OPAMP_CSR_INSTANCE_OFFSET)) 366 367 /** 368 * @brief Select the OPAMP bit OPAxLPM (low power mode) corresponding to the 369 * selected OPAMP instance. 370 * @param __HANDLE__: OPAMP handle 371 * @retval None 372 */ 373 #define OPAMP_CSR_OPAXLPM(__HANDLE__) \ 374 (OPAMP_CSR_OPA1LPM << (OPAMP_INSTANCE_DECIMAL(__HANDLE__) * OPAMP_CSR_INSTANCE_OFFSET)) 375 376 /** 377 * @brief Select the OPAMP bits of all switches corresponding to the 378 * selected OPAMP instance. 379 * @param __HANDLE__: OPAMP handle 380 * @retval None 381 */ 382 #define OPAMP_CSR_ALL_SWITCHES(__HANDLE__) \ 383 ( ( ((__HANDLE__)->Instance != OPAMP2) \ 384 )? \ 385 ( \ 386 ((OPAMP_CSR_S3SEL1 | OPAMP_CSR_S4SEL1 | OPAMP_CSR_S5SEL1 | OPAMP_CSR_S6SEL1) << (OPAMP_INSTANCE_DECIMAL(__HANDLE__) * OPAMP_CSR_INSTANCE_OFFSET)) \ 387 | \ 388 (OPAMP_CSR_ANAWSEL1 << (OPAMP_INSTANCE_DECIMAL(__HANDLE__))) \ 389 ) \ 390 : \ 391 ( \ 392 ((OPAMP_CSR_S3SEL1 | OPAMP_CSR_S4SEL1 | OPAMP_CSR_S5SEL1 | OPAMP_CSR_S6SEL1) << (OPAMP_INSTANCE_DECIMAL(__HANDLE__) * OPAMP_CSR_INSTANCE_OFFSET)) \ 393 | \ 394 (OPAMP_CSR_ANAWSEL1 << (OPAMP_INSTANCE_DECIMAL(__HANDLE__))) \ 395 | \ 396 (OPAMP_CSR_S7SEL2) \ 397 ) \ 398 ) 399 400 /** 401 * @brief Select the OPAMP bit ANAWSELx (switch SanA) corresponding to the 402 * selected OPAMP instance. 403 * @param __HANDLE__: OPAMP handle 404 * @retval None 405 */ 406 #define OPAMP_CSR_ANAWSELX(__HANDLE__) \ 407 (OPAMP_CSR_ANAWSEL1 << (OPAMP_INSTANCE_DECIMAL(__HANDLE__))) 408 409 /** 410 * @brief Select the OPAMP bit OPAxCALOUT in function of the selected 411 * OPAMP instance. 412 * @param __HANDLE__: OPAMP handle 413 * @retval None 414 */ 415 #define OPAMP_CSR_OPAXCALOUT(__HANDLE__) \ 416 (OPAMP_CSR_OPA1CALOUT << (OPAMP_INSTANCE_DECIMAL(__HANDLE__))) 417 418 /** 419 * @brief Select the OPAMP trimming bits position value (position of LSB) 420 * in register OPAMP_OTR or register OPAMP_LPOTR in function of the selected 421 * OPAMP instance and the transistors differential pair high (PMOS) or 422 * low (NMOS). 423 * @param __HANDLE__: OPAMP handle 424 * @param __TRIM_HIGH_LOW__: transistors differential pair high or low. 425 * Must be a value of @ref OPAMP_FactoryTrimming. 426 * @retval None 427 */ 428 #define OPAMP_OFFSET_TRIM_BITSPOSITION(__HANDLE__, __TRIM_HIGH_LOW__) \ 429 ((OPAMP_INSTANCE_DECIMAL((__HANDLE__)) * OPAMP_OTR_INSTANCE_OFFSET) + (__TRIM_HIGH_LOW__)) 430 431 /** 432 * @brief Shift the OPAMP trimming bits to register OPAMP_OTR or register 433 * OPAMP_LPOTR in function of the selected OPAMP instance and the transistors 434 * differential pair high (PMOS) or low (NMOS). 435 * @param __HANDLE__: OPAMP handle 436 * @param __TRIM_HIGH_LOW__: transistors differential pair high or low. 437 * Must be a value of @ref OPAMP_FactoryTrimming. 438 * @param __TRIMMING_VALUE__: Trimming value 439 * @retval None 440 */ 441 #define OPAMP_OFFSET_TRIM_SET(__HANDLE__, __TRIM_HIGH_LOW__, __TRIMMING_VALUE__) \ 442 ((__TRIMMING_VALUE__) << (OPAMP_OFFSET_TRIM_BITSPOSITION((__HANDLE__), (__TRIM_HIGH_LOW__)))) 443 444 /** 445 * @brief Check that trimming value is within correct range 446 * @param TRIMMINGVALUE: OPAMP trimming value 447 * @retval None 448 */ 449 #define IS_OPAMP_TRIMMINGVALUE(TRIMMINGVALUE) ((TRIMMINGVALUE) <= 30U) 450 451 #define IS_OPAMP_FUNCTIONAL_NORMALMODE(INPUT) (((INPUT) == OPAMP_STANDALONE_MODE) || \ 452 ((INPUT) == OPAMP_FOLLOWER_MODE)) 453 454 #define IS_OPAMP_INVERTING_INPUT(INPUT) (((INPUT) == OPAMP_INVERTINGINPUT_IO0) || \ 455 ((INPUT) == OPAMP_INVERTINGINPUT_IO1) ) 456 457 #define IS_OPAMP_POWERMODE(TRIMMING) (((TRIMMING) == OPAMP_POWERMODE_NORMAL) || \ 458 ((TRIMMING) == OPAMP_POWERMODE_LOWPOWER) ) 459 460 #define IS_OPAMP_POWER_SUPPLY_RANGE(RANGE) (((RANGE) == OPAMP_POWERSUPPLY_LOW) || \ 461 ((RANGE) == OPAMP_POWERSUPPLY_HIGH) ) 462 463 #define IS_OPAMP_TRIMMING(TRIMMING) (((TRIMMING) == OPAMP_TRIMMING_FACTORY) || \ 464 ((TRIMMING) == OPAMP_TRIMMING_USER)) 465 466 #define IS_OPAMP_FACTORYTRIMMING(TRIMMING) (((TRIMMING) == OPAMP_FACTORYTRIMMING_N) || \ 467 ((TRIMMING) == OPAMP_FACTORYTRIMMING_P) ) 468 469 /** 470 * @} 471 */ 472 473 474 /* Include OPAMP HAL Extension module */ 475 #include "stm32l1xx_hal_opamp_ex.h" 476 477 /* Exported functions --------------------------------------------------------*/ 478 /** @addtogroup OPAMP_Exported_Functions 479 * @{ 480 */ 481 482 /** @addtogroup OPAMP_Exported_Functions_Group1 483 * @{ 484 */ 485 /* Initialization/de-initialization functions **********************************/ 486 HAL_StatusTypeDef HAL_OPAMP_Init(OPAMP_HandleTypeDef *hopamp); 487 HAL_StatusTypeDef HAL_OPAMP_DeInit (OPAMP_HandleTypeDef *hopamp); 488 void HAL_OPAMP_MspInit(OPAMP_HandleTypeDef *hopamp); 489 void HAL_OPAMP_MspDeInit(OPAMP_HandleTypeDef *hopamp); 490 /** 491 * @} 492 */ 493 494 /** @addtogroup OPAMP_Exported_Functions_Group2 495 * @{ 496 */ 497 498 /* I/O operation functions *****************************************************/ 499 HAL_StatusTypeDef HAL_OPAMP_Start(OPAMP_HandleTypeDef *hopamp); 500 HAL_StatusTypeDef HAL_OPAMP_Stop(OPAMP_HandleTypeDef *hopamp); 501 HAL_StatusTypeDef HAL_OPAMP_SelfCalibrate(OPAMP_HandleTypeDef *hopamp); 502 503 /** 504 * @} 505 */ 506 507 /** @addtogroup OPAMP_Exported_Functions_Group3 508 * @{ 509 */ 510 511 /* Peripheral Control functions ************************************************/ 512 #if (USE_HAL_OPAMP_REGISTER_CALLBACKS == 1) 513 /* OPAMP callback registering/unregistering */ 514 HAL_StatusTypeDef HAL_OPAMP_RegisterCallback (OPAMP_HandleTypeDef *hopamp, HAL_OPAMP_CallbackIDTypeDef CallbackID, pOPAMP_CallbackTypeDef pCallback); 515 HAL_StatusTypeDef HAL_OPAMP_UnRegisterCallback (OPAMP_HandleTypeDef *hopamp, HAL_OPAMP_CallbackIDTypeDef CallbackID); 516 #endif /* USE_HAL_OPAMP_REGISTER_CALLBACKS */ 517 518 HAL_StatusTypeDef HAL_OPAMP_Lock(OPAMP_HandleTypeDef *hopamp); 519 HAL_OPAMP_TrimmingValueTypeDef HAL_OPAMP_GetTrimOffset (OPAMP_HandleTypeDef *hopamp, uint32_t trimmingoffset); 520 521 /** 522 * @} 523 */ 524 525 /** @addtogroup OPAMP_Exported_Functions_Group4 526 * @{ 527 */ 528 529 /* Peripheral State functions **************************************************/ 530 HAL_OPAMP_StateTypeDef HAL_OPAMP_GetState(OPAMP_HandleTypeDef *hopamp); 531 532 /** 533 * @} 534 */ 535 536 /** 537 * @} 538 */ 539 540 /** 541 * @} 542 */ 543 544 /** 545 * @} 546 */ 547 548 #endif /* STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX || STM32L162xC || STM32L152xC || STM32L151xC */ 549 #ifdef __cplusplus 550 } 551 #endif 552 553 #endif /* STM32L1xx_HAL_OPAMP_H */ 554 555