mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

This library was superseded by mbed-dev - https://os.mbed.com/users/mbed_official/code/mbed-dev/.

Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.

If you are looking for a stable and tested release, please import one of the official mbed library releases:

Import librarymbed

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

Committer:
mbed_official
Date:
Wed Jul 01 09:45:11 2015 +0100
Revision:
579:53297373a894
Parent:
489:119543c9f674
Synchronized with git revision d5b4d2ab9c47edb4dc5776e7177b0c2263459081

Full URL: https://github.com/mbedmicro/mbed/commit/d5b4d2ab9c47edb4dc5776e7177b0c2263459081/

Initial version of drivers for SAMR21

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 376:cb4d9db17537 1 /**
mbed_official 376:cb4d9db17537 2 ******************************************************************************
mbed_official 376:cb4d9db17537 3 * @file stm32l0xx_hal_comp.c
mbed_official 376:cb4d9db17537 4 * @author MCD Application Team
mbed_official 489:119543c9f674 5 * @version V1.2.0
mbed_official 489:119543c9f674 6 * @date 06-February-2015
mbed_official 376:cb4d9db17537 7 * @brief COMP HAL module driver.
mbed_official 376:cb4d9db17537 8 *
mbed_official 376:cb4d9db17537 9 * This file provides firmware functions to manage the following
mbed_official 376:cb4d9db17537 10 * functionalities of the COMP peripheral:
mbed_official 376:cb4d9db17537 11 * + Initialization/de-initialization functions
mbed_official 376:cb4d9db17537 12 * + I/O operation functions
mbed_official 376:cb4d9db17537 13 * + Peripheral Control functions
mbed_official 376:cb4d9db17537 14 * + Peripheral State functions
mbed_official 376:cb4d9db17537 15 *
mbed_official 376:cb4d9db17537 16 @verbatim
mbed_official 376:cb4d9db17537 17 ================================================================================
mbed_official 376:cb4d9db17537 18 ##### COMP Peripheral features #####
mbed_official 376:cb4d9db17537 19 ================================================================================
mbed_official 376:cb4d9db17537 20
mbed_official 376:cb4d9db17537 21 [..]
mbed_official 376:cb4d9db17537 22 The STM32L0xx device family integrates 2 analog comparators COMP1 and COMP2:
mbed_official 376:cb4d9db17537 23 (#) The non inverting input and inverting input can be set to GPIO pins
mbed_official 376:cb4d9db17537 24 as shown in table1. COMP Inputs below.
mbed_official 376:cb4d9db17537 25
mbed_official 376:cb4d9db17537 26 (#) The COMP output is available using HAL_COMP_GetOutputLevel()
mbed_official 376:cb4d9db17537 27 and can be set on GPIO pins. Refer to table 2. COMP Outputs below.
mbed_official 376:cb4d9db17537 28
mbed_official 376:cb4d9db17537 29 (#) The COMP output can be redirected to embedded timers (TIM2, TIM21, TIM22...) and LPTIM
mbed_official 376:cb4d9db17537 30 Refer to TIM and LPTIM drivers.
mbed_official 376:cb4d9db17537 31
mbed_official 376:cb4d9db17537 32 (#) The comparators COMP1 and COMP2 can be combined in window mode and only COMP2 non inverting input can be used as non-inverting input.
mbed_official 376:cb4d9db17537 33
mbed_official 376:cb4d9db17537 34 (#) The 2 comparators have interrupt capability with wake-up
mbed_official 376:cb4d9db17537 35 from Sleep and Stop modes (through the EXTI controller):
mbed_official 376:cb4d9db17537 36 (++) COMP1 is internally connected to EXTI Line 21
mbed_official 376:cb4d9db17537 37 (++) COMP2 is internally connected to EXTI Line 22
mbed_official 376:cb4d9db17537 38
mbed_official 376:cb4d9db17537 39 From the corresponding IRQ handler, the right interrupt source can be retrieved with the
mbed_official 376:cb4d9db17537 40 macro __HAL_COMP_EXTI_GET_FLAG(). Possible values are:
mbed_official 489:119543c9f674 41 (++) COMP_EXTI_LINE_COMP1
mbed_official 489:119543c9f674 42 (++) COMP_EXTI_LINE_COMP2
mbed_official 376:cb4d9db17537 43
mbed_official 376:cb4d9db17537 44
mbed_official 376:cb4d9db17537 45 [..] Table 1. COMP Inputs for the STM32L0xx devices
mbed_official 376:cb4d9db17537 46 +--------------------------------------------------+
mbed_official 376:cb4d9db17537 47 | | | COMP1 | COMP2 |
mbed_official 376:cb4d9db17537 48 |-----------------|----------------|---------------|
mbed_official 376:cb4d9db17537 49 | | 1/4 VREFINT | -- | OK |
mbed_official 376:cb4d9db17537 50 | | 1/2 VREFINT | -- | OK |
mbed_official 376:cb4d9db17537 51 | | 3/4 VREFINT | -- | OK |
mbed_official 376:cb4d9db17537 52 | Inverting Input | VREFINT | OK | OK |
mbed_official 376:cb4d9db17537 53 | | DAC OUT (PA4) | OK | OK |
mbed_official 376:cb4d9db17537 54 | | IO1 | PA0 | PA2 |
mbed_official 376:cb4d9db17537 55 | | IO2 | PA5 | PA5 |
mbed_official 376:cb4d9db17537 56 | | IO3 | --- | PB3 |
mbed_official 376:cb4d9db17537 57 |-----------------|----------------|-------|-------|
mbed_official 376:cb4d9db17537 58 | Non Inverting | IO1 | PA1 | PA3 |
mbed_official 376:cb4d9db17537 59 | Input | IO2 | --- | PB4 |
mbed_official 376:cb4d9db17537 60 | | IO3 | --- | PB5 |
mbed_official 376:cb4d9db17537 61 | | IO4 | --- | PB6 |
mbed_official 376:cb4d9db17537 62 | | IO5 | --- | PB7 |
mbed_official 376:cb4d9db17537 63 +--------------------------------------------------+
mbed_official 376:cb4d9db17537 64
mbed_official 376:cb4d9db17537 65 [..] Table 2. COMP Outputs for the STM32L0xx devices
mbed_official 376:cb4d9db17537 66 +---------------+
mbed_official 376:cb4d9db17537 67 | COMP1 | COMP2 |
mbed_official 376:cb4d9db17537 68 |-------|-------|
mbed_official 376:cb4d9db17537 69 | PA0 | PA2 |
mbed_official 376:cb4d9db17537 70 | PA6 | PA7 |
mbed_official 376:cb4d9db17537 71 | PA11 | PA12 |
mbed_official 376:cb4d9db17537 72 +---------------+
mbed_official 376:cb4d9db17537 73
mbed_official 376:cb4d9db17537 74
mbed_official 376:cb4d9db17537 75 ##### How to use this driver #####
mbed_official 376:cb4d9db17537 76 ================================================================================
mbed_official 376:cb4d9db17537 77 [..]
mbed_official 376:cb4d9db17537 78 This driver provides functions to configure and program the Comparators of all STM32L0xx devices.
mbed_official 376:cb4d9db17537 79
mbed_official 376:cb4d9db17537 80 To use the comparator, perform the following steps:
mbed_official 376:cb4d9db17537 81
mbed_official 376:cb4d9db17537 82 (#) Initialize the COMP low level resources by implementing the HAL_COMP_MspInit().
mbed_official 376:cb4d9db17537 83 (++) Configure the comparator input in analog mode using HAL_GPIO_Init().
mbed_official 376:cb4d9db17537 84 (++) Configure the comparator output in alternate function mode using HAL_GPIO_Init() to map the comparator
mbed_official 376:cb4d9db17537 85 output to the GPIO pin.
mbed_official 376:cb4d9db17537 86 (++) If required enable the VREFINT reference using HAL_VREFINT_Cmd() and HAL_COMP_EnableBuffer_Cmd().
mbed_official 376:cb4d9db17537 87 (++) If required enable the COMP interrupt by configuring and enabling EXTI line in Interrupt mode and
mbed_official 376:cb4d9db17537 88 selecting the desired sensitivity level using HAL_GPIO_Init() function. After that enable the comparator
mbed_official 376:cb4d9db17537 89 interrupt vector using HAL_NVIC_EnableIRQ() function.
mbed_official 376:cb4d9db17537 90
mbed_official 376:cb4d9db17537 91 (#) Configure the comparator using HAL_COMP_Init() function:
mbed_official 376:cb4d9db17537 92 (++) Select the inverting input
mbed_official 376:cb4d9db17537 93 (++) Select the non-inverting input
mbed_official 376:cb4d9db17537 94 (++) Select the output polarity
mbed_official 376:cb4d9db17537 95 (++) Select the power mode
mbed_official 376:cb4d9db17537 96 (++) Select the window mode
mbed_official 376:cb4d9db17537 97
mbed_official 376:cb4d9db17537 98 (#) Enable the comparator using HAL_COMP_Start() function
mbed_official 376:cb4d9db17537 99
mbed_official 376:cb4d9db17537 100 @endverbatim
mbed_official 376:cb4d9db17537 101 ******************************************************************************
mbed_official 376:cb4d9db17537 102 * @attention
mbed_official 376:cb4d9db17537 103 *
mbed_official 489:119543c9f674 104 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
mbed_official 376:cb4d9db17537 105 *
mbed_official 376:cb4d9db17537 106 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 376:cb4d9db17537 107 * are permitted provided that the following conditions are met:
mbed_official 376:cb4d9db17537 108 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 376:cb4d9db17537 109 * this list of conditions and the following disclaimer.
mbed_official 376:cb4d9db17537 110 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 376:cb4d9db17537 111 * this list of conditions and the following disclaimer in the documentation
mbed_official 376:cb4d9db17537 112 * and/or other materials provided with the distribution.
mbed_official 376:cb4d9db17537 113 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 376:cb4d9db17537 114 * may be used to endorse or promote products derived from this software
mbed_official 376:cb4d9db17537 115 * without specific prior written permission.
mbed_official 376:cb4d9db17537 116 *
mbed_official 376:cb4d9db17537 117 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 376:cb4d9db17537 118 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 376:cb4d9db17537 119 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 376:cb4d9db17537 120 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 376:cb4d9db17537 121 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 376:cb4d9db17537 122 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 376:cb4d9db17537 123 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 376:cb4d9db17537 124 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 376:cb4d9db17537 125 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 376:cb4d9db17537 126 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 376:cb4d9db17537 127 *
mbed_official 376:cb4d9db17537 128 ******************************************************************************
mbed_official 376:cb4d9db17537 129 */
mbed_official 376:cb4d9db17537 130
mbed_official 376:cb4d9db17537 131 /* Includes ------------------------------------------------------------------*/
mbed_official 376:cb4d9db17537 132 #include "stm32l0xx_hal.h"
mbed_official 376:cb4d9db17537 133
mbed_official 376:cb4d9db17537 134 /** @addtogroup STM32L0xx_HAL_Driver
mbed_official 376:cb4d9db17537 135 * @{
mbed_official 376:cb4d9db17537 136 */
mbed_official 376:cb4d9db17537 137
mbed_official 489:119543c9f674 138 /** @addtogroup COMP
mbed_official 376:cb4d9db17537 139 * @brief COMP HAL module driver
mbed_official 376:cb4d9db17537 140 * @{
mbed_official 376:cb4d9db17537 141 */
mbed_official 376:cb4d9db17537 142
mbed_official 376:cb4d9db17537 143 #ifdef HAL_COMP_MODULE_ENABLED
mbed_official 376:cb4d9db17537 144
mbed_official 376:cb4d9db17537 145 /* Private typedef -----------------------------------------------------------*/
mbed_official 376:cb4d9db17537 146 /* Private define ------------------------------------------------------------*/
mbed_official 376:cb4d9db17537 147 /* CSR register reset value */
mbed_official 376:cb4d9db17537 148 #define COMP_CSR_RESET_VALUE ((uint32_t)0x00000000)
mbed_official 376:cb4d9db17537 149
mbed_official 376:cb4d9db17537 150
mbed_official 489:119543c9f674 151 /** @addtogroup COMP_Exported_Functions
mbed_official 376:cb4d9db17537 152 * @{
mbed_official 376:cb4d9db17537 153 */
mbed_official 376:cb4d9db17537 154
mbed_official 489:119543c9f674 155 /** @addtogroup COMP_Exported_Functions_Group1
mbed_official 376:cb4d9db17537 156 * @brief Initialization and Configuration functions
mbed_official 376:cb4d9db17537 157 *
mbed_official 376:cb4d9db17537 158 @verbatim
mbed_official 376:cb4d9db17537 159 ===============================================================================
mbed_official 376:cb4d9db17537 160 ##### Initialization/de-initialization functions #####
mbed_official 376:cb4d9db17537 161 ===============================================================================
mbed_official 376:cb4d9db17537 162 [..] This section provides functions to initialize and de-initialize comparators
mbed_official 376:cb4d9db17537 163
mbed_official 376:cb4d9db17537 164 @endverbatim
mbed_official 376:cb4d9db17537 165 * @{
mbed_official 376:cb4d9db17537 166 */
mbed_official 376:cb4d9db17537 167
mbed_official 376:cb4d9db17537 168 /**
mbed_official 376:cb4d9db17537 169 * @brief Initializes the COMP according to the specified
mbed_official 376:cb4d9db17537 170 * parameters in the COMP_InitTypeDef and create the associated handle.
mbed_official 376:cb4d9db17537 171 * @note If the selected comparator is locked, initialization can't be performed.
mbed_official 376:cb4d9db17537 172 * To unlock the configuration, perform a system reset.
mbed_official 376:cb4d9db17537 173 * @note When the LPTIM connection is enabled, the following pins LPTIM_IN1(PB5, PC0)
mbed_official 376:cb4d9db17537 174 and LPTIM_IN2(PB7, PC2) should not be configured in AF.
mbed_official 376:cb4d9db17537 175 * @param hcomp: COMP handle
mbed_official 376:cb4d9db17537 176 * @retval HAL status
mbed_official 376:cb4d9db17537 177 */
mbed_official 376:cb4d9db17537 178 HAL_StatusTypeDef HAL_COMP_Init(COMP_HandleTypeDef *hcomp)
mbed_official 376:cb4d9db17537 179 {
mbed_official 376:cb4d9db17537 180 HAL_StatusTypeDef status = HAL_OK;
mbed_official 376:cb4d9db17537 181
mbed_official 376:cb4d9db17537 182 /* Check the COMP handle allocation and lock status */
mbed_official 489:119543c9f674 183 if((hcomp == NULL) || ((hcomp->State & COMP_STATE_BIT_LOCK) != 0x00))
mbed_official 376:cb4d9db17537 184 {
mbed_official 376:cb4d9db17537 185 status = HAL_ERROR;
mbed_official 376:cb4d9db17537 186 }
mbed_official 376:cb4d9db17537 187 else
mbed_official 376:cb4d9db17537 188 {
mbed_official 376:cb4d9db17537 189 /* Check the parameter */
mbed_official 376:cb4d9db17537 190 assert_param(IS_COMP_ALL_INSTANCE(hcomp->Instance));
mbed_official 376:cb4d9db17537 191 assert_param(IS_COMP_INVERTINGINPUT(hcomp->Init.InvertingInput));
mbed_official 376:cb4d9db17537 192 assert_param(IS_COMP_NONINVERTINGINPUT(hcomp->Init.NonInvertingInput));
mbed_official 376:cb4d9db17537 193 assert_param(IS_COMP_LPTIMCONNECTION(hcomp->Init.LPTIMConnection));
mbed_official 376:cb4d9db17537 194 assert_param(IS_COMP_OUTPUTPOL(hcomp->Init.OutputPol));
mbed_official 376:cb4d9db17537 195 assert_param(IS_COMP_MODE(hcomp->Init.Mode));
mbed_official 376:cb4d9db17537 196
mbed_official 489:119543c9f674 197 if(hcomp->Init.WindowMode != COMP_WINDOWMODE_DISABLE)
mbed_official 376:cb4d9db17537 198 {
mbed_official 376:cb4d9db17537 199 assert_param(IS_COMP_WINDOWMODE_INSTANCE(hcomp->Instance));
mbed_official 376:cb4d9db17537 200 assert_param(IS_COMP_WINDOWMODE(hcomp->Init.WindowMode));
mbed_official 376:cb4d9db17537 201 }
mbed_official 376:cb4d9db17537 202
mbed_official 376:cb4d9db17537 203 if(hcomp->State == HAL_COMP_STATE_RESET)
mbed_official 376:cb4d9db17537 204 {
mbed_official 376:cb4d9db17537 205 /* Init SYSCFG and the low level hardware to access comparators */
mbed_official 489:119543c9f674 206 __HAL_RCC_SYSCFG_CLK_ENABLE();
mbed_official 376:cb4d9db17537 207 /* Init the low level hardware : SYSCFG to access comparators */
mbed_official 376:cb4d9db17537 208 HAL_COMP_MspInit(hcomp);
mbed_official 376:cb4d9db17537 209 }
mbed_official 376:cb4d9db17537 210
mbed_official 376:cb4d9db17537 211 /* Change COMP peripheral state */
mbed_official 376:cb4d9db17537 212 hcomp->State = HAL_COMP_STATE_BUSY;
mbed_official 376:cb4d9db17537 213
mbed_official 376:cb4d9db17537 214 /* Set COMP parameters */
mbed_official 376:cb4d9db17537 215 /* Set COMPxINSEL bits according to hcomp->Init.InvertingInput value */
mbed_official 376:cb4d9db17537 216 /* Set COMPxNONINSEL bits according to hcomp->Init.NonInvertingInput value */
mbed_official 376:cb4d9db17537 217 /* Set COMPxPOL bit according to hcomp->Init.OutputPol value */
mbed_official 376:cb4d9db17537 218 /* Set COMPxMODE bits according to hcomp->Init.Mode value */
mbed_official 376:cb4d9db17537 219 /* Set COMP1WM bit according to hcomp->Init.WindowMode value */
mbed_official 376:cb4d9db17537 220 MODIFY_REG(hcomp->Instance->CSR, COMP_CSR_UPDATE_PARAMETERS_MASK, \
mbed_official 376:cb4d9db17537 221 hcomp->Init.InvertingInput | \
mbed_official 376:cb4d9db17537 222 hcomp->Init.NonInvertingInput | \
mbed_official 376:cb4d9db17537 223 hcomp->Init.LPTIMConnection | \
mbed_official 376:cb4d9db17537 224 hcomp->Init.OutputPol | \
mbed_official 376:cb4d9db17537 225 hcomp->Init.Mode | \
mbed_official 376:cb4d9db17537 226 hcomp->Init.WindowMode);
mbed_official 376:cb4d9db17537 227
mbed_official 376:cb4d9db17537 228
mbed_official 376:cb4d9db17537 229 /* Initialize the COMP state*/
mbed_official 376:cb4d9db17537 230 hcomp->State = HAL_COMP_STATE_READY;
mbed_official 376:cb4d9db17537 231
mbed_official 376:cb4d9db17537 232 }
mbed_official 376:cb4d9db17537 233
mbed_official 376:cb4d9db17537 234 return status;
mbed_official 376:cb4d9db17537 235 }
mbed_official 376:cb4d9db17537 236
mbed_official 376:cb4d9db17537 237 /**
mbed_official 376:cb4d9db17537 238 * @brief DeInitializes the COMP peripheral
mbed_official 376:cb4d9db17537 239 * @note Deinitialization can't be performed if the COMP configuration is locked.
mbed_official 376:cb4d9db17537 240 * To unlock the configuration, perform a system reset.
mbed_official 376:cb4d9db17537 241 * @param hcomp: COMP handle
mbed_official 376:cb4d9db17537 242 * @retval HAL status
mbed_official 376:cb4d9db17537 243 */
mbed_official 376:cb4d9db17537 244 HAL_StatusTypeDef HAL_COMP_DeInit(COMP_HandleTypeDef *hcomp)
mbed_official 376:cb4d9db17537 245 {
mbed_official 376:cb4d9db17537 246 HAL_StatusTypeDef status = HAL_OK;
mbed_official 376:cb4d9db17537 247
mbed_official 376:cb4d9db17537 248 /* Check the COMP handle allocation and lock status */
mbed_official 489:119543c9f674 249 if((hcomp == NULL) || ((hcomp->State & COMP_STATE_BIT_LOCK) != 0x00))
mbed_official 376:cb4d9db17537 250 {
mbed_official 376:cb4d9db17537 251 status = HAL_ERROR;
mbed_official 376:cb4d9db17537 252 }
mbed_official 376:cb4d9db17537 253 else
mbed_official 376:cb4d9db17537 254 {
mbed_official 376:cb4d9db17537 255 /* Check the parameter */
mbed_official 376:cb4d9db17537 256 assert_param(IS_COMP_ALL_INSTANCE(hcomp->Instance));
mbed_official 376:cb4d9db17537 257
mbed_official 376:cb4d9db17537 258 /* Set COMP_CSR register to reset value */
mbed_official 376:cb4d9db17537 259 WRITE_REG(hcomp->Instance->CSR, COMP_CSR_RESET_VALUE);
mbed_official 376:cb4d9db17537 260
mbed_official 376:cb4d9db17537 261 /* DeInit the low level hardware: SYSCFG, GPIO, CLOCK and NVIC */
mbed_official 376:cb4d9db17537 262 HAL_COMP_MspDeInit(hcomp);
mbed_official 376:cb4d9db17537 263
mbed_official 376:cb4d9db17537 264 hcomp->State = HAL_COMP_STATE_RESET;
mbed_official 376:cb4d9db17537 265
mbed_official 376:cb4d9db17537 266 /* Release Lock */
mbed_official 376:cb4d9db17537 267 __HAL_UNLOCK(hcomp);
mbed_official 376:cb4d9db17537 268 }
mbed_official 376:cb4d9db17537 269
mbed_official 376:cb4d9db17537 270 return status;
mbed_official 376:cb4d9db17537 271 }
mbed_official 376:cb4d9db17537 272
mbed_official 376:cb4d9db17537 273 /**
mbed_official 376:cb4d9db17537 274 * @brief Initializes the COMP MSP.
mbed_official 376:cb4d9db17537 275 * @param hcomp: COMP handle
mbed_official 376:cb4d9db17537 276 * @retval None
mbed_official 376:cb4d9db17537 277 */
mbed_official 376:cb4d9db17537 278 __weak void HAL_COMP_MspInit(COMP_HandleTypeDef *hcomp)
mbed_official 376:cb4d9db17537 279 {
mbed_official 376:cb4d9db17537 280 /* NOTE : This function Should not be modified, when the callback is needed,
mbed_official 376:cb4d9db17537 281 the HAL_COMP_MspInit could be implenetd in the user file
mbed_official 376:cb4d9db17537 282 */
mbed_official 376:cb4d9db17537 283 }
mbed_official 376:cb4d9db17537 284
mbed_official 376:cb4d9db17537 285 /**
mbed_official 376:cb4d9db17537 286 * @brief DeInitializes COMP MSP.
mbed_official 376:cb4d9db17537 287 * @param hcomp: COMP handle
mbed_official 376:cb4d9db17537 288 * @retval None
mbed_official 376:cb4d9db17537 289 */
mbed_official 376:cb4d9db17537 290 __weak void HAL_COMP_MspDeInit(COMP_HandleTypeDef *hcomp)
mbed_official 376:cb4d9db17537 291 {
mbed_official 376:cb4d9db17537 292 /* NOTE : This function Should not be modified, when the callback is needed,
mbed_official 376:cb4d9db17537 293 the HAL_COMP_MspDeInit could be implenetd in the user file
mbed_official 376:cb4d9db17537 294 */
mbed_official 376:cb4d9db17537 295 }
mbed_official 376:cb4d9db17537 296
mbed_official 376:cb4d9db17537 297 /**
mbed_official 376:cb4d9db17537 298 * @}
mbed_official 376:cb4d9db17537 299 */
mbed_official 376:cb4d9db17537 300
mbed_official 489:119543c9f674 301 /** @addtogroup COMP_Exported_Functions_Group2
mbed_official 376:cb4d9db17537 302 * @brief Data transfers functions
mbed_official 376:cb4d9db17537 303 *
mbed_official 376:cb4d9db17537 304 @verbatim
mbed_official 376:cb4d9db17537 305 ===============================================================================
mbed_official 376:cb4d9db17537 306 ##### IO operation functions #####
mbed_official 376:cb4d9db17537 307 ===============================================================================
mbed_official 376:cb4d9db17537 308 [..]
mbed_official 376:cb4d9db17537 309 This subsection provides a set of functions allowing to manage the COMP data
mbed_official 376:cb4d9db17537 310 transfers.
mbed_official 376:cb4d9db17537 311
mbed_official 376:cb4d9db17537 312 @endverbatim
mbed_official 376:cb4d9db17537 313 * @{
mbed_official 376:cb4d9db17537 314 */
mbed_official 376:cb4d9db17537 315
mbed_official 376:cb4d9db17537 316 /**
mbed_official 376:cb4d9db17537 317 * @brief Start the comparator
mbed_official 376:cb4d9db17537 318 * @param hcomp: COMP handle
mbed_official 376:cb4d9db17537 319 * @retval HAL status
mbed_official 376:cb4d9db17537 320 */
mbed_official 376:cb4d9db17537 321 HAL_StatusTypeDef HAL_COMP_Start(COMP_HandleTypeDef *hcomp)
mbed_official 376:cb4d9db17537 322 {
mbed_official 376:cb4d9db17537 323 HAL_StatusTypeDef status = HAL_OK;
mbed_official 376:cb4d9db17537 324
mbed_official 376:cb4d9db17537 325 /* Check the COMP handle allocation and lock status */
mbed_official 489:119543c9f674 326 if((hcomp == NULL) || ((hcomp->State & COMP_STATE_BIT_LOCK) != 0x00))
mbed_official 376:cb4d9db17537 327 {
mbed_official 376:cb4d9db17537 328 status = HAL_ERROR;
mbed_official 376:cb4d9db17537 329 }
mbed_official 376:cb4d9db17537 330 else
mbed_official 376:cb4d9db17537 331 {
mbed_official 376:cb4d9db17537 332 /* Check the parameter */
mbed_official 376:cb4d9db17537 333 assert_param(IS_COMP_ALL_INSTANCE(hcomp->Instance));
mbed_official 376:cb4d9db17537 334
mbed_official 376:cb4d9db17537 335 if(hcomp->State == HAL_COMP_STATE_READY)
mbed_official 376:cb4d9db17537 336 {
mbed_official 376:cb4d9db17537 337 /* Enable the selected comparator */
mbed_official 376:cb4d9db17537 338 __HAL_COMP_ENABLE(hcomp);
mbed_official 376:cb4d9db17537 339
mbed_official 376:cb4d9db17537 340 hcomp->State = HAL_COMP_STATE_BUSY;
mbed_official 376:cb4d9db17537 341 }
mbed_official 376:cb4d9db17537 342 else
mbed_official 376:cb4d9db17537 343 {
mbed_official 376:cb4d9db17537 344 status = HAL_ERROR;
mbed_official 376:cb4d9db17537 345 }
mbed_official 376:cb4d9db17537 346 }
mbed_official 376:cb4d9db17537 347
mbed_official 376:cb4d9db17537 348 return status;
mbed_official 376:cb4d9db17537 349 }
mbed_official 376:cb4d9db17537 350
mbed_official 376:cb4d9db17537 351 /**
mbed_official 376:cb4d9db17537 352 * @brief Stop the comparator
mbed_official 376:cb4d9db17537 353 * @param hcomp: COMP handle
mbed_official 376:cb4d9db17537 354 * @retval HAL status
mbed_official 376:cb4d9db17537 355 */
mbed_official 376:cb4d9db17537 356 HAL_StatusTypeDef HAL_COMP_Stop(COMP_HandleTypeDef *hcomp)
mbed_official 376:cb4d9db17537 357 {
mbed_official 376:cb4d9db17537 358 HAL_StatusTypeDef status = HAL_OK;
mbed_official 376:cb4d9db17537 359
mbed_official 376:cb4d9db17537 360 /* Check the COMP handle allocation and lock status */
mbed_official 489:119543c9f674 361 if((hcomp == NULL) || ((hcomp->State & COMP_STATE_BIT_LOCK) != 0x00))
mbed_official 376:cb4d9db17537 362 {
mbed_official 376:cb4d9db17537 363 status = HAL_ERROR;
mbed_official 376:cb4d9db17537 364 }
mbed_official 376:cb4d9db17537 365 else
mbed_official 376:cb4d9db17537 366 {
mbed_official 376:cb4d9db17537 367 /* Check the parameter */
mbed_official 376:cb4d9db17537 368 assert_param(IS_COMP_ALL_INSTANCE(hcomp->Instance));
mbed_official 376:cb4d9db17537 369
mbed_official 376:cb4d9db17537 370 if(hcomp->State == HAL_COMP_STATE_BUSY)
mbed_official 376:cb4d9db17537 371 {
mbed_official 376:cb4d9db17537 372 /* Disable the selected comparator */
mbed_official 376:cb4d9db17537 373 __HAL_COMP_DISABLE(hcomp);
mbed_official 376:cb4d9db17537 374
mbed_official 376:cb4d9db17537 375 hcomp->State = HAL_COMP_STATE_READY;
mbed_official 376:cb4d9db17537 376 }
mbed_official 376:cb4d9db17537 377 else
mbed_official 376:cb4d9db17537 378 {
mbed_official 376:cb4d9db17537 379 status = HAL_ERROR;
mbed_official 376:cb4d9db17537 380 }
mbed_official 376:cb4d9db17537 381 }
mbed_official 376:cb4d9db17537 382
mbed_official 376:cb4d9db17537 383 return status;
mbed_official 376:cb4d9db17537 384 }
mbed_official 376:cb4d9db17537 385
mbed_official 376:cb4d9db17537 386 /**
mbed_official 376:cb4d9db17537 387 * @brief Enables the interrupt and starts the comparator
mbed_official 376:cb4d9db17537 388 * @param hcomp: COMP handle
mbed_official 376:cb4d9db17537 389 * @retval HAL status.
mbed_official 376:cb4d9db17537 390 */
mbed_official 376:cb4d9db17537 391 HAL_StatusTypeDef HAL_COMP_Start_IT(COMP_HandleTypeDef *hcomp)
mbed_official 376:cb4d9db17537 392 {
mbed_official 376:cb4d9db17537 393 HAL_StatusTypeDef status = HAL_OK;
mbed_official 376:cb4d9db17537 394 uint32_t extiline = 0;
mbed_official 376:cb4d9db17537 395
mbed_official 376:cb4d9db17537 396 status = HAL_COMP_Start(hcomp);
mbed_official 376:cb4d9db17537 397 if(status == HAL_OK)
mbed_official 376:cb4d9db17537 398 {
mbed_official 376:cb4d9db17537 399 /* Check the Exti Line output configuration */
mbed_official 489:119543c9f674 400 extiline = COMP_GET_EXTI_LINE(hcomp->Instance);
mbed_official 489:119543c9f674 401
mbed_official 376:cb4d9db17537 402 /* Configure the rising edge */
mbed_official 376:cb4d9db17537 403 if((hcomp->Init.TriggerMode & COMP_TRIGGERMODE_IT_RISING) != 0x00)
mbed_official 376:cb4d9db17537 404 {
mbed_official 489:119543c9f674 405 if (extiline == COMP_EXTI_LINE_COMP1)
mbed_official 489:119543c9f674 406 {
mbed_official 489:119543c9f674 407 __HAL_COMP_COMP1_EXTI_ENABLE_RISING_EDGE();
mbed_official 489:119543c9f674 408 }
mbed_official 489:119543c9f674 409 else
mbed_official 489:119543c9f674 410 {
mbed_official 489:119543c9f674 411 __HAL_COMP_COMP2_EXTI_ENABLE_RISING_EDGE();
mbed_official 489:119543c9f674 412 }
mbed_official 376:cb4d9db17537 413 }
mbed_official 376:cb4d9db17537 414 else
mbed_official 376:cb4d9db17537 415 {
mbed_official 489:119543c9f674 416 if (extiline == COMP_EXTI_LINE_COMP1)
mbed_official 489:119543c9f674 417 {
mbed_official 489:119543c9f674 418 __HAL_COMP_COMP1_EXTI_DISABLE_RISING_EDGE();
mbed_official 489:119543c9f674 419 }
mbed_official 489:119543c9f674 420 else
mbed_official 489:119543c9f674 421 {
mbed_official 489:119543c9f674 422 __HAL_COMP_COMP2_EXTI_DISABLE_RISING_EDGE();
mbed_official 489:119543c9f674 423 }
mbed_official 376:cb4d9db17537 424 }
mbed_official 376:cb4d9db17537 425
mbed_official 376:cb4d9db17537 426 /* Configure the falling edge */
mbed_official 376:cb4d9db17537 427 if((hcomp->Init.TriggerMode & COMP_TRIGGERMODE_IT_FALLING) != 0x00)
mbed_official 376:cb4d9db17537 428 {
mbed_official 489:119543c9f674 429 if (extiline == COMP_EXTI_LINE_COMP1)
mbed_official 489:119543c9f674 430 {
mbed_official 489:119543c9f674 431 __HAL_COMP_COMP1_EXTI_ENABLE_FALLING_EDGE();
mbed_official 489:119543c9f674 432 }
mbed_official 489:119543c9f674 433 else
mbed_official 489:119543c9f674 434 {
mbed_official 489:119543c9f674 435 __HAL_COMP_COMP2_EXTI_ENABLE_FALLING_EDGE();
mbed_official 489:119543c9f674 436 }
mbed_official 376:cb4d9db17537 437 }
mbed_official 376:cb4d9db17537 438 else
mbed_official 376:cb4d9db17537 439 {
mbed_official 489:119543c9f674 440 if (extiline == COMP_EXTI_LINE_COMP1)
mbed_official 489:119543c9f674 441 {
mbed_official 489:119543c9f674 442 __HAL_COMP_COMP1_EXTI_DISABLE_FALLING_EDGE();
mbed_official 489:119543c9f674 443 }
mbed_official 489:119543c9f674 444 else
mbed_official 489:119543c9f674 445 {
mbed_official 489:119543c9f674 446 __HAL_COMP_COMP2_EXTI_DISABLE_FALLING_EDGE();
mbed_official 489:119543c9f674 447 }
mbed_official 376:cb4d9db17537 448 }
mbed_official 376:cb4d9db17537 449
mbed_official 489:119543c9f674 450 if (extiline == COMP_EXTI_LINE_COMP1)
mbed_official 489:119543c9f674 451 {
mbed_official 489:119543c9f674 452 /* Clear COMP Exti pending bit */
mbed_official 489:119543c9f674 453 __HAL_COMP_COMP1_EXTI_CLEAR_FLAG();
mbed_official 489:119543c9f674 454 /* Enable Exti interrupt mode */
mbed_official 489:119543c9f674 455 __HAL_COMP_COMP1_EXTI_ENABLE_IT();
mbed_official 489:119543c9f674 456 } else
mbed_official 489:119543c9f674 457 {
mbed_official 489:119543c9f674 458 /* Clear COMP Exti pending bit */
mbed_official 489:119543c9f674 459 __HAL_COMP_COMP2_EXTI_CLEAR_FLAG();
mbed_official 489:119543c9f674 460 /* Enable Exti interrupt mode */
mbed_official 489:119543c9f674 461 __HAL_COMP_COMP2_EXTI_ENABLE_IT();
mbed_official 489:119543c9f674 462 }
mbed_official 376:cb4d9db17537 463 }
mbed_official 376:cb4d9db17537 464
mbed_official 376:cb4d9db17537 465 return status;
mbed_official 376:cb4d9db17537 466 }
mbed_official 376:cb4d9db17537 467
mbed_official 376:cb4d9db17537 468 /**
mbed_official 376:cb4d9db17537 469 * @brief Disable the interrupt and Stop the comparator
mbed_official 376:cb4d9db17537 470 * @param hcomp: COMP handle
mbed_official 376:cb4d9db17537 471 * @retval HAL status
mbed_official 376:cb4d9db17537 472 */
mbed_official 376:cb4d9db17537 473 HAL_StatusTypeDef HAL_COMP_Stop_IT(COMP_HandleTypeDef *hcomp)
mbed_official 376:cb4d9db17537 474 {
mbed_official 376:cb4d9db17537 475 HAL_StatusTypeDef status = HAL_OK;
mbed_official 376:cb4d9db17537 476
mbed_official 489:119543c9f674 477 if (COMP_GET_EXTI_LINE(hcomp->Instance) == COMP_EXTI_LINE_COMP1)
mbed_official 489:119543c9f674 478 {
mbed_official 489:119543c9f674 479 __HAL_COMP_COMP1_EXTI_DISABLE_IT();
mbed_official 489:119543c9f674 480 }
mbed_official 489:119543c9f674 481 if (COMP_GET_EXTI_LINE(hcomp->Instance) == COMP_EXTI_LINE_COMP2)
mbed_official 489:119543c9f674 482 {
mbed_official 489:119543c9f674 483 __HAL_COMP_COMP2_EXTI_DISABLE_IT();
mbed_official 489:119543c9f674 484 }
mbed_official 376:cb4d9db17537 485
mbed_official 376:cb4d9db17537 486 status = HAL_COMP_Stop(hcomp);
mbed_official 376:cb4d9db17537 487
mbed_official 376:cb4d9db17537 488 return status;
mbed_official 376:cb4d9db17537 489 }
mbed_official 376:cb4d9db17537 490
mbed_official 376:cb4d9db17537 491 /**
mbed_official 376:cb4d9db17537 492 * @brief Comparator IRQ Handler
mbed_official 376:cb4d9db17537 493 * @param hcomp: COMP handle
mbed_official 376:cb4d9db17537 494 * @retval HAL status
mbed_official 376:cb4d9db17537 495 */
mbed_official 376:cb4d9db17537 496 void HAL_COMP_IRQHandler(COMP_HandleTypeDef *hcomp)
mbed_official 376:cb4d9db17537 497 {
mbed_official 489:119543c9f674 498
mbed_official 376:cb4d9db17537 499 /* Check COMP Exti flag */
mbed_official 489:119543c9f674 500
mbed_official 489:119543c9f674 501 if(__HAL_COMP_COMP1_EXTI_GET_FLAG() != RESET)
mbed_official 376:cb4d9db17537 502 {
mbed_official 376:cb4d9db17537 503 /* Clear COMP Exti pending bit */
mbed_official 489:119543c9f674 504 __HAL_COMP_COMP1_EXTI_CLEAR_FLAG();
mbed_official 489:119543c9f674 505 }
mbed_official 489:119543c9f674 506 if(__HAL_COMP_COMP2_EXTI_GET_FLAG() != RESET)
mbed_official 489:119543c9f674 507 {
mbed_official 489:119543c9f674 508 /* Clear COMP Exti pending bit */
mbed_official 489:119543c9f674 509 __HAL_COMP_COMP2_EXTI_CLEAR_FLAG();
mbed_official 376:cb4d9db17537 510 }
mbed_official 376:cb4d9db17537 511
mbed_official 376:cb4d9db17537 512 /* COMP trigger user callback */
mbed_official 376:cb4d9db17537 513 HAL_COMP_TriggerCallback(hcomp);
mbed_official 376:cb4d9db17537 514 }
mbed_official 376:cb4d9db17537 515
mbed_official 376:cb4d9db17537 516 /**
mbed_official 376:cb4d9db17537 517 * @}
mbed_official 376:cb4d9db17537 518 */
mbed_official 376:cb4d9db17537 519
mbed_official 489:119543c9f674 520 /** @addtogroup COMP_Exported_Functions_Group3
mbed_official 376:cb4d9db17537 521 * @brief management functions
mbed_official 376:cb4d9db17537 522 *
mbed_official 376:cb4d9db17537 523 @verbatim
mbed_official 376:cb4d9db17537 524 ===============================================================================
mbed_official 376:cb4d9db17537 525 ##### Peripheral Control functions #####
mbed_official 376:cb4d9db17537 526 ===============================================================================
mbed_official 376:cb4d9db17537 527 [..]
mbed_official 376:cb4d9db17537 528 This subsection provides a set of functions allowing to control the COMP data
mbed_official 376:cb4d9db17537 529 transfers.
mbed_official 376:cb4d9db17537 530
mbed_official 376:cb4d9db17537 531 @endverbatim
mbed_official 376:cb4d9db17537 532 * @{
mbed_official 376:cb4d9db17537 533 */
mbed_official 376:cb4d9db17537 534
mbed_official 376:cb4d9db17537 535 /**
mbed_official 376:cb4d9db17537 536 * @brief Lock the selected comparator configuration.
mbed_official 376:cb4d9db17537 537 * @param hcomp: COMP handle
mbed_official 376:cb4d9db17537 538 * @retval HAL status
mbed_official 376:cb4d9db17537 539 */
mbed_official 376:cb4d9db17537 540 HAL_StatusTypeDef HAL_COMP_Lock(COMP_HandleTypeDef *hcomp)
mbed_official 376:cb4d9db17537 541 {
mbed_official 376:cb4d9db17537 542 HAL_StatusTypeDef status = HAL_OK;
mbed_official 376:cb4d9db17537 543
mbed_official 376:cb4d9db17537 544 /* Check the COMP handle allocation and lock status */
mbed_official 489:119543c9f674 545 if((hcomp == NULL) || ((hcomp->State & COMP_STATE_BIT_LOCK) != 0x00))
mbed_official 376:cb4d9db17537 546 {
mbed_official 376:cb4d9db17537 547 status = HAL_ERROR;
mbed_official 376:cb4d9db17537 548 }
mbed_official 376:cb4d9db17537 549 else
mbed_official 376:cb4d9db17537 550 {
mbed_official 489:119543c9f674 551 /* Check the parameter */
mbed_official 376:cb4d9db17537 552 assert_param(IS_COMP_ALL_INSTANCE(hcomp->Instance));
mbed_official 376:cb4d9db17537 553
mbed_official 489:119543c9f674 554 /* Set lock flag on state */
mbed_official 489:119543c9f674 555 switch(hcomp->State)
mbed_official 489:119543c9f674 556 {
mbed_official 489:119543c9f674 557 case HAL_COMP_STATE_BUSY:
mbed_official 489:119543c9f674 558 hcomp->State = HAL_COMP_STATE_BUSY_LOCKED;
mbed_official 489:119543c9f674 559 break;
mbed_official 489:119543c9f674 560 case HAL_COMP_STATE_READY:
mbed_official 489:119543c9f674 561 hcomp->State = HAL_COMP_STATE_READY_LOCKED;
mbed_official 489:119543c9f674 562 break;
mbed_official 489:119543c9f674 563 default:
mbed_official 489:119543c9f674 564 /* unexpected state */
mbed_official 489:119543c9f674 565 status = HAL_ERROR;
mbed_official 489:119543c9f674 566 break;
mbed_official 489:119543c9f674 567 }
mbed_official 489:119543c9f674 568 }
mbed_official 489:119543c9f674 569
mbed_official 489:119543c9f674 570 if(status == HAL_OK)
mbed_official 489:119543c9f674 571 {
mbed_official 376:cb4d9db17537 572 /* Set the lock bit corresponding to selected comparator */
mbed_official 376:cb4d9db17537 573 __HAL_COMP_LOCK(hcomp);
mbed_official 376:cb4d9db17537 574 }
mbed_official 376:cb4d9db17537 575
mbed_official 376:cb4d9db17537 576 return status;
mbed_official 376:cb4d9db17537 577 }
mbed_official 376:cb4d9db17537 578
mbed_official 376:cb4d9db17537 579 /**
mbed_official 376:cb4d9db17537 580 * @brief Return the output level (high or low) of the selected comparator.
mbed_official 376:cb4d9db17537 581 * The output level depends on the selected polarity.
mbed_official 376:cb4d9db17537 582 * If the polarity is not inverted:
mbed_official 376:cb4d9db17537 583 * - Comparator output is low when the non-inverting input is at a lower
mbed_official 376:cb4d9db17537 584 * voltage than the inverting input
mbed_official 376:cb4d9db17537 585 * - Comparator output is high when the non-inverting input is at a higher
mbed_official 376:cb4d9db17537 586 * voltage than the inverting input
mbed_official 376:cb4d9db17537 587 * If the polarity is inverted:
mbed_official 376:cb4d9db17537 588 * - Comparator output is high when the non-inverting input is at a lower
mbed_official 376:cb4d9db17537 589 * voltage than the inverting input
mbed_official 376:cb4d9db17537 590 * - Comparator output is low when the non-inverting input is at a higher
mbed_official 376:cb4d9db17537 591 * voltage than the inverting input
mbed_official 376:cb4d9db17537 592 * @param hcomp: COMP handle
mbed_official 376:cb4d9db17537 593 * @retval Returns the selected comparator output level: COMP_OUTPUTLEVEL_LOW or COMP_OUTPUTLEVEL_HIGH.
mbed_official 376:cb4d9db17537 594 *
mbed_official 376:cb4d9db17537 595 */
mbed_official 376:cb4d9db17537 596 uint32_t HAL_COMP_GetOutputLevel(COMP_HandleTypeDef *hcomp)
mbed_official 376:cb4d9db17537 597 {
mbed_official 376:cb4d9db17537 598 /* Check the parameter */
mbed_official 376:cb4d9db17537 599 assert_param(IS_COMP_ALL_INSTANCE(hcomp->Instance));
mbed_official 376:cb4d9db17537 600
mbed_official 376:cb4d9db17537 601 return((uint32_t)(hcomp->Instance->CSR & COMP_OUTPUTLEVEL_HIGH));
mbed_official 376:cb4d9db17537 602 }
mbed_official 376:cb4d9db17537 603
mbed_official 376:cb4d9db17537 604 /**
mbed_official 376:cb4d9db17537 605 * @brief Comparator callback.
mbed_official 376:cb4d9db17537 606 * @param hcomp: COMP handle
mbed_official 376:cb4d9db17537 607 * @retval None
mbed_official 376:cb4d9db17537 608 */
mbed_official 376:cb4d9db17537 609 __weak void HAL_COMP_TriggerCallback(COMP_HandleTypeDef *hcomp)
mbed_official 376:cb4d9db17537 610 {
mbed_official 376:cb4d9db17537 611 /* NOTE : This function should not be modified, when the callback is needed,
mbed_official 376:cb4d9db17537 612 the HAL_COMP_TriggerCallback should be implemented in the user file
mbed_official 376:cb4d9db17537 613 */
mbed_official 376:cb4d9db17537 614 }
mbed_official 376:cb4d9db17537 615
mbed_official 376:cb4d9db17537 616
mbed_official 376:cb4d9db17537 617 /**
mbed_official 376:cb4d9db17537 618 * @}
mbed_official 376:cb4d9db17537 619 */
mbed_official 376:cb4d9db17537 620
mbed_official 489:119543c9f674 621 /** @addtogroup COMP_Exported_Functions_Group4
mbed_official 376:cb4d9db17537 622 * @brief Peripheral State functions
mbed_official 376:cb4d9db17537 623 *
mbed_official 376:cb4d9db17537 624 @verbatim
mbed_official 376:cb4d9db17537 625 ===============================================================================
mbed_official 376:cb4d9db17537 626 ##### Peripheral State functions #####
mbed_official 376:cb4d9db17537 627 ===============================================================================
mbed_official 376:cb4d9db17537 628 [..]
mbed_official 376:cb4d9db17537 629 This subsection permit to get in run-time the status of the peripheral
mbed_official 376:cb4d9db17537 630 and the data flow.
mbed_official 376:cb4d9db17537 631
mbed_official 376:cb4d9db17537 632 @endverbatim
mbed_official 376:cb4d9db17537 633 * @{
mbed_official 376:cb4d9db17537 634 */
mbed_official 376:cb4d9db17537 635
mbed_official 376:cb4d9db17537 636 /**
mbed_official 376:cb4d9db17537 637 * @brief Return the COMP state
mbed_official 376:cb4d9db17537 638 * @param hcomp : COMP handle
mbed_official 376:cb4d9db17537 639 * @retval HAL state
mbed_official 376:cb4d9db17537 640 */
mbed_official 376:cb4d9db17537 641 HAL_COMP_StateTypeDef HAL_COMP_GetState(COMP_HandleTypeDef *hcomp)
mbed_official 376:cb4d9db17537 642 {
mbed_official 376:cb4d9db17537 643 /* Check the COMP handle allocation */
mbed_official 489:119543c9f674 644 if(hcomp == NULL)
mbed_official 376:cb4d9db17537 645 {
mbed_official 376:cb4d9db17537 646 return HAL_COMP_STATE_RESET;
mbed_official 376:cb4d9db17537 647 }
mbed_official 376:cb4d9db17537 648
mbed_official 376:cb4d9db17537 649 /* Check the parameter */
mbed_official 376:cb4d9db17537 650 assert_param(IS_COMP_ALL_INSTANCE(hcomp->Instance));
mbed_official 376:cb4d9db17537 651
mbed_official 376:cb4d9db17537 652 return hcomp->State;
mbed_official 376:cb4d9db17537 653 }
mbed_official 489:119543c9f674 654
mbed_official 376:cb4d9db17537 655 /**
mbed_official 376:cb4d9db17537 656 * @}
mbed_official 376:cb4d9db17537 657 */
mbed_official 376:cb4d9db17537 658
mbed_official 489:119543c9f674 659
mbed_official 376:cb4d9db17537 660 /**
mbed_official 376:cb4d9db17537 661 * @}
mbed_official 376:cb4d9db17537 662 */
mbed_official 376:cb4d9db17537 663
mbed_official 376:cb4d9db17537 664 #endif /* HAL_COMP_MODULE_ENABLED */
mbed_official 376:cb4d9db17537 665 /**
mbed_official 376:cb4d9db17537 666 * @}
mbed_official 376:cb4d9db17537 667 */
mbed_official 376:cb4d9db17537 668
mbed_official 376:cb4d9db17537 669 /**
mbed_official 376:cb4d9db17537 670 * @}
mbed_official 376:cb4d9db17537 671 */
mbed_official 376:cb4d9db17537 672
mbed_official 376:cb4d9db17537 673 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
mbed_official 489:119543c9f674 674