mbed SDK library sources

Fork of mbed-src by mbed official

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:
Thu Jan 30 12:15:05 2014 +0000
Revision:
80:66393a7b209d
Parent:
76:aeb1df146756
Synchronized with git revision dba523f83fe09b7fce11fc1299dd1216e9776359

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

Update of I2C, SPI, SLEEP for NUCLEO_F103RB and L152RE

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 76:aeb1df146756 1 /**
mbed_official 76:aeb1df146756 2 ******************************************************************************
mbed_official 76:aeb1df146756 3 * @file stm32l1xx_comp.c
mbed_official 76:aeb1df146756 4 * @author MCD Application Team
mbed_official 80:66393a7b209d 5 * @version V1.3.0
mbed_official 80:66393a7b209d 6 * @date 31-January-2014
mbed_official 76:aeb1df146756 7 * @brief This file provides firmware functions to manage the following
mbed_official 76:aeb1df146756 8 * functionalities of the comparators (COMP1 and COMP2) peripheral:
mbed_official 76:aeb1df146756 9 * + Comparators configuration
mbed_official 76:aeb1df146756 10 * + Window mode control
mbed_official 76:aeb1df146756 11 * + Internal Reference Voltage (VREFINT) output
mbed_official 76:aeb1df146756 12 *
mbed_official 76:aeb1df146756 13 * @verbatim
mbed_official 76:aeb1df146756 14 ===============================================================================
mbed_official 76:aeb1df146756 15 ##### How to use this driver #####
mbed_official 76:aeb1df146756 16 ===============================================================================
mbed_official 76:aeb1df146756 17 [..] The device integrates two analog comparators COMP1 and COMP2:
mbed_official 76:aeb1df146756 18 (+) COMP1 is a fixed threshold (VREFINT) that shares the non inverting
mbed_official 76:aeb1df146756 19 input with the ADC channels.
mbed_official 76:aeb1df146756 20 (+) COMP2 is a rail-to-rail comparator whose the inverting input can be
mbed_official 76:aeb1df146756 21 selected among: DAC_OUT1, DAC_OUT2, 1/4 VREFINT, 1/2 VERFINT, 3/4
mbed_official 76:aeb1df146756 22 VREFINT, VREFINT, PB3 and whose the output can be redirected to
mbed_official 76:aeb1df146756 23 embedded timers: TIM2, TIM3, TIM4, TIM10.
mbed_official 76:aeb1df146756 24
mbed_official 76:aeb1df146756 25 (+) The two comparators COMP1 and COMP2 can be combined in window mode.
mbed_official 76:aeb1df146756 26
mbed_official 76:aeb1df146756 27 -@-
mbed_official 76:aeb1df146756 28 (#@) Comparator APB clock must be enabled to get write access
mbed_official 76:aeb1df146756 29 to comparator register using
mbed_official 76:aeb1df146756 30 RCC_APB1PeriphClockCmd(RCC_APB1Periph_COMP, ENABLE).
mbed_official 76:aeb1df146756 31
mbed_official 76:aeb1df146756 32 (#@) COMP1 comparator and ADC can't be used at the same time since
mbed_official 76:aeb1df146756 33 they share the same ADC switch matrix (analog switches).
mbed_official 76:aeb1df146756 34
mbed_official 76:aeb1df146756 35 (#@) When an I/O is used as comparator input, the corresponding GPIO
mbed_official 76:aeb1df146756 36 registers should be configured in analog mode.
mbed_official 76:aeb1df146756 37
mbed_official 76:aeb1df146756 38 (#@) Comparators outputs (CMP1OUT and CMP2OUT) are not mapped on
mbed_official 76:aeb1df146756 39 GPIO pin. They are only internal.
mbed_official 76:aeb1df146756 40 To get the comparator output level, use COMP_GetOutputLevel().
mbed_official 76:aeb1df146756 41
mbed_official 76:aeb1df146756 42 (#@) COMP1 and COMP2 outputs are internally connected to EXTI Line 21
mbed_official 76:aeb1df146756 43 and EXTI Line 22 respectively.
mbed_official 76:aeb1df146756 44 Interrupts can be used by configuring the EXTI Line using the
mbed_official 76:aeb1df146756 45 EXTI peripheral driver.
mbed_official 76:aeb1df146756 46
mbed_official 76:aeb1df146756 47 (#@) After enabling the comparator (COMP1 or COMP2), user should wait
mbed_official 76:aeb1df146756 48 for start-up time (tSTART) to get right output levels.
mbed_official 76:aeb1df146756 49 Please refer to product datasheet for more information on tSTART.
mbed_official 76:aeb1df146756 50
mbed_official 76:aeb1df146756 51 (#@) Comparators cannot be used to exit the device from Sleep or Stop
mbed_official 76:aeb1df146756 52 mode when the internal reference voltage is switched off using
mbed_official 76:aeb1df146756 53 the PWR_UltraLowPowerCmd() function (ULP bit in the PWR_CR register).
mbed_official 76:aeb1df146756 54
mbed_official 76:aeb1df146756 55 @endverbatim
mbed_official 76:aeb1df146756 56 ******************************************************************************
mbed_official 76:aeb1df146756 57 * @attention
mbed_official 76:aeb1df146756 58 *
mbed_official 80:66393a7b209d 59 * <h2><center>&copy; COPYRIGHT 2014 STMicroelectronics</center></h2>
mbed_official 76:aeb1df146756 60 *
mbed_official 76:aeb1df146756 61 * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License");
mbed_official 76:aeb1df146756 62 * You may not use this file except in compliance with the License.
mbed_official 76:aeb1df146756 63 * You may obtain a copy of the License at:
mbed_official 76:aeb1df146756 64 *
mbed_official 76:aeb1df146756 65 * http://www.st.com/software_license_agreement_liberty_v2
mbed_official 76:aeb1df146756 66 *
mbed_official 76:aeb1df146756 67 * Unless required by applicable law or agreed to in writing, software
mbed_official 76:aeb1df146756 68 * distributed under the License is distributed on an "AS IS" BASIS,
mbed_official 76:aeb1df146756 69 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
mbed_official 76:aeb1df146756 70 * See the License for the specific language governing permissions and
mbed_official 76:aeb1df146756 71 * limitations under the License.
mbed_official 76:aeb1df146756 72 *
mbed_official 76:aeb1df146756 73 ******************************************************************************
mbed_official 76:aeb1df146756 74 */
mbed_official 76:aeb1df146756 75
mbed_official 76:aeb1df146756 76 /* Includes ------------------------------------------------------------------*/
mbed_official 76:aeb1df146756 77 #include "stm32l1xx_comp.h"
mbed_official 76:aeb1df146756 78
mbed_official 76:aeb1df146756 79 /** @addtogroup STM32L1xx_StdPeriph_Driver
mbed_official 76:aeb1df146756 80 * @{
mbed_official 76:aeb1df146756 81 */
mbed_official 76:aeb1df146756 82
mbed_official 76:aeb1df146756 83 /** @defgroup COMP
mbed_official 76:aeb1df146756 84 * @brief COMP driver modules.
mbed_official 76:aeb1df146756 85 * @{
mbed_official 76:aeb1df146756 86 */
mbed_official 76:aeb1df146756 87
mbed_official 76:aeb1df146756 88 /* Private typedef -----------------------------------------------------------*/
mbed_official 76:aeb1df146756 89 /* Private define ------------------------------------------------------------*/
mbed_official 76:aeb1df146756 90 /* Private macro -------------------------------------------------------------*/
mbed_official 76:aeb1df146756 91 /* Private variables ---------------------------------------------------------*/
mbed_official 76:aeb1df146756 92 /* Private function prototypes -----------------------------------------------*/
mbed_official 76:aeb1df146756 93 /* Private functions ---------------------------------------------------------*/
mbed_official 76:aeb1df146756 94
mbed_official 76:aeb1df146756 95 /** @defgroup COMP_Private_Functions
mbed_official 76:aeb1df146756 96 * @{
mbed_official 76:aeb1df146756 97 */
mbed_official 76:aeb1df146756 98
mbed_official 76:aeb1df146756 99 /** @defgroup COMP_Group1 Initialization and Configuration functions
mbed_official 76:aeb1df146756 100 * @brief Initialization and Configuration functions.
mbed_official 76:aeb1df146756 101 *
mbed_official 76:aeb1df146756 102 @verbatim
mbed_official 76:aeb1df146756 103 ===============================================================================
mbed_official 76:aeb1df146756 104 ##### Initialization and Configuration functions #####
mbed_official 76:aeb1df146756 105 ===============================================================================
mbed_official 76:aeb1df146756 106
mbed_official 76:aeb1df146756 107 @endverbatim
mbed_official 76:aeb1df146756 108 * @{
mbed_official 76:aeb1df146756 109 */
mbed_official 76:aeb1df146756 110
mbed_official 76:aeb1df146756 111 /**
mbed_official 76:aeb1df146756 112 * @brief Deinitializes COMP peripheral registers to their default reset values.
mbed_official 76:aeb1df146756 113 * @param None
mbed_official 76:aeb1df146756 114 * @retval None
mbed_official 76:aeb1df146756 115 */
mbed_official 76:aeb1df146756 116 void COMP_DeInit(void)
mbed_official 76:aeb1df146756 117 {
mbed_official 76:aeb1df146756 118 COMP->CSR = ((uint32_t)0x00000000); /*!< Set COMP->CSR to reset value */
mbed_official 76:aeb1df146756 119 }
mbed_official 76:aeb1df146756 120
mbed_official 76:aeb1df146756 121 /**
mbed_official 76:aeb1df146756 122 * @brief Initializes the COMP2 peripheral according to the specified parameters
mbed_official 76:aeb1df146756 123 * in the COMP_InitStruct.
mbed_official 76:aeb1df146756 124 * @note This function configures only COMP2.
mbed_official 76:aeb1df146756 125 * @note COMP2 comparator is enabled as soon as the INSEL[2:0] bits are
mbed_official 76:aeb1df146756 126 * different from "000".
mbed_official 76:aeb1df146756 127 * @param COMP_InitStruct: pointer to an COMP_InitTypeDef structure that contains
mbed_official 76:aeb1df146756 128 * the configuration information for the specified COMP peripheral.
mbed_official 76:aeb1df146756 129 * @retval None
mbed_official 76:aeb1df146756 130 */
mbed_official 76:aeb1df146756 131 void COMP_Init(COMP_InitTypeDef* COMP_InitStruct)
mbed_official 76:aeb1df146756 132 {
mbed_official 76:aeb1df146756 133 uint32_t tmpreg = 0;
mbed_official 76:aeb1df146756 134
mbed_official 76:aeb1df146756 135 /* Check the parameters */
mbed_official 76:aeb1df146756 136 assert_param(IS_COMP_INVERTING_INPUT(COMP_InitStruct->COMP_InvertingInput));
mbed_official 76:aeb1df146756 137 assert_param(IS_COMP_OUTPUT(COMP_InitStruct->COMP_OutputSelect));
mbed_official 76:aeb1df146756 138 assert_param(IS_COMP_SPEED(COMP_InitStruct->COMP_Speed));
mbed_official 76:aeb1df146756 139
mbed_official 76:aeb1df146756 140 /*!< Get the COMP CSR value */
mbed_official 76:aeb1df146756 141 tmpreg = COMP->CSR;
mbed_official 76:aeb1df146756 142
mbed_official 76:aeb1df146756 143 /*!< Clear the INSEL[2:0], OUTSEL[1:0] and SPEED bits */
mbed_official 76:aeb1df146756 144 tmpreg &= (uint32_t) (~(uint32_t) (COMP_CSR_OUTSEL | COMP_CSR_INSEL | COMP_CSR_SPEED));
mbed_official 76:aeb1df146756 145
mbed_official 76:aeb1df146756 146 /*!< Configure COMP: speed, inversion input selection and output redirection */
mbed_official 76:aeb1df146756 147 /*!< Set SPEED bit according to COMP_InitStruct->COMP_Speed value */
mbed_official 76:aeb1df146756 148 /*!< Set INSEL bits according to COMP_InitStruct->COMP_InvertingInput value */
mbed_official 76:aeb1df146756 149 /*!< Set OUTSEL bits according to COMP_InitStruct->COMP_OutputSelect value */
mbed_official 76:aeb1df146756 150 tmpreg |= (uint32_t)((COMP_InitStruct->COMP_Speed | COMP_InitStruct->COMP_InvertingInput
mbed_official 76:aeb1df146756 151 | COMP_InitStruct->COMP_OutputSelect));
mbed_official 76:aeb1df146756 152
mbed_official 76:aeb1df146756 153 /*!< The COMP2 comparator is enabled as soon as the INSEL[2:0] bits value are
mbed_official 76:aeb1df146756 154 different from "000" */
mbed_official 76:aeb1df146756 155 /*!< Write to COMP_CSR register */
mbed_official 76:aeb1df146756 156 COMP->CSR = tmpreg;
mbed_official 76:aeb1df146756 157 }
mbed_official 76:aeb1df146756 158
mbed_official 76:aeb1df146756 159 /**
mbed_official 76:aeb1df146756 160 * @brief Enable or disable the COMP1 peripheral.
mbed_official 76:aeb1df146756 161 * @note After enabling COMP1, the following functions should be called to
mbed_official 76:aeb1df146756 162 * connect the selected GPIO input to COMP1 non inverting input:
mbed_official 76:aeb1df146756 163 * @note Enable switch control mode using SYSCFG_RISwitchControlModeCmd()
mbed_official 76:aeb1df146756 164 * @note Close VCOMP switch using SYSCFG_RIIOSwitchConfig()
mbed_official 76:aeb1df146756 165 * @note Close the I/O switch number n corresponding to the I/O
mbed_official 76:aeb1df146756 166 * using SYSCFG_RIIOSwitchConfig()
mbed_official 76:aeb1df146756 167 * @param NewState: new state of the COMP1 peripheral.
mbed_official 76:aeb1df146756 168 * This parameter can be: ENABLE or DISABLE.
mbed_official 76:aeb1df146756 169 * @note This function enables/disables only the COMP1.
mbed_official 76:aeb1df146756 170 * @retval None
mbed_official 76:aeb1df146756 171 */
mbed_official 76:aeb1df146756 172 void COMP_Cmd(FunctionalState NewState)
mbed_official 76:aeb1df146756 173 {
mbed_official 76:aeb1df146756 174 /* Check the parameter */
mbed_official 76:aeb1df146756 175 assert_param(IS_FUNCTIONAL_STATE(NewState));
mbed_official 76:aeb1df146756 176
mbed_official 76:aeb1df146756 177 if (NewState != DISABLE)
mbed_official 76:aeb1df146756 178 {
mbed_official 76:aeb1df146756 179 /* Enable the COMP1 */
mbed_official 76:aeb1df146756 180 COMP->CSR |= (uint32_t) COMP_CSR_CMP1EN;
mbed_official 76:aeb1df146756 181 }
mbed_official 76:aeb1df146756 182 else
mbed_official 76:aeb1df146756 183 {
mbed_official 76:aeb1df146756 184 /* Disable the COMP1 */
mbed_official 76:aeb1df146756 185 COMP->CSR &= (uint32_t)(~COMP_CSR_CMP1EN);
mbed_official 76:aeb1df146756 186 }
mbed_official 76:aeb1df146756 187 }
mbed_official 76:aeb1df146756 188
mbed_official 76:aeb1df146756 189 /**
mbed_official 76:aeb1df146756 190 * @brief Return the output level (high or low) of the selected comparator.
mbed_official 76:aeb1df146756 191 * @note Comparator output is low when the noninverting input is at a lower
mbed_official 76:aeb1df146756 192 * voltage than the inverting input.
mbed_official 76:aeb1df146756 193 * @note Comparator output is high when the noninverting input is at a higher
mbed_official 76:aeb1df146756 194 * voltage than the inverting input.
mbed_official 76:aeb1df146756 195 * @note Comparators outputs aren't available on GPIO (outputs levels are
mbed_official 76:aeb1df146756 196 * only internal). The COMP1 and COMP2 outputs are connected internally
mbed_official 76:aeb1df146756 197 * to the EXTI Line 21 and Line 22 respectively.
mbed_official 76:aeb1df146756 198 * @param COMP_Selection: the selected comparator.
mbed_official 76:aeb1df146756 199 * This parameter can be one of the following values:
mbed_official 76:aeb1df146756 200 * @arg COMP_Selection_COMP1: COMP1 selected
mbed_official 76:aeb1df146756 201 * @arg COMP_Selection_COMP2: COMP2 selected
mbed_official 76:aeb1df146756 202 * @retval Returns the selected comparator output level.
mbed_official 76:aeb1df146756 203 */
mbed_official 76:aeb1df146756 204 uint8_t COMP_GetOutputLevel(uint32_t COMP_Selection)
mbed_official 76:aeb1df146756 205 {
mbed_official 76:aeb1df146756 206 uint8_t compout = 0x0;
mbed_official 76:aeb1df146756 207
mbed_official 76:aeb1df146756 208 /* Check the parameters */
mbed_official 76:aeb1df146756 209 assert_param(IS_COMP_ALL_PERIPH(COMP_Selection));
mbed_official 76:aeb1df146756 210
mbed_official 76:aeb1df146756 211 /* Check if Comparator 1 is selected */
mbed_official 76:aeb1df146756 212 if(COMP_Selection == COMP_Selection_COMP1)
mbed_official 76:aeb1df146756 213 {
mbed_official 76:aeb1df146756 214 /* Check if comparator 1 output level is high */
mbed_official 76:aeb1df146756 215 if((COMP->CSR & COMP_CSR_CMP1OUT) != (uint8_t) RESET)
mbed_official 76:aeb1df146756 216 {
mbed_official 76:aeb1df146756 217 /* Get Comparator 1 output level */
mbed_official 76:aeb1df146756 218 compout = (uint8_t) COMP_OutputLevel_High;
mbed_official 76:aeb1df146756 219 }
mbed_official 76:aeb1df146756 220 /* comparator 1 output level is low */
mbed_official 76:aeb1df146756 221 else
mbed_official 76:aeb1df146756 222 {
mbed_official 76:aeb1df146756 223 /* Get Comparator 1 output level */
mbed_official 76:aeb1df146756 224 compout = (uint8_t) COMP_OutputLevel_Low;
mbed_official 76:aeb1df146756 225 }
mbed_official 76:aeb1df146756 226 }
mbed_official 76:aeb1df146756 227 /* Comparator 2 is selected */
mbed_official 76:aeb1df146756 228 else
mbed_official 76:aeb1df146756 229 {
mbed_official 76:aeb1df146756 230 /* Check if comparator 2 output level is high */
mbed_official 76:aeb1df146756 231 if((COMP->CSR & COMP_CSR_CMP2OUT) != (uint8_t) RESET)
mbed_official 76:aeb1df146756 232 {
mbed_official 76:aeb1df146756 233 /* Get Comparator output level */
mbed_official 76:aeb1df146756 234 compout = (uint8_t) COMP_OutputLevel_High;
mbed_official 76:aeb1df146756 235 }
mbed_official 76:aeb1df146756 236 /* comparator 2 output level is low */
mbed_official 76:aeb1df146756 237 else
mbed_official 76:aeb1df146756 238 {
mbed_official 76:aeb1df146756 239 /* Get Comparator 2 output level */
mbed_official 76:aeb1df146756 240 compout = (uint8_t) COMP_OutputLevel_Low;
mbed_official 76:aeb1df146756 241 }
mbed_official 76:aeb1df146756 242 }
mbed_official 76:aeb1df146756 243 /* Return the comparator output level */
mbed_official 76:aeb1df146756 244 return (uint8_t)(compout);
mbed_official 76:aeb1df146756 245 }
mbed_official 76:aeb1df146756 246
mbed_official 76:aeb1df146756 247 /**
mbed_official 76:aeb1df146756 248 * @brief Close or Open the SW1 switch.
mbed_official 76:aeb1df146756 249 * @param NewState: new state of the SW1 switch.
mbed_official 76:aeb1df146756 250 * This parameter can be: ENABLE or DISABLE.
mbed_official 76:aeb1df146756 251 * @note ENABLE to close the SW1 switch
mbed_official 76:aeb1df146756 252 * @note DISABLE to open the SW1 switch
mbed_official 76:aeb1df146756 253 * @retval None.
mbed_official 76:aeb1df146756 254 */
mbed_official 76:aeb1df146756 255 void COMP_SW1SwitchConfig(FunctionalState NewState)
mbed_official 76:aeb1df146756 256 {
mbed_official 76:aeb1df146756 257 /* Check the parameters */
mbed_official 76:aeb1df146756 258 assert_param(IS_FUNCTIONAL_STATE(NewState));
mbed_official 76:aeb1df146756 259
mbed_official 76:aeb1df146756 260 if (NewState != DISABLE)
mbed_official 76:aeb1df146756 261 {
mbed_official 76:aeb1df146756 262 /* Close SW1 switch */
mbed_official 76:aeb1df146756 263 COMP->CSR |= (uint32_t) COMP_CSR_SW1;
mbed_official 76:aeb1df146756 264 }
mbed_official 76:aeb1df146756 265 else
mbed_official 76:aeb1df146756 266 {
mbed_official 76:aeb1df146756 267 /* Open SW1 switch */
mbed_official 76:aeb1df146756 268 COMP->CSR &= (uint32_t)(~COMP_CSR_SW1);
mbed_official 76:aeb1df146756 269 }
mbed_official 76:aeb1df146756 270 }
mbed_official 76:aeb1df146756 271
mbed_official 76:aeb1df146756 272 /**
mbed_official 76:aeb1df146756 273 * @}
mbed_official 76:aeb1df146756 274 */
mbed_official 76:aeb1df146756 275
mbed_official 76:aeb1df146756 276 /** @defgroup COMP_Group2 Window mode control function
mbed_official 76:aeb1df146756 277 * @brief Window mode control function.
mbed_official 76:aeb1df146756 278 *
mbed_official 76:aeb1df146756 279 @verbatim
mbed_official 76:aeb1df146756 280 ===============================================================================
mbed_official 76:aeb1df146756 281 ##### Window mode control function #####
mbed_official 76:aeb1df146756 282 ===============================================================================
mbed_official 76:aeb1df146756 283
mbed_official 76:aeb1df146756 284 @endverbatim
mbed_official 76:aeb1df146756 285 * @{
mbed_official 76:aeb1df146756 286 */
mbed_official 76:aeb1df146756 287
mbed_official 76:aeb1df146756 288 /**
mbed_official 76:aeb1df146756 289 * @brief Enables or disables the window mode.
mbed_official 76:aeb1df146756 290 * In window mode:
mbed_official 76:aeb1df146756 291 * @note COMP1 inverting input is fixed to VREFINT defining the first
mbed_official 76:aeb1df146756 292 * threshold.
mbed_official 76:aeb1df146756 293 * @note COMP2 inverting input is configurable (DAC_OUT1, DAC_OUT2, VREFINT
mbed_official 76:aeb1df146756 294 * sub-multiples, PB3) defining the second threshold.
mbed_official 76:aeb1df146756 295 * @note COMP1 and COMP2 non inverting inputs are connected together.
mbed_official 76:aeb1df146756 296 * @note In window mode, only the Group 6 (PB4 or PB5) can be used as
mbed_official 76:aeb1df146756 297 * noninverting inputs.
mbed_official 76:aeb1df146756 298 * @param NewState: new state of the window mode.
mbed_official 76:aeb1df146756 299 * This parameter can be ENABLE or DISABLE.
mbed_official 76:aeb1df146756 300 * @retval None
mbed_official 76:aeb1df146756 301 */
mbed_official 76:aeb1df146756 302 void COMP_WindowCmd(FunctionalState NewState)
mbed_official 76:aeb1df146756 303 {
mbed_official 76:aeb1df146756 304 /* Check the parameters */
mbed_official 76:aeb1df146756 305 assert_param(IS_FUNCTIONAL_STATE(NewState));
mbed_official 76:aeb1df146756 306
mbed_official 76:aeb1df146756 307 if (NewState != DISABLE)
mbed_official 76:aeb1df146756 308 {
mbed_official 76:aeb1df146756 309 /* Enable the window mode */
mbed_official 76:aeb1df146756 310 COMP->CSR |= (uint32_t) COMP_CSR_WNDWE;
mbed_official 76:aeb1df146756 311 }
mbed_official 76:aeb1df146756 312 else
mbed_official 76:aeb1df146756 313 {
mbed_official 76:aeb1df146756 314 /* Disable the window mode */
mbed_official 76:aeb1df146756 315 COMP->CSR &= (uint32_t)(~COMP_CSR_WNDWE);
mbed_official 76:aeb1df146756 316 }
mbed_official 76:aeb1df146756 317 }
mbed_official 76:aeb1df146756 318
mbed_official 76:aeb1df146756 319 /**
mbed_official 76:aeb1df146756 320 * @}
mbed_official 76:aeb1df146756 321 */
mbed_official 76:aeb1df146756 322
mbed_official 76:aeb1df146756 323 /** @defgroup COMP_Group3 Internal Reference Voltage output function
mbed_official 76:aeb1df146756 324 * @brief Internal Reference Voltage (VREFINT) output function.
mbed_official 76:aeb1df146756 325 *
mbed_official 76:aeb1df146756 326 @verbatim
mbed_official 76:aeb1df146756 327 ===============================================================================
mbed_official 76:aeb1df146756 328 ##### Internal Reference Voltage (VREFINT) output function #####
mbed_official 76:aeb1df146756 329 ===============================================================================
mbed_official 76:aeb1df146756 330
mbed_official 76:aeb1df146756 331 @endverbatim
mbed_official 76:aeb1df146756 332 * @{
mbed_official 76:aeb1df146756 333 */
mbed_official 76:aeb1df146756 334
mbed_official 76:aeb1df146756 335 /**
mbed_official 76:aeb1df146756 336 * @brief Enables or disables the output of internal reference voltage (VREFINT).
mbed_official 76:aeb1df146756 337 * The VREFINT output can be routed to any I/O in group 3: CH8 (PB0) or
mbed_official 76:aeb1df146756 338 * CH9 (PB1).
mbed_official 76:aeb1df146756 339 * To correctly use this function, the SYSCFG_RIIOSwitchConfig() function
mbed_official 76:aeb1df146756 340 * should be called after.
mbed_official 76:aeb1df146756 341 * @param NewState: new state of the Vrefint output.
mbed_official 76:aeb1df146756 342 * This parameter can be: ENABLE or DISABLE.
mbed_official 76:aeb1df146756 343 * @retval None
mbed_official 76:aeb1df146756 344 */
mbed_official 76:aeb1df146756 345 void COMP_VrefintOutputCmd(FunctionalState NewState)
mbed_official 76:aeb1df146756 346 {
mbed_official 76:aeb1df146756 347 /* Check the parameters */
mbed_official 76:aeb1df146756 348 assert_param(IS_FUNCTIONAL_STATE(NewState));
mbed_official 76:aeb1df146756 349
mbed_official 76:aeb1df146756 350 if (NewState != DISABLE)
mbed_official 76:aeb1df146756 351 {
mbed_official 76:aeb1df146756 352 /* Enable the output of internal reference voltage */
mbed_official 76:aeb1df146756 353 COMP->CSR |= (uint32_t) COMP_CSR_VREFOUTEN;
mbed_official 76:aeb1df146756 354 }
mbed_official 76:aeb1df146756 355 else
mbed_official 76:aeb1df146756 356 {
mbed_official 76:aeb1df146756 357 /* Disable the output of internal reference voltage */
mbed_official 76:aeb1df146756 358 COMP->CSR &= (uint32_t) (~COMP_CSR_VREFOUTEN);
mbed_official 76:aeb1df146756 359 }
mbed_official 76:aeb1df146756 360 }
mbed_official 76:aeb1df146756 361
mbed_official 76:aeb1df146756 362 /**
mbed_official 76:aeb1df146756 363 * @}
mbed_official 76:aeb1df146756 364 */
mbed_official 76:aeb1df146756 365
mbed_official 76:aeb1df146756 366 /**
mbed_official 76:aeb1df146756 367 * @}
mbed_official 76:aeb1df146756 368 */
mbed_official 76:aeb1df146756 369
mbed_official 76:aeb1df146756 370 /**
mbed_official 76:aeb1df146756 371 * @}
mbed_official 76:aeb1df146756 372 */
mbed_official 76:aeb1df146756 373
mbed_official 76:aeb1df146756 374 /**
mbed_official 76:aeb1df146756 375 * @}
mbed_official 76:aeb1df146756 376 */
mbed_official 76:aeb1df146756 377
mbed_official 76:aeb1df146756 378 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/