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

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Committer:
AnnaBridge
Date:
Wed Feb 20 20:53:29 2019 +0000
Revision:
172:65be27845400
Parent:
171:3a7713b1edbc
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 171:3a7713b1edbc 1 /**
AnnaBridge 171:3a7713b1edbc 2 ******************************************************************************
AnnaBridge 171:3a7713b1edbc 3 * @file stm32f7xx_hal_smartcard_ex.h
AnnaBridge 171:3a7713b1edbc 4 * @author MCD Application Team
AnnaBridge 171:3a7713b1edbc 5 * @brief Header file of SMARTCARD HAL module.
AnnaBridge 171:3a7713b1edbc 6 ******************************************************************************
AnnaBridge 171:3a7713b1edbc 7 * @attention
AnnaBridge 171:3a7713b1edbc 8 *
AnnaBridge 171:3a7713b1edbc 9 * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
AnnaBridge 171:3a7713b1edbc 10 *
AnnaBridge 171:3a7713b1edbc 11 * Redistribution and use in source and binary forms, with or without modification,
AnnaBridge 171:3a7713b1edbc 12 * are permitted provided that the following conditions are met:
AnnaBridge 171:3a7713b1edbc 13 * 1. Redistributions of source code must retain the above copyright notice,
AnnaBridge 171:3a7713b1edbc 14 * this list of conditions and the following disclaimer.
AnnaBridge 171:3a7713b1edbc 15 * 2. Redistributions in binary form must reproduce the above copyright notice,
AnnaBridge 171:3a7713b1edbc 16 * this list of conditions and the following disclaimer in the documentation
AnnaBridge 171:3a7713b1edbc 17 * and/or other materials provided with the distribution.
AnnaBridge 171:3a7713b1edbc 18 * 3. Neither the name of STMicroelectronics nor the names of its contributors
AnnaBridge 171:3a7713b1edbc 19 * may be used to endorse or promote products derived from this software
AnnaBridge 171:3a7713b1edbc 20 * without specific prior written permission.
AnnaBridge 171:3a7713b1edbc 21 *
AnnaBridge 171:3a7713b1edbc 22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AnnaBridge 171:3a7713b1edbc 23 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
AnnaBridge 171:3a7713b1edbc 24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
AnnaBridge 171:3a7713b1edbc 25 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
AnnaBridge 171:3a7713b1edbc 26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
AnnaBridge 171:3a7713b1edbc 27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
AnnaBridge 171:3a7713b1edbc 28 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
AnnaBridge 171:3a7713b1edbc 29 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
AnnaBridge 171:3a7713b1edbc 30 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
AnnaBridge 171:3a7713b1edbc 31 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
AnnaBridge 171:3a7713b1edbc 32 *
AnnaBridge 171:3a7713b1edbc 33 ******************************************************************************
AnnaBridge 171:3a7713b1edbc 34 */
AnnaBridge 171:3a7713b1edbc 35
AnnaBridge 171:3a7713b1edbc 36 /* Define to prevent recursive inclusion -------------------------------------*/
AnnaBridge 171:3a7713b1edbc 37 #ifndef __STM32F7xx_HAL_SMARTCARD_EX_H
AnnaBridge 171:3a7713b1edbc 38 #define __STM32F7xx_HAL_SMARTCARD_EX_H
AnnaBridge 171:3a7713b1edbc 39
AnnaBridge 171:3a7713b1edbc 40 #ifdef __cplusplus
AnnaBridge 171:3a7713b1edbc 41 extern "C" {
AnnaBridge 171:3a7713b1edbc 42 #endif
AnnaBridge 171:3a7713b1edbc 43
AnnaBridge 171:3a7713b1edbc 44 /* Includes ------------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 45 #include "stm32f7xx_hal_def.h"
AnnaBridge 171:3a7713b1edbc 46
AnnaBridge 171:3a7713b1edbc 47 /** @addtogroup STM32F7xx_HAL_Driver
AnnaBridge 171:3a7713b1edbc 48 * @{
AnnaBridge 171:3a7713b1edbc 49 */
AnnaBridge 171:3a7713b1edbc 50
AnnaBridge 171:3a7713b1edbc 51 /** @addtogroup SMARTCARDEx
AnnaBridge 171:3a7713b1edbc 52 * @{
AnnaBridge 171:3a7713b1edbc 53 */
AnnaBridge 171:3a7713b1edbc 54
AnnaBridge 171:3a7713b1edbc 55 /* Exported types ------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 56 /* Exported constants --------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 57
AnnaBridge 171:3a7713b1edbc 58 /** @addtogroup SMARTCARDEx_Exported_Constants SMARTCARD Extended Exported Constants
AnnaBridge 171:3a7713b1edbc 59 * @{
AnnaBridge 171:3a7713b1edbc 60 */
AnnaBridge 171:3a7713b1edbc 61
AnnaBridge 171:3a7713b1edbc 62 /** @defgroup SMARTCARDEx_Transmission_Completion_Indication SMARTCARD Transmission Completion Indication
AnnaBridge 171:3a7713b1edbc 63 * @{
AnnaBridge 171:3a7713b1edbc 64 */
AnnaBridge 171:3a7713b1edbc 65 #if defined(USART_TCBGT_SUPPORT)
AnnaBridge 171:3a7713b1edbc 66 #define SMARTCARD_TCBGT SMARTCARD_IT_TCBGT /*!< SMARTCARD transmission complete before guard time */
AnnaBridge 171:3a7713b1edbc 67 #endif /* USART_TCBGT_SUPPORT */
AnnaBridge 171:3a7713b1edbc 68 #define SMARTCARD_TC SMARTCARD_IT_TC /*!< SMARTCARD transmission complete (flag raised when guard time has elapsed) */
AnnaBridge 171:3a7713b1edbc 69 /**
AnnaBridge 171:3a7713b1edbc 70 * @}
AnnaBridge 171:3a7713b1edbc 71 */
AnnaBridge 171:3a7713b1edbc 72
AnnaBridge 171:3a7713b1edbc 73 /** @defgroup SMARTCARDEx_Advanced_Features_Initialization_Type SMARTCARD advanced feature initialization type
AnnaBridge 171:3a7713b1edbc 74 * @{
AnnaBridge 171:3a7713b1edbc 75 */
AnnaBridge 171:3a7713b1edbc 76 #if defined(USART_TCBGT_SUPPORT)
AnnaBridge 171:3a7713b1edbc 77 #define SMARTCARD_ADVFEATURE_TXCOMPLETION ((uint32_t)0x00000100) /*!< TX completion indication before of after guard time */
AnnaBridge 171:3a7713b1edbc 78 #endif /* USART_TCBGT_SUPPORT */
AnnaBridge 171:3a7713b1edbc 79 /**
AnnaBridge 171:3a7713b1edbc 80 * @}
AnnaBridge 171:3a7713b1edbc 81 */
AnnaBridge 171:3a7713b1edbc 82
AnnaBridge 171:3a7713b1edbc 83
AnnaBridge 171:3a7713b1edbc 84
AnnaBridge 171:3a7713b1edbc 85
AnnaBridge 171:3a7713b1edbc 86 /** @defgroup SMARTCARDEx_Flags SMARTCARD Flags
AnnaBridge 171:3a7713b1edbc 87 * Elements values convention: 0xXXXX
AnnaBridge 171:3a7713b1edbc 88 * - 0xXXXX : Flag mask in the ISR register
AnnaBridge 171:3a7713b1edbc 89 * @{
AnnaBridge 171:3a7713b1edbc 90 */
AnnaBridge 171:3a7713b1edbc 91 #if defined(USART_TCBGT_SUPPORT)
AnnaBridge 171:3a7713b1edbc 92 #define SMARTCARD_FLAG_TCBGT USART_ISR_TCBGT /*!< SMARTCARD transmission complete before guard time completion */
AnnaBridge 171:3a7713b1edbc 93 #endif /* USART_TCBGT_SUPPORT */
AnnaBridge 171:3a7713b1edbc 94 /**
AnnaBridge 171:3a7713b1edbc 95 * @}
AnnaBridge 171:3a7713b1edbc 96 */
AnnaBridge 171:3a7713b1edbc 97
AnnaBridge 171:3a7713b1edbc 98 /** @defgroup SMARTCARDEx_Interrupt_definition SMARTCARD Interrupts Definition
AnnaBridge 171:3a7713b1edbc 99 * Elements values convention: 000ZZZZZ0XXYYYYYb
AnnaBridge 171:3a7713b1edbc 100 * - YYYYY : Interrupt source position in the XX register (5 bits)
AnnaBridge 171:3a7713b1edbc 101 * - XX : Interrupt source register (2 bits)
AnnaBridge 171:3a7713b1edbc 102 * - 01: CR1 register
AnnaBridge 171:3a7713b1edbc 103 * - 10: CR2 register
AnnaBridge 171:3a7713b1edbc 104 * - 11: CR3 register
AnnaBridge 171:3a7713b1edbc 105 * - ZZZZZ : Flag position in the ISR register(5 bits)
AnnaBridge 171:3a7713b1edbc 106 * @{
AnnaBridge 171:3a7713b1edbc 107 */
AnnaBridge 171:3a7713b1edbc 108
AnnaBridge 171:3a7713b1edbc 109 #if defined(USART_TCBGT_SUPPORT)
AnnaBridge 171:3a7713b1edbc 110 #define SMARTCARD_IT_TCBGT ((uint16_t)0x1978) /*!< SMARTCARD transmission complete before guard time completion interruption */
AnnaBridge 171:3a7713b1edbc 111 #endif /* USART_TCBGT_SUPPORT */
AnnaBridge 171:3a7713b1edbc 112 /**
AnnaBridge 171:3a7713b1edbc 113 * @}
AnnaBridge 171:3a7713b1edbc 114 */
AnnaBridge 171:3a7713b1edbc 115
AnnaBridge 171:3a7713b1edbc 116 /** @defgroup SMARTCARDEx_IT_CLEAR_Flags SMARTCARD Interruption Clear Flags
AnnaBridge 171:3a7713b1edbc 117 * @{
AnnaBridge 171:3a7713b1edbc 118 */
AnnaBridge 171:3a7713b1edbc 119 #define SMARTCARD_CLEAR_PEF USART_ICR_PECF /*!< SMARTCARD parity error clear flag */
AnnaBridge 171:3a7713b1edbc 120 #define SMARTCARD_CLEAR_FEF USART_ICR_FECF /*!< SMARTCARD framing error clear flag */
AnnaBridge 171:3a7713b1edbc 121 #define SMARTCARD_CLEAR_NEF USART_ICR_NCF /*!< SMARTCARD noise detected clear flag */
AnnaBridge 171:3a7713b1edbc 122 #define SMARTCARD_CLEAR_OREF USART_ICR_ORECF /*!< SMARTCARD overrun error clear flag */
AnnaBridge 171:3a7713b1edbc 123 #define SMARTCARD_CLEAR_IDLEF USART_ICR_IDLECF /*!< SMARTCARD idle line detected clear flag */
AnnaBridge 171:3a7713b1edbc 124 #define SMARTCARD_CLEAR_TCF USART_ICR_TCCF /*!< SMARTCARD transmission complete clear flag */
AnnaBridge 171:3a7713b1edbc 125 #if defined(USART_TCBGT_SUPPORT)
AnnaBridge 171:3a7713b1edbc 126 #define SMARTCARD_CLEAR_TCBGTF USART_ICR_TCBGTCF /*!< SMARTCARD transmission complete before guard time completion clear flag */
AnnaBridge 171:3a7713b1edbc 127 #endif /* USART_TCBGT_SUPPORT */
AnnaBridge 171:3a7713b1edbc 128 #define SMARTCARD_CLEAR_RTOF USART_ICR_RTOCF /*!< SMARTCARD receiver time out clear flag */
AnnaBridge 171:3a7713b1edbc 129 #define SMARTCARD_CLEAR_EOBF USART_ICR_EOBCF /*!< SMARTCARD end of block clear flag */
AnnaBridge 171:3a7713b1edbc 130 /**
AnnaBridge 171:3a7713b1edbc 131 * @}
AnnaBridge 171:3a7713b1edbc 132 */
AnnaBridge 171:3a7713b1edbc 133
AnnaBridge 171:3a7713b1edbc 134 /* Exported macro ------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 135
AnnaBridge 171:3a7713b1edbc 136 /** @brief Reports the SMARTCARD clock source.
AnnaBridge 171:3a7713b1edbc 137 * @param __HANDLE__ specifies the USART Handle
AnnaBridge 171:3a7713b1edbc 138 * @param __CLOCKSOURCE__ output variable
AnnaBridge 171:3a7713b1edbc 139 * @retval the USART clocking source, written in __CLOCKSOURCE__.
AnnaBridge 171:3a7713b1edbc 140 */
AnnaBridge 171:3a7713b1edbc 141 #define SMARTCARD_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__) \
AnnaBridge 171:3a7713b1edbc 142 do { \
AnnaBridge 171:3a7713b1edbc 143 if((__HANDLE__)->Instance == USART1) \
AnnaBridge 171:3a7713b1edbc 144 { \
AnnaBridge 171:3a7713b1edbc 145 switch(__HAL_RCC_GET_USART1_SOURCE()) \
AnnaBridge 171:3a7713b1edbc 146 { \
AnnaBridge 171:3a7713b1edbc 147 case RCC_USART1CLKSOURCE_PCLK2: \
AnnaBridge 171:3a7713b1edbc 148 (__CLOCKSOURCE__) = SMARTCARD_CLOCKSOURCE_PCLK2; \
AnnaBridge 171:3a7713b1edbc 149 break; \
AnnaBridge 171:3a7713b1edbc 150 case RCC_USART1CLKSOURCE_HSI: \
AnnaBridge 171:3a7713b1edbc 151 (__CLOCKSOURCE__) = SMARTCARD_CLOCKSOURCE_HSI; \
AnnaBridge 171:3a7713b1edbc 152 break; \
AnnaBridge 171:3a7713b1edbc 153 case RCC_USART1CLKSOURCE_SYSCLK: \
AnnaBridge 171:3a7713b1edbc 154 (__CLOCKSOURCE__) = SMARTCARD_CLOCKSOURCE_SYSCLK; \
AnnaBridge 171:3a7713b1edbc 155 break; \
AnnaBridge 171:3a7713b1edbc 156 case RCC_USART1CLKSOURCE_LSE: \
AnnaBridge 171:3a7713b1edbc 157 (__CLOCKSOURCE__) = SMARTCARD_CLOCKSOURCE_LSE; \
AnnaBridge 171:3a7713b1edbc 158 break; \
AnnaBridge 171:3a7713b1edbc 159 default: \
AnnaBridge 171:3a7713b1edbc 160 break; \
AnnaBridge 171:3a7713b1edbc 161 } \
AnnaBridge 171:3a7713b1edbc 162 } \
AnnaBridge 171:3a7713b1edbc 163 else if((__HANDLE__)->Instance == USART2) \
AnnaBridge 171:3a7713b1edbc 164 { \
AnnaBridge 171:3a7713b1edbc 165 switch(__HAL_RCC_GET_USART2_SOURCE()) \
AnnaBridge 171:3a7713b1edbc 166 { \
AnnaBridge 171:3a7713b1edbc 167 case RCC_USART2CLKSOURCE_PCLK1: \
AnnaBridge 171:3a7713b1edbc 168 (__CLOCKSOURCE__) = SMARTCARD_CLOCKSOURCE_PCLK1; \
AnnaBridge 171:3a7713b1edbc 169 break; \
AnnaBridge 171:3a7713b1edbc 170 case RCC_USART2CLKSOURCE_HSI: \
AnnaBridge 171:3a7713b1edbc 171 (__CLOCKSOURCE__) = SMARTCARD_CLOCKSOURCE_HSI; \
AnnaBridge 171:3a7713b1edbc 172 break; \
AnnaBridge 171:3a7713b1edbc 173 case RCC_USART2CLKSOURCE_SYSCLK: \
AnnaBridge 171:3a7713b1edbc 174 (__CLOCKSOURCE__) = SMARTCARD_CLOCKSOURCE_SYSCLK; \
AnnaBridge 171:3a7713b1edbc 175 break; \
AnnaBridge 171:3a7713b1edbc 176 case RCC_USART2CLKSOURCE_LSE: \
AnnaBridge 171:3a7713b1edbc 177 (__CLOCKSOURCE__) = SMARTCARD_CLOCKSOURCE_LSE; \
AnnaBridge 171:3a7713b1edbc 178 break; \
AnnaBridge 171:3a7713b1edbc 179 default: \
AnnaBridge 171:3a7713b1edbc 180 break; \
AnnaBridge 171:3a7713b1edbc 181 } \
AnnaBridge 171:3a7713b1edbc 182 } \
AnnaBridge 171:3a7713b1edbc 183 else if((__HANDLE__)->Instance == USART3) \
AnnaBridge 171:3a7713b1edbc 184 { \
AnnaBridge 171:3a7713b1edbc 185 switch(__HAL_RCC_GET_USART3_SOURCE()) \
AnnaBridge 171:3a7713b1edbc 186 { \
AnnaBridge 171:3a7713b1edbc 187 case RCC_USART3CLKSOURCE_PCLK1: \
AnnaBridge 171:3a7713b1edbc 188 (__CLOCKSOURCE__) = SMARTCARD_CLOCKSOURCE_PCLK1; \
AnnaBridge 171:3a7713b1edbc 189 break; \
AnnaBridge 171:3a7713b1edbc 190 case RCC_USART3CLKSOURCE_HSI: \
AnnaBridge 171:3a7713b1edbc 191 (__CLOCKSOURCE__) = SMARTCARD_CLOCKSOURCE_HSI; \
AnnaBridge 171:3a7713b1edbc 192 break; \
AnnaBridge 171:3a7713b1edbc 193 case RCC_USART3CLKSOURCE_SYSCLK: \
AnnaBridge 171:3a7713b1edbc 194 (__CLOCKSOURCE__) = SMARTCARD_CLOCKSOURCE_SYSCLK; \
AnnaBridge 171:3a7713b1edbc 195 break; \
AnnaBridge 171:3a7713b1edbc 196 case RCC_USART3CLKSOURCE_LSE: \
AnnaBridge 171:3a7713b1edbc 197 (__CLOCKSOURCE__) = SMARTCARD_CLOCKSOURCE_LSE; \
AnnaBridge 171:3a7713b1edbc 198 break; \
AnnaBridge 171:3a7713b1edbc 199 default: \
AnnaBridge 171:3a7713b1edbc 200 break; \
AnnaBridge 171:3a7713b1edbc 201 } \
AnnaBridge 171:3a7713b1edbc 202 } \
AnnaBridge 171:3a7713b1edbc 203 else if((__HANDLE__)->Instance == USART6) \
AnnaBridge 171:3a7713b1edbc 204 { \
AnnaBridge 171:3a7713b1edbc 205 switch(__HAL_RCC_GET_USART6_SOURCE()) \
AnnaBridge 171:3a7713b1edbc 206 { \
AnnaBridge 171:3a7713b1edbc 207 case RCC_USART6CLKSOURCE_PCLK2: \
AnnaBridge 171:3a7713b1edbc 208 (__CLOCKSOURCE__) = SMARTCARD_CLOCKSOURCE_PCLK2; \
AnnaBridge 171:3a7713b1edbc 209 break; \
AnnaBridge 171:3a7713b1edbc 210 case RCC_USART6CLKSOURCE_HSI: \
AnnaBridge 171:3a7713b1edbc 211 (__CLOCKSOURCE__) = SMARTCARD_CLOCKSOURCE_HSI; \
AnnaBridge 171:3a7713b1edbc 212 break; \
AnnaBridge 171:3a7713b1edbc 213 case RCC_USART6CLKSOURCE_SYSCLK: \
AnnaBridge 171:3a7713b1edbc 214 (__CLOCKSOURCE__) = SMARTCARD_CLOCKSOURCE_SYSCLK; \
AnnaBridge 171:3a7713b1edbc 215 break; \
AnnaBridge 171:3a7713b1edbc 216 case RCC_USART6CLKSOURCE_LSE: \
AnnaBridge 171:3a7713b1edbc 217 (__CLOCKSOURCE__) = SMARTCARD_CLOCKSOURCE_LSE; \
AnnaBridge 171:3a7713b1edbc 218 break; \
AnnaBridge 171:3a7713b1edbc 219 default: \
AnnaBridge 171:3a7713b1edbc 220 break; \
AnnaBridge 171:3a7713b1edbc 221 } \
AnnaBridge 171:3a7713b1edbc 222 } \
AnnaBridge 171:3a7713b1edbc 223 } while(0)
AnnaBridge 171:3a7713b1edbc 224
AnnaBridge 171:3a7713b1edbc 225 /** @brief Set the Transmission Completion flag
AnnaBridge 171:3a7713b1edbc 226 * @param __HANDLE__ specifies the SMARTCARD Handle.
AnnaBridge 171:3a7713b1edbc 227 * @note If TCBGT (Transmission Complete Before Guard Time) flag is not available or if
AnnaBridge 171:3a7713b1edbc 228 * AdvancedInit.TxCompletionIndication is not already filled, the latter is forced
AnnaBridge 171:3a7713b1edbc 229 * to SMARTCARD_TC (transmission completion indication when guard time has elapsed).
AnnaBridge 171:3a7713b1edbc 230 * @retval None
AnnaBridge 171:3a7713b1edbc 231 */
AnnaBridge 171:3a7713b1edbc 232 #if defined(USART_TCBGT_SUPPORT)
AnnaBridge 171:3a7713b1edbc 233 #define SMARTCARD_TRANSMISSION_COMPLETION_SETTING(__HANDLE__) \
AnnaBridge 171:3a7713b1edbc 234 do { \
AnnaBridge 171:3a7713b1edbc 235 if (HAL_IS_BIT_CLR((__HANDLE__)->AdvancedInit.AdvFeatureInit, SMARTCARD_ADVFEATURE_TXCOMPLETION)) \
AnnaBridge 171:3a7713b1edbc 236 { \
AnnaBridge 171:3a7713b1edbc 237 (__HANDLE__)->AdvancedInit.TxCompletionIndication = SMARTCARD_TC; \
AnnaBridge 171:3a7713b1edbc 238 } \
AnnaBridge 171:3a7713b1edbc 239 else \
AnnaBridge 171:3a7713b1edbc 240 { \
AnnaBridge 171:3a7713b1edbc 241 assert_param(IS_SMARTCARD_TRANSMISSION_COMPLETION((__HANDLE__)->AdvancedInit.TxCompletionIndication)); \
AnnaBridge 171:3a7713b1edbc 242 } \
AnnaBridge 171:3a7713b1edbc 243 } while(0)
AnnaBridge 171:3a7713b1edbc 244 #else
AnnaBridge 171:3a7713b1edbc 245 #define SMARTCARD_TRANSMISSION_COMPLETION_SETTING(__HANDLE__) \
AnnaBridge 171:3a7713b1edbc 246 do { \
AnnaBridge 171:3a7713b1edbc 247 (__HANDLE__)->AdvancedInit.TxCompletionIndication = SMARTCARD_TC; \
AnnaBridge 171:3a7713b1edbc 248 } while(0)
AnnaBridge 171:3a7713b1edbc 249 #endif
AnnaBridge 171:3a7713b1edbc 250
AnnaBridge 171:3a7713b1edbc 251 /** @brief Return the transmission completion flag.
AnnaBridge 171:3a7713b1edbc 252 * @param __HANDLE__ specifies the SMARTCARD Handle.
AnnaBridge 171:3a7713b1edbc 253 * @note Based on AdvancedInit.TxCompletionIndication setting, return TC or TCBGT flag.
AnnaBridge 171:3a7713b1edbc 254 * When TCBGT flag (Transmission Complete Before Guard Time) is not available, TC flag is
AnnaBridge 171:3a7713b1edbc 255 * reported.
AnnaBridge 171:3a7713b1edbc 256 * @retval Transmission completion flag
AnnaBridge 171:3a7713b1edbc 257 */
AnnaBridge 171:3a7713b1edbc 258 #if defined(USART_TCBGT_SUPPORT)
AnnaBridge 171:3a7713b1edbc 259 #define SMARTCARD_TRANSMISSION_COMPLETION_FLAG(__HANDLE__) \
AnnaBridge 171:3a7713b1edbc 260 (((__HANDLE__)->AdvancedInit.TxCompletionIndication == SMARTCARD_TC) ? (SMARTCARD_FLAG_TC) : (SMARTCARD_FLAG_TCBGT))
AnnaBridge 171:3a7713b1edbc 261 #else
AnnaBridge 171:3a7713b1edbc 262 #define SMARTCARD_TRANSMISSION_COMPLETION_FLAG(__HANDLE__) (SMARTCARD_FLAG_TC)
AnnaBridge 171:3a7713b1edbc 263 #endif
AnnaBridge 171:3a7713b1edbc 264
AnnaBridge 171:3a7713b1edbc 265 /**
AnnaBridge 171:3a7713b1edbc 266 * @brief Ensure that SMARTCARD frame transmission completion used flag is valid.
AnnaBridge 171:3a7713b1edbc 267 * @param __TXCOMPLETE__ SMARTCARD frame transmission completion used flag.
AnnaBridge 171:3a7713b1edbc 268 * @retval SET (__TXCOMPLETE__ is valid) or RESET (__TXCOMPLETE__ is invalid)
AnnaBridge 171:3a7713b1edbc 269 */
AnnaBridge 171:3a7713b1edbc 270 #if defined(USART_TCBGT_SUPPORT)
AnnaBridge 171:3a7713b1edbc 271 #define IS_SMARTCARD_TRANSMISSION_COMPLETION(__TXCOMPLETE__) (((__TXCOMPLETE__) == SMARTCARD_TCBGT) ||\
AnnaBridge 171:3a7713b1edbc 272 ((__TXCOMPLETE__) == SMARTCARD_TC))
AnnaBridge 171:3a7713b1edbc 273 #else
AnnaBridge 171:3a7713b1edbc 274 #define IS_SMARTCARD_TRANSMISSION_COMPLETION(__TXCOMPLETE__) ((__TXCOMPLETE__) == SMARTCARD_TC)
AnnaBridge 171:3a7713b1edbc 275 #endif
AnnaBridge 171:3a7713b1edbc 276
AnnaBridge 171:3a7713b1edbc 277 /**
AnnaBridge 171:3a7713b1edbc 278 * @}
AnnaBridge 171:3a7713b1edbc 279 */
AnnaBridge 171:3a7713b1edbc 280
AnnaBridge 171:3a7713b1edbc 281 /* Exported functions --------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 282 /* Initialization and de-initialization functions ****************************/
AnnaBridge 171:3a7713b1edbc 283 /* IO operation functions *****************************************************/
AnnaBridge 171:3a7713b1edbc 284 /* Peripheral Control functions ***********************************************/
AnnaBridge 171:3a7713b1edbc 285 void HAL_SMARTCARDEx_BlockLength_Config(SMARTCARD_HandleTypeDef *hsc, uint8_t BlockLength);
AnnaBridge 171:3a7713b1edbc 286 void HAL_SMARTCARDEx_TimeOut_Config(SMARTCARD_HandleTypeDef *hsc, uint32_t TimeOutValue);
AnnaBridge 171:3a7713b1edbc 287 HAL_StatusTypeDef HAL_SMARTCARDEx_EnableReceiverTimeOut(SMARTCARD_HandleTypeDef *hsc);
AnnaBridge 171:3a7713b1edbc 288 HAL_StatusTypeDef HAL_SMARTCARDEx_DisableReceiverTimeOut(SMARTCARD_HandleTypeDef *hsc);
AnnaBridge 171:3a7713b1edbc 289
AnnaBridge 171:3a7713b1edbc 290 /* Peripheral State and Error functions ***************************************/
AnnaBridge 171:3a7713b1edbc 291
AnnaBridge 171:3a7713b1edbc 292 /**
AnnaBridge 171:3a7713b1edbc 293 * @}
AnnaBridge 171:3a7713b1edbc 294 */
AnnaBridge 171:3a7713b1edbc 295
AnnaBridge 171:3a7713b1edbc 296 /**
AnnaBridge 171:3a7713b1edbc 297 * @}
AnnaBridge 171:3a7713b1edbc 298 */
AnnaBridge 171:3a7713b1edbc 299
AnnaBridge 171:3a7713b1edbc 300 #ifdef __cplusplus
AnnaBridge 171:3a7713b1edbc 301 }
AnnaBridge 171:3a7713b1edbc 302 #endif
AnnaBridge 171:3a7713b1edbc 303
AnnaBridge 171:3a7713b1edbc 304 #endif /* __STM32F7xx_HAL_SMARTCARD_EX_H */
AnnaBridge 171:3a7713b1edbc 305
AnnaBridge 171:3a7713b1edbc 306 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/