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 Feb 20 20:53:29 2019 +0000
Revision:
172:65be27845400
Parent:
171:3a7713b1edbc
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 171:3a7713b1edbc 1 /**
AnnaBridge 171:3a7713b1edbc 2 ******************************************************************************
AnnaBridge 171:3a7713b1edbc 3 * @file stm32f0xx_hal_comp.h
AnnaBridge 171:3a7713b1edbc 4 * @author MCD Application Team
AnnaBridge 171:3a7713b1edbc 5 * @brief Header file of COMP HAL module.
AnnaBridge 171:3a7713b1edbc 6 ******************************************************************************
AnnaBridge 171:3a7713b1edbc 7 * @attention
AnnaBridge 171:3a7713b1edbc 8 *
AnnaBridge 171:3a7713b1edbc 9 * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
AnnaBridge 171:3a7713b1edbc 10 *
AnnaBridge 171:3a7713b1edbc 11 * Redistribution and use in source and binary forms, with or without modification,
AnnaBridge 171:3a7713b1edbc 12 * are permitted provided that the following conditions are met:
AnnaBridge 171:3a7713b1edbc 13 * 1. Redistributions of source code must retain the above copyright notice,
AnnaBridge 171:3a7713b1edbc 14 * this list of conditions and the following disclaimer.
AnnaBridge 171:3a7713b1edbc 15 * 2. Redistributions in binary form must reproduce the above copyright notice,
AnnaBridge 171:3a7713b1edbc 16 * this list of conditions and the following disclaimer in the documentation
AnnaBridge 171:3a7713b1edbc 17 * and/or other materials provided with the distribution.
AnnaBridge 171:3a7713b1edbc 18 * 3. Neither the name of STMicroelectronics nor the names of its contributors
AnnaBridge 171:3a7713b1edbc 19 * may be used to endorse or promote products derived from this software
AnnaBridge 171:3a7713b1edbc 20 * without specific prior written permission.
AnnaBridge 171:3a7713b1edbc 21 *
AnnaBridge 171:3a7713b1edbc 22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AnnaBridge 171:3a7713b1edbc 23 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
AnnaBridge 171:3a7713b1edbc 24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
AnnaBridge 171:3a7713b1edbc 25 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
AnnaBridge 171:3a7713b1edbc 26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
AnnaBridge 171:3a7713b1edbc 27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
AnnaBridge 171:3a7713b1edbc 28 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
AnnaBridge 171:3a7713b1edbc 29 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
AnnaBridge 171:3a7713b1edbc 30 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
AnnaBridge 171:3a7713b1edbc 31 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
AnnaBridge 171:3a7713b1edbc 32 *
AnnaBridge 171:3a7713b1edbc 33 ******************************************************************************
AnnaBridge 171:3a7713b1edbc 34 */
AnnaBridge 171:3a7713b1edbc 35
AnnaBridge 171:3a7713b1edbc 36 /* Define to prevent recursive inclusion -------------------------------------*/
AnnaBridge 171:3a7713b1edbc 37 #ifndef __STM32F0xx_HAL_COMP_H
AnnaBridge 171:3a7713b1edbc 38 #define __STM32F0xx_HAL_COMP_H
AnnaBridge 171:3a7713b1edbc 39
AnnaBridge 171:3a7713b1edbc 40 #ifdef __cplusplus
AnnaBridge 171:3a7713b1edbc 41 extern "C" {
AnnaBridge 171:3a7713b1edbc 42 #endif
AnnaBridge 171:3a7713b1edbc 43
AnnaBridge 171:3a7713b1edbc 44 #if defined(STM32F051x8) || defined(STM32F058xx) || \
AnnaBridge 171:3a7713b1edbc 45 defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
AnnaBridge 171:3a7713b1edbc 46 defined(STM32F091xC) || defined(STM32F098xx)
AnnaBridge 171:3a7713b1edbc 47
AnnaBridge 171:3a7713b1edbc 48 /* Includes ------------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 49 #include "stm32f0xx_hal_def.h"
AnnaBridge 171:3a7713b1edbc 50
AnnaBridge 171:3a7713b1edbc 51 /** @addtogroup STM32F0xx_HAL_Driver
AnnaBridge 171:3a7713b1edbc 52 * @{
AnnaBridge 171:3a7713b1edbc 53 */
AnnaBridge 171:3a7713b1edbc 54
AnnaBridge 171:3a7713b1edbc 55 /** @addtogroup COMP COMP
AnnaBridge 171:3a7713b1edbc 56 * @{
AnnaBridge 171:3a7713b1edbc 57 */
AnnaBridge 171:3a7713b1edbc 58
AnnaBridge 171:3a7713b1edbc 59 /* Exported types ------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 60 /** @defgroup COMP_Exported_Types COMP Exported Types
AnnaBridge 171:3a7713b1edbc 61 * @{
AnnaBridge 171:3a7713b1edbc 62 */
AnnaBridge 171:3a7713b1edbc 63
AnnaBridge 171:3a7713b1edbc 64 /**
AnnaBridge 171:3a7713b1edbc 65 * @brief COMP Init structure definition
AnnaBridge 171:3a7713b1edbc 66 */
AnnaBridge 171:3a7713b1edbc 67 typedef struct
AnnaBridge 171:3a7713b1edbc 68 {
AnnaBridge 171:3a7713b1edbc 69
AnnaBridge 171:3a7713b1edbc 70 uint32_t InvertingInput; /*!< Selects the inverting input of the comparator.
AnnaBridge 171:3a7713b1edbc 71 This parameter can be a value of @ref COMP_InvertingInput */
AnnaBridge 171:3a7713b1edbc 72
AnnaBridge 171:3a7713b1edbc 73 uint32_t NonInvertingInput; /*!< Selects the non inverting input of the comparator.
AnnaBridge 171:3a7713b1edbc 74 This parameter can be a value of @ref COMP_NonInvertingInput */
AnnaBridge 171:3a7713b1edbc 75
AnnaBridge 171:3a7713b1edbc 76 uint32_t Output; /*!< Selects the output redirection of the comparator.
AnnaBridge 171:3a7713b1edbc 77 This parameter can be a value of @ref COMP_Output */
AnnaBridge 171:3a7713b1edbc 78
AnnaBridge 171:3a7713b1edbc 79 uint32_t OutputPol; /*!< Selects the output polarity of the comparator.
AnnaBridge 171:3a7713b1edbc 80 This parameter can be a value of @ref COMP_OutputPolarity */
AnnaBridge 171:3a7713b1edbc 81
AnnaBridge 171:3a7713b1edbc 82 uint32_t Hysteresis; /*!< Selects the hysteresis voltage of the comparator.
AnnaBridge 171:3a7713b1edbc 83 This parameter can be a value of @ref COMP_Hysteresis */
AnnaBridge 171:3a7713b1edbc 84
AnnaBridge 171:3a7713b1edbc 85 uint32_t Mode; /*!< Selects the operating comsumption mode of the comparator
AnnaBridge 171:3a7713b1edbc 86 to adjust the speed/consumption.
AnnaBridge 171:3a7713b1edbc 87 This parameter can be a value of @ref COMP_Mode */
AnnaBridge 171:3a7713b1edbc 88
AnnaBridge 171:3a7713b1edbc 89 uint32_t WindowMode; /*!< Selects the window mode of the comparator 1 & 2.
AnnaBridge 171:3a7713b1edbc 90 This parameter can be a value of @ref COMP_WindowMode */
AnnaBridge 171:3a7713b1edbc 91
AnnaBridge 171:3a7713b1edbc 92 uint32_t TriggerMode; /*!< Selects the trigger mode of the comparator (interrupt mode).
AnnaBridge 171:3a7713b1edbc 93 This parameter can be a value of @ref COMP_TriggerMode */
AnnaBridge 171:3a7713b1edbc 94
AnnaBridge 171:3a7713b1edbc 95 }COMP_InitTypeDef;
AnnaBridge 171:3a7713b1edbc 96
AnnaBridge 171:3a7713b1edbc 97 /**
AnnaBridge 171:3a7713b1edbc 98 * @brief COMP Handle Structure definition
AnnaBridge 171:3a7713b1edbc 99 */
AnnaBridge 171:3a7713b1edbc 100 typedef struct
AnnaBridge 171:3a7713b1edbc 101 {
AnnaBridge 171:3a7713b1edbc 102 COMP_TypeDef *Instance; /*!< Register base address */
AnnaBridge 171:3a7713b1edbc 103 COMP_InitTypeDef Init; /*!< COMP required parameters */
AnnaBridge 171:3a7713b1edbc 104 HAL_LockTypeDef Lock; /*!< Locking object */
AnnaBridge 171:3a7713b1edbc 105 __IO uint32_t State; /*!< COMP communication state
AnnaBridge 171:3a7713b1edbc 106 This parameter can be a value of @ref COMP_State */
AnnaBridge 171:3a7713b1edbc 107 }COMP_HandleTypeDef;
AnnaBridge 171:3a7713b1edbc 108
AnnaBridge 171:3a7713b1edbc 109 /**
AnnaBridge 171:3a7713b1edbc 110 * @}
AnnaBridge 171:3a7713b1edbc 111 */
AnnaBridge 171:3a7713b1edbc 112
AnnaBridge 171:3a7713b1edbc 113 /* Exported constants --------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 114 /** @defgroup COMP_Exported_Constants COMP Exported Constants
AnnaBridge 171:3a7713b1edbc 115 * @{
AnnaBridge 171:3a7713b1edbc 116 */
AnnaBridge 171:3a7713b1edbc 117
AnnaBridge 171:3a7713b1edbc 118 /** @defgroup COMP_State COMP State
AnnaBridge 171:3a7713b1edbc 119 * @{
AnnaBridge 171:3a7713b1edbc 120 */
AnnaBridge 171:3a7713b1edbc 121 #define HAL_COMP_STATE_RESET (0x00000000U) /*!< COMP not yet initialized or disabled */
AnnaBridge 171:3a7713b1edbc 122 #define HAL_COMP_STATE_READY (0x00000001U) /*!< COMP initialized and ready for use */
AnnaBridge 171:3a7713b1edbc 123 #define HAL_COMP_STATE_READY_LOCKED (0x00000011U) /*!< COMP initialized but the configuration is locked */
AnnaBridge 171:3a7713b1edbc 124 #define HAL_COMP_STATE_BUSY (0x00000002U) /*!< COMP is running */
AnnaBridge 171:3a7713b1edbc 125 #define HAL_COMP_STATE_BUSY_LOCKED (0x00000012U) /*!< COMP is running and the configuration is locked */
AnnaBridge 171:3a7713b1edbc 126 /**
AnnaBridge 171:3a7713b1edbc 127 * @}
AnnaBridge 171:3a7713b1edbc 128 */
AnnaBridge 171:3a7713b1edbc 129
AnnaBridge 171:3a7713b1edbc 130 /** @defgroup COMP_OutputPolarity COMP OutputPolarity
AnnaBridge 171:3a7713b1edbc 131 * @{
AnnaBridge 171:3a7713b1edbc 132 */
AnnaBridge 171:3a7713b1edbc 133 #define COMP_OUTPUTPOL_NONINVERTED (0x00000000U) /*!< COMP output on GPIO isn't inverted */
AnnaBridge 171:3a7713b1edbc 134 #define COMP_OUTPUTPOL_INVERTED COMP_CSR_COMP1POL /*!< COMP output on GPIO is inverted */
AnnaBridge 171:3a7713b1edbc 135 /**
AnnaBridge 171:3a7713b1edbc 136 * @}
AnnaBridge 171:3a7713b1edbc 137 */
AnnaBridge 171:3a7713b1edbc 138
AnnaBridge 171:3a7713b1edbc 139 /** @defgroup COMP_Hysteresis COMP Hysteresis
AnnaBridge 171:3a7713b1edbc 140 * @{
AnnaBridge 171:3a7713b1edbc 141 */
AnnaBridge 171:3a7713b1edbc 142 #define COMP_HYSTERESIS_NONE (0x00000000U) /*!< No hysteresis */
AnnaBridge 171:3a7713b1edbc 143 #define COMP_HYSTERESIS_LOW COMP_CSR_COMP1HYST_0 /*!< Hysteresis level low */
AnnaBridge 171:3a7713b1edbc 144 #define COMP_HYSTERESIS_MEDIUM COMP_CSR_COMP1HYST_1 /*!< Hysteresis level medium */
AnnaBridge 171:3a7713b1edbc 145 #define COMP_HYSTERESIS_HIGH COMP_CSR_COMP1HYST /*!< Hysteresis level high */
AnnaBridge 171:3a7713b1edbc 146 /**
AnnaBridge 171:3a7713b1edbc 147 * @}
AnnaBridge 171:3a7713b1edbc 148 */
AnnaBridge 171:3a7713b1edbc 149
AnnaBridge 171:3a7713b1edbc 150 /** @defgroup COMP_Mode COMP Mode
AnnaBridge 171:3a7713b1edbc 151 * @{
AnnaBridge 171:3a7713b1edbc 152 */
AnnaBridge 171:3a7713b1edbc 153 /* Please refer to the electrical characteristics in the device datasheet for
AnnaBridge 171:3a7713b1edbc 154 the power consumption values */
AnnaBridge 171:3a7713b1edbc 155 #define COMP_MODE_HIGHSPEED (0x00000000U) /*!< High Speed */
AnnaBridge 171:3a7713b1edbc 156 #define COMP_MODE_MEDIUMSPEED COMP_CSR_COMP1MODE_0 /*!< Medium Speed */
AnnaBridge 171:3a7713b1edbc 157 #define COMP_MODE_LOWPOWER COMP_CSR_COMP1MODE_1 /*!< Low power mode */
AnnaBridge 171:3a7713b1edbc 158 #define COMP_MODE_ULTRALOWPOWER COMP_CSR_COMP1MODE /*!< Ultra-low power mode */
AnnaBridge 171:3a7713b1edbc 159 /**
AnnaBridge 171:3a7713b1edbc 160 * @}
AnnaBridge 171:3a7713b1edbc 161 */
AnnaBridge 171:3a7713b1edbc 162
AnnaBridge 171:3a7713b1edbc 163 /** @defgroup COMP_InvertingInput COMP InvertingInput
AnnaBridge 171:3a7713b1edbc 164 * @{
AnnaBridge 171:3a7713b1edbc 165 */
AnnaBridge 171:3a7713b1edbc 166
AnnaBridge 171:3a7713b1edbc 167 #define COMP_INVERTINGINPUT_1_4VREFINT (0x00000000U) /*!< 1/4 VREFINT connected to comparator inverting input */
AnnaBridge 171:3a7713b1edbc 168 #define COMP_INVERTINGINPUT_1_2VREFINT COMP_CSR_COMP1INSEL_0 /*!< 1/2 VREFINT connected to comparator inverting input */
AnnaBridge 171:3a7713b1edbc 169 #define COMP_INVERTINGINPUT_3_4VREFINT COMP_CSR_COMP1INSEL_1 /*!< 3/4 VREFINT connected to comparator inverting input */
AnnaBridge 171:3a7713b1edbc 170 #define COMP_INVERTINGINPUT_VREFINT (COMP_CSR_COMP1INSEL_1|COMP_CSR_COMP1INSEL_0) /*!< VREFINT connected to comparator inverting input */
AnnaBridge 171:3a7713b1edbc 171 #define COMP_INVERTINGINPUT_DAC1 COMP_CSR_COMP1INSEL_2 /*!< DAC_OUT1 (PA4) connected to comparator inverting input */
AnnaBridge 171:3a7713b1edbc 172 #define COMP_INVERTINGINPUT_DAC1SWITCHCLOSED (COMP_CSR_COMP1INSEL_2|COMP_CSR_COMP1SW1) /*!< DAC_OUT1 (PA4) connected to comparator inverting input
AnnaBridge 171:3a7713b1edbc 173 and close switch (PA0 for COMP1 only) */
AnnaBridge 171:3a7713b1edbc 174 #define COMP_INVERTINGINPUT_DAC2 (COMP_CSR_COMP1INSEL_2|COMP_CSR_COMP1INSEL_0) /*!< DAC_OUT2 (PA5) connected to comparator inverting input */
AnnaBridge 171:3a7713b1edbc 175 #define COMP_INVERTINGINPUT_IO1 (COMP_CSR_COMP1INSEL_2|COMP_CSR_COMP1INSEL_1) /*!< IO (PA0 for COMP1 and PA2 for COMP2) connected to comparator inverting input */
AnnaBridge 171:3a7713b1edbc 176 /**
AnnaBridge 171:3a7713b1edbc 177 * @}
AnnaBridge 171:3a7713b1edbc 178 */
AnnaBridge 171:3a7713b1edbc 179
AnnaBridge 171:3a7713b1edbc 180 /** @defgroup COMP_NonInvertingInput COMP NonInvertingInput
AnnaBridge 171:3a7713b1edbc 181 * @{
AnnaBridge 171:3a7713b1edbc 182 */
AnnaBridge 171:3a7713b1edbc 183 #define COMP_NONINVERTINGINPUT_IO1 (0x00000000U) /*!< I/O1 (PA1 for COMP1, PA3 for COMP2)
AnnaBridge 171:3a7713b1edbc 184 connected to comparator non inverting input */
AnnaBridge 171:3a7713b1edbc 185 #define COMP_NONINVERTINGINPUT_DAC1SWITCHCLOSED COMP_CSR_COMP1SW1 /*!< DAC ouput connected to comparator COMP1 non inverting input */
AnnaBridge 171:3a7713b1edbc 186 /**
AnnaBridge 171:3a7713b1edbc 187 * @}
AnnaBridge 171:3a7713b1edbc 188 */
AnnaBridge 171:3a7713b1edbc 189
AnnaBridge 171:3a7713b1edbc 190 /** @defgroup COMP_Output COMP Output
AnnaBridge 171:3a7713b1edbc 191 * @{
AnnaBridge 171:3a7713b1edbc 192 */
AnnaBridge 171:3a7713b1edbc 193
AnnaBridge 171:3a7713b1edbc 194 /* Output Redirection common for COMP1 and COMP2 */
AnnaBridge 171:3a7713b1edbc 195 #define COMP_OUTPUT_NONE (0x00000000U) /*!< COMP output isn't connected to other peripherals */
AnnaBridge 171:3a7713b1edbc 196 #define COMP_OUTPUT_TIM1BKIN COMP_CSR_COMP1OUTSEL_0 /*!< COMP output connected to TIM1 Break Input (BKIN) */
AnnaBridge 171:3a7713b1edbc 197 #define COMP_OUTPUT_TIM1IC1 COMP_CSR_COMP1OUTSEL_1 /*!< COMP output connected to TIM1 Input Capture 1 */
AnnaBridge 171:3a7713b1edbc 198 #define COMP_OUTPUT_TIM1OCREFCLR (COMP_CSR_COMP1OUTSEL_1|COMP_CSR_COMP1OUTSEL_0) /*!< COMP output connected to TIM1 OCREF Clear */
AnnaBridge 171:3a7713b1edbc 199 #define COMP_OUTPUT_TIM2IC4 COMP_CSR_COMP1OUTSEL_2 /*!< COMP output connected to TIM2 Input Capture 4 */
AnnaBridge 171:3a7713b1edbc 200 #define COMP_OUTPUT_TIM2OCREFCLR (COMP_CSR_COMP1OUTSEL_2|COMP_CSR_COMP1OUTSEL_0) /*!< COMP output connected to TIM2 OCREF Clear */
AnnaBridge 171:3a7713b1edbc 201 #define COMP_OUTPUT_TIM3IC1 (COMP_CSR_COMP1OUTSEL_2|COMP_CSR_COMP1OUTSEL_1) /*!< COMP output connected to TIM3 Input Capture 1 */
AnnaBridge 171:3a7713b1edbc 202 #define COMP_OUTPUT_TIM3OCREFCLR COMP_CSR_COMP1OUTSEL /*!< COMP output connected to TIM3 OCREF Clear */
AnnaBridge 171:3a7713b1edbc 203 /**
AnnaBridge 171:3a7713b1edbc 204 * @}
AnnaBridge 171:3a7713b1edbc 205 */
AnnaBridge 171:3a7713b1edbc 206
AnnaBridge 171:3a7713b1edbc 207 /** @defgroup COMP_OutputLevel COMP OutputLevel
AnnaBridge 171:3a7713b1edbc 208 * @{
AnnaBridge 171:3a7713b1edbc 209 */
AnnaBridge 171:3a7713b1edbc 210 /* When output polarity is not inverted, comparator output is low when
AnnaBridge 171:3a7713b1edbc 211 the non-inverting input is at a lower voltage than the inverting input*/
AnnaBridge 171:3a7713b1edbc 212 #define COMP_OUTPUTLEVEL_LOW (0x00000000U)
AnnaBridge 171:3a7713b1edbc 213 /* When output polarity is not inverted, comparator output is high when
AnnaBridge 171:3a7713b1edbc 214 the non-inverting input is at a higher voltage than the inverting input */
AnnaBridge 171:3a7713b1edbc 215 #define COMP_OUTPUTLEVEL_HIGH COMP_CSR_COMP1OUT
AnnaBridge 171:3a7713b1edbc 216 /**
AnnaBridge 171:3a7713b1edbc 217 * @}
AnnaBridge 171:3a7713b1edbc 218 */
AnnaBridge 171:3a7713b1edbc 219
AnnaBridge 171:3a7713b1edbc 220 /** @defgroup COMP_TriggerMode COMP TriggerMode
AnnaBridge 171:3a7713b1edbc 221 * @{
AnnaBridge 171:3a7713b1edbc 222 */
AnnaBridge 171:3a7713b1edbc 223 #define COMP_TRIGGERMODE_NONE (0x00000000U) /*!< No External Interrupt trigger detection */
AnnaBridge 171:3a7713b1edbc 224 #define COMP_TRIGGERMODE_IT_RISING (0x00000001U) /*!< External Interrupt Mode with Rising edge trigger detection */
AnnaBridge 171:3a7713b1edbc 225 #define COMP_TRIGGERMODE_IT_FALLING (0x00000002U) /*!< External Interrupt Mode with Falling edge trigger detection */
AnnaBridge 171:3a7713b1edbc 226 #define COMP_TRIGGERMODE_IT_RISING_FALLING (0x00000003U) /*!< External Interrupt Mode with Rising/Falling edge trigger detection */
AnnaBridge 171:3a7713b1edbc 227 #define COMP_TRIGGERMODE_EVENT_RISING (0x00000010U) /*!< Event Mode with Rising edge trigger detection */
AnnaBridge 171:3a7713b1edbc 228 #define COMP_TRIGGERMODE_EVENT_FALLING (0x00000020U) /*!< Event Mode with Falling edge trigger detection */
AnnaBridge 171:3a7713b1edbc 229 #define COMP_TRIGGERMODE_EVENT_RISING_FALLING (0x00000030U) /*!< Event Mode with Rising/Falling edge trigger detection */
AnnaBridge 171:3a7713b1edbc 230 /**
AnnaBridge 171:3a7713b1edbc 231 * @}
AnnaBridge 171:3a7713b1edbc 232 */
AnnaBridge 171:3a7713b1edbc 233
AnnaBridge 171:3a7713b1edbc 234 /** @defgroup COMP_WindowMode COMP WindowMode
AnnaBridge 171:3a7713b1edbc 235 * @{
AnnaBridge 171:3a7713b1edbc 236 */
AnnaBridge 171:3a7713b1edbc 237 #define COMP_WINDOWMODE_DISABLE (0x00000000U) /*!< Window mode disabled */
AnnaBridge 171:3a7713b1edbc 238 #define COMP_WINDOWMODE_ENABLE COMP_CSR_WNDWEN /*!< Window mode enabled: non inverting input of comparator 2
AnnaBridge 171:3a7713b1edbc 239 is connected to the non inverting input of comparator 1 (PA1) */
AnnaBridge 171:3a7713b1edbc 240 /**
AnnaBridge 171:3a7713b1edbc 241 * @}
AnnaBridge 171:3a7713b1edbc 242 */
AnnaBridge 171:3a7713b1edbc 243
AnnaBridge 171:3a7713b1edbc 244 /** @defgroup COMP_Flag COMP Flag
AnnaBridge 171:3a7713b1edbc 245 * @{
AnnaBridge 171:3a7713b1edbc 246 */
AnnaBridge 171:3a7713b1edbc 247 #define COMP_FLAG_LOCK ((uint32_t)COMP_CSR_COMPxLOCK) /*!< Lock flag */
AnnaBridge 171:3a7713b1edbc 248
AnnaBridge 171:3a7713b1edbc 249 /**
AnnaBridge 171:3a7713b1edbc 250 * @}
AnnaBridge 171:3a7713b1edbc 251 */
AnnaBridge 171:3a7713b1edbc 252
AnnaBridge 171:3a7713b1edbc 253 /**
AnnaBridge 171:3a7713b1edbc 254 * @}
AnnaBridge 171:3a7713b1edbc 255 */
AnnaBridge 171:3a7713b1edbc 256
AnnaBridge 171:3a7713b1edbc 257 /* Exported macros -----------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 258 /** @defgroup COMP_Exported_Macros COMP Exported Macros
AnnaBridge 171:3a7713b1edbc 259 * @{
AnnaBridge 171:3a7713b1edbc 260 */
AnnaBridge 171:3a7713b1edbc 261
AnnaBridge 171:3a7713b1edbc 262 /** @brief Reset COMP handle state
AnnaBridge 171:3a7713b1edbc 263 * @param __HANDLE__ COMP handle.
AnnaBridge 171:3a7713b1edbc 264 * @retval None
AnnaBridge 171:3a7713b1edbc 265 */
AnnaBridge 171:3a7713b1edbc 266 #define __HAL_COMP_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_COMP_STATE_RESET)
AnnaBridge 171:3a7713b1edbc 267
AnnaBridge 171:3a7713b1edbc 268 /**
AnnaBridge 171:3a7713b1edbc 269 * @brief Enable the specified comparator.
AnnaBridge 171:3a7713b1edbc 270 * @param __HANDLE__ COMP handle.
AnnaBridge 171:3a7713b1edbc 271 * @retval None
AnnaBridge 171:3a7713b1edbc 272 */
AnnaBridge 171:3a7713b1edbc 273 #define __HAL_COMP_ENABLE(__HANDLE__) (((__HANDLE__)->Instance == COMP1) ? \
AnnaBridge 171:3a7713b1edbc 274 SET_BIT(COMP->CSR, COMP_CSR_COMP1EN) : \
AnnaBridge 171:3a7713b1edbc 275 SET_BIT(COMP->CSR, COMP_CSR_COMP2EN))
AnnaBridge 171:3a7713b1edbc 276
AnnaBridge 171:3a7713b1edbc 277 /**
AnnaBridge 171:3a7713b1edbc 278 * @brief Disable the specified comparator.
AnnaBridge 171:3a7713b1edbc 279 * @param __HANDLE__ COMP handle.
AnnaBridge 171:3a7713b1edbc 280 * @retval None
AnnaBridge 171:3a7713b1edbc 281 */
AnnaBridge 171:3a7713b1edbc 282 #define __HAL_COMP_DISABLE(__HANDLE__) (((__HANDLE__)->Instance == COMP1) ? \
AnnaBridge 171:3a7713b1edbc 283 CLEAR_BIT(COMP->CSR, COMP_CSR_COMP1EN) : \
AnnaBridge 171:3a7713b1edbc 284 CLEAR_BIT(COMP->CSR, COMP_CSR_COMP2EN))
AnnaBridge 171:3a7713b1edbc 285
AnnaBridge 171:3a7713b1edbc 286 /**
AnnaBridge 171:3a7713b1edbc 287 * @brief Lock the specified comparator configuration.
AnnaBridge 171:3a7713b1edbc 288 * @param __HANDLE__ COMP handle.
AnnaBridge 171:3a7713b1edbc 289 * @retval None
AnnaBridge 171:3a7713b1edbc 290 */
AnnaBridge 171:3a7713b1edbc 291 #define __HAL_COMP_LOCK(__HANDLE__) (((__HANDLE__)->Instance == COMP1) ? \
AnnaBridge 171:3a7713b1edbc 292 SET_BIT(COMP->CSR, COMP_CSR_COMP1LOCK) : \
AnnaBridge 171:3a7713b1edbc 293 SET_BIT(COMP->CSR, COMP_CSR_COMP2LOCK))
AnnaBridge 171:3a7713b1edbc 294
AnnaBridge 171:3a7713b1edbc 295 /**
AnnaBridge 171:3a7713b1edbc 296 * @brief Enable the COMP1 EXTI line rising edge trigger.
AnnaBridge 171:3a7713b1edbc 297 * @retval None
AnnaBridge 171:3a7713b1edbc 298 */
AnnaBridge 171:3a7713b1edbc 299 #define __HAL_COMP_COMP1_EXTI_ENABLE_RISING_EDGE() SET_BIT(EXTI->RTSR, COMP_EXTI_LINE_COMP1)
AnnaBridge 171:3a7713b1edbc 300
AnnaBridge 171:3a7713b1edbc 301 /**
AnnaBridge 171:3a7713b1edbc 302 * @brief Disable the COMP1 EXTI line rising edge trigger.
AnnaBridge 171:3a7713b1edbc 303 * @retval None
AnnaBridge 171:3a7713b1edbc 304 */
AnnaBridge 171:3a7713b1edbc 305 #define __HAL_COMP_COMP1_EXTI_DISABLE_RISING_EDGE() CLEAR_BIT(EXTI->RTSR, COMP_EXTI_LINE_COMP1)
AnnaBridge 171:3a7713b1edbc 306
AnnaBridge 171:3a7713b1edbc 307 /**
AnnaBridge 171:3a7713b1edbc 308 * @brief Enable the COMP1 EXTI line falling edge trigger.
AnnaBridge 171:3a7713b1edbc 309 * @retval None
AnnaBridge 171:3a7713b1edbc 310 */
AnnaBridge 171:3a7713b1edbc 311 #define __HAL_COMP_COMP1_EXTI_ENABLE_FALLING_EDGE() SET_BIT(EXTI->FTSR, COMP_EXTI_LINE_COMP1)
AnnaBridge 171:3a7713b1edbc 312
AnnaBridge 171:3a7713b1edbc 313 /**
AnnaBridge 171:3a7713b1edbc 314 * @brief Disable the COMP1 EXTI line falling edge trigger.
AnnaBridge 171:3a7713b1edbc 315 * @retval None
AnnaBridge 171:3a7713b1edbc 316 */
AnnaBridge 171:3a7713b1edbc 317 #define __HAL_COMP_COMP1_EXTI_DISABLE_FALLING_EDGE() CLEAR_BIT(EXTI->FTSR, COMP_EXTI_LINE_COMP1)
AnnaBridge 171:3a7713b1edbc 318
AnnaBridge 171:3a7713b1edbc 319 /**
AnnaBridge 171:3a7713b1edbc 320 * @brief Enable the COMP1 EXTI line rising & falling edge trigger.
AnnaBridge 171:3a7713b1edbc 321 * @retval None
AnnaBridge 171:3a7713b1edbc 322 */
AnnaBridge 171:3a7713b1edbc 323 #define __HAL_COMP_COMP1_EXTI_ENABLE_RISING_FALLING_EDGE() do { \
AnnaBridge 171:3a7713b1edbc 324 __HAL_COMP_COMP1_EXTI_ENABLE_RISING_EDGE(); \
AnnaBridge 171:3a7713b1edbc 325 __HAL_COMP_COMP1_EXTI_ENABLE_FALLING_EDGE(); \
AnnaBridge 171:3a7713b1edbc 326 } while(0)
AnnaBridge 171:3a7713b1edbc 327
AnnaBridge 171:3a7713b1edbc 328 /**
AnnaBridge 171:3a7713b1edbc 329 * @brief Disable the COMP1 EXTI line rising & falling edge trigger.
AnnaBridge 171:3a7713b1edbc 330 * @retval None
AnnaBridge 171:3a7713b1edbc 331 */
AnnaBridge 171:3a7713b1edbc 332 #define __HAL_COMP_COMP1_EXTI_DISABLE_RISING_FALLING_EDGE() do { \
AnnaBridge 171:3a7713b1edbc 333 __HAL_COMP_COMP1_EXTI_DISABLE_RISING_EDGE(); \
AnnaBridge 171:3a7713b1edbc 334 __HAL_COMP_COMP1_EXTI_DISABLE_FALLING_EDGE(); \
AnnaBridge 171:3a7713b1edbc 335 } while(0)
AnnaBridge 171:3a7713b1edbc 336
AnnaBridge 171:3a7713b1edbc 337 /**
AnnaBridge 171:3a7713b1edbc 338 * @brief Enable the COMP1 EXTI line in interrupt mode.
AnnaBridge 171:3a7713b1edbc 339 * @retval None
AnnaBridge 171:3a7713b1edbc 340 */
AnnaBridge 171:3a7713b1edbc 341 #define __HAL_COMP_COMP1_EXTI_ENABLE_IT() SET_BIT(EXTI->IMR, COMP_EXTI_LINE_COMP1)
AnnaBridge 171:3a7713b1edbc 342
AnnaBridge 171:3a7713b1edbc 343 /**
AnnaBridge 171:3a7713b1edbc 344 * @brief Disable the COMP1 EXTI line in interrupt mode.
AnnaBridge 171:3a7713b1edbc 345 * @retval None
AnnaBridge 171:3a7713b1edbc 346 */
AnnaBridge 171:3a7713b1edbc 347 #define __HAL_COMP_COMP1_EXTI_DISABLE_IT() CLEAR_BIT(EXTI->IMR, COMP_EXTI_LINE_COMP1)
AnnaBridge 171:3a7713b1edbc 348
AnnaBridge 171:3a7713b1edbc 349 /**
AnnaBridge 171:3a7713b1edbc 350 * @brief Generate a software interrupt on the COMP1 EXTI line.
AnnaBridge 171:3a7713b1edbc 351 * @retval None
AnnaBridge 171:3a7713b1edbc 352 */
AnnaBridge 171:3a7713b1edbc 353 #define __HAL_COMP_COMP1_EXTI_GENERATE_SWIT() SET_BIT(EXTI->SWIER, COMP_EXTI_LINE_COMP1)
AnnaBridge 171:3a7713b1edbc 354
AnnaBridge 171:3a7713b1edbc 355 /**
AnnaBridge 171:3a7713b1edbc 356 * @brief Enable the COMP1 EXTI Line in event mode.
AnnaBridge 171:3a7713b1edbc 357 * @retval None
AnnaBridge 171:3a7713b1edbc 358 */
AnnaBridge 171:3a7713b1edbc 359 #define __HAL_COMP_COMP1_EXTI_ENABLE_EVENT() SET_BIT(EXTI->EMR, COMP_EXTI_LINE_COMP1)
AnnaBridge 171:3a7713b1edbc 360
AnnaBridge 171:3a7713b1edbc 361 /**
AnnaBridge 171:3a7713b1edbc 362 * @brief Disable the COMP1 EXTI Line in event mode.
AnnaBridge 171:3a7713b1edbc 363 * @retval None
AnnaBridge 171:3a7713b1edbc 364 */
AnnaBridge 171:3a7713b1edbc 365 #define __HAL_COMP_COMP1_EXTI_DISABLE_EVENT() CLEAR_BIT(EXTI->EMR, COMP_EXTI_LINE_COMP1)
AnnaBridge 171:3a7713b1edbc 366
AnnaBridge 171:3a7713b1edbc 367 /**
AnnaBridge 171:3a7713b1edbc 368 * @brief Check whether the COMP1 EXTI line flag is set or not.
AnnaBridge 171:3a7713b1edbc 369 * @retval RESET or SET
AnnaBridge 171:3a7713b1edbc 370 */
AnnaBridge 171:3a7713b1edbc 371 #define __HAL_COMP_COMP1_EXTI_GET_FLAG() READ_BIT(EXTI->PR, COMP_EXTI_LINE_COMP1)
AnnaBridge 171:3a7713b1edbc 372
AnnaBridge 171:3a7713b1edbc 373 /**
AnnaBridge 171:3a7713b1edbc 374 * @brief Clear the COMP1 EXTI flag.
AnnaBridge 171:3a7713b1edbc 375 * @retval None
AnnaBridge 171:3a7713b1edbc 376 */
AnnaBridge 171:3a7713b1edbc 377 #define __HAL_COMP_COMP1_EXTI_CLEAR_FLAG() WRITE_REG(EXTI->PR, COMP_EXTI_LINE_COMP1)
AnnaBridge 171:3a7713b1edbc 378
AnnaBridge 171:3a7713b1edbc 379 /**
AnnaBridge 171:3a7713b1edbc 380 * @brief Enable the COMP2 EXTI line rising edge trigger.
AnnaBridge 171:3a7713b1edbc 381 * @retval None
AnnaBridge 171:3a7713b1edbc 382 */
AnnaBridge 171:3a7713b1edbc 383 #define __HAL_COMP_COMP2_EXTI_ENABLE_RISING_EDGE() SET_BIT(EXTI->RTSR, COMP_EXTI_LINE_COMP2)
AnnaBridge 171:3a7713b1edbc 384
AnnaBridge 171:3a7713b1edbc 385 /**
AnnaBridge 171:3a7713b1edbc 386 * @brief Disable the COMP2 EXTI line rising edge trigger.
AnnaBridge 171:3a7713b1edbc 387 * @retval None
AnnaBridge 171:3a7713b1edbc 388 */
AnnaBridge 171:3a7713b1edbc 389 #define __HAL_COMP_COMP2_EXTI_DISABLE_RISING_EDGE() CLEAR_BIT(EXTI->RTSR, COMP_EXTI_LINE_COMP2)
AnnaBridge 171:3a7713b1edbc 390
AnnaBridge 171:3a7713b1edbc 391 /**
AnnaBridge 171:3a7713b1edbc 392 * @brief Enable the COMP2 EXTI line falling edge trigger.
AnnaBridge 171:3a7713b1edbc 393 * @retval None
AnnaBridge 171:3a7713b1edbc 394 */
AnnaBridge 171:3a7713b1edbc 395 #define __HAL_COMP_COMP2_EXTI_ENABLE_FALLING_EDGE() SET_BIT(EXTI->FTSR, COMP_EXTI_LINE_COMP2)
AnnaBridge 171:3a7713b1edbc 396
AnnaBridge 171:3a7713b1edbc 397 /**
AnnaBridge 171:3a7713b1edbc 398 * @brief Disable the COMP2 EXTI line falling edge trigger.
AnnaBridge 171:3a7713b1edbc 399 * @retval None
AnnaBridge 171:3a7713b1edbc 400 */
AnnaBridge 171:3a7713b1edbc 401 #define __HAL_COMP_COMP2_EXTI_DISABLE_FALLING_EDGE() CLEAR_BIT(EXTI->FTSR, COMP_EXTI_LINE_COMP2)
AnnaBridge 171:3a7713b1edbc 402
AnnaBridge 171:3a7713b1edbc 403 /**
AnnaBridge 171:3a7713b1edbc 404 * @brief Enable the COMP2 EXTI line rising & falling edge trigger.
AnnaBridge 171:3a7713b1edbc 405 * @retval None
AnnaBridge 171:3a7713b1edbc 406 */
AnnaBridge 171:3a7713b1edbc 407 #define __HAL_COMP_COMP2_EXTI_ENABLE_RISING_FALLING_EDGE() do { \
AnnaBridge 171:3a7713b1edbc 408 __HAL_COMP_COMP2_EXTI_ENABLE_RISING_EDGE(); \
AnnaBridge 171:3a7713b1edbc 409 __HAL_COMP_COMP2_EXTI_ENABLE_FALLING_EDGE(); \
AnnaBridge 171:3a7713b1edbc 410 } while(0)
AnnaBridge 171:3a7713b1edbc 411
AnnaBridge 171:3a7713b1edbc 412 /**
AnnaBridge 171:3a7713b1edbc 413 * @brief Disable the COMP2 EXTI line rising & falling edge trigger.
AnnaBridge 171:3a7713b1edbc 414 * @retval None
AnnaBridge 171:3a7713b1edbc 415 */
AnnaBridge 171:3a7713b1edbc 416 #define __HAL_COMP_COMP2_EXTI_DISABLE_RISING_FALLING_EDGE() do { \
AnnaBridge 171:3a7713b1edbc 417 __HAL_COMP_COMP2_EXTI_DISABLE_RISING_EDGE(); \
AnnaBridge 171:3a7713b1edbc 418 __HAL_COMP_COMP2_EXTI_DISABLE_FALLING_EDGE(); \
AnnaBridge 171:3a7713b1edbc 419 } while(0)
AnnaBridge 171:3a7713b1edbc 420
AnnaBridge 171:3a7713b1edbc 421 /**
AnnaBridge 171:3a7713b1edbc 422 * @brief Enable the COMP2 EXTI line in interrupt mode.
AnnaBridge 171:3a7713b1edbc 423 * @retval None
AnnaBridge 171:3a7713b1edbc 424 */
AnnaBridge 171:3a7713b1edbc 425 #define __HAL_COMP_COMP2_EXTI_ENABLE_IT() SET_BIT(EXTI->IMR, COMP_EXTI_LINE_COMP2)
AnnaBridge 171:3a7713b1edbc 426
AnnaBridge 171:3a7713b1edbc 427 /**
AnnaBridge 171:3a7713b1edbc 428 * @brief Disable the COMP2 EXTI line in interrupt mode.
AnnaBridge 171:3a7713b1edbc 429 * @retval None
AnnaBridge 171:3a7713b1edbc 430 */
AnnaBridge 171:3a7713b1edbc 431 #define __HAL_COMP_COMP2_EXTI_DISABLE_IT() CLEAR_BIT(EXTI->IMR, COMP_EXTI_LINE_COMP2)
AnnaBridge 171:3a7713b1edbc 432
AnnaBridge 171:3a7713b1edbc 433 /**
AnnaBridge 171:3a7713b1edbc 434 * @brief Generate a software interrupt on the COMP2 EXTI line.
AnnaBridge 171:3a7713b1edbc 435 * @retval None
AnnaBridge 171:3a7713b1edbc 436 */
AnnaBridge 171:3a7713b1edbc 437 #define __HAL_COMP_COMP2_EXTI_GENERATE_SWIT() SET_BIT(EXTI->SWIER, COMP_EXTI_LINE_COMP2)
AnnaBridge 171:3a7713b1edbc 438
AnnaBridge 171:3a7713b1edbc 439 /**
AnnaBridge 171:3a7713b1edbc 440 * @brief Enable the COMP2 EXTI Line in event mode.
AnnaBridge 171:3a7713b1edbc 441 * @retval None
AnnaBridge 171:3a7713b1edbc 442 */
AnnaBridge 171:3a7713b1edbc 443 #define __HAL_COMP_COMP2_EXTI_ENABLE_EVENT() SET_BIT(EXTI->EMR, COMP_EXTI_LINE_COMP2)
AnnaBridge 171:3a7713b1edbc 444
AnnaBridge 171:3a7713b1edbc 445 /**
AnnaBridge 171:3a7713b1edbc 446 * @brief Disable the COMP2 EXTI Line in event mode.
AnnaBridge 171:3a7713b1edbc 447 * @retval None
AnnaBridge 171:3a7713b1edbc 448 */
AnnaBridge 171:3a7713b1edbc 449 #define __HAL_COMP_COMP2_EXTI_DISABLE_EVENT() CLEAR_BIT(EXTI->EMR, COMP_EXTI_LINE_COMP2)
AnnaBridge 171:3a7713b1edbc 450
AnnaBridge 171:3a7713b1edbc 451 /**
AnnaBridge 171:3a7713b1edbc 452 * @brief Check whether the COMP2 EXTI line flag is set or not.
AnnaBridge 171:3a7713b1edbc 453 * @retval RESET or SET
AnnaBridge 171:3a7713b1edbc 454 */
AnnaBridge 171:3a7713b1edbc 455 #define __HAL_COMP_COMP2_EXTI_GET_FLAG() READ_BIT(EXTI->PR, COMP_EXTI_LINE_COMP2)
AnnaBridge 171:3a7713b1edbc 456
AnnaBridge 171:3a7713b1edbc 457 /**
AnnaBridge 171:3a7713b1edbc 458 * @brief Clear the COMP2 EXTI flag.
AnnaBridge 171:3a7713b1edbc 459 * @retval None
AnnaBridge 171:3a7713b1edbc 460 */
AnnaBridge 171:3a7713b1edbc 461 #define __HAL_COMP_COMP2_EXTI_CLEAR_FLAG() WRITE_REG(EXTI->PR, COMP_EXTI_LINE_COMP2)
AnnaBridge 171:3a7713b1edbc 462
AnnaBridge 171:3a7713b1edbc 463 /** @brief Check whether the specified COMP flag is set or not.
AnnaBridge 171:3a7713b1edbc 464 * @param __HANDLE__ specifies the COMP Handle.
AnnaBridge 171:3a7713b1edbc 465 * @param __FLAG__ specifies the flag to check.
AnnaBridge 171:3a7713b1edbc 466 * This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 467 * @arg COMP_FLAG_LOCK: lock flag
AnnaBridge 171:3a7713b1edbc 468 * @retval The new state of __FLAG__ (TRUE or FALSE).
AnnaBridge 171:3a7713b1edbc 469 */
AnnaBridge 171:3a7713b1edbc 470 #define __HAL_COMP_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->CSR & (__FLAG__)) == (__FLAG__))
AnnaBridge 171:3a7713b1edbc 471
AnnaBridge 171:3a7713b1edbc 472 /**
AnnaBridge 171:3a7713b1edbc 473 * @}
AnnaBridge 171:3a7713b1edbc 474 */
AnnaBridge 171:3a7713b1edbc 475
AnnaBridge 171:3a7713b1edbc 476 /* Exported functions --------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 477 /** @addtogroup COMP_Exported_Functions COMP Exported Functions
AnnaBridge 171:3a7713b1edbc 478 * @{
AnnaBridge 171:3a7713b1edbc 479 */
AnnaBridge 171:3a7713b1edbc 480 /** @addtogroup COMP_Exported_Functions_Group1 Initialization/de-initialization functions
AnnaBridge 171:3a7713b1edbc 481 * @brief Initialization and Configuration functions
AnnaBridge 171:3a7713b1edbc 482 * @{
AnnaBridge 171:3a7713b1edbc 483 */
AnnaBridge 171:3a7713b1edbc 484 /* Initialization and de-initialization functions ****************************/
AnnaBridge 171:3a7713b1edbc 485 HAL_StatusTypeDef HAL_COMP_Init(COMP_HandleTypeDef *hcomp);
AnnaBridge 171:3a7713b1edbc 486 HAL_StatusTypeDef HAL_COMP_DeInit (COMP_HandleTypeDef *hcomp);
AnnaBridge 171:3a7713b1edbc 487 void HAL_COMP_MspInit(COMP_HandleTypeDef *hcomp);
AnnaBridge 171:3a7713b1edbc 488 void HAL_COMP_MspDeInit(COMP_HandleTypeDef *hcomp);
AnnaBridge 171:3a7713b1edbc 489 /**
AnnaBridge 171:3a7713b1edbc 490 * @}
AnnaBridge 171:3a7713b1edbc 491 */
AnnaBridge 171:3a7713b1edbc 492
AnnaBridge 171:3a7713b1edbc 493 /** @addtogroup COMP_Exported_Functions_Group2 I/O operation functions
AnnaBridge 171:3a7713b1edbc 494 * @brief Data transfers functions
AnnaBridge 171:3a7713b1edbc 495 * @{
AnnaBridge 171:3a7713b1edbc 496 */
AnnaBridge 171:3a7713b1edbc 497 /* IO operation functions *****************************************************/
AnnaBridge 171:3a7713b1edbc 498 HAL_StatusTypeDef HAL_COMP_Start(COMP_HandleTypeDef *hcomp);
AnnaBridge 171:3a7713b1edbc 499 HAL_StatusTypeDef HAL_COMP_Stop(COMP_HandleTypeDef *hcomp);
AnnaBridge 171:3a7713b1edbc 500 HAL_StatusTypeDef HAL_COMP_Start_IT(COMP_HandleTypeDef *hcomp);
AnnaBridge 171:3a7713b1edbc 501 HAL_StatusTypeDef HAL_COMP_Stop_IT(COMP_HandleTypeDef *hcomp);
AnnaBridge 171:3a7713b1edbc 502 void HAL_COMP_IRQHandler(COMP_HandleTypeDef *hcomp);
AnnaBridge 171:3a7713b1edbc 503 /**
AnnaBridge 171:3a7713b1edbc 504 * @}
AnnaBridge 171:3a7713b1edbc 505 */
AnnaBridge 171:3a7713b1edbc 506
AnnaBridge 171:3a7713b1edbc 507 /** @addtogroup COMP_Exported_Functions_Group3 Peripheral Control functions
AnnaBridge 171:3a7713b1edbc 508 * @brief management functions
AnnaBridge 171:3a7713b1edbc 509 * @{
AnnaBridge 171:3a7713b1edbc 510 */
AnnaBridge 171:3a7713b1edbc 511 /* Peripheral Control functions ***********************************************/
AnnaBridge 171:3a7713b1edbc 512 HAL_StatusTypeDef HAL_COMP_Lock(COMP_HandleTypeDef *hcomp);
AnnaBridge 171:3a7713b1edbc 513 uint32_t HAL_COMP_GetOutputLevel(COMP_HandleTypeDef *hcomp);
AnnaBridge 171:3a7713b1edbc 514
AnnaBridge 171:3a7713b1edbc 515 /* Callback in Interrupt mode */
AnnaBridge 171:3a7713b1edbc 516 void HAL_COMP_TriggerCallback(COMP_HandleTypeDef *hcomp);
AnnaBridge 171:3a7713b1edbc 517 /**
AnnaBridge 171:3a7713b1edbc 518 * @}
AnnaBridge 171:3a7713b1edbc 519 */
AnnaBridge 171:3a7713b1edbc 520
AnnaBridge 171:3a7713b1edbc 521 /** @addtogroup COMP_Exported_Functions_Group4 Peripheral State functions
AnnaBridge 171:3a7713b1edbc 522 * @brief Peripheral State functions
AnnaBridge 171:3a7713b1edbc 523 * @{
AnnaBridge 171:3a7713b1edbc 524 */
AnnaBridge 171:3a7713b1edbc 525 /* Peripheral State and Error functions ***************************************/
AnnaBridge 171:3a7713b1edbc 526 uint32_t HAL_COMP_GetState(COMP_HandleTypeDef *hcomp);
AnnaBridge 171:3a7713b1edbc 527 /**
AnnaBridge 171:3a7713b1edbc 528 * @}
AnnaBridge 171:3a7713b1edbc 529 */
AnnaBridge 171:3a7713b1edbc 530
AnnaBridge 171:3a7713b1edbc 531 /**
AnnaBridge 171:3a7713b1edbc 532 * @}
AnnaBridge 171:3a7713b1edbc 533 */
AnnaBridge 171:3a7713b1edbc 534
AnnaBridge 171:3a7713b1edbc 535 /* Private types -------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 536 /* Private constants ---------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 537 /** @defgroup COMP_Private_Constants COMP Private Constants
AnnaBridge 171:3a7713b1edbc 538 * @{
AnnaBridge 171:3a7713b1edbc 539 */
AnnaBridge 171:3a7713b1edbc 540 /** @defgroup COMP_ExtiLine COMP EXTI Lines
AnnaBridge 171:3a7713b1edbc 541 * Elements values convention: XXXX0000
AnnaBridge 171:3a7713b1edbc 542 * - XXXX : Interrupt mask in the EMR/IMR/RTSR/FTSR register
AnnaBridge 171:3a7713b1edbc 543 * @{
AnnaBridge 171:3a7713b1edbc 544 */
AnnaBridge 171:3a7713b1edbc 545 #define COMP_EXTI_LINE_COMP1 ((uint32_t)EXTI_IMR_MR21) /*!< EXTI line 21 connected to COMP1 output */
AnnaBridge 171:3a7713b1edbc 546 #define COMP_EXTI_LINE_COMP2 ((uint32_t)EXTI_IMR_MR22) /*!< EXTI line 22 connected to COMP2 output */
AnnaBridge 171:3a7713b1edbc 547
AnnaBridge 171:3a7713b1edbc 548 /**
AnnaBridge 171:3a7713b1edbc 549 * @}
AnnaBridge 171:3a7713b1edbc 550 */
AnnaBridge 171:3a7713b1edbc 551
AnnaBridge 171:3a7713b1edbc 552 /**
AnnaBridge 171:3a7713b1edbc 553 * @}
AnnaBridge 171:3a7713b1edbc 554 */
AnnaBridge 171:3a7713b1edbc 555
AnnaBridge 171:3a7713b1edbc 556 /* Private macros ------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 557 /** @defgroup COMP_Private_Macros COMP Private Macros
AnnaBridge 171:3a7713b1edbc 558 * @{
AnnaBridge 171:3a7713b1edbc 559 */
AnnaBridge 171:3a7713b1edbc 560 /** @defgroup COMP_GET_EXTI_LINE COMP Private macros to get EXTI line associated with Comparators
AnnaBridge 171:3a7713b1edbc 561 * @{
AnnaBridge 171:3a7713b1edbc 562 */
AnnaBridge 171:3a7713b1edbc 563 /**
AnnaBridge 171:3a7713b1edbc 564 * @brief Get the specified EXTI line for a comparator instance.
AnnaBridge 171:3a7713b1edbc 565 * @param __INSTANCE__ specifies the COMP instance.
AnnaBridge 171:3a7713b1edbc 566 * @retval value of @ref COMP_ExtiLine
AnnaBridge 171:3a7713b1edbc 567 */
AnnaBridge 171:3a7713b1edbc 568 #define COMP_GET_EXTI_LINE(__INSTANCE__) (((__INSTANCE__) == COMP1) ? COMP_EXTI_LINE_COMP1 : \
AnnaBridge 171:3a7713b1edbc 569 COMP_EXTI_LINE_COMP2)
AnnaBridge 171:3a7713b1edbc 570 /**
AnnaBridge 171:3a7713b1edbc 571 * @}
AnnaBridge 171:3a7713b1edbc 572 */
AnnaBridge 171:3a7713b1edbc 573
AnnaBridge 171:3a7713b1edbc 574 /** @defgroup COMP_IS_COMP_Definitions COMP Private macros to check input parameters
AnnaBridge 171:3a7713b1edbc 575 * @{
AnnaBridge 171:3a7713b1edbc 576 */
AnnaBridge 171:3a7713b1edbc 577
AnnaBridge 171:3a7713b1edbc 578 #define IS_COMP_OUTPUTPOL(POL) (((POL) == COMP_OUTPUTPOL_NONINVERTED) || \
AnnaBridge 171:3a7713b1edbc 579 ((POL) == COMP_OUTPUTPOL_INVERTED))
AnnaBridge 171:3a7713b1edbc 580
AnnaBridge 171:3a7713b1edbc 581 #define IS_COMP_HYSTERESIS(HYSTERESIS) (((HYSTERESIS) == COMP_HYSTERESIS_NONE) || \
AnnaBridge 171:3a7713b1edbc 582 ((HYSTERESIS) == COMP_HYSTERESIS_LOW) || \
AnnaBridge 171:3a7713b1edbc 583 ((HYSTERESIS) == COMP_HYSTERESIS_MEDIUM) || \
AnnaBridge 171:3a7713b1edbc 584 ((HYSTERESIS) == COMP_HYSTERESIS_HIGH))
AnnaBridge 171:3a7713b1edbc 585
AnnaBridge 171:3a7713b1edbc 586 #define IS_COMP_MODE(MODE) (((MODE) == COMP_MODE_HIGHSPEED) || \
AnnaBridge 171:3a7713b1edbc 587 ((MODE) == COMP_MODE_MEDIUMSPEED) || \
AnnaBridge 171:3a7713b1edbc 588 ((MODE) == COMP_MODE_LOWPOWER) || \
AnnaBridge 171:3a7713b1edbc 589 ((MODE) == COMP_MODE_ULTRALOWPOWER))
AnnaBridge 171:3a7713b1edbc 590
AnnaBridge 171:3a7713b1edbc 591 #define IS_COMP_INVERTINGINPUT(INPUT) (((INPUT) == COMP_INVERTINGINPUT_1_4VREFINT) || \
AnnaBridge 171:3a7713b1edbc 592 ((INPUT) == COMP_INVERTINGINPUT_1_2VREFINT) || \
AnnaBridge 171:3a7713b1edbc 593 ((INPUT) == COMP_INVERTINGINPUT_3_4VREFINT) || \
AnnaBridge 171:3a7713b1edbc 594 ((INPUT) == COMP_INVERTINGINPUT_VREFINT) || \
AnnaBridge 171:3a7713b1edbc 595 ((INPUT) == COMP_INVERTINGINPUT_DAC1) || \
AnnaBridge 171:3a7713b1edbc 596 ((INPUT) == COMP_INVERTINGINPUT_DAC1SWITCHCLOSED) || \
AnnaBridge 171:3a7713b1edbc 597 ((INPUT) == COMP_INVERTINGINPUT_DAC2) || \
AnnaBridge 171:3a7713b1edbc 598 ((INPUT) == COMP_INVERTINGINPUT_IO1))
AnnaBridge 171:3a7713b1edbc 599
AnnaBridge 171:3a7713b1edbc 600 #define IS_COMP_NONINVERTINGINPUT(INPUT) (((INPUT) == COMP_NONINVERTINGINPUT_IO1) || \
AnnaBridge 171:3a7713b1edbc 601 ((INPUT) == COMP_NONINVERTINGINPUT_DAC1SWITCHCLOSED))
AnnaBridge 171:3a7713b1edbc 602
AnnaBridge 171:3a7713b1edbc 603 #define IS_COMP_OUTPUT(OUTPUT) (((OUTPUT) == COMP_OUTPUT_NONE) || \
AnnaBridge 171:3a7713b1edbc 604 ((OUTPUT) == COMP_OUTPUT_TIM1BKIN) || \
AnnaBridge 171:3a7713b1edbc 605 ((OUTPUT) == COMP_OUTPUT_TIM1IC1) || \
AnnaBridge 171:3a7713b1edbc 606 ((OUTPUT) == COMP_OUTPUT_TIM1OCREFCLR) || \
AnnaBridge 171:3a7713b1edbc 607 ((OUTPUT) == COMP_OUTPUT_TIM2IC4) || \
AnnaBridge 171:3a7713b1edbc 608 ((OUTPUT) == COMP_OUTPUT_TIM2OCREFCLR) || \
AnnaBridge 171:3a7713b1edbc 609 ((OUTPUT) == COMP_OUTPUT_TIM3IC1) || \
AnnaBridge 171:3a7713b1edbc 610 ((OUTPUT) == COMP_OUTPUT_TIM3OCREFCLR))
AnnaBridge 171:3a7713b1edbc 611
AnnaBridge 171:3a7713b1edbc 612 #define IS_COMP_WINDOWMODE(WINDOWMODE) (((WINDOWMODE) == COMP_WINDOWMODE_DISABLE) || \
AnnaBridge 171:3a7713b1edbc 613 ((WINDOWMODE) == COMP_WINDOWMODE_ENABLE))
AnnaBridge 171:3a7713b1edbc 614
AnnaBridge 171:3a7713b1edbc 615 #define IS_COMP_TRIGGERMODE(__MODE__) (((__MODE__) == COMP_TRIGGERMODE_NONE) || \
AnnaBridge 171:3a7713b1edbc 616 ((__MODE__) == COMP_TRIGGERMODE_IT_RISING) || \
AnnaBridge 171:3a7713b1edbc 617 ((__MODE__) == COMP_TRIGGERMODE_IT_FALLING) || \
AnnaBridge 171:3a7713b1edbc 618 ((__MODE__) == COMP_TRIGGERMODE_IT_RISING_FALLING) || \
AnnaBridge 171:3a7713b1edbc 619 ((__MODE__) == COMP_TRIGGERMODE_EVENT_RISING) || \
AnnaBridge 171:3a7713b1edbc 620 ((__MODE__) == COMP_TRIGGERMODE_EVENT_FALLING) || \
AnnaBridge 171:3a7713b1edbc 621 ((__MODE__) == COMP_TRIGGERMODE_EVENT_RISING_FALLING))
AnnaBridge 171:3a7713b1edbc 622 /**
AnnaBridge 171:3a7713b1edbc 623 * @}
AnnaBridge 171:3a7713b1edbc 624 */
AnnaBridge 171:3a7713b1edbc 625
AnnaBridge 171:3a7713b1edbc 626 /** @defgroup COMP_Lock COMP Lock
AnnaBridge 171:3a7713b1edbc 627 * @{
AnnaBridge 171:3a7713b1edbc 628 */
AnnaBridge 171:3a7713b1edbc 629 #define COMP_LOCK_DISABLE (0x00000000U)
AnnaBridge 171:3a7713b1edbc 630 #define COMP_LOCK_ENABLE COMP_CSR_COMP1LOCK
AnnaBridge 171:3a7713b1edbc 631
AnnaBridge 171:3a7713b1edbc 632 #define COMP_STATE_BIT_LOCK (0x10U)
AnnaBridge 171:3a7713b1edbc 633 /**
AnnaBridge 171:3a7713b1edbc 634 * @}
AnnaBridge 171:3a7713b1edbc 635 */
AnnaBridge 171:3a7713b1edbc 636
AnnaBridge 171:3a7713b1edbc 637 /**
AnnaBridge 171:3a7713b1edbc 638 * @}
AnnaBridge 171:3a7713b1edbc 639 */
AnnaBridge 171:3a7713b1edbc 640
AnnaBridge 171:3a7713b1edbc 641 /* Private functions ---------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 642
AnnaBridge 171:3a7713b1edbc 643 /**
AnnaBridge 171:3a7713b1edbc 644 * @}
AnnaBridge 171:3a7713b1edbc 645 */
AnnaBridge 171:3a7713b1edbc 646
AnnaBridge 171:3a7713b1edbc 647 /**
AnnaBridge 171:3a7713b1edbc 648 * @}
AnnaBridge 171:3a7713b1edbc 649 */
AnnaBridge 171:3a7713b1edbc 650
AnnaBridge 171:3a7713b1edbc 651 #endif /* STM32F051x8 || STM32F058xx || */
AnnaBridge 171:3a7713b1edbc 652 /* STM32F071xB || STM32F072xB || STM32F078xx || */
AnnaBridge 171:3a7713b1edbc 653 /* STM32F091xC || STM32F098xx */
AnnaBridge 171:3a7713b1edbc 654
AnnaBridge 171:3a7713b1edbc 655 #ifdef __cplusplus
AnnaBridge 171:3a7713b1edbc 656 }
AnnaBridge 171:3a7713b1edbc 657 #endif
AnnaBridge 171:3a7713b1edbc 658
AnnaBridge 171:3a7713b1edbc 659 #endif /* __STM32F0xx_HAL_COMP_H */
AnnaBridge 171:3a7713b1edbc 660
AnnaBridge 171:3a7713b1edbc 661 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
AnnaBridge 171:3a7713b1edbc 662