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:
Thu Nov 08 11:45:42 2018 +0000
Revision:
171:3a7713b1edbc
Parent:
TARGET_DISCO_F303VC/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_tsc.h@168:b9e159c1930a
mbed library. Release version 164

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 163:e59c8e839560 1 /**
AnnaBridge 163:e59c8e839560 2 ******************************************************************************
AnnaBridge 163:e59c8e839560 3 * @file stm32f3xx_hal_tsc.h
AnnaBridge 163:e59c8e839560 4 * @author MCD Application Team
AnnaBridge 163:e59c8e839560 5 * @brief Header file of TSC HAL module.
AnnaBridge 163:e59c8e839560 6 ******************************************************************************
AnnaBridge 163:e59c8e839560 7 * @attention
AnnaBridge 163:e59c8e839560 8 *
AnnaBridge 163:e59c8e839560 9 * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
AnnaBridge 163:e59c8e839560 10 *
AnnaBridge 163:e59c8e839560 11 * Redistribution and use in source and binary forms, with or without modification,
AnnaBridge 163:e59c8e839560 12 * are permitted provided that the following conditions are met:
AnnaBridge 163:e59c8e839560 13 * 1. Redistributions of source code must retain the above copyright notice,
AnnaBridge 163:e59c8e839560 14 * this list of conditions and the following disclaimer.
AnnaBridge 163:e59c8e839560 15 * 2. Redistributions in binary form must reproduce the above copyright notice,
AnnaBridge 163:e59c8e839560 16 * this list of conditions and the following disclaimer in the documentation
AnnaBridge 163:e59c8e839560 17 * and/or other materials provided with the distribution.
AnnaBridge 163:e59c8e839560 18 * 3. Neither the name of STMicroelectronics nor the names of its contributors
AnnaBridge 163:e59c8e839560 19 * may be used to endorse or promote products derived from this software
AnnaBridge 163:e59c8e839560 20 * without specific prior written permission.
AnnaBridge 163:e59c8e839560 21 *
AnnaBridge 163:e59c8e839560 22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AnnaBridge 163:e59c8e839560 23 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
AnnaBridge 163:e59c8e839560 24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
AnnaBridge 163:e59c8e839560 25 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
AnnaBridge 163:e59c8e839560 26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
AnnaBridge 163:e59c8e839560 27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
AnnaBridge 163:e59c8e839560 28 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
AnnaBridge 163:e59c8e839560 29 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
AnnaBridge 163:e59c8e839560 30 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
AnnaBridge 163:e59c8e839560 31 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
AnnaBridge 163:e59c8e839560 32 *
AnnaBridge 163:e59c8e839560 33 ******************************************************************************
AnnaBridge 163:e59c8e839560 34 */
AnnaBridge 163:e59c8e839560 35
AnnaBridge 163:e59c8e839560 36 /* Define to prevent recursive inclusion -------------------------------------*/
AnnaBridge 163:e59c8e839560 37 #ifndef __STM32F3xx_HAL_TSC_H
AnnaBridge 163:e59c8e839560 38 #define __STM32F3xx_HAL_TSC_H
AnnaBridge 163:e59c8e839560 39
AnnaBridge 163:e59c8e839560 40 #ifdef __cplusplus
AnnaBridge 163:e59c8e839560 41 extern "C" {
AnnaBridge 163:e59c8e839560 42 #endif
AnnaBridge 163:e59c8e839560 43
AnnaBridge 163:e59c8e839560 44 /* Includes ------------------------------------------------------------------*/
AnnaBridge 163:e59c8e839560 45 #include "stm32f3xx_hal_def.h"
AnnaBridge 163:e59c8e839560 46
AnnaBridge 163:e59c8e839560 47 /** @addtogroup STM32F3xx_HAL_Driver
AnnaBridge 163:e59c8e839560 48 * @{
AnnaBridge 163:e59c8e839560 49 */
AnnaBridge 163:e59c8e839560 50
AnnaBridge 163:e59c8e839560 51 /** @addtogroup TSC
AnnaBridge 163:e59c8e839560 52 * @{
AnnaBridge 163:e59c8e839560 53 */
AnnaBridge 163:e59c8e839560 54
AnnaBridge 163:e59c8e839560 55 /* Exported types ------------------------------------------------------------*/
AnnaBridge 163:e59c8e839560 56 /** @defgroup TSC_Exported_Types TSC Exported Types
AnnaBridge 163:e59c8e839560 57 * @{
AnnaBridge 163:e59c8e839560 58 */
AnnaBridge 163:e59c8e839560 59
AnnaBridge 163:e59c8e839560 60 /**
AnnaBridge 163:e59c8e839560 61 * @brief TSC state structure definition
AnnaBridge 163:e59c8e839560 62 */
AnnaBridge 163:e59c8e839560 63 typedef enum
AnnaBridge 163:e59c8e839560 64 {
AnnaBridge 163:e59c8e839560 65 HAL_TSC_STATE_RESET = 0x00U, /*!< TSC registers have their reset value */
AnnaBridge 163:e59c8e839560 66 HAL_TSC_STATE_READY = 0x01U, /*!< TSC registers are initialized or acquisition is completed with success */
AnnaBridge 163:e59c8e839560 67 HAL_TSC_STATE_BUSY = 0x02U, /*!< TSC initialization or acquisition is on-going */
AnnaBridge 163:e59c8e839560 68 HAL_TSC_STATE_ERROR = 0x03U /*!< Acquisition is completed with max count error */
AnnaBridge 163:e59c8e839560 69 } HAL_TSC_StateTypeDef;
AnnaBridge 163:e59c8e839560 70
AnnaBridge 163:e59c8e839560 71 /**
AnnaBridge 163:e59c8e839560 72 * @brief TSC group status structure definition
AnnaBridge 163:e59c8e839560 73 */
AnnaBridge 163:e59c8e839560 74 typedef enum
AnnaBridge 163:e59c8e839560 75 {
AnnaBridge 163:e59c8e839560 76 TSC_GROUP_ONGOING = 0x00U, /*!< Acquisition on group is on-going or not started */
AnnaBridge 163:e59c8e839560 77 TSC_GROUP_COMPLETED = 0x01U /*!< Acquisition on group is completed with success (no max count error) */
AnnaBridge 163:e59c8e839560 78 } TSC_GroupStatusTypeDef;
AnnaBridge 163:e59c8e839560 79
AnnaBridge 163:e59c8e839560 80 /**
AnnaBridge 163:e59c8e839560 81 * @brief TSC init structure definition
AnnaBridge 163:e59c8e839560 82 */
AnnaBridge 163:e59c8e839560 83 typedef struct
AnnaBridge 163:e59c8e839560 84 {
AnnaBridge 163:e59c8e839560 85 uint32_t CTPulseHighLength; /*!< Charge-transfer high pulse length
AnnaBridge 163:e59c8e839560 86 This parameter can be a value of @ref TSC_CTPulseHL_Config */
AnnaBridge 163:e59c8e839560 87 uint32_t CTPulseLowLength; /*!< Charge-transfer low pulse length
AnnaBridge 163:e59c8e839560 88 This parameter can be a value of @ref TSC_CTPulseLL_Config */
AnnaBridge 163:e59c8e839560 89 uint32_t SpreadSpectrum; /*!< Spread spectrum activation
AnnaBridge 163:e59c8e839560 90 This parameter can be a value of @ref TSC_CTPulseLL_Config */
AnnaBridge 163:e59c8e839560 91 uint32_t SpreadSpectrumDeviation; /*!< Spread spectrum deviation
AnnaBridge 163:e59c8e839560 92 This parameter must be a number between Min_Data = 0 and Max_Data = 127U */
AnnaBridge 163:e59c8e839560 93 uint32_t SpreadSpectrumPrescaler; /*!< Spread spectrum prescaler
AnnaBridge 163:e59c8e839560 94 This parameter can be a value of @ref TSC_SpreadSpec_Prescaler */
AnnaBridge 163:e59c8e839560 95 uint32_t PulseGeneratorPrescaler; /*!< Pulse generator prescaler
AnnaBridge 163:e59c8e839560 96 This parameter can be a value of @ref TSC_PulseGenerator_Prescaler */
AnnaBridge 163:e59c8e839560 97 uint32_t MaxCountValue; /*!< Max count value
AnnaBridge 163:e59c8e839560 98 This parameter can be a value of @ref TSC_MaxCount_Value */
AnnaBridge 163:e59c8e839560 99 uint32_t IODefaultMode; /*!< IO default mode
AnnaBridge 163:e59c8e839560 100 This parameter can be a value of @ref TSC_IO_Default_Mode */
AnnaBridge 163:e59c8e839560 101 uint32_t SynchroPinPolarity; /*!< Synchro pin polarity
AnnaBridge 163:e59c8e839560 102 This parameter can be a value of @ref TSC_Synchro_Pin_Polarity */
AnnaBridge 163:e59c8e839560 103 uint32_t AcquisitionMode; /*!< Acquisition mode
AnnaBridge 163:e59c8e839560 104 This parameter can be a value of @ref TSC_Acquisition_Mode */
AnnaBridge 163:e59c8e839560 105 uint32_t MaxCountInterrupt; /*!< Max count interrupt activation
AnnaBridge 163:e59c8e839560 106 This parameter can be set to ENABLE or DISABLE. */
AnnaBridge 163:e59c8e839560 107 uint32_t ChannelIOs; /*!< Channel IOs mask */
AnnaBridge 163:e59c8e839560 108 uint32_t ShieldIOs; /*!< Shield IOs mask */
AnnaBridge 163:e59c8e839560 109 uint32_t SamplingIOs; /*!< Sampling IOs mask */
AnnaBridge 163:e59c8e839560 110 } TSC_InitTypeDef;
AnnaBridge 163:e59c8e839560 111
AnnaBridge 163:e59c8e839560 112 /**
AnnaBridge 163:e59c8e839560 113 * @brief TSC IOs configuration structure definition
AnnaBridge 163:e59c8e839560 114 */
AnnaBridge 163:e59c8e839560 115 typedef struct
AnnaBridge 163:e59c8e839560 116 {
AnnaBridge 163:e59c8e839560 117 uint32_t ChannelIOs; /*!< Channel IOs mask */
AnnaBridge 163:e59c8e839560 118 uint32_t ShieldIOs; /*!< Shield IOs mask */
AnnaBridge 163:e59c8e839560 119 uint32_t SamplingIOs; /*!< Sampling IOs mask */
AnnaBridge 163:e59c8e839560 120 } TSC_IOConfigTypeDef;
AnnaBridge 163:e59c8e839560 121
AnnaBridge 163:e59c8e839560 122 /**
AnnaBridge 163:e59c8e839560 123 * @brief TSC handle Structure definition
AnnaBridge 163:e59c8e839560 124 */
AnnaBridge 163:e59c8e839560 125 typedef struct
AnnaBridge 163:e59c8e839560 126 {
AnnaBridge 163:e59c8e839560 127 TSC_TypeDef *Instance; /*!< Register base address */
AnnaBridge 163:e59c8e839560 128 TSC_InitTypeDef Init; /*!< Initialization parameters */
AnnaBridge 163:e59c8e839560 129 __IO HAL_TSC_StateTypeDef State; /*!< Peripheral state */
AnnaBridge 163:e59c8e839560 130 HAL_LockTypeDef Lock; /*!< Lock feature */
AnnaBridge 163:e59c8e839560 131 } TSC_HandleTypeDef;
AnnaBridge 163:e59c8e839560 132
AnnaBridge 163:e59c8e839560 133 /**
AnnaBridge 163:e59c8e839560 134 * @}
AnnaBridge 163:e59c8e839560 135 */
AnnaBridge 163:e59c8e839560 136
AnnaBridge 163:e59c8e839560 137 /* Exported constants --------------------------------------------------------*/
AnnaBridge 163:e59c8e839560 138 /** @defgroup TSC_Exported_Constants TSC Exported Constants
AnnaBridge 163:e59c8e839560 139 * @{
AnnaBridge 163:e59c8e839560 140 */
AnnaBridge 163:e59c8e839560 141
AnnaBridge 163:e59c8e839560 142 /** @defgroup TSC_CTPulseHL_Config CTPulse High Length
AnnaBridge 163:e59c8e839560 143 * @{
AnnaBridge 163:e59c8e839560 144 */
AnnaBridge 163:e59c8e839560 145 #define TSC_CTPH_1CYCLE ((uint32_t)( 0U << 28U))
AnnaBridge 163:e59c8e839560 146 #define TSC_CTPH_2CYCLES ((uint32_t)( 1U << 28U))
AnnaBridge 163:e59c8e839560 147 #define TSC_CTPH_3CYCLES ((uint32_t)( 2U << 28U))
AnnaBridge 163:e59c8e839560 148 #define TSC_CTPH_4CYCLES ((uint32_t)( 3U << 28U))
AnnaBridge 163:e59c8e839560 149 #define TSC_CTPH_5CYCLES ((uint32_t)( 4U << 28U))
AnnaBridge 163:e59c8e839560 150 #define TSC_CTPH_6CYCLES ((uint32_t)( 5U << 28U))
AnnaBridge 163:e59c8e839560 151 #define TSC_CTPH_7CYCLES ((uint32_t)( 6U << 28U))
AnnaBridge 163:e59c8e839560 152 #define TSC_CTPH_8CYCLES ((uint32_t)( 7U << 28U))
AnnaBridge 163:e59c8e839560 153 #define TSC_CTPH_9CYCLES ((uint32_t)( 8U << 28U))
AnnaBridge 163:e59c8e839560 154 #define TSC_CTPH_10CYCLES ((uint32_t)( 9U << 28U))
AnnaBridge 163:e59c8e839560 155 #define TSC_CTPH_11CYCLES ((uint32_t)(10U << 28U))
AnnaBridge 163:e59c8e839560 156 #define TSC_CTPH_12CYCLES ((uint32_t)(11U << 28U))
AnnaBridge 163:e59c8e839560 157 #define TSC_CTPH_13CYCLES ((uint32_t)(12U << 28U))
AnnaBridge 163:e59c8e839560 158 #define TSC_CTPH_14CYCLES ((uint32_t)(13U << 28U))
AnnaBridge 163:e59c8e839560 159 #define TSC_CTPH_15CYCLES ((uint32_t)(14U << 28U))
AnnaBridge 163:e59c8e839560 160 #define TSC_CTPH_16CYCLES ((uint32_t)(15U << 28U))
AnnaBridge 163:e59c8e839560 161 /**
AnnaBridge 163:e59c8e839560 162 * @}
AnnaBridge 163:e59c8e839560 163 */
AnnaBridge 163:e59c8e839560 164
AnnaBridge 163:e59c8e839560 165 /** @defgroup TSC_CTPulseLL_Config CTPulse Low Length
AnnaBridge 163:e59c8e839560 166 * @{
AnnaBridge 163:e59c8e839560 167 */
AnnaBridge 163:e59c8e839560 168 #define TSC_CTPL_1CYCLE ((uint32_t)( 0U << 24U))
AnnaBridge 163:e59c8e839560 169 #define TSC_CTPL_2CYCLES ((uint32_t)( 1U << 24U))
AnnaBridge 163:e59c8e839560 170 #define TSC_CTPL_3CYCLES ((uint32_t)( 2U << 24U))
AnnaBridge 163:e59c8e839560 171 #define TSC_CTPL_4CYCLES ((uint32_t)( 3U << 24U))
AnnaBridge 163:e59c8e839560 172 #define TSC_CTPL_5CYCLES ((uint32_t)( 4U << 24U))
AnnaBridge 163:e59c8e839560 173 #define TSC_CTPL_6CYCLES ((uint32_t)( 5U << 24U))
AnnaBridge 163:e59c8e839560 174 #define TSC_CTPL_7CYCLES ((uint32_t)( 6U << 24U))
AnnaBridge 163:e59c8e839560 175 #define TSC_CTPL_8CYCLES ((uint32_t)( 7U << 24U))
AnnaBridge 163:e59c8e839560 176 #define TSC_CTPL_9CYCLES ((uint32_t)( 8U << 24U))
AnnaBridge 163:e59c8e839560 177 #define TSC_CTPL_10CYCLES ((uint32_t)( 9U << 24U))
AnnaBridge 163:e59c8e839560 178 #define TSC_CTPL_11CYCLES ((uint32_t)(10U << 24U))
AnnaBridge 163:e59c8e839560 179 #define TSC_CTPL_12CYCLES ((uint32_t)(11U << 24U))
AnnaBridge 163:e59c8e839560 180 #define TSC_CTPL_13CYCLES ((uint32_t)(12U << 24U))
AnnaBridge 163:e59c8e839560 181 #define TSC_CTPL_14CYCLES ((uint32_t)(13U << 24U))
AnnaBridge 163:e59c8e839560 182 #define TSC_CTPL_15CYCLES ((uint32_t)(14U << 24U))
AnnaBridge 163:e59c8e839560 183 #define TSC_CTPL_16CYCLES ((uint32_t)(15U << 24U))
AnnaBridge 163:e59c8e839560 184 /**
AnnaBridge 163:e59c8e839560 185 * @}
AnnaBridge 163:e59c8e839560 186 */
AnnaBridge 163:e59c8e839560 187
AnnaBridge 163:e59c8e839560 188 /** @defgroup TSC_SpreadSpec_Prescaler Spread Spectrum Prescaler
AnnaBridge 163:e59c8e839560 189 * @{
AnnaBridge 163:e59c8e839560 190 */
AnnaBridge 163:e59c8e839560 191 #define TSC_SS_PRESC_DIV1 (0U)
AnnaBridge 163:e59c8e839560 192 #define TSC_SS_PRESC_DIV2 (TSC_CR_SSPSC)
AnnaBridge 163:e59c8e839560 193 /**
AnnaBridge 163:e59c8e839560 194 * @}
AnnaBridge 163:e59c8e839560 195 */
AnnaBridge 163:e59c8e839560 196
AnnaBridge 163:e59c8e839560 197 /** @defgroup TSC_PulseGenerator_Prescaler Pulse Generator Prescaler
AnnaBridge 163:e59c8e839560 198 * @{
AnnaBridge 163:e59c8e839560 199 */
AnnaBridge 163:e59c8e839560 200 #define TSC_PG_PRESC_DIV1 ((uint32_t)(0U << 12U))
AnnaBridge 163:e59c8e839560 201 #define TSC_PG_PRESC_DIV2 ((uint32_t)(1U << 12U))
AnnaBridge 163:e59c8e839560 202 #define TSC_PG_PRESC_DIV4 ((uint32_t)(2U << 12U))
AnnaBridge 163:e59c8e839560 203 #define TSC_PG_PRESC_DIV8 ((uint32_t)(3U << 12U))
AnnaBridge 163:e59c8e839560 204 #define TSC_PG_PRESC_DIV16 ((uint32_t)(4U << 12U))
AnnaBridge 163:e59c8e839560 205 #define TSC_PG_PRESC_DIV32 ((uint32_t)(5U << 12U))
AnnaBridge 163:e59c8e839560 206 #define TSC_PG_PRESC_DIV64 ((uint32_t)(6U << 12U))
AnnaBridge 163:e59c8e839560 207 #define TSC_PG_PRESC_DIV128 ((uint32_t)(7U << 12U))
AnnaBridge 163:e59c8e839560 208 /**
AnnaBridge 163:e59c8e839560 209 * @}
AnnaBridge 163:e59c8e839560 210 */
AnnaBridge 163:e59c8e839560 211
AnnaBridge 163:e59c8e839560 212 /** @defgroup TSC_MaxCount_Value Max Count Value
AnnaBridge 163:e59c8e839560 213 * @{
AnnaBridge 163:e59c8e839560 214 */
AnnaBridge 163:e59c8e839560 215 #define TSC_MCV_255 ((uint32_t)(0U << 5U))
AnnaBridge 163:e59c8e839560 216 #define TSC_MCV_511 ((uint32_t)(1U << 5U))
AnnaBridge 163:e59c8e839560 217 #define TSC_MCV_1023 ((uint32_t)(2U << 5U))
AnnaBridge 163:e59c8e839560 218 #define TSC_MCV_2047 ((uint32_t)(3U << 5U))
AnnaBridge 163:e59c8e839560 219 #define TSC_MCV_4095 ((uint32_t)(4U << 5U))
AnnaBridge 163:e59c8e839560 220 #define TSC_MCV_8191 ((uint32_t)(5U << 5U))
AnnaBridge 163:e59c8e839560 221 #define TSC_MCV_16383 ((uint32_t)(6U << 5U))
AnnaBridge 163:e59c8e839560 222 /**
AnnaBridge 163:e59c8e839560 223 * @}
AnnaBridge 163:e59c8e839560 224 */
AnnaBridge 163:e59c8e839560 225
AnnaBridge 163:e59c8e839560 226 /** @defgroup TSC_IO_Default_Mode IO Default Mode
AnnaBridge 163:e59c8e839560 227 * @{
AnnaBridge 163:e59c8e839560 228 */
AnnaBridge 163:e59c8e839560 229 #define TSC_IODEF_OUT_PP_LOW (0U)
AnnaBridge 163:e59c8e839560 230 #define TSC_IODEF_IN_FLOAT (TSC_CR_IODEF)
AnnaBridge 163:e59c8e839560 231 /**
AnnaBridge 163:e59c8e839560 232 * @}
AnnaBridge 163:e59c8e839560 233 */
AnnaBridge 163:e59c8e839560 234
AnnaBridge 163:e59c8e839560 235 /** @defgroup TSC_Synchro_Pin_Polarity Synchro Pin Polarity
AnnaBridge 163:e59c8e839560 236 * @{
AnnaBridge 163:e59c8e839560 237 */
AnnaBridge 163:e59c8e839560 238 #define TSC_SYNC_POLARITY_FALLING (0U)
AnnaBridge 163:e59c8e839560 239 #define TSC_SYNC_POLARITY_RISING (TSC_CR_SYNCPOL)
AnnaBridge 163:e59c8e839560 240 /**
AnnaBridge 163:e59c8e839560 241 * @}
AnnaBridge 163:e59c8e839560 242 */
AnnaBridge 163:e59c8e839560 243
AnnaBridge 163:e59c8e839560 244 /** @defgroup TSC_Acquisition_Mode Acquisition Mode
AnnaBridge 163:e59c8e839560 245 * @{
AnnaBridge 163:e59c8e839560 246 */
AnnaBridge 163:e59c8e839560 247 #define TSC_ACQ_MODE_NORMAL (0U)
AnnaBridge 163:e59c8e839560 248 #define TSC_ACQ_MODE_SYNCHRO (TSC_CR_AM)
AnnaBridge 163:e59c8e839560 249 /**
AnnaBridge 163:e59c8e839560 250 * @}
AnnaBridge 163:e59c8e839560 251 */
AnnaBridge 163:e59c8e839560 252
AnnaBridge 163:e59c8e839560 253 /** @defgroup TSC_IO_Mode IO Mode
AnnaBridge 163:e59c8e839560 254 * @{
AnnaBridge 163:e59c8e839560 255 */
AnnaBridge 163:e59c8e839560 256 #define TSC_IOMODE_UNUSED (0U)
AnnaBridge 163:e59c8e839560 257 #define TSC_IOMODE_CHANNEL (1U)
AnnaBridge 163:e59c8e839560 258 #define TSC_IOMODE_SHIELD (2U)
AnnaBridge 163:e59c8e839560 259 #define TSC_IOMODE_SAMPLING (3U)
AnnaBridge 163:e59c8e839560 260 /**
AnnaBridge 163:e59c8e839560 261 * @}
AnnaBridge 163:e59c8e839560 262 */
AnnaBridge 163:e59c8e839560 263
AnnaBridge 163:e59c8e839560 264 /** @defgroup TSC_interrupts_definition Interrupts definition
AnnaBridge 163:e59c8e839560 265 * @{
AnnaBridge 163:e59c8e839560 266 */
AnnaBridge 163:e59c8e839560 267 #define TSC_IT_EOA ((uint32_t)TSC_IER_EOAIE)
AnnaBridge 163:e59c8e839560 268 #define TSC_IT_MCE ((uint32_t)TSC_IER_MCEIE)
AnnaBridge 163:e59c8e839560 269 /**
AnnaBridge 163:e59c8e839560 270 * @}
AnnaBridge 163:e59c8e839560 271 */
AnnaBridge 163:e59c8e839560 272
AnnaBridge 163:e59c8e839560 273 /** @defgroup TSC_flags_definition Flags definition
AnnaBridge 163:e59c8e839560 274 * @{
AnnaBridge 163:e59c8e839560 275 */
AnnaBridge 163:e59c8e839560 276 #define TSC_FLAG_EOA ((uint32_t)TSC_ISR_EOAF)
AnnaBridge 163:e59c8e839560 277 #define TSC_FLAG_MCE ((uint32_t)TSC_ISR_MCEF)
AnnaBridge 163:e59c8e839560 278 /**
AnnaBridge 163:e59c8e839560 279 * @}
AnnaBridge 163:e59c8e839560 280 */
AnnaBridge 163:e59c8e839560 281
AnnaBridge 163:e59c8e839560 282 /** @defgroup TSC_Group_definition Group definition
AnnaBridge 163:e59c8e839560 283 * @{
AnnaBridge 163:e59c8e839560 284 */
AnnaBridge 163:e59c8e839560 285 #define TSC_NB_OF_GROUPS (8U)
AnnaBridge 163:e59c8e839560 286
AnnaBridge 163:e59c8e839560 287 #define TSC_GROUP1 (0x00000001U)
AnnaBridge 163:e59c8e839560 288 #define TSC_GROUP2 (0x00000002U)
AnnaBridge 163:e59c8e839560 289 #define TSC_GROUP3 (0x00000004U)
AnnaBridge 163:e59c8e839560 290 #define TSC_GROUP4 (0x00000008U)
AnnaBridge 163:e59c8e839560 291 #define TSC_GROUP5 (0x00000010U)
AnnaBridge 163:e59c8e839560 292 #define TSC_GROUP6 (0x00000020U)
AnnaBridge 163:e59c8e839560 293 #define TSC_GROUP7 (0x00000040U)
AnnaBridge 163:e59c8e839560 294 #define TSC_GROUP8 (0x00000080U)
AnnaBridge 163:e59c8e839560 295 #define TSC_ALL_GROUPS (0x000000FFU)
AnnaBridge 163:e59c8e839560 296
AnnaBridge 163:e59c8e839560 297 #define TSC_GROUP1_IDX (0U)
AnnaBridge 163:e59c8e839560 298 #define TSC_GROUP2_IDX (1U)
AnnaBridge 163:e59c8e839560 299 #define TSC_GROUP3_IDX (2U)
AnnaBridge 163:e59c8e839560 300 #define TSC_GROUP4_IDX (3U)
AnnaBridge 163:e59c8e839560 301 #define TSC_GROUP5_IDX (4U)
AnnaBridge 163:e59c8e839560 302 #define TSC_GROUP6_IDX (5U)
AnnaBridge 163:e59c8e839560 303 #define TSC_GROUP7_IDX (6U)
AnnaBridge 163:e59c8e839560 304 #define TSC_GROUP8_IDX (7U)
AnnaBridge 163:e59c8e839560 305
AnnaBridge 163:e59c8e839560 306 #define TSC_GROUP1_IO1 (0x00000001U)
AnnaBridge 163:e59c8e839560 307 #define TSC_GROUP1_IO2 (0x00000002U)
AnnaBridge 163:e59c8e839560 308 #define TSC_GROUP1_IO3 (0x00000004U)
AnnaBridge 163:e59c8e839560 309 #define TSC_GROUP1_IO4 (0x00000008U)
AnnaBridge 163:e59c8e839560 310 #define TSC_GROUP1_ALL_IOS (0x0000000FU)
AnnaBridge 163:e59c8e839560 311
AnnaBridge 163:e59c8e839560 312 #define TSC_GROUP2_IO1 (0x00000010U)
AnnaBridge 163:e59c8e839560 313 #define TSC_GROUP2_IO2 (0x00000020U)
AnnaBridge 163:e59c8e839560 314 #define TSC_GROUP2_IO3 (0x00000040U)
AnnaBridge 163:e59c8e839560 315 #define TSC_GROUP2_IO4 (0x00000080U)
AnnaBridge 163:e59c8e839560 316 #define TSC_GROUP2_ALL_IOS (0x000000F0U)
AnnaBridge 163:e59c8e839560 317
AnnaBridge 163:e59c8e839560 318 #define TSC_GROUP3_IO1 (0x00000100U)
AnnaBridge 163:e59c8e839560 319 #define TSC_GROUP3_IO2 (0x00000200U)
AnnaBridge 163:e59c8e839560 320 #define TSC_GROUP3_IO3 (0x00000400U)
AnnaBridge 163:e59c8e839560 321 #define TSC_GROUP3_IO4 (0x00000800U)
AnnaBridge 163:e59c8e839560 322 #define TSC_GROUP3_ALL_IOS (0x00000F00U)
AnnaBridge 163:e59c8e839560 323
AnnaBridge 163:e59c8e839560 324 #define TSC_GROUP4_IO1 (0x00001000U)
AnnaBridge 163:e59c8e839560 325 #define TSC_GROUP4_IO2 (0x00002000U)
AnnaBridge 163:e59c8e839560 326 #define TSC_GROUP4_IO3 (0x00004000U)
AnnaBridge 163:e59c8e839560 327 #define TSC_GROUP4_IO4 (0x00008000U)
AnnaBridge 163:e59c8e839560 328 #define TSC_GROUP4_ALL_IOS (0x0000F000U)
AnnaBridge 163:e59c8e839560 329
AnnaBridge 163:e59c8e839560 330 #define TSC_GROUP5_IO1 (0x00010000U)
AnnaBridge 163:e59c8e839560 331 #define TSC_GROUP5_IO2 (0x00020000U)
AnnaBridge 163:e59c8e839560 332 #define TSC_GROUP5_IO3 (0x00040000U)
AnnaBridge 163:e59c8e839560 333 #define TSC_GROUP5_IO4 (0x00080000U)
AnnaBridge 163:e59c8e839560 334 #define TSC_GROUP5_ALL_IOS (0x000F0000U)
AnnaBridge 163:e59c8e839560 335
AnnaBridge 163:e59c8e839560 336 #define TSC_GROUP6_IO1 (0x00100000U)
AnnaBridge 163:e59c8e839560 337 #define TSC_GROUP6_IO2 (0x00200000U)
AnnaBridge 163:e59c8e839560 338 #define TSC_GROUP6_IO3 (0x00400000U)
AnnaBridge 163:e59c8e839560 339 #define TSC_GROUP6_IO4 (0x00800000U)
AnnaBridge 163:e59c8e839560 340 #define TSC_GROUP6_ALL_IOS (0x00F00000U)
AnnaBridge 163:e59c8e839560 341
AnnaBridge 163:e59c8e839560 342 #define TSC_GROUP7_IO1 (0x01000000U)
AnnaBridge 163:e59c8e839560 343 #define TSC_GROUP7_IO2 (0x02000000U)
AnnaBridge 163:e59c8e839560 344 #define TSC_GROUP7_IO3 (0x04000000U)
AnnaBridge 163:e59c8e839560 345 #define TSC_GROUP7_IO4 (0x08000000U)
AnnaBridge 163:e59c8e839560 346 #define TSC_GROUP7_ALL_IOS (0x0F000000U)
AnnaBridge 163:e59c8e839560 347
AnnaBridge 163:e59c8e839560 348 #define TSC_GROUP8_IO1 (0x10000000U)
AnnaBridge 163:e59c8e839560 349 #define TSC_GROUP8_IO2 (0x20000000U)
AnnaBridge 163:e59c8e839560 350 #define TSC_GROUP8_IO3 (0x40000000U)
AnnaBridge 163:e59c8e839560 351 #define TSC_GROUP8_IO4 (0x80000000U)
AnnaBridge 163:e59c8e839560 352 #define TSC_GROUP8_ALL_IOS (0xF0000000U)
AnnaBridge 163:e59c8e839560 353
AnnaBridge 163:e59c8e839560 354 #define TSC_ALL_GROUPS_ALL_IOS (0xFFFFFFFFU)
AnnaBridge 163:e59c8e839560 355 /**
AnnaBridge 163:e59c8e839560 356 * @}
AnnaBridge 163:e59c8e839560 357 */
AnnaBridge 163:e59c8e839560 358
AnnaBridge 163:e59c8e839560 359 /**
AnnaBridge 163:e59c8e839560 360 * @}
AnnaBridge 163:e59c8e839560 361 */
AnnaBridge 163:e59c8e839560 362
AnnaBridge 163:e59c8e839560 363 /* Exported macros -----------------------------------------------------------*/
AnnaBridge 163:e59c8e839560 364
AnnaBridge 163:e59c8e839560 365 /** @defgroup TSC_Exported_Macros TSC Exported Macros
AnnaBridge 163:e59c8e839560 366 * @{
AnnaBridge 163:e59c8e839560 367 */
AnnaBridge 163:e59c8e839560 368
AnnaBridge 163:e59c8e839560 369 /** @brief Reset TSC handle state.
AnnaBridge 168:b9e159c1930a 370 * @param __HANDLE__ TSC handle
AnnaBridge 163:e59c8e839560 371 * @retval None
AnnaBridge 163:e59c8e839560 372 */
AnnaBridge 163:e59c8e839560 373 #define __HAL_TSC_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_TSC_STATE_RESET)
AnnaBridge 163:e59c8e839560 374
AnnaBridge 163:e59c8e839560 375 /**
AnnaBridge 163:e59c8e839560 376 * @brief Enable the TSC peripheral.
AnnaBridge 168:b9e159c1930a 377 * @param __HANDLE__ TSC handle
AnnaBridge 163:e59c8e839560 378 * @retval None
AnnaBridge 163:e59c8e839560 379 */
AnnaBridge 163:e59c8e839560 380 #define __HAL_TSC_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= TSC_CR_TSCE)
AnnaBridge 163:e59c8e839560 381
AnnaBridge 163:e59c8e839560 382 /**
AnnaBridge 163:e59c8e839560 383 * @brief Disable the TSC peripheral.
AnnaBridge 168:b9e159c1930a 384 * @param __HANDLE__ TSC handle
AnnaBridge 163:e59c8e839560 385 * @retval None
AnnaBridge 163:e59c8e839560 386 */
AnnaBridge 163:e59c8e839560 387 #define __HAL_TSC_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= (uint32_t)(~TSC_CR_TSCE))
AnnaBridge 163:e59c8e839560 388
AnnaBridge 163:e59c8e839560 389 /**
AnnaBridge 163:e59c8e839560 390 * @brief Start acquisition.
AnnaBridge 168:b9e159c1930a 391 * @param __HANDLE__ TSC handle
AnnaBridge 163:e59c8e839560 392 * @retval None
AnnaBridge 163:e59c8e839560 393 */
AnnaBridge 163:e59c8e839560 394 #define __HAL_TSC_START_ACQ(__HANDLE__) ((__HANDLE__)->Instance->CR |= TSC_CR_START)
AnnaBridge 163:e59c8e839560 395
AnnaBridge 163:e59c8e839560 396 /**
AnnaBridge 163:e59c8e839560 397 * @brief Stop acquisition.
AnnaBridge 168:b9e159c1930a 398 * @param __HANDLE__ TSC handle
AnnaBridge 163:e59c8e839560 399 * @retval None
AnnaBridge 163:e59c8e839560 400 */
AnnaBridge 163:e59c8e839560 401 #define __HAL_TSC_STOP_ACQ(__HANDLE__) ((__HANDLE__)->Instance->CR &= (uint32_t)(~TSC_CR_START))
AnnaBridge 163:e59c8e839560 402
AnnaBridge 163:e59c8e839560 403 /**
AnnaBridge 163:e59c8e839560 404 * @brief Set IO default mode to output push-pull low.
AnnaBridge 168:b9e159c1930a 405 * @param __HANDLE__ TSC handle
AnnaBridge 163:e59c8e839560 406 * @retval None
AnnaBridge 163:e59c8e839560 407 */
AnnaBridge 163:e59c8e839560 408 #define __HAL_TSC_SET_IODEF_OUTPPLOW(__HANDLE__) ((__HANDLE__)->Instance->CR &= (uint32_t)(~TSC_CR_IODEF))
AnnaBridge 163:e59c8e839560 409
AnnaBridge 163:e59c8e839560 410 /**
AnnaBridge 163:e59c8e839560 411 * @brief Set IO default mode to input floating.
AnnaBridge 168:b9e159c1930a 412 * @param __HANDLE__ TSC handle
AnnaBridge 163:e59c8e839560 413 * @retval None
AnnaBridge 163:e59c8e839560 414 */
AnnaBridge 163:e59c8e839560 415 #define __HAL_TSC_SET_IODEF_INFLOAT(__HANDLE__) ((__HANDLE__)->Instance->CR |= TSC_CR_IODEF)
AnnaBridge 163:e59c8e839560 416
AnnaBridge 163:e59c8e839560 417 /**
AnnaBridge 163:e59c8e839560 418 * @brief Set synchronization polarity to falling edge.
AnnaBridge 168:b9e159c1930a 419 * @param __HANDLE__ TSC handle
AnnaBridge 163:e59c8e839560 420 * @retval None
AnnaBridge 163:e59c8e839560 421 */
AnnaBridge 163:e59c8e839560 422 #define __HAL_TSC_SET_SYNC_POL_FALL(__HANDLE__) ((__HANDLE__)->Instance->CR &= (uint32_t)(~TSC_CR_SYNCPOL))
AnnaBridge 163:e59c8e839560 423
AnnaBridge 163:e59c8e839560 424 /**
AnnaBridge 163:e59c8e839560 425 * @brief Set synchronization polarity to rising edge and high level.
AnnaBridge 168:b9e159c1930a 426 * @param __HANDLE__ TSC handle
AnnaBridge 163:e59c8e839560 427 * @retval None
AnnaBridge 163:e59c8e839560 428 */
AnnaBridge 163:e59c8e839560 429 #define __HAL_TSC_SET_SYNC_POL_RISE_HIGH(__HANDLE__) ((__HANDLE__)->Instance->CR |= TSC_CR_SYNCPOL)
AnnaBridge 163:e59c8e839560 430
AnnaBridge 163:e59c8e839560 431 /**
AnnaBridge 163:e59c8e839560 432 * @brief Enable TSC interrupt.
AnnaBridge 168:b9e159c1930a 433 * @param __HANDLE__ TSC handle
AnnaBridge 168:b9e159c1930a 434 * @param __INTERRUPT__ TSC interrupt
AnnaBridge 163:e59c8e839560 435 * @retval None
AnnaBridge 163:e59c8e839560 436 */
AnnaBridge 163:e59c8e839560 437 #define __HAL_TSC_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->IER |= (__INTERRUPT__))
AnnaBridge 163:e59c8e839560 438
AnnaBridge 163:e59c8e839560 439 /**
AnnaBridge 163:e59c8e839560 440 * @brief Disable TSC interrupt.
AnnaBridge 168:b9e159c1930a 441 * @param __HANDLE__ TSC handle
AnnaBridge 168:b9e159c1930a 442 * @param __INTERRUPT__ TSC interrupt
AnnaBridge 163:e59c8e839560 443 * @retval None
AnnaBridge 163:e59c8e839560 444 */
AnnaBridge 163:e59c8e839560 445 #define __HAL_TSC_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->IER &= (uint32_t)(~(__INTERRUPT__)))
AnnaBridge 163:e59c8e839560 446
AnnaBridge 163:e59c8e839560 447 /** @brief Check whether the specified TSC interrupt source is enabled or not.
AnnaBridge 168:b9e159c1930a 448 * @param __HANDLE__ TSC Handle
AnnaBridge 168:b9e159c1930a 449 * @param __INTERRUPT__ TSC interrupt
AnnaBridge 163:e59c8e839560 450 * @retval SET or RESET
AnnaBridge 163:e59c8e839560 451 */
AnnaBridge 163:e59c8e839560 452 #define __HAL_TSC_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((((__HANDLE__)->Instance->IER & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET)
AnnaBridge 163:e59c8e839560 453
AnnaBridge 163:e59c8e839560 454 /**
AnnaBridge 163:e59c8e839560 455 * @brief Check whether the specified TSC flag is set or not.
AnnaBridge 168:b9e159c1930a 456 * @param __HANDLE__ TSC handle
AnnaBridge 168:b9e159c1930a 457 * @param __FLAG__ TSC flag
AnnaBridge 163:e59c8e839560 458 * @retval SET or RESET
AnnaBridge 163:e59c8e839560 459 */
AnnaBridge 163:e59c8e839560 460 #define __HAL_TSC_GET_FLAG(__HANDLE__, __FLAG__) ((((__HANDLE__)->Instance->ISR & (__FLAG__)) == (__FLAG__)) ? SET : RESET)
AnnaBridge 163:e59c8e839560 461
AnnaBridge 163:e59c8e839560 462 /**
AnnaBridge 163:e59c8e839560 463 * @brief Clear the TSC's pending flag.
AnnaBridge 168:b9e159c1930a 464 * @param __HANDLE__ TSC handle
AnnaBridge 168:b9e159c1930a 465 * @param __FLAG__ TSC flag
AnnaBridge 163:e59c8e839560 466 * @retval None
AnnaBridge 163:e59c8e839560 467 */
AnnaBridge 163:e59c8e839560 468 #define __HAL_TSC_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ICR = (__FLAG__))
AnnaBridge 163:e59c8e839560 469
AnnaBridge 163:e59c8e839560 470 /**
AnnaBridge 163:e59c8e839560 471 * @brief Enable schmitt trigger hysteresis on a group of IOs.
AnnaBridge 168:b9e159c1930a 472 * @param __HANDLE__ TSC handle
AnnaBridge 168:b9e159c1930a 473 * @param __GX_IOY_MASK__ IOs mask
AnnaBridge 163:e59c8e839560 474 * @retval None
AnnaBridge 163:e59c8e839560 475 */
AnnaBridge 163:e59c8e839560 476 #define __HAL_TSC_ENABLE_HYSTERESIS(__HANDLE__, __GX_IOY_MASK__) ((__HANDLE__)->Instance->IOHCR |= (__GX_IOY_MASK__))
AnnaBridge 163:e59c8e839560 477
AnnaBridge 163:e59c8e839560 478 /**
AnnaBridge 163:e59c8e839560 479 * @brief Disable schmitt trigger hysteresis on a group of IOs.
AnnaBridge 168:b9e159c1930a 480 * @param __HANDLE__ TSC handle
AnnaBridge 168:b9e159c1930a 481 * @param __GX_IOY_MASK__ IOs mask
AnnaBridge 163:e59c8e839560 482 * @retval None
AnnaBridge 163:e59c8e839560 483 */
AnnaBridge 163:e59c8e839560 484 #define __HAL_TSC_DISABLE_HYSTERESIS(__HANDLE__, __GX_IOY_MASK__) ((__HANDLE__)->Instance->IOHCR &= (uint32_t)(~(__GX_IOY_MASK__)))
AnnaBridge 163:e59c8e839560 485
AnnaBridge 163:e59c8e839560 486 /**
AnnaBridge 163:e59c8e839560 487 * @brief Open analog switch on a group of IOs.
AnnaBridge 168:b9e159c1930a 488 * @param __HANDLE__ TSC handle
AnnaBridge 168:b9e159c1930a 489 * @param __GX_IOY_MASK__ IOs mask
AnnaBridge 163:e59c8e839560 490 * @retval None
AnnaBridge 163:e59c8e839560 491 */
AnnaBridge 163:e59c8e839560 492 #define __HAL_TSC_OPEN_ANALOG_SWITCH(__HANDLE__, __GX_IOY_MASK__) ((__HANDLE__)->Instance->IOASCR &= (uint32_t)(~(__GX_IOY_MASK__)))
AnnaBridge 163:e59c8e839560 493
AnnaBridge 163:e59c8e839560 494 /**
AnnaBridge 163:e59c8e839560 495 * @brief Close analog switch on a group of IOs.
AnnaBridge 168:b9e159c1930a 496 * @param __HANDLE__ TSC handle
AnnaBridge 168:b9e159c1930a 497 * @param __GX_IOY_MASK__ IOs mask
AnnaBridge 163:e59c8e839560 498 * @retval None
AnnaBridge 163:e59c8e839560 499 */
AnnaBridge 163:e59c8e839560 500 #define __HAL_TSC_CLOSE_ANALOG_SWITCH(__HANDLE__, __GX_IOY_MASK__) ((__HANDLE__)->Instance->IOASCR |= (__GX_IOY_MASK__))
AnnaBridge 163:e59c8e839560 501
AnnaBridge 163:e59c8e839560 502 /**
AnnaBridge 163:e59c8e839560 503 * @brief Enable a group of IOs in channel mode.
AnnaBridge 168:b9e159c1930a 504 * @param __HANDLE__ TSC handle
AnnaBridge 168:b9e159c1930a 505 * @param __GX_IOY_MASK__ IOs mask
AnnaBridge 163:e59c8e839560 506 * @retval None
AnnaBridge 163:e59c8e839560 507 */
AnnaBridge 163:e59c8e839560 508 #define __HAL_TSC_ENABLE_CHANNEL(__HANDLE__, __GX_IOY_MASK__) ((__HANDLE__)->Instance->IOCCR |= (__GX_IOY_MASK__))
AnnaBridge 163:e59c8e839560 509
AnnaBridge 163:e59c8e839560 510 /**
AnnaBridge 163:e59c8e839560 511 * @brief Disable a group of channel IOs.
AnnaBridge 168:b9e159c1930a 512 * @param __HANDLE__ TSC handle
AnnaBridge 168:b9e159c1930a 513 * @param __GX_IOY_MASK__ IOs mask
AnnaBridge 163:e59c8e839560 514 * @retval None
AnnaBridge 163:e59c8e839560 515 */
AnnaBridge 163:e59c8e839560 516 #define __HAL_TSC_DISABLE_CHANNEL(__HANDLE__, __GX_IOY_MASK__) ((__HANDLE__)->Instance->IOCCR &= (uint32_t)(~(__GX_IOY_MASK__)))
AnnaBridge 163:e59c8e839560 517
AnnaBridge 163:e59c8e839560 518 /**
AnnaBridge 163:e59c8e839560 519 * @brief Enable a group of IOs in sampling mode.
AnnaBridge 168:b9e159c1930a 520 * @param __HANDLE__ TSC handle
AnnaBridge 168:b9e159c1930a 521 * @param __GX_IOY_MASK__ IOs mask
AnnaBridge 163:e59c8e839560 522 * @retval None
AnnaBridge 163:e59c8e839560 523 */
AnnaBridge 163:e59c8e839560 524 #define __HAL_TSC_ENABLE_SAMPLING(__HANDLE__, __GX_IOY_MASK__) ((__HANDLE__)->Instance->IOSCR |= (__GX_IOY_MASK__))
AnnaBridge 163:e59c8e839560 525
AnnaBridge 163:e59c8e839560 526 /**
AnnaBridge 163:e59c8e839560 527 * @brief Disable a group of sampling IOs.
AnnaBridge 168:b9e159c1930a 528 * @param __HANDLE__ TSC handle
AnnaBridge 168:b9e159c1930a 529 * @param __GX_IOY_MASK__ IOs mask
AnnaBridge 163:e59c8e839560 530 * @retval None
AnnaBridge 163:e59c8e839560 531 */
AnnaBridge 163:e59c8e839560 532 #define __HAL_TSC_DISABLE_SAMPLING(__HANDLE__, __GX_IOY_MASK__) ((__HANDLE__)->Instance->IOSCR &= (uint32_t)(~(__GX_IOY_MASK__)))
AnnaBridge 163:e59c8e839560 533
AnnaBridge 163:e59c8e839560 534 /**
AnnaBridge 163:e59c8e839560 535 * @brief Enable acquisition groups.
AnnaBridge 168:b9e159c1930a 536 * @param __HANDLE__ TSC handle
AnnaBridge 168:b9e159c1930a 537 * @param __GX_MASK__ Groups mask
AnnaBridge 163:e59c8e839560 538 * @retval None
AnnaBridge 163:e59c8e839560 539 */
AnnaBridge 163:e59c8e839560 540 #define __HAL_TSC_ENABLE_GROUP(__HANDLE__, __GX_MASK__) ((__HANDLE__)->Instance->IOGCSR |= (__GX_MASK__))
AnnaBridge 163:e59c8e839560 541
AnnaBridge 163:e59c8e839560 542 /**
AnnaBridge 163:e59c8e839560 543 * @brief Disable acquisition groups.
AnnaBridge 168:b9e159c1930a 544 * @param __HANDLE__ TSC handle
AnnaBridge 168:b9e159c1930a 545 * @param __GX_MASK__ Groups mask
AnnaBridge 163:e59c8e839560 546 * @retval None
AnnaBridge 163:e59c8e839560 547 */
AnnaBridge 163:e59c8e839560 548 #define __HAL_TSC_DISABLE_GROUP(__HANDLE__, __GX_MASK__) ((__HANDLE__)->Instance->IOGCSR &= (uint32_t)(~(__GX_MASK__)))
AnnaBridge 163:e59c8e839560 549
AnnaBridge 163:e59c8e839560 550 /** @brief Gets acquisition group status.
AnnaBridge 168:b9e159c1930a 551 * @param __HANDLE__ TSC Handle
AnnaBridge 168:b9e159c1930a 552 * @param __GX_INDEX__ Group index
AnnaBridge 163:e59c8e839560 553 * @retval SET or RESET
AnnaBridge 163:e59c8e839560 554 */
AnnaBridge 163:e59c8e839560 555 #define __HAL_TSC_GET_GROUP_STATUS(__HANDLE__, __GX_INDEX__) \
AnnaBridge 163:e59c8e839560 556 ((((__HANDLE__)->Instance->IOGCSR & (uint32_t)((uint32_t)1U << ((__GX_INDEX__) + (uint32_t)16U))) == (uint32_t)((uint32_t)1U << ((__GX_INDEX__) + (uint32_t)16U))) ? TSC_GROUP_COMPLETED : TSC_GROUP_ONGOING)
AnnaBridge 163:e59c8e839560 557
AnnaBridge 163:e59c8e839560 558 /**
AnnaBridge 163:e59c8e839560 559 * @}
AnnaBridge 163:e59c8e839560 560 */
AnnaBridge 163:e59c8e839560 561
AnnaBridge 163:e59c8e839560 562 /* Private macros ------------------------------------------------------------*/
AnnaBridge 163:e59c8e839560 563
AnnaBridge 163:e59c8e839560 564 /** @defgroup TSC_Private_Macros TSC Private Macros
AnnaBridge 163:e59c8e839560 565 * @{
AnnaBridge 163:e59c8e839560 566 */
AnnaBridge 163:e59c8e839560 567
AnnaBridge 163:e59c8e839560 568 #define IS_TSC_CTPH(VAL) (((VAL) == TSC_CTPH_1CYCLE) || \
AnnaBridge 163:e59c8e839560 569 ((VAL) == TSC_CTPH_2CYCLES) || \
AnnaBridge 163:e59c8e839560 570 ((VAL) == TSC_CTPH_3CYCLES) || \
AnnaBridge 163:e59c8e839560 571 ((VAL) == TSC_CTPH_4CYCLES) || \
AnnaBridge 163:e59c8e839560 572 ((VAL) == TSC_CTPH_5CYCLES) || \
AnnaBridge 163:e59c8e839560 573 ((VAL) == TSC_CTPH_6CYCLES) || \
AnnaBridge 163:e59c8e839560 574 ((VAL) == TSC_CTPH_7CYCLES) || \
AnnaBridge 163:e59c8e839560 575 ((VAL) == TSC_CTPH_8CYCLES) || \
AnnaBridge 163:e59c8e839560 576 ((VAL) == TSC_CTPH_9CYCLES) || \
AnnaBridge 163:e59c8e839560 577 ((VAL) == TSC_CTPH_10CYCLES) || \
AnnaBridge 163:e59c8e839560 578 ((VAL) == TSC_CTPH_11CYCLES) || \
AnnaBridge 163:e59c8e839560 579 ((VAL) == TSC_CTPH_12CYCLES) || \
AnnaBridge 163:e59c8e839560 580 ((VAL) == TSC_CTPH_13CYCLES) || \
AnnaBridge 163:e59c8e839560 581 ((VAL) == TSC_CTPH_14CYCLES) || \
AnnaBridge 163:e59c8e839560 582 ((VAL) == TSC_CTPH_15CYCLES) || \
AnnaBridge 163:e59c8e839560 583 ((VAL) == TSC_CTPH_16CYCLES))
AnnaBridge 163:e59c8e839560 584
AnnaBridge 163:e59c8e839560 585 #define IS_TSC_CTPL(VAL) (((VAL) == TSC_CTPL_1CYCLE) || \
AnnaBridge 163:e59c8e839560 586 ((VAL) == TSC_CTPL_2CYCLES) || \
AnnaBridge 163:e59c8e839560 587 ((VAL) == TSC_CTPL_3CYCLES) || \
AnnaBridge 163:e59c8e839560 588 ((VAL) == TSC_CTPL_4CYCLES) || \
AnnaBridge 163:e59c8e839560 589 ((VAL) == TSC_CTPL_5CYCLES) || \
AnnaBridge 163:e59c8e839560 590 ((VAL) == TSC_CTPL_6CYCLES) || \
AnnaBridge 163:e59c8e839560 591 ((VAL) == TSC_CTPL_7CYCLES) || \
AnnaBridge 163:e59c8e839560 592 ((VAL) == TSC_CTPL_8CYCLES) || \
AnnaBridge 163:e59c8e839560 593 ((VAL) == TSC_CTPL_9CYCLES) || \
AnnaBridge 163:e59c8e839560 594 ((VAL) == TSC_CTPL_10CYCLES) || \
AnnaBridge 163:e59c8e839560 595 ((VAL) == TSC_CTPL_11CYCLES) || \
AnnaBridge 163:e59c8e839560 596 ((VAL) == TSC_CTPL_12CYCLES) || \
AnnaBridge 163:e59c8e839560 597 ((VAL) == TSC_CTPL_13CYCLES) || \
AnnaBridge 163:e59c8e839560 598 ((VAL) == TSC_CTPL_14CYCLES) || \
AnnaBridge 163:e59c8e839560 599 ((VAL) == TSC_CTPL_15CYCLES) || \
AnnaBridge 163:e59c8e839560 600 ((VAL) == TSC_CTPL_16CYCLES))
AnnaBridge 163:e59c8e839560 601
AnnaBridge 163:e59c8e839560 602 #define IS_TSC_SS(VAL) (((VAL) == DISABLE) || ((VAL) == ENABLE))
AnnaBridge 163:e59c8e839560 603
AnnaBridge 163:e59c8e839560 604 #define IS_TSC_SSD(VAL) (((VAL) == 0U) || (((VAL) > 0U) && ((VAL) < 128U)))
AnnaBridge 163:e59c8e839560 605
AnnaBridge 163:e59c8e839560 606 #define IS_TSC_SS_PRESC(VAL) (((VAL) == TSC_SS_PRESC_DIV1) || ((VAL) == TSC_SS_PRESC_DIV2))
AnnaBridge 163:e59c8e839560 607
AnnaBridge 163:e59c8e839560 608 #define IS_TSC_PG_PRESC(VAL) (((VAL) == TSC_PG_PRESC_DIV1) || \
AnnaBridge 163:e59c8e839560 609 ((VAL) == TSC_PG_PRESC_DIV2) || \
AnnaBridge 163:e59c8e839560 610 ((VAL) == TSC_PG_PRESC_DIV4) || \
AnnaBridge 163:e59c8e839560 611 ((VAL) == TSC_PG_PRESC_DIV8) || \
AnnaBridge 163:e59c8e839560 612 ((VAL) == TSC_PG_PRESC_DIV16) || \
AnnaBridge 163:e59c8e839560 613 ((VAL) == TSC_PG_PRESC_DIV32) || \
AnnaBridge 163:e59c8e839560 614 ((VAL) == TSC_PG_PRESC_DIV64) || \
AnnaBridge 163:e59c8e839560 615 ((VAL) == TSC_PG_PRESC_DIV128))
AnnaBridge 163:e59c8e839560 616
AnnaBridge 163:e59c8e839560 617 #define IS_TSC_MCV(VAL) (((VAL) == TSC_MCV_255) || \
AnnaBridge 163:e59c8e839560 618 ((VAL) == TSC_MCV_511) || \
AnnaBridge 163:e59c8e839560 619 ((VAL) == TSC_MCV_1023) || \
AnnaBridge 163:e59c8e839560 620 ((VAL) == TSC_MCV_2047) || \
AnnaBridge 163:e59c8e839560 621 ((VAL) == TSC_MCV_4095) || \
AnnaBridge 163:e59c8e839560 622 ((VAL) == TSC_MCV_8191) || \
AnnaBridge 163:e59c8e839560 623 ((VAL) == TSC_MCV_16383))
AnnaBridge 163:e59c8e839560 624
AnnaBridge 163:e59c8e839560 625 #define IS_TSC_IODEF(VAL) (((VAL) == TSC_IODEF_OUT_PP_LOW) || ((VAL) == TSC_IODEF_IN_FLOAT))
AnnaBridge 163:e59c8e839560 626
AnnaBridge 163:e59c8e839560 627 #define IS_TSC_SYNC_POL(VAL) (((VAL) == TSC_SYNC_POLARITY_FALLING) || ((VAL) == TSC_SYNC_POLARITY_RISING))
AnnaBridge 163:e59c8e839560 628
AnnaBridge 163:e59c8e839560 629 #define IS_TSC_ACQ_MODE(VAL) (((VAL) == TSC_ACQ_MODE_NORMAL) || ((VAL) == TSC_ACQ_MODE_SYNCHRO))
AnnaBridge 163:e59c8e839560 630
AnnaBridge 163:e59c8e839560 631 #define IS_TSC_IOMODE(VAL) (((VAL) == TSC_IOMODE_UNUSED) || \
AnnaBridge 163:e59c8e839560 632 ((VAL) == TSC_IOMODE_CHANNEL) || \
AnnaBridge 163:e59c8e839560 633 ((VAL) == TSC_IOMODE_SHIELD) || \
AnnaBridge 163:e59c8e839560 634 ((VAL) == TSC_IOMODE_SAMPLING))
AnnaBridge 163:e59c8e839560 635
AnnaBridge 163:e59c8e839560 636 #define IS_TSC_MCE_IT(VAL) (((VAL) == DISABLE) || ((VAL) == ENABLE))
AnnaBridge 163:e59c8e839560 637
AnnaBridge 163:e59c8e839560 638 #define IS_TSC_GROUP_INDEX(VAL) (((VAL) == 0U) || (((VAL) > 0U) && ((VAL) < TSC_NB_OF_GROUPS)))
AnnaBridge 163:e59c8e839560 639
AnnaBridge 163:e59c8e839560 640 /**
AnnaBridge 163:e59c8e839560 641 * @}
AnnaBridge 163:e59c8e839560 642 */
AnnaBridge 163:e59c8e839560 643
AnnaBridge 163:e59c8e839560 644 /* Exported functions --------------------------------------------------------*/
AnnaBridge 163:e59c8e839560 645 /** @addtogroup TSC_Exported_Functions
AnnaBridge 163:e59c8e839560 646 * @{
AnnaBridge 163:e59c8e839560 647 */
AnnaBridge 163:e59c8e839560 648
AnnaBridge 163:e59c8e839560 649 /** @addtogroup TSC_Exported_Functions_Group1 Initialization and de-initialization functions
AnnaBridge 163:e59c8e839560 650 * @{
AnnaBridge 163:e59c8e839560 651 */
AnnaBridge 163:e59c8e839560 652 /* Initialization and de-initialization functions *****************************/
AnnaBridge 163:e59c8e839560 653 HAL_StatusTypeDef HAL_TSC_Init(TSC_HandleTypeDef* htsc);
AnnaBridge 163:e59c8e839560 654 HAL_StatusTypeDef HAL_TSC_DeInit(TSC_HandleTypeDef *htsc);
AnnaBridge 163:e59c8e839560 655 void HAL_TSC_MspInit(TSC_HandleTypeDef* htsc);
AnnaBridge 163:e59c8e839560 656 void HAL_TSC_MspDeInit(TSC_HandleTypeDef* htsc);
AnnaBridge 163:e59c8e839560 657 /**
AnnaBridge 163:e59c8e839560 658 * @}
AnnaBridge 163:e59c8e839560 659 */
AnnaBridge 163:e59c8e839560 660
AnnaBridge 163:e59c8e839560 661 /** @addtogroup TSC_Exported_Functions_Group2 Input and Output operation functions
AnnaBridge 163:e59c8e839560 662 * @{
AnnaBridge 163:e59c8e839560 663 */
AnnaBridge 163:e59c8e839560 664 /* IO operation functions *****************************************************/
AnnaBridge 163:e59c8e839560 665 HAL_StatusTypeDef HAL_TSC_Start(TSC_HandleTypeDef* htsc);
AnnaBridge 163:e59c8e839560 666 HAL_StatusTypeDef HAL_TSC_Start_IT(TSC_HandleTypeDef* htsc);
AnnaBridge 163:e59c8e839560 667 HAL_StatusTypeDef HAL_TSC_Stop(TSC_HandleTypeDef* htsc);
AnnaBridge 163:e59c8e839560 668 HAL_StatusTypeDef HAL_TSC_Stop_IT(TSC_HandleTypeDef* htsc);
AnnaBridge 163:e59c8e839560 669 HAL_StatusTypeDef HAL_TSC_PollForAcquisition(TSC_HandleTypeDef* htsc);
AnnaBridge 163:e59c8e839560 670 TSC_GroupStatusTypeDef HAL_TSC_GroupGetStatus(TSC_HandleTypeDef* htsc, uint32_t gx_index);
AnnaBridge 163:e59c8e839560 671 uint32_t HAL_TSC_GroupGetValue(TSC_HandleTypeDef* htsc, uint32_t gx_index);
AnnaBridge 163:e59c8e839560 672 /**
AnnaBridge 163:e59c8e839560 673 * @}
AnnaBridge 163:e59c8e839560 674 */
AnnaBridge 163:e59c8e839560 675
AnnaBridge 163:e59c8e839560 676 /** @addtogroup TSC_Exported_Functions_Group3 Peripheral Control functions
AnnaBridge 163:e59c8e839560 677 * @{
AnnaBridge 163:e59c8e839560 678 */
AnnaBridge 163:e59c8e839560 679 /* Peripheral Control functions ***********************************************/
AnnaBridge 163:e59c8e839560 680 HAL_StatusTypeDef HAL_TSC_IOConfig(TSC_HandleTypeDef* htsc, TSC_IOConfigTypeDef* config);
AnnaBridge 163:e59c8e839560 681 HAL_StatusTypeDef HAL_TSC_IODischarge(TSC_HandleTypeDef* htsc, uint32_t choice);
AnnaBridge 163:e59c8e839560 682 /**
AnnaBridge 163:e59c8e839560 683 * @}
AnnaBridge 163:e59c8e839560 684 */
AnnaBridge 163:e59c8e839560 685
AnnaBridge 163:e59c8e839560 686 /** @addtogroup TSC_Exported_Functions_Group4 Peripheral State and Errors functions
AnnaBridge 163:e59c8e839560 687 * @{
AnnaBridge 163:e59c8e839560 688 */
AnnaBridge 163:e59c8e839560 689 /* Peripheral State and Error functions ***************************************/
AnnaBridge 163:e59c8e839560 690 HAL_TSC_StateTypeDef HAL_TSC_GetState(TSC_HandleTypeDef* htsc);
AnnaBridge 163:e59c8e839560 691 /**
AnnaBridge 163:e59c8e839560 692 * @}
AnnaBridge 163:e59c8e839560 693 */
AnnaBridge 163:e59c8e839560 694
AnnaBridge 163:e59c8e839560 695 /** @addtogroup TSC_IRQ_Handler_and_Callbacks IRQ Handler and Callbacks
AnnaBridge 163:e59c8e839560 696 * @{
AnnaBridge 163:e59c8e839560 697 */
AnnaBridge 163:e59c8e839560 698 /******* TSC IRQHandler and Callbacks used in Interrupt mode */
AnnaBridge 163:e59c8e839560 699 void HAL_TSC_IRQHandler(TSC_HandleTypeDef* htsc);
AnnaBridge 163:e59c8e839560 700 void HAL_TSC_ConvCpltCallback(TSC_HandleTypeDef* htsc);
AnnaBridge 163:e59c8e839560 701 void HAL_TSC_ErrorCallback(TSC_HandleTypeDef* htsc);
AnnaBridge 163:e59c8e839560 702 /**
AnnaBridge 163:e59c8e839560 703 * @}
AnnaBridge 163:e59c8e839560 704 */
AnnaBridge 163:e59c8e839560 705
AnnaBridge 163:e59c8e839560 706 /**
AnnaBridge 163:e59c8e839560 707 * @}
AnnaBridge 163:e59c8e839560 708 */
AnnaBridge 163:e59c8e839560 709
AnnaBridge 163:e59c8e839560 710 /**
AnnaBridge 163:e59c8e839560 711 * @}
AnnaBridge 163:e59c8e839560 712 */
AnnaBridge 163:e59c8e839560 713
AnnaBridge 163:e59c8e839560 714 /**
AnnaBridge 163:e59c8e839560 715 * @}
AnnaBridge 163:e59c8e839560 716 */
AnnaBridge 163:e59c8e839560 717
AnnaBridge 163:e59c8e839560 718 #ifdef __cplusplus
AnnaBridge 163:e59c8e839560 719 }
AnnaBridge 163:e59c8e839560 720 #endif
AnnaBridge 163:e59c8e839560 721
AnnaBridge 163:e59c8e839560 722 #endif /*__STM32F3xx_TSC_H */
AnnaBridge 163:e59c8e839560 723
AnnaBridge 163:e59c8e839560 724 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/