L4 HAL Drivers
Embed:
(wiki syntax)
Show/hide line numbers
stm32l4xx_hal_tsc.h
Go to the documentation of this file.
00001 /** 00002 ****************************************************************************** 00003 * @file stm32l4xx_hal_tsc.h 00004 * @author MCD Application Team 00005 * @version V1.1.0 00006 * @date 16-September-2015 00007 * @brief Header file of TSC HAL module. 00008 ****************************************************************************** 00009 * @attention 00010 * 00011 * <h2><center>© COPYRIGHT(c) 2015 STMicroelectronics</center></h2> 00012 * 00013 * Redistribution and use in source and binary forms, with or without modification, 00014 * are permitted provided that the following conditions are met: 00015 * 1. Redistributions of source code must retain the above copyright notice, 00016 * this list of conditions and the following disclaimer. 00017 * 2. Redistributions in binary form must reproduce the above copyright notice, 00018 * this list of conditions and the following disclaimer in the documentation 00019 * and/or other materials provided with the distribution. 00020 * 3. Neither the name of STMicroelectronics nor the names of its contributors 00021 * may be used to endorse or promote products derived from this software 00022 * without specific prior written permission. 00023 * 00024 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 00025 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 00026 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 00027 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 00028 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 00029 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 00030 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 00031 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 00032 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 00033 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00034 * 00035 ****************************************************************************** 00036 */ 00037 00038 /* Define to prevent recursive inclusion -------------------------------------*/ 00039 #ifndef __STM32L4xx_HAL_TSC_H 00040 #define __STM32L4xx_HAL_TSC_H 00041 00042 #ifdef __cplusplus 00043 extern "C" { 00044 #endif 00045 00046 /* Includes ------------------------------------------------------------------*/ 00047 #include "stm32l4xx_hal_def.h" 00048 00049 /** @addtogroup STM32L4xx_HAL_Driver 00050 * @{ 00051 */ 00052 00053 /** @addtogroup TSC 00054 * @{ 00055 */ 00056 00057 /* Exported types ------------------------------------------------------------*/ 00058 /** @defgroup TSC_Exported_Types TSC Exported Types 00059 * @{ 00060 */ 00061 00062 /** 00063 * @brief TSC state structure definition 00064 */ 00065 typedef enum 00066 { 00067 HAL_TSC_STATE_RESET = 0x00, /*!< TSC registers have their reset value */ 00068 HAL_TSC_STATE_READY = 0x01, /*!< TSC registers are initialized or acquisition is completed with success */ 00069 HAL_TSC_STATE_BUSY = 0x02, /*!< TSC initialization or acquisition is on-going */ 00070 HAL_TSC_STATE_ERROR = 0x03 /*!< Acquisition is completed with max count error */ 00071 } HAL_TSC_StateTypeDef; 00072 00073 /** 00074 * @brief TSC group status structure definition 00075 */ 00076 typedef enum 00077 { 00078 TSC_GROUP_ONGOING = 0x00, /*!< Acquisition on group is on-going or not started */ 00079 TSC_GROUP_COMPLETED = 0x01 /*!< Acquisition on group is completed with success (no max count error) */ 00080 } TSC_GroupStatusTypeDef; 00081 00082 /** 00083 * @brief TSC init structure definition 00084 */ 00085 typedef struct 00086 { 00087 uint32_t CTPulseHighLength; /*!< Charge-transfer high pulse length 00088 This parameter can be a value of @ref TSC_CTPulseHL_Config */ 00089 uint32_t CTPulseLowLength; /*!< Charge-transfer low pulse length 00090 This parameter can be a value of @ref TSC_CTPulseLL_Config */ 00091 uint32_t SpreadSpectrum; /*!< Spread spectrum activation 00092 This parameter can be a value of @ref TSC_CTPulseLL_Config */ 00093 uint32_t SpreadSpectrumDeviation; /*!< Spread spectrum deviation 00094 This parameter must be a number between Min_Data = 0 and Max_Data = 127 */ 00095 uint32_t SpreadSpectrumPrescaler; /*!< Spread spectrum prescaler 00096 This parameter can be a value of @ref TSC_SpreadSpec_Prescaler */ 00097 uint32_t PulseGeneratorPrescaler; /*!< Pulse generator prescaler 00098 This parameter can be a value of @ref TSC_PulseGenerator_Prescaler */ 00099 uint32_t MaxCountValue; /*!< Max count value 00100 This parameter can be a value of @ref TSC_MaxCount_Value */ 00101 uint32_t IODefaultMode; /*!< IO default mode 00102 This parameter can be a value of @ref TSC_IO_Default_Mode */ 00103 uint32_t SynchroPinPolarity; /*!< Synchro pin polarity 00104 This parameter can be a value of @ref TSC_Synchro_Pin_Polarity */ 00105 uint32_t AcquisitionMode; /*!< Acquisition mode 00106 This parameter can be a value of @ref TSC_Acquisition_Mode */ 00107 uint32_t MaxCountInterrupt; /*!< Max count interrupt activation 00108 This parameter can be set to ENABLE or DISABLE. */ 00109 uint32_t ChannelIOs; /*!< Channel IOs mask */ 00110 uint32_t ShieldIOs; /*!< Shield IOs mask */ 00111 uint32_t SamplingIOs; /*!< Sampling IOs mask */ 00112 } TSC_InitTypeDef; 00113 00114 /** 00115 * @brief TSC IOs configuration structure definition 00116 */ 00117 typedef struct 00118 { 00119 uint32_t ChannelIOs; /*!< Channel IOs mask */ 00120 uint32_t ShieldIOs; /*!< Shield IOs mask */ 00121 uint32_t SamplingIOs; /*!< Sampling IOs mask */ 00122 } TSC_IOConfigTypeDef; 00123 00124 /** 00125 * @brief TSC handle Structure definition 00126 */ 00127 typedef struct 00128 { 00129 TSC_TypeDef *Instance; /*!< Register base address */ 00130 TSC_InitTypeDef Init; /*!< Initialization parameters */ 00131 __IO HAL_TSC_StateTypeDef State; /*!< Peripheral state */ 00132 HAL_LockTypeDef Lock; /*!< Lock feature */ 00133 } TSC_HandleTypeDef; 00134 00135 /** 00136 * @} 00137 */ 00138 00139 /* Exported constants --------------------------------------------------------*/ 00140 /** @defgroup TSC_Exported_Constants TSC Exported Constants 00141 * @{ 00142 */ 00143 00144 /** @defgroup TSC_CTPulseHL_Config CTPulse High Length 00145 * @{ 00146 */ 00147 #define TSC_CTPH_1CYCLE ((uint32_t)((uint32_t) 0 << 28)) 00148 #define TSC_CTPH_2CYCLES ((uint32_t)((uint32_t) 1 << 28)) 00149 #define TSC_CTPH_3CYCLES ((uint32_t)((uint32_t) 2 << 28)) 00150 #define TSC_CTPH_4CYCLES ((uint32_t)((uint32_t) 3 << 28)) 00151 #define TSC_CTPH_5CYCLES ((uint32_t)((uint32_t) 4 << 28)) 00152 #define TSC_CTPH_6CYCLES ((uint32_t)((uint32_t) 5 << 28)) 00153 #define TSC_CTPH_7CYCLES ((uint32_t)((uint32_t) 6 << 28)) 00154 #define TSC_CTPH_8CYCLES ((uint32_t)((uint32_t) 7 << 28)) 00155 #define TSC_CTPH_9CYCLES ((uint32_t)((uint32_t) 8 << 28)) 00156 #define TSC_CTPH_10CYCLES ((uint32_t)((uint32_t) 9 << 28)) 00157 #define TSC_CTPH_11CYCLES ((uint32_t)((uint32_t)10 << 28)) 00158 #define TSC_CTPH_12CYCLES ((uint32_t)((uint32_t)11 << 28)) 00159 #define TSC_CTPH_13CYCLES ((uint32_t)((uint32_t)12 << 28)) 00160 #define TSC_CTPH_14CYCLES ((uint32_t)((uint32_t)13 << 28)) 00161 #define TSC_CTPH_15CYCLES ((uint32_t)((uint32_t)14 << 28)) 00162 #define TSC_CTPH_16CYCLES ((uint32_t)((uint32_t)15 << 28)) 00163 /** 00164 * @} 00165 */ 00166 00167 /** @defgroup TSC_CTPulseLL_Config CTPulse Low Length 00168 * @{ 00169 */ 00170 #define TSC_CTPL_1CYCLE ((uint32_t)((uint32_t) 0 << 24)) 00171 #define TSC_CTPL_2CYCLES ((uint32_t)((uint32_t) 1 << 24)) 00172 #define TSC_CTPL_3CYCLES ((uint32_t)((uint32_t) 2 << 24)) 00173 #define TSC_CTPL_4CYCLES ((uint32_t)((uint32_t) 3 << 24)) 00174 #define TSC_CTPL_5CYCLES ((uint32_t)((uint32_t) 4 << 24)) 00175 #define TSC_CTPL_6CYCLES ((uint32_t)((uint32_t) 5 << 24)) 00176 #define TSC_CTPL_7CYCLES ((uint32_t)((uint32_t) 6 << 24)) 00177 #define TSC_CTPL_8CYCLES ((uint32_t)((uint32_t) 7 << 24)) 00178 #define TSC_CTPL_9CYCLES ((uint32_t)((uint32_t) 8 << 24)) 00179 #define TSC_CTPL_10CYCLES ((uint32_t)((uint32_t) 9 << 24)) 00180 #define TSC_CTPL_11CYCLES ((uint32_t)((uint32_t)10 << 24)) 00181 #define TSC_CTPL_12CYCLES ((uint32_t)((uint32_t)11 << 24)) 00182 #define TSC_CTPL_13CYCLES ((uint32_t)((uint32_t)12 << 24)) 00183 #define TSC_CTPL_14CYCLES ((uint32_t)((uint32_t)13 << 24)) 00184 #define TSC_CTPL_15CYCLES ((uint32_t)((uint32_t)14 << 24)) 00185 #define TSC_CTPL_16CYCLES ((uint32_t)((uint32_t)15 << 24)) 00186 /** 00187 * @} 00188 */ 00189 00190 /** @defgroup TSC_SpreadSpec_Prescaler Spread Spectrum Prescaler 00191 * @{ 00192 */ 00193 #define TSC_SS_PRESC_DIV1 ((uint32_t)0) 00194 #define TSC_SS_PRESC_DIV2 (TSC_CR_SSPSC) 00195 /** 00196 * @} 00197 */ 00198 00199 /** @defgroup TSC_PulseGenerator_Prescaler Pulse Generator Prescaler 00200 * @{ 00201 */ 00202 #define TSC_PG_PRESC_DIV1 ((uint32_t)(0 << 12)) 00203 #define TSC_PG_PRESC_DIV2 ((uint32_t)(1 << 12)) 00204 #define TSC_PG_PRESC_DIV4 ((uint32_t)(2 << 12)) 00205 #define TSC_PG_PRESC_DIV8 ((uint32_t)(3 << 12)) 00206 #define TSC_PG_PRESC_DIV16 ((uint32_t)(4 << 12)) 00207 #define TSC_PG_PRESC_DIV32 ((uint32_t)(5 << 12)) 00208 #define TSC_PG_PRESC_DIV64 ((uint32_t)(6 << 12)) 00209 #define TSC_PG_PRESC_DIV128 ((uint32_t)(7 << 12)) 00210 /** 00211 * @} 00212 */ 00213 00214 /** @defgroup TSC_MaxCount_Value Max Count Value 00215 * @{ 00216 */ 00217 #define TSC_MCV_255 ((uint32_t)(0 << 5)) 00218 #define TSC_MCV_511 ((uint32_t)(1 << 5)) 00219 #define TSC_MCV_1023 ((uint32_t)(2 << 5)) 00220 #define TSC_MCV_2047 ((uint32_t)(3 << 5)) 00221 #define TSC_MCV_4095 ((uint32_t)(4 << 5)) 00222 #define TSC_MCV_8191 ((uint32_t)(5 << 5)) 00223 #define TSC_MCV_16383 ((uint32_t)(6 << 5)) 00224 /** 00225 * @} 00226 */ 00227 00228 /** @defgroup TSC_IO_Default_Mode IO Default Mode 00229 * @{ 00230 */ 00231 #define TSC_IODEF_OUT_PP_LOW ((uint32_t)0) 00232 #define TSC_IODEF_IN_FLOAT (TSC_CR_IODEF) 00233 /** 00234 * @} 00235 */ 00236 00237 /** @defgroup TSC_Synchro_Pin_Polarity Synchro Pin Polarity 00238 * @{ 00239 */ 00240 #define TSC_SYNC_POLARITY_FALLING ((uint32_t)0) 00241 #define TSC_SYNC_POLARITY_RISING (TSC_CR_SYNCPOL) 00242 /** 00243 * @} 00244 */ 00245 00246 /** @defgroup TSC_Acquisition_Mode Acquisition Mode 00247 * @{ 00248 */ 00249 #define TSC_ACQ_MODE_NORMAL ((uint32_t)0) 00250 #define TSC_ACQ_MODE_SYNCHRO (TSC_CR_AM) 00251 /** 00252 * @} 00253 */ 00254 00255 /** @defgroup TSC_IO_Mode IO Mode 00256 * @{ 00257 */ 00258 #define TSC_IOMODE_UNUSED ((uint32_t)0) 00259 #define TSC_IOMODE_CHANNEL ((uint32_t)1) 00260 #define TSC_IOMODE_SHIELD ((uint32_t)2) 00261 #define TSC_IOMODE_SAMPLING ((uint32_t)3) 00262 /** 00263 * @} 00264 */ 00265 00266 /** @defgroup TSC_interrupts_definition Interrupts definition 00267 * @{ 00268 */ 00269 #define TSC_IT_EOA ((uint32_t)TSC_IER_EOAIE) 00270 #define TSC_IT_MCE ((uint32_t)TSC_IER_MCEIE) 00271 /** 00272 * @} 00273 */ 00274 00275 /** @defgroup TSC_flags_definition Flags definition 00276 * @{ 00277 */ 00278 #define TSC_FLAG_EOA ((uint32_t)TSC_ISR_EOAF) 00279 #define TSC_FLAG_MCE ((uint32_t)TSC_ISR_MCEF) 00280 /** 00281 * @} 00282 */ 00283 00284 /** @defgroup TSC_Group_definition Group definition 00285 * @{ 00286 */ 00287 #define TSC_NB_OF_GROUPS (8) 00288 00289 #define TSC_GROUP1 ((uint32_t)0x00000001) 00290 #define TSC_GROUP2 ((uint32_t)0x00000002) 00291 #define TSC_GROUP3 ((uint32_t)0x00000004) 00292 #define TSC_GROUP4 ((uint32_t)0x00000008) 00293 #define TSC_GROUP5 ((uint32_t)0x00000010) 00294 #define TSC_GROUP6 ((uint32_t)0x00000020) 00295 #define TSC_GROUP7 ((uint32_t)0x00000040) 00296 #define TSC_GROUP8 ((uint32_t)0x00000080) 00297 #define TSC_ALL_GROUPS ((uint32_t)0x000000FF) 00298 00299 #define TSC_GROUP1_IDX ((uint32_t)0) 00300 #define TSC_GROUP2_IDX ((uint32_t)1) 00301 #define TSC_GROUP3_IDX ((uint32_t)2) 00302 #define TSC_GROUP4_IDX ((uint32_t)3) 00303 #define TSC_GROUP5_IDX ((uint32_t)4) 00304 #define TSC_GROUP6_IDX ((uint32_t)5) 00305 #define TSC_GROUP7_IDX ((uint32_t)6) 00306 #define TSC_GROUP8_IDX ((uint32_t)7) 00307 00308 #define TSC_GROUP1_IO1 ((uint32_t)0x00000001) 00309 #define TSC_GROUP1_IO2 ((uint32_t)0x00000002) 00310 #define TSC_GROUP1_IO3 ((uint32_t)0x00000004) 00311 #define TSC_GROUP1_IO4 ((uint32_t)0x00000008) 00312 #define TSC_GROUP1_ALL_IOS ((uint32_t)0x0000000F) 00313 00314 #define TSC_GROUP2_IO1 ((uint32_t)0x00000010) 00315 #define TSC_GROUP2_IO2 ((uint32_t)0x00000020) 00316 #define TSC_GROUP2_IO3 ((uint32_t)0x00000040) 00317 #define TSC_GROUP2_IO4 ((uint32_t)0x00000080) 00318 #define TSC_GROUP2_ALL_IOS ((uint32_t)0x000000F0) 00319 00320 #define TSC_GROUP3_IO1 ((uint32_t)0x00000100) 00321 #define TSC_GROUP3_IO2 ((uint32_t)0x00000200) 00322 #define TSC_GROUP3_IO3 ((uint32_t)0x00000400) 00323 #define TSC_GROUP3_IO4 ((uint32_t)0x00000800) 00324 #define TSC_GROUP3_ALL_IOS ((uint32_t)0x00000F00) 00325 00326 #define TSC_GROUP4_IO1 ((uint32_t)0x00001000) 00327 #define TSC_GROUP4_IO2 ((uint32_t)0x00002000) 00328 #define TSC_GROUP4_IO3 ((uint32_t)0x00004000) 00329 #define TSC_GROUP4_IO4 ((uint32_t)0x00008000) 00330 #define TSC_GROUP4_ALL_IOS ((uint32_t)0x0000F000) 00331 00332 #define TSC_GROUP5_IO1 ((uint32_t)0x00010000) 00333 #define TSC_GROUP5_IO2 ((uint32_t)0x00020000) 00334 #define TSC_GROUP5_IO3 ((uint32_t)0x00040000) 00335 #define TSC_GROUP5_IO4 ((uint32_t)0x00080000) 00336 #define TSC_GROUP5_ALL_IOS ((uint32_t)0x000F0000) 00337 00338 #define TSC_GROUP6_IO1 ((uint32_t)0x00100000) 00339 #define TSC_GROUP6_IO2 ((uint32_t)0x00200000) 00340 #define TSC_GROUP6_IO3 ((uint32_t)0x00400000) 00341 #define TSC_GROUP6_IO4 ((uint32_t)0x00800000) 00342 #define TSC_GROUP6_ALL_IOS ((uint32_t)0x00F00000) 00343 00344 #define TSC_GROUP7_IO1 ((uint32_t)0x01000000) 00345 #define TSC_GROUP7_IO2 ((uint32_t)0x02000000) 00346 #define TSC_GROUP7_IO3 ((uint32_t)0x04000000) 00347 #define TSC_GROUP7_IO4 ((uint32_t)0x08000000) 00348 #define TSC_GROUP7_ALL_IOS ((uint32_t)0x0F000000) 00349 00350 #define TSC_GROUP8_IO1 ((uint32_t)0x10000000) 00351 #define TSC_GROUP8_IO2 ((uint32_t)0x20000000) 00352 #define TSC_GROUP8_IO3 ((uint32_t)0x40000000) 00353 #define TSC_GROUP8_IO4 ((uint32_t)0x80000000) 00354 #define TSC_GROUP8_ALL_IOS ((uint32_t)0xF0000000) 00355 00356 #define TSC_ALL_GROUPS_ALL_IOS ((uint32_t)0xFFFFFFFF) 00357 /** 00358 * @} 00359 */ 00360 00361 /** 00362 * @} 00363 */ 00364 00365 /* Exported macros -----------------------------------------------------------*/ 00366 00367 /** @defgroup TSC_Exported_Macros TSC Exported Macros 00368 * @{ 00369 */ 00370 00371 /** @brief Reset TSC handle state. 00372 * @param __HANDLE__: TSC handle 00373 * @retval None 00374 */ 00375 #define __HAL_TSC_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_TSC_STATE_RESET) 00376 00377 /** 00378 * @brief Enable the TSC peripheral. 00379 * @param __HANDLE__: TSC handle 00380 * @retval None 00381 */ 00382 #define __HAL_TSC_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= TSC_CR_TSCE) 00383 00384 /** 00385 * @brief Disable the TSC peripheral. 00386 * @param __HANDLE__: TSC handle 00387 * @retval None 00388 */ 00389 #define __HAL_TSC_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= (uint32_t)(~TSC_CR_TSCE)) 00390 00391 /** 00392 * @brief Start acquisition. 00393 * @param __HANDLE__: TSC handle 00394 * @retval None 00395 */ 00396 #define __HAL_TSC_START_ACQ(__HANDLE__) ((__HANDLE__)->Instance->CR |= TSC_CR_START) 00397 00398 /** 00399 * @brief Stop acquisition. 00400 * @param __HANDLE__: TSC handle 00401 * @retval None 00402 */ 00403 #define __HAL_TSC_STOP_ACQ(__HANDLE__) ((__HANDLE__)->Instance->CR &= (uint32_t)(~TSC_CR_START)) 00404 00405 /** 00406 * @brief Set IO default mode to output push-pull low. 00407 * @param __HANDLE__: TSC handle 00408 * @retval None 00409 */ 00410 #define __HAL_TSC_SET_IODEF_OUTPPLOW(__HANDLE__) ((__HANDLE__)->Instance->CR &= (uint32_t)(~TSC_CR_IODEF)) 00411 00412 /** 00413 * @brief Set IO default mode to input floating. 00414 * @param __HANDLE__: TSC handle 00415 * @retval None 00416 */ 00417 #define __HAL_TSC_SET_IODEF_INFLOAT(__HANDLE__) ((__HANDLE__)->Instance->CR |= TSC_CR_IODEF) 00418 00419 /** 00420 * @brief Set synchronization polarity to falling edge. 00421 * @param __HANDLE__: TSC handle 00422 * @retval None 00423 */ 00424 #define __HAL_TSC_SET_SYNC_POL_FALL(__HANDLE__) ((__HANDLE__)->Instance->CR &= (uint32_t)(~TSC_CR_SYNCPOL)) 00425 00426 /** 00427 * @brief Set synchronization polarity to rising edge and high level. 00428 * @param __HANDLE__: TSC handle 00429 * @retval None 00430 */ 00431 #define __HAL_TSC_SET_SYNC_POL_RISE_HIGH(__HANDLE__) ((__HANDLE__)->Instance->CR |= TSC_CR_SYNCPOL) 00432 00433 /** 00434 * @brief Enable TSC interrupt. 00435 * @param __HANDLE__: TSC handle 00436 * @param __INTERRUPT__: TSC interrupt 00437 * @retval None 00438 */ 00439 #define __HAL_TSC_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->IER |= (__INTERRUPT__)) 00440 00441 /** 00442 * @brief Disable TSC interrupt. 00443 * @param __HANDLE__: TSC handle 00444 * @param __INTERRUPT__: TSC interrupt 00445 * @retval None 00446 */ 00447 #define __HAL_TSC_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->IER &= (uint32_t)(~(__INTERRUPT__))) 00448 00449 /** @brief Check whether the specified TSC interrupt source is enabled or not. 00450 * @param __HANDLE__: TSC Handle 00451 * @param __INTERRUPT__: TSC interrupt 00452 * @retval SET or RESET 00453 */ 00454 #define __HAL_TSC_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((((__HANDLE__)->Instance->IER & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET) 00455 00456 /** 00457 * @brief Check whether the specified TSC flag is set or not. 00458 * @param __HANDLE__: TSC handle 00459 * @param __FLAG__: TSC flag 00460 * @retval SET or RESET 00461 */ 00462 #define __HAL_TSC_GET_FLAG(__HANDLE__, __FLAG__) ((((__HANDLE__)->Instance->ISR & (__FLAG__)) == (__FLAG__)) ? SET : RESET) 00463 00464 /** 00465 * @brief Clear the TSC's pending flag. 00466 * @param __HANDLE__: TSC handle 00467 * @param __FLAG__: TSC flag 00468 * @retval None 00469 */ 00470 #define __HAL_TSC_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ICR = (__FLAG__)) 00471 00472 /** 00473 * @brief Enable schmitt trigger hysteresis on a group of IOs. 00474 * @param __HANDLE__: TSC handle 00475 * @param __GX_IOY_MASK__: IOs mask 00476 * @retval None 00477 */ 00478 #define __HAL_TSC_ENABLE_HYSTERESIS(__HANDLE__, __GX_IOY_MASK__) ((__HANDLE__)->Instance->IOHCR |= (__GX_IOY_MASK__)) 00479 00480 /** 00481 * @brief Disable schmitt trigger hysteresis on a group of IOs. 00482 * @param __HANDLE__: TSC handle 00483 * @param __GX_IOY_MASK__: IOs mask 00484 * @retval None 00485 */ 00486 #define __HAL_TSC_DISABLE_HYSTERESIS(__HANDLE__, __GX_IOY_MASK__) ((__HANDLE__)->Instance->IOHCR &= (uint32_t)(~(__GX_IOY_MASK__))) 00487 00488 /** 00489 * @brief Open analog switch on a group of IOs. 00490 * @param __HANDLE__: TSC handle 00491 * @param __GX_IOY_MASK__: IOs mask 00492 * @retval None 00493 */ 00494 #define __HAL_TSC_OPEN_ANALOG_SWITCH(__HANDLE__, __GX_IOY_MASK__) ((__HANDLE__)->Instance->IOASCR &= (uint32_t)(~(__GX_IOY_MASK__))) 00495 00496 /** 00497 * @brief Close analog switch on a group of IOs. 00498 * @param __HANDLE__: TSC handle 00499 * @param __GX_IOY_MASK__: IOs mask 00500 * @retval None 00501 */ 00502 #define __HAL_TSC_CLOSE_ANALOG_SWITCH(__HANDLE__, __GX_IOY_MASK__) ((__HANDLE__)->Instance->IOASCR |= (__GX_IOY_MASK__)) 00503 00504 /** 00505 * @brief Enable a group of IOs in channel mode. 00506 * @param __HANDLE__: TSC handle 00507 * @param __GX_IOY_MASK__: IOs mask 00508 * @retval None 00509 */ 00510 #define __HAL_TSC_ENABLE_CHANNEL(__HANDLE__, __GX_IOY_MASK__) ((__HANDLE__)->Instance->IOCCR |= (__GX_IOY_MASK__)) 00511 00512 /** 00513 * @brief Disable a group of channel IOs. 00514 * @param __HANDLE__: TSC handle 00515 * @param __GX_IOY_MASK__: IOs mask 00516 * @retval None 00517 */ 00518 #define __HAL_TSC_DISABLE_CHANNEL(__HANDLE__, __GX_IOY_MASK__) ((__HANDLE__)->Instance->IOCCR &= (uint32_t)(~(__GX_IOY_MASK__))) 00519 00520 /** 00521 * @brief Enable a group of IOs in sampling mode. 00522 * @param __HANDLE__: TSC handle 00523 * @param __GX_IOY_MASK__: IOs mask 00524 * @retval None 00525 */ 00526 #define __HAL_TSC_ENABLE_SAMPLING(__HANDLE__, __GX_IOY_MASK__) ((__HANDLE__)->Instance->IOSCR |= (__GX_IOY_MASK__)) 00527 00528 /** 00529 * @brief Disable a group of sampling IOs. 00530 * @param __HANDLE__: TSC handle 00531 * @param __GX_IOY_MASK__: IOs mask 00532 * @retval None 00533 */ 00534 #define __HAL_TSC_DISABLE_SAMPLING(__HANDLE__, __GX_IOY_MASK__) ((__HANDLE__)->Instance->IOSCR &= (uint32_t)(~(__GX_IOY_MASK__))) 00535 00536 /** 00537 * @brief Enable acquisition groups. 00538 * @param __HANDLE__: TSC handle 00539 * @param __GX_MASK__: Groups mask 00540 * @retval None 00541 */ 00542 #define __HAL_TSC_ENABLE_GROUP(__HANDLE__, __GX_MASK__) ((__HANDLE__)->Instance->IOGCSR |= (__GX_MASK__)) 00543 00544 /** 00545 * @brief Disable acquisition groups. 00546 * @param __HANDLE__: TSC handle 00547 * @param __GX_MASK__: Groups mask 00548 * @retval None 00549 */ 00550 #define __HAL_TSC_DISABLE_GROUP(__HANDLE__, __GX_MASK__) ((__HANDLE__)->Instance->IOGCSR &= (uint32_t)(~(__GX_MASK__))) 00551 00552 /** @brief Gets acquisition group status. 00553 * @param __HANDLE__: TSC Handle 00554 * @param __GX_INDEX__: Group index 00555 * @retval SET or RESET 00556 */ 00557 #define __HAL_TSC_GET_GROUP_STATUS(__HANDLE__, __GX_INDEX__) \ 00558 ((((__HANDLE__)->Instance->IOGCSR & (uint32_t)((uint32_t)1 << ((__GX_INDEX__) + (uint32_t)16))) == (uint32_t)((uint32_t)1 << ((__GX_INDEX__) + (uint32_t)16))) ? TSC_GROUP_COMPLETED : TSC_GROUP_ONGOING) 00559 00560 /** 00561 * @} 00562 */ 00563 00564 /* Private macros ------------------------------------------------------------*/ 00565 00566 /** @defgroup TSC_Private_Macros TSC Private Macros 00567 * @{ 00568 */ 00569 00570 #define IS_TSC_CTPH(VAL) (((VAL) == TSC_CTPH_1CYCLE) || \ 00571 ((VAL) == TSC_CTPH_2CYCLES) || \ 00572 ((VAL) == TSC_CTPH_3CYCLES) || \ 00573 ((VAL) == TSC_CTPH_4CYCLES) || \ 00574 ((VAL) == TSC_CTPH_5CYCLES) || \ 00575 ((VAL) == TSC_CTPH_6CYCLES) || \ 00576 ((VAL) == TSC_CTPH_7CYCLES) || \ 00577 ((VAL) == TSC_CTPH_8CYCLES) || \ 00578 ((VAL) == TSC_CTPH_9CYCLES) || \ 00579 ((VAL) == TSC_CTPH_10CYCLES) || \ 00580 ((VAL) == TSC_CTPH_11CYCLES) || \ 00581 ((VAL) == TSC_CTPH_12CYCLES) || \ 00582 ((VAL) == TSC_CTPH_13CYCLES) || \ 00583 ((VAL) == TSC_CTPH_14CYCLES) || \ 00584 ((VAL) == TSC_CTPH_15CYCLES) || \ 00585 ((VAL) == TSC_CTPH_16CYCLES)) 00586 00587 #define IS_TSC_CTPL(VAL) (((VAL) == TSC_CTPL_1CYCLE) || \ 00588 ((VAL) == TSC_CTPL_2CYCLES) || \ 00589 ((VAL) == TSC_CTPL_3CYCLES) || \ 00590 ((VAL) == TSC_CTPL_4CYCLES) || \ 00591 ((VAL) == TSC_CTPL_5CYCLES) || \ 00592 ((VAL) == TSC_CTPL_6CYCLES) || \ 00593 ((VAL) == TSC_CTPL_7CYCLES) || \ 00594 ((VAL) == TSC_CTPL_8CYCLES) || \ 00595 ((VAL) == TSC_CTPL_9CYCLES) || \ 00596 ((VAL) == TSC_CTPL_10CYCLES) || \ 00597 ((VAL) == TSC_CTPL_11CYCLES) || \ 00598 ((VAL) == TSC_CTPL_12CYCLES) || \ 00599 ((VAL) == TSC_CTPL_13CYCLES) || \ 00600 ((VAL) == TSC_CTPL_14CYCLES) || \ 00601 ((VAL) == TSC_CTPL_15CYCLES) || \ 00602 ((VAL) == TSC_CTPL_16CYCLES)) 00603 00604 #define IS_TSC_SS(VAL) (((VAL) == DISABLE) || ((VAL) == ENABLE)) 00605 00606 #define IS_TSC_SSD(VAL) (((VAL) == 0) || (((VAL) > 0) && ((VAL) < 128))) 00607 00608 #define IS_TSC_SS_PRESC(VAL) (((VAL) == TSC_SS_PRESC_DIV1) || ((VAL) == TSC_SS_PRESC_DIV2)) 00609 00610 #define IS_TSC_PG_PRESC(VAL) (((VAL) == TSC_PG_PRESC_DIV1) || \ 00611 ((VAL) == TSC_PG_PRESC_DIV2) || \ 00612 ((VAL) == TSC_PG_PRESC_DIV4) || \ 00613 ((VAL) == TSC_PG_PRESC_DIV8) || \ 00614 ((VAL) == TSC_PG_PRESC_DIV16) || \ 00615 ((VAL) == TSC_PG_PRESC_DIV32) || \ 00616 ((VAL) == TSC_PG_PRESC_DIV64) || \ 00617 ((VAL) == TSC_PG_PRESC_DIV128)) 00618 00619 #define IS_TSC_MCV(VAL) (((VAL) == TSC_MCV_255) || \ 00620 ((VAL) == TSC_MCV_511) || \ 00621 ((VAL) == TSC_MCV_1023) || \ 00622 ((VAL) == TSC_MCV_2047) || \ 00623 ((VAL) == TSC_MCV_4095) || \ 00624 ((VAL) == TSC_MCV_8191) || \ 00625 ((VAL) == TSC_MCV_16383)) 00626 00627 #define IS_TSC_IODEF(VAL) (((VAL) == TSC_IODEF_OUT_PP_LOW) || ((VAL) == TSC_IODEF_IN_FLOAT)) 00628 00629 #define IS_TSC_SYNC_POL(VAL) (((VAL) == TSC_SYNC_POLARITY_FALLING) || ((VAL) == TSC_SYNC_POLARITY_RISING)) 00630 00631 #define IS_TSC_ACQ_MODE(VAL) (((VAL) == TSC_ACQ_MODE_NORMAL) || ((VAL) == TSC_ACQ_MODE_SYNCHRO)) 00632 00633 #define IS_TSC_IOMODE(VAL) (((VAL) == TSC_IOMODE_UNUSED) || \ 00634 ((VAL) == TSC_IOMODE_CHANNEL) || \ 00635 ((VAL) == TSC_IOMODE_SHIELD) || \ 00636 ((VAL) == TSC_IOMODE_SAMPLING)) 00637 00638 #define IS_TSC_MCE_IT(VAL) (((VAL) == DISABLE) || ((VAL) == ENABLE)) 00639 00640 #define IS_TSC_GROUP_INDEX(VAL) (((VAL) == 0) || (((VAL) > 0) && ((VAL) < TSC_NB_OF_GROUPS))) 00641 00642 /** 00643 * @} 00644 */ 00645 00646 /* Exported functions --------------------------------------------------------*/ 00647 /** @addtogroup TSC_Exported_Functions 00648 * @{ 00649 */ 00650 00651 /** @addtogroup TSC_Exported_Functions_Group1 Initialization and de-initialization functions 00652 * @{ 00653 */ 00654 /* Initialization and de-initialization functions *****************************/ 00655 HAL_StatusTypeDef HAL_TSC_Init(TSC_HandleTypeDef* htsc); 00656 HAL_StatusTypeDef HAL_TSC_DeInit(TSC_HandleTypeDef *htsc); 00657 void HAL_TSC_MspInit(TSC_HandleTypeDef* htsc); 00658 void HAL_TSC_MspDeInit(TSC_HandleTypeDef* htsc); 00659 /** 00660 * @} 00661 */ 00662 00663 /** @addtogroup TSC_Exported_Functions_Group2 Input and Output operation functions 00664 * @{ 00665 */ 00666 /* IO operation functions *****************************************************/ 00667 HAL_StatusTypeDef HAL_TSC_Start(TSC_HandleTypeDef* htsc); 00668 HAL_StatusTypeDef HAL_TSC_Start_IT(TSC_HandleTypeDef* htsc); 00669 HAL_StatusTypeDef HAL_TSC_Stop(TSC_HandleTypeDef* htsc); 00670 HAL_StatusTypeDef HAL_TSC_Stop_IT(TSC_HandleTypeDef* htsc); 00671 HAL_StatusTypeDef HAL_TSC_PollForAcquisition(TSC_HandleTypeDef* htsc); 00672 TSC_GroupStatusTypeDef HAL_TSC_GroupGetStatus(TSC_HandleTypeDef* htsc, uint32_t gx_index); 00673 uint32_t HAL_TSC_GroupGetValue(TSC_HandleTypeDef* htsc, uint32_t gx_index); 00674 /** 00675 * @} 00676 */ 00677 00678 /** @addtogroup TSC_Exported_Functions_Group3 Peripheral Control functions 00679 * @{ 00680 */ 00681 /* Peripheral Control functions ***********************************************/ 00682 HAL_StatusTypeDef HAL_TSC_IOConfig(TSC_HandleTypeDef* htsc, TSC_IOConfigTypeDef* config); 00683 HAL_StatusTypeDef HAL_TSC_IODischarge(TSC_HandleTypeDef* htsc, uint32_t choice); 00684 /** 00685 * @} 00686 */ 00687 00688 /** @addtogroup TSC_Exported_Functions_Group4 Peripheral State and Errors functions 00689 * @{ 00690 */ 00691 /* Peripheral State and Error functions ***************************************/ 00692 HAL_TSC_StateTypeDef HAL_TSC_GetState(TSC_HandleTypeDef* htsc); 00693 /** 00694 * @} 00695 */ 00696 00697 /** @addtogroup TSC_IRQ_Handler_and_Callbacks IRQ Handler and Callbacks 00698 * @{ 00699 */ 00700 /******* TSC IRQHandler and Callbacks used in Interrupt mode */ 00701 void HAL_TSC_IRQHandler(TSC_HandleTypeDef* htsc); 00702 void HAL_TSC_ConvCpltCallback(TSC_HandleTypeDef* htsc); 00703 void HAL_TSC_ErrorCallback(TSC_HandleTypeDef* htsc); 00704 /** 00705 * @} 00706 */ 00707 00708 /** 00709 * @} 00710 */ 00711 00712 /** 00713 * @} 00714 */ 00715 00716 /** 00717 * @} 00718 */ 00719 00720 #ifdef __cplusplus 00721 } 00722 #endif 00723 00724 #endif /* __STM32L4xx_HAL_TSC_H */ 00725 00726 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 00727
Generated on Tue Jul 12 2022 10:58:10 by 1.7.2