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.
Diff: TARGET_NUCLEO_L152RE/TOOLCHAIN_GCC_ARM/stm32l1xx_hal_opamp_ex.h
- Revision:
- 171:3a7713b1edbc
diff -r e95d10626187 -r 3a7713b1edbc TARGET_NUCLEO_L152RE/TOOLCHAIN_GCC_ARM/stm32l1xx_hal_opamp_ex.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TARGET_NUCLEO_L152RE/TOOLCHAIN_GCC_ARM/stm32l1xx_hal_opamp_ex.h Thu Nov 08 11:45:42 2018 +0000 @@ -0,0 +1,272 @@ +/** + ****************************************************************************** + * @file stm32l1xx_hal_opamp_ex.h + * @author MCD Application Team + * @brief Header file of OPAMP HAL Extension module. + ****************************************************************************** + * @attention + * + * <h2><center>© COPYRIGHT(c) 2017 STMicroelectronics</center></h2> + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. Neither the name of STMicroelectronics nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32L1xx_HAL_OPAMP_EX_H +#define __STM32L1xx_HAL_OPAMP_EX_H + +#ifdef __cplusplus + extern "C" { +#endif + +#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) + +/* Includes ------------------------------------------------------------------*/ +#include "stm32l1xx_hal_def.h" + +/** @addtogroup STM32L1xx_HAL_Driver + * @{ + */ + +/** @addtogroup OPAMPEx + * @{ + */ +/* Exported types ------------------------------------------------------------*/ +/* Exported constants ---------------------------------------------------------*/ +/** @defgroup OPAMPEx_Exported_Constants OPAMPEx Exported Constants + * @{ + */ +#if defined (STM32L151xD) || defined (STM32L152xD) || defined (STM32L162xD) +#define OPAMP_CSR_OPAXPD_ALL \ + (OPAMP_CSR_OPA1PD | OPAMP_CSR_OPA2PD | OPAMP_CSR_OPA3PD) + +#define OPAMP_CSR_OPAXCAL_L_ALL \ + (OPAMP_CSR_OPA1CAL_L | OPAMP_CSR_OPA2CAL_L | OPAMP_CSR_OPA3CAL_L) + +#define OPAMP_CSR_OPAXCAL_H_ALL \ + (OPAMP_CSR_OPA1CAL_H | OPAMP_CSR_OPA2CAL_H | OPAMP_CSR_OPA3CAL_H) + +#define OPAMP_CSR_ALL_SWITCHES_ALL_OPAMPS \ + (OPAMP_CSR_S3SEL1 | OPAMP_CSR_S4SEL1 | OPAMP_CSR_S5SEL1 | OPAMP_CSR_S6SEL1 | \ + OPAMP_CSR_ANAWSEL1 | \ + OPAMP_CSR_S3SEL2 | OPAMP_CSR_S4SEL2 | OPAMP_CSR_S5SEL2 | OPAMP_CSR_S6SEL2 | \ + OPAMP_CSR_ANAWSEL2 | OPAMP_CSR_S7SEL2 | \ + OPAMP_CSR_S3SEL3 | OPAMP_CSR_S4SEL3 | OPAMP_CSR_S5SEL3 | OPAMP_CSR_S6SEL3 | \ + OPAMP_CSR_ANAWSEL3 ) +#else +#define OPAMP_CSR_OPAXPD_ALL \ + (OPAMP_CSR_OPA1PD | OPAMP_CSR_OPA2PD) + +#define OPAMP_CSR_OPAXCAL_L_ALL \ + (OPAMP_CSR_OPA1CAL_L | OPAMP_CSR_OPA2CAL_L) + +#define OPAMP_CSR_OPAXCAL_H_ALL \ + (OPAMP_CSR_OPA1CAL_H | OPAMP_CSR_OPA2CAL_H) + +#define OPAMP_CSR_ALL_SWITCHES_ALL_OPAMPS \ + (OPAMP_CSR_S3SEL1 | OPAMP_CSR_S4SEL1 | OPAMP_CSR_S5SEL1 | OPAMP_CSR_S6SEL1 | \ + OPAMP_CSR_ANAWSEL1 | \ + OPAMP_CSR_S3SEL2 | OPAMP_CSR_S4SEL2 | OPAMP_CSR_S5SEL2 | OPAMP_CSR_S6SEL2 | \ + OPAMP_CSR_ANAWSEL2 | OPAMP_CSR_S7SEL2 ) +#endif /* STM32L151xD || STM32L152xD || STM32L162xD */ + +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ + +/** @defgroup OPAMPEx_Exported_Macro OPAMPEx Exported Macro + * @{ + */ + +#if defined (STM32L151xD) || defined (STM32L152xD) || defined (STM32L162xD) +/** + * @brief Enable internal analog switch SW1 to connect OPAMP3 ouput to ADC + * switch matrix (ADC channel VCOMP, channel 26) and COMP1 non-inverting input + * (OPAMP3 available on STM32L1 devices Cat.4 only). + * @retval None + */ +#define __HAL_OPAMP_OPAMP3OUT_CONNECT_ADC_COMP1() __HAL_RI_SWITCH_COMP1_SW1_CLOSE() + +/** + * @brief Disable internal analog switch SW1 to disconnect OPAMP3 ouput from + * ADC switch matrix (ADC channel VCOMP, channel 26) and COMP1 non-inverting + * input. + * @retval None + */ +#define __HAL_OPAMP_OPAMP3OUT_DISCONNECT_ADC_COMP1() __HAL_RI_SWITCH_COMP1_SW1_OPEN() +#endif /* STM32L151xD || STM32L152xD || STM32L162xD */ + +/** + * @} + */ + +/* Private macro -------------------------------------------------------------*/ + +/** @defgroup OPAMPEx_Private_Macro OPAMPEx Private Macro + * @{ + */ + +#if defined (STM32L151xD) || defined (STM32L152xD) || defined (STM32L162xD) +/** + * @brief Get the OPAMP instance in decimal number for further + * processing needs by HAL OPAMP driver functions. + * @param __HANDLE__: OPAMP handle + * @retval "0" for OPAMP1, "1" for OPAMP2, "2" for OPAMP3 + */ +#define OPAMP_INSTANCE_DECIMAL(__HANDLE__) \ + ( ( ((__HANDLE__)->Instance == OPAMP1) \ + )? \ + ((uint32_t)0) \ + : \ + ( ( ((__HANDLE__)->Instance == OPAMP2) \ + )? \ + ((uint32_t)1) \ + : \ + ((uint32_t)2) \ + ) \ + ) +#else +/** + * @brief Get the OPAMP instance in decimal number for further + * processing needs by HAL OPAMP driver functions. + * @param __HANDLE__: OPAMP handle + * @retval "0" for OPAMP1, "1" for OPAMP2 + */ +#define OPAMP_INSTANCE_DECIMAL(__HANDLE__) \ + ( ( ((__HANDLE__)->Instance == OPAMP1) \ + )? \ + ((uint32_t)0) \ + : \ + ((uint32_t)1) \ + ) +#endif /* STM32L151xD || STM32L152xD || STM32L162xD */ + +#if defined (STM32L151xD) || defined (STM32L152xD) || defined (STM32L162xD) + +/** + * @brief Check OPAMP non-inverting input in function of OPAMPx instance + * @param __HANDLE__: OPAMP handle + * @param INPUT: OPAMP non-inverting input + * @retval None + */ +#define IS_OPAMP_NONINVERTING_INPUT_CHECK_INSTANCE(__HANDLE__, INPUT) \ + ( ( ((__HANDLE__)->Instance == OPAMP1) \ + )? \ + ( \ + ((INPUT) == OPAMP_NONINVERTINGINPUT_IO0) || \ + ((INPUT) == OPAMP_NONINVERTINGINPUT_DAC_CH1) \ + ) \ + : \ + ( ( ((__HANDLE__)->Instance == OPAMP2) \ + )? \ + ( \ + ((INPUT) == OPAMP_NONINVERTINGINPUT_IO0) || \ + ((INPUT) == OPAMP_NONINVERTINGINPUT_DAC_CH1) || \ + ((INPUT) == OPAMP_NONINVERTINGINPUT_DAC_CH2) \ + ) \ + : \ + ( \ + ((INPUT) == OPAMP_NONINVERTINGINPUT_IO0) || \ + ((INPUT) == OPAMP_NONINVERTINGINPUT_DAC_CH2) \ + ) \ + ) \ + ) +#else +/** + * @brief Check OPAMP non-inverting input in function of OPAMPx instance + * @param __HANDLE__: OPAMP handle + * @param INPUT: OPAMP non-inverting input + * @retval None + */ +#define IS_OPAMP_NONINVERTING_INPUT_CHECK_INSTANCE(__HANDLE__, INPUT) \ + ( ( ((__HANDLE__)->Instance == OPAMP1) \ + )? \ + ( \ + ((INPUT) == OPAMP_NONINVERTINGINPUT_IO0) || \ + ((INPUT) == OPAMP_NONINVERTINGINPUT_DAC_CH1) \ + ) \ + : \ + ( \ + ((INPUT) == OPAMP_NONINVERTINGINPUT_IO0) || \ + ((INPUT) == OPAMP_NONINVERTINGINPUT_DAC_CH1) || \ + ((INPUT) == OPAMP_NONINVERTINGINPUT_DAC_CH2) \ + ) \ + ) +#endif /* STM32L151xD || STM32L152xD || STM32L162xD */ + +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ +/** @addtogroup OPAMPEx_Exported_Functions + * @{ + */ + +/* I/O operation functions *****************************************************/ +/** @defgroup OPAMPEx_Exported_Functions_Group1 Extended Input and Output operation functions + * @{ + */ +#if defined (STM32L151xD) || defined (STM32L152xD) || defined (STM32L162xD) +HAL_StatusTypeDef HAL_OPAMPEx_SelfCalibrateAll(OPAMP_HandleTypeDef *hopamp1, OPAMP_HandleTypeDef *hopamp2, OPAMP_HandleTypeDef *hopamp3); +#else +HAL_StatusTypeDef HAL_OPAMPEx_SelfCalibrateAll(OPAMP_HandleTypeDef *hopamp1, OPAMP_HandleTypeDef *hopamp2); +#endif /* STM32L151xD || STM32L152xD || STM32L162xD */ +/** + * @} + */ +/* Peripheral Control functions ************************************************/ +/** @addtogroup OPAMPEx_Exported_Functions_Group2 + * @{ + */ +HAL_StatusTypeDef HAL_OPAMPEx_Unlock(OPAMP_HandleTypeDef *hopamp); +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#endif /* STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX || STM32L162xC || STM32L152xC || STM32L151xC */ + +#ifdef __cplusplus +} +#endif + + +#endif /* __STM32L1xx_HAL_OPAMP_EX_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/