mbed library sources. Supersedes mbed-src.

Dependents:   Nucleo_Hello_Encoder BLE_iBeaconScan AM1805_DEMO DISCO-F429ZI_ExportTemplate1 ... more

Committer:
AnnaBridge
Date:
Wed Feb 20 22:31:08 2019 +0000
Revision:
189:f392fc9709a3
Parent:
181:57724642e740
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
<> 144:ef7eb2e8f9f7 1 /**
<> 144:ef7eb2e8f9f7 2 ******************************************************************************
<> 144:ef7eb2e8f9f7 3 * @file stm32l4xx_hal_smartcard.h
<> 144:ef7eb2e8f9f7 4 * @author MCD Application Team
<> 144:ef7eb2e8f9f7 5 * @brief Header file of SMARTCARD HAL module.
<> 144:ef7eb2e8f9f7 6 ******************************************************************************
<> 144:ef7eb2e8f9f7 7 * @attention
<> 144:ef7eb2e8f9f7 8 *
AnnaBridge 167:e84263d55307 9 * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
<> 144:ef7eb2e8f9f7 10 *
<> 144:ef7eb2e8f9f7 11 * Redistribution and use in source and binary forms, with or without modification,
<> 144:ef7eb2e8f9f7 12 * are permitted provided that the following conditions are met:
<> 144:ef7eb2e8f9f7 13 * 1. Redistributions of source code must retain the above copyright notice,
<> 144:ef7eb2e8f9f7 14 * this list of conditions and the following disclaimer.
<> 144:ef7eb2e8f9f7 15 * 2. Redistributions in binary form must reproduce the above copyright notice,
<> 144:ef7eb2e8f9f7 16 * this list of conditions and the following disclaimer in the documentation
<> 144:ef7eb2e8f9f7 17 * and/or other materials provided with the distribution.
<> 144:ef7eb2e8f9f7 18 * 3. Neither the name of STMicroelectronics nor the names of its contributors
<> 144:ef7eb2e8f9f7 19 * may be used to endorse or promote products derived from this software
<> 144:ef7eb2e8f9f7 20 * without specific prior written permission.
<> 144:ef7eb2e8f9f7 21 *
<> 144:ef7eb2e8f9f7 22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
<> 144:ef7eb2e8f9f7 23 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
<> 144:ef7eb2e8f9f7 24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
<> 144:ef7eb2e8f9f7 25 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
<> 144:ef7eb2e8f9f7 26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
<> 144:ef7eb2e8f9f7 27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
<> 144:ef7eb2e8f9f7 28 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
<> 144:ef7eb2e8f9f7 29 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
<> 144:ef7eb2e8f9f7 30 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
<> 144:ef7eb2e8f9f7 31 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<> 144:ef7eb2e8f9f7 32 *
<> 144:ef7eb2e8f9f7 33 ******************************************************************************
<> 144:ef7eb2e8f9f7 34 */
<> 144:ef7eb2e8f9f7 35
<> 144:ef7eb2e8f9f7 36 /* Define to prevent recursive inclusion -------------------------------------*/
<> 144:ef7eb2e8f9f7 37 #ifndef __STM32L4xx_HAL_SMARTCARD_H
<> 144:ef7eb2e8f9f7 38 #define __STM32L4xx_HAL_SMARTCARD_H
<> 144:ef7eb2e8f9f7 39
<> 144:ef7eb2e8f9f7 40 #ifdef __cplusplus
<> 144:ef7eb2e8f9f7 41 extern "C" {
<> 144:ef7eb2e8f9f7 42 #endif
<> 144:ef7eb2e8f9f7 43
<> 144:ef7eb2e8f9f7 44 /* Includes ------------------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 45 #include "stm32l4xx_hal_def.h"
<> 144:ef7eb2e8f9f7 46
<> 144:ef7eb2e8f9f7 47 /** @addtogroup STM32L4xx_HAL_Driver
<> 144:ef7eb2e8f9f7 48 * @{
<> 144:ef7eb2e8f9f7 49 */
<> 144:ef7eb2e8f9f7 50
<> 144:ef7eb2e8f9f7 51 /** @addtogroup SMARTCARD
<> 144:ef7eb2e8f9f7 52 * @{
<> 144:ef7eb2e8f9f7 53 */
<> 144:ef7eb2e8f9f7 54
<> 144:ef7eb2e8f9f7 55 /* Exported types ------------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 56 /** @defgroup SMARTCARD_Exported_Types SMARTCARD Exported Types
<> 144:ef7eb2e8f9f7 57 * @{
<> 144:ef7eb2e8f9f7 58 */
<> 144:ef7eb2e8f9f7 59
<> 144:ef7eb2e8f9f7 60 /**
<> 144:ef7eb2e8f9f7 61 * @brief SMARTCARD Init Structure definition
<> 144:ef7eb2e8f9f7 62 */
<> 144:ef7eb2e8f9f7 63 typedef struct
<> 144:ef7eb2e8f9f7 64 {
<> 144:ef7eb2e8f9f7 65 uint32_t BaudRate; /*!< Configures the SmartCard communication baud rate.
<> 144:ef7eb2e8f9f7 66 The baud rate register is computed using the following formula:
AnnaBridge 181:57724642e740 67 Baud Rate Register = ((usart_ker_ckpres) / ((hsmartcard->Init.BaudRate)))
AnnaBridge 181:57724642e740 68 where usart_ker_ckpres is the USART input clock divided by a prescaler */
<> 144:ef7eb2e8f9f7 69
<> 144:ef7eb2e8f9f7 70 uint32_t WordLength; /*!< Specifies the number of data bits transmitted or received in a frame.
<> 144:ef7eb2e8f9f7 71 This parameter @ref SMARTCARD_Word_Length can only be set to 9 (8 data + 1 parity bits). */
<> 144:ef7eb2e8f9f7 72
<> 144:ef7eb2e8f9f7 73 uint32_t StopBits; /*!< Specifies the number of stop bits.
<> 144:ef7eb2e8f9f7 74 This parameter can be a value of @ref SMARTCARD_Stop_Bits. */
<> 144:ef7eb2e8f9f7 75
<> 144:ef7eb2e8f9f7 76 uint16_t Parity; /*!< Specifies the parity mode.
<> 144:ef7eb2e8f9f7 77 This parameter can be a value of @ref SMARTCARD_Parity
<> 144:ef7eb2e8f9f7 78 @note The parity is enabled by default (PCE is forced to 1).
<> 144:ef7eb2e8f9f7 79 Since the WordLength is forced to 8 bits + parity, M is
<> 144:ef7eb2e8f9f7 80 forced to 1 and the parity bit is the 9th bit. */
<> 144:ef7eb2e8f9f7 81
<> 144:ef7eb2e8f9f7 82 uint16_t Mode; /*!< Specifies whether the Receive or Transmit mode is enabled or disabled.
<> 144:ef7eb2e8f9f7 83 This parameter can be a value of @ref SMARTCARD_Mode */
<> 144:ef7eb2e8f9f7 84
<> 144:ef7eb2e8f9f7 85 uint16_t CLKPolarity; /*!< Specifies the steady state of the serial clock.
<> 144:ef7eb2e8f9f7 86 This parameter can be a value of @ref SMARTCARD_Clock_Polarity */
<> 144:ef7eb2e8f9f7 87
<> 144:ef7eb2e8f9f7 88 uint16_t CLKPhase; /*!< Specifies the clock transition on which the bit capture is made.
<> 144:ef7eb2e8f9f7 89 This parameter can be a value of @ref SMARTCARD_Clock_Phase */
<> 144:ef7eb2e8f9f7 90
<> 144:ef7eb2e8f9f7 91 uint16_t CLKLastBit; /*!< Specifies whether the clock pulse corresponding to the last transmitted
<> 144:ef7eb2e8f9f7 92 data bit (MSB) has to be output on the SCLK pin in synchronous mode.
<> 144:ef7eb2e8f9f7 93 This parameter can be a value of @ref SMARTCARD_Last_Bit */
<> 144:ef7eb2e8f9f7 94
<> 144:ef7eb2e8f9f7 95 uint16_t OneBitSampling; /*!< Specifies whether a single sample or three samples' majority vote is selected.
<> 144:ef7eb2e8f9f7 96 Selecting the single sample method increases the receiver tolerance to clock
<> 144:ef7eb2e8f9f7 97 deviations. This parameter can be a value of @ref SMARTCARD_OneBit_Sampling. */
<> 144:ef7eb2e8f9f7 98
AnnaBridge 181:57724642e740 99 uint8_t Prescaler; /*!< Specifies the SmartCard Prescaler.
AnnaBridge 181:57724642e740 100 This parameter can be any value from 0x01 to 0x1F. Prescaler value is multiplied
AnnaBridge 181:57724642e740 101 by 2 to give the division factor of the source clock frequency */
<> 144:ef7eb2e8f9f7 102
<> 144:ef7eb2e8f9f7 103 uint8_t GuardTime; /*!< Specifies the SmartCard Guard Time applied after stop bits. */
<> 144:ef7eb2e8f9f7 104
<> 144:ef7eb2e8f9f7 105 uint16_t NACKEnable; /*!< Specifies whether the SmartCard NACK transmission is enabled
<> 144:ef7eb2e8f9f7 106 in case of parity error.
<> 144:ef7eb2e8f9f7 107 This parameter can be a value of @ref SMARTCARD_NACK_Enable */
<> 144:ef7eb2e8f9f7 108
<> 144:ef7eb2e8f9f7 109 uint32_t TimeOutEnable; /*!< Specifies whether the receiver timeout is enabled.
<> 144:ef7eb2e8f9f7 110 This parameter can be a value of @ref SMARTCARD_Timeout_Enable*/
<> 144:ef7eb2e8f9f7 111
<> 144:ef7eb2e8f9f7 112 uint32_t TimeOutValue; /*!< Specifies the receiver time out value in number of baud blocks:
<> 144:ef7eb2e8f9f7 113 it is used to implement the Character Wait Time (CWT) and
<> 144:ef7eb2e8f9f7 114 Block Wait Time (BWT). It is coded over 24 bits. */
<> 144:ef7eb2e8f9f7 115
<> 144:ef7eb2e8f9f7 116 uint8_t BlockLength; /*!< Specifies the SmartCard Block Length in T=1 Reception mode.
<> 144:ef7eb2e8f9f7 117 This parameter can be any value from 0x0 to 0xFF */
<> 144:ef7eb2e8f9f7 118
<> 144:ef7eb2e8f9f7 119 uint8_t AutoRetryCount; /*!< Specifies the SmartCard auto-retry count (number of retries in
<> 144:ef7eb2e8f9f7 120 receive and transmit mode). When set to 0, retransmission is
<> 144:ef7eb2e8f9f7 121 disabled. Otherwise, its maximum value is 7 (before signalling
<> 144:ef7eb2e8f9f7 122 an error) */
<> 144:ef7eb2e8f9f7 123
AnnaBridge 181:57724642e740 124 #if defined(USART_PRESC_PRESCALER)
AnnaBridge 181:57724642e740 125 uint32_t ClockPrescaler; /*!< Specifies the prescaler value used to divide the USART clock source.
AnnaBridge 181:57724642e740 126 This parameter can be a value of @ref SMARTCARD_ClockPrescaler. */
AnnaBridge 181:57724642e740 127 #endif
AnnaBridge 181:57724642e740 128
<> 144:ef7eb2e8f9f7 129 }SMARTCARD_InitTypeDef;
<> 144:ef7eb2e8f9f7 130
<> 144:ef7eb2e8f9f7 131 /**
<> 144:ef7eb2e8f9f7 132 * @brief SMARTCARD advanced features initalization structure definition
<> 144:ef7eb2e8f9f7 133 */
<> 144:ef7eb2e8f9f7 134 typedef struct
<> 144:ef7eb2e8f9f7 135 {
<> 144:ef7eb2e8f9f7 136 uint32_t AdvFeatureInit; /*!< Specifies which advanced SMARTCARD features is initialized. Several
<> 144:ef7eb2e8f9f7 137 advanced features may be initialized at the same time. This parameter
<> 144:ef7eb2e8f9f7 138 can be a value of @ref SMARTCARDEx_Advanced_Features_Initialization_Type */
<> 144:ef7eb2e8f9f7 139
<> 144:ef7eb2e8f9f7 140 uint32_t TxPinLevelInvert; /*!< Specifies whether the TX pin active level is inverted.
<> 144:ef7eb2e8f9f7 141 This parameter can be a value of @ref SMARTCARD_Tx_Inv */
<> 144:ef7eb2e8f9f7 142
<> 144:ef7eb2e8f9f7 143 uint32_t RxPinLevelInvert; /*!< Specifies whether the RX pin active level is inverted.
<> 144:ef7eb2e8f9f7 144 This parameter can be a value of @ref SMARTCARD_Rx_Inv */
<> 144:ef7eb2e8f9f7 145
<> 144:ef7eb2e8f9f7 146 uint32_t DataInvert; /*!< Specifies whether data are inverted (positive/direct logic
<> 144:ef7eb2e8f9f7 147 vs negative/inverted logic).
<> 144:ef7eb2e8f9f7 148 This parameter can be a value of @ref SMARTCARD_Data_Inv */
<> 144:ef7eb2e8f9f7 149
<> 144:ef7eb2e8f9f7 150 uint32_t Swap; /*!< Specifies whether TX and RX pins are swapped.
<> 144:ef7eb2e8f9f7 151 This parameter can be a value of @ref SMARTCARD_Rx_Tx_Swap */
<> 144:ef7eb2e8f9f7 152
<> 144:ef7eb2e8f9f7 153 uint32_t OverrunDisable; /*!< Specifies whether the reception overrun detection is disabled.
<> 144:ef7eb2e8f9f7 154 This parameter can be a value of @ref SMARTCARD_Overrun_Disable */
<> 144:ef7eb2e8f9f7 155
<> 144:ef7eb2e8f9f7 156 uint32_t DMADisableonRxError; /*!< Specifies whether the DMA is disabled in case of reception error.
<> 144:ef7eb2e8f9f7 157 This parameter can be a value of @ref SMARTCARD_DMA_Disable_on_Rx_Error */
<> 144:ef7eb2e8f9f7 158
<> 144:ef7eb2e8f9f7 159 uint32_t MSBFirst; /*!< Specifies whether MSB is sent first on UART line.
<> 144:ef7eb2e8f9f7 160 This parameter can be a value of @ref SMARTCARD_MSB_First */
<> 144:ef7eb2e8f9f7 161
<> 144:ef7eb2e8f9f7 162 uint16_t TxCompletionIndication; /*!< Specifies which transmission completion indication is used: before (when
<> 144:ef7eb2e8f9f7 163 relevant flag is available) or once guard time period has elapsed.
<> 144:ef7eb2e8f9f7 164 This parameter can be a value of @ref SMARTCARDEx_Transmission_Completion_Indication. */
<> 144:ef7eb2e8f9f7 165 }SMARTCARD_AdvFeatureInitTypeDef;
<> 144:ef7eb2e8f9f7 166
<> 144:ef7eb2e8f9f7 167 /**
<> 144:ef7eb2e8f9f7 168 * @brief HAL SMARTCARD State structures definition
<> 144:ef7eb2e8f9f7 169 * @note HAL SMARTCARD State value is a combination of 2 different substates: gState and RxState.
<> 144:ef7eb2e8f9f7 170 * - gState contains SMARTCARD state information related to global Handle management
<> 144:ef7eb2e8f9f7 171 * and also information related to Tx operations.
<> 144:ef7eb2e8f9f7 172 * gState value coding follow below described bitmap :
<> 144:ef7eb2e8f9f7 173 * b7-b6 Error information
<> 144:ef7eb2e8f9f7 174 * 00 : No Error
<> 144:ef7eb2e8f9f7 175 * 01 : (Not Used)
<> 144:ef7eb2e8f9f7 176 * 10 : Timeout
<> 144:ef7eb2e8f9f7 177 * 11 : Error
<> 144:ef7eb2e8f9f7 178 * b5 IP initilisation status
<> 144:ef7eb2e8f9f7 179 * 0 : Reset (IP not initialized)
<> 144:ef7eb2e8f9f7 180 * 1 : Init done (IP not initialized. HAL SMARTCARD Init function already called)
<> 144:ef7eb2e8f9f7 181 * b4-b3 (not used)
<> 144:ef7eb2e8f9f7 182 * xx : Should be set to 00
<> 144:ef7eb2e8f9f7 183 * b2 Intrinsic process state
<> 144:ef7eb2e8f9f7 184 * 0 : Ready
<> 144:ef7eb2e8f9f7 185 * 1 : Busy (IP busy with some configuration or internal operations)
<> 144:ef7eb2e8f9f7 186 * b1 (not used)
<> 144:ef7eb2e8f9f7 187 * x : Should be set to 0
<> 144:ef7eb2e8f9f7 188 * b0 Tx state
<> 144:ef7eb2e8f9f7 189 * 0 : Ready (no Tx operation ongoing)
<> 144:ef7eb2e8f9f7 190 * 1 : Busy (Tx operation ongoing)
<> 144:ef7eb2e8f9f7 191 * - RxState contains information related to Rx operations.
<> 144:ef7eb2e8f9f7 192 * RxState value coding follow below described bitmap :
<> 144:ef7eb2e8f9f7 193 * b7-b6 (not used)
<> 144:ef7eb2e8f9f7 194 * xx : Should be set to 00
<> 144:ef7eb2e8f9f7 195 * b5 IP initilisation status
<> 144:ef7eb2e8f9f7 196 * 0 : Reset (IP not initialized)
<> 144:ef7eb2e8f9f7 197 * 1 : Init done (IP not initialized)
<> 144:ef7eb2e8f9f7 198 * b4-b2 (not used)
<> 144:ef7eb2e8f9f7 199 * xxx : Should be set to 000
<> 144:ef7eb2e8f9f7 200 * b1 Rx state
<> 144:ef7eb2e8f9f7 201 * 0 : Ready (no Rx operation ongoing)
<> 144:ef7eb2e8f9f7 202 * 1 : Busy (Rx operation ongoing)
<> 144:ef7eb2e8f9f7 203 * b0 (not used)
<> 144:ef7eb2e8f9f7 204 * x : Should be set to 0.
<> 144:ef7eb2e8f9f7 205 */
<> 144:ef7eb2e8f9f7 206 typedef enum
<> 144:ef7eb2e8f9f7 207 {
<> 144:ef7eb2e8f9f7 208 HAL_SMARTCARD_STATE_RESET = 0x00U, /*!< Peripheral is not initialized
<> 144:ef7eb2e8f9f7 209 Value is allowed for gState and RxState */
<> 144:ef7eb2e8f9f7 210 HAL_SMARTCARD_STATE_READY = 0x20U, /*!< Peripheral Initialized and ready for use
<> 144:ef7eb2e8f9f7 211 Value is allowed for gState and RxState */
<> 144:ef7eb2e8f9f7 212 HAL_SMARTCARD_STATE_BUSY = 0x24U, /*!< an internal process is ongoing
<> 144:ef7eb2e8f9f7 213 Value is allowed for gState only */
<> 144:ef7eb2e8f9f7 214 HAL_SMARTCARD_STATE_BUSY_TX = 0x21U, /*!< Data Transmission process is ongoing
<> 144:ef7eb2e8f9f7 215 Value is allowed for gState only */
<> 144:ef7eb2e8f9f7 216 HAL_SMARTCARD_STATE_BUSY_RX = 0x22U, /*!< Data Reception process is ongoing
<> 144:ef7eb2e8f9f7 217 Value is allowed for RxState only */
<> 144:ef7eb2e8f9f7 218 HAL_SMARTCARD_STATE_BUSY_TX_RX = 0x23U, /*!< Data Transmission and Reception process is ongoing
<> 144:ef7eb2e8f9f7 219 Not to be used for neither gState nor RxState.
<> 144:ef7eb2e8f9f7 220 Value is result of combination (Or) between gState and RxState values */
<> 144:ef7eb2e8f9f7 221 HAL_SMARTCARD_STATE_TIMEOUT = 0xA0U, /*!< Timeout state
<> 144:ef7eb2e8f9f7 222 Value is allowed for gState only */
<> 144:ef7eb2e8f9f7 223 HAL_SMARTCARD_STATE_ERROR = 0xE0U /*!< Error
<> 144:ef7eb2e8f9f7 224 Value is allowed for gState only */
<> 144:ef7eb2e8f9f7 225 }HAL_SMARTCARD_StateTypeDef;
<> 144:ef7eb2e8f9f7 226
<> 144:ef7eb2e8f9f7 227 /**
<> 144:ef7eb2e8f9f7 228 * @brief HAL SMARTCARD Error Code structure definition
<> 144:ef7eb2e8f9f7 229 */
<> 144:ef7eb2e8f9f7 230 typedef enum
<> 144:ef7eb2e8f9f7 231 {
<> 144:ef7eb2e8f9f7 232 HAL_SMARTCARD_ERROR_NONE = 0x00, /*!< No error */
<> 144:ef7eb2e8f9f7 233 HAL_SMARTCARD_ERROR_PE = 0x01, /*!< Parity error */
<> 144:ef7eb2e8f9f7 234 HAL_SMARTCARD_ERROR_NE = 0x02, /*!< Noise error */
<> 144:ef7eb2e8f9f7 235 HAL_SMARTCARD_ERROR_FE = 0x04, /*!< frame error */
<> 144:ef7eb2e8f9f7 236 HAL_SMARTCARD_ERROR_ORE = 0x08, /*!< Overrun error */
<> 144:ef7eb2e8f9f7 237 HAL_SMARTCARD_ERROR_DMA = 0x10, /*!< DMA transfer error */
<> 144:ef7eb2e8f9f7 238 HAL_SMARTCARD_ERROR_RTO = 0x20 /*!< Receiver TimeOut error */
<> 144:ef7eb2e8f9f7 239 }HAL_SMARTCARD_ErrorTypeDef;
<> 144:ef7eb2e8f9f7 240
<> 144:ef7eb2e8f9f7 241 /**
<> 144:ef7eb2e8f9f7 242 * @brief SMARTCARD handle Structure definition
<> 144:ef7eb2e8f9f7 243 */
AnnaBridge 181:57724642e740 244 typedef struct __SMARTCARD_HandleTypeDef
<> 144:ef7eb2e8f9f7 245 {
AnnaBridge 181:57724642e740 246 USART_TypeDef *Instance; /*!< USART registers base address */
<> 144:ef7eb2e8f9f7 247
AnnaBridge 181:57724642e740 248 SMARTCARD_InitTypeDef Init; /*!< SmartCard communication parameters */
<> 144:ef7eb2e8f9f7 249
AnnaBridge 181:57724642e740 250 SMARTCARD_AdvFeatureInitTypeDef AdvancedInit; /*!< SmartCard advanced features initialization parameters */
AnnaBridge 181:57724642e740 251
AnnaBridge 181:57724642e740 252 uint8_t *pTxBuffPtr; /*!< Pointer to SmartCard Tx transfer Buffer */
<> 144:ef7eb2e8f9f7 253
AnnaBridge 181:57724642e740 254 uint16_t TxXferSize; /*!< SmartCard Tx Transfer size */
<> 144:ef7eb2e8f9f7 255
AnnaBridge 181:57724642e740 256 __IO uint16_t TxXferCount; /*!< SmartCard Tx Transfer Counter */
AnnaBridge 181:57724642e740 257
AnnaBridge 181:57724642e740 258 uint8_t *pRxBuffPtr; /*!< Pointer to SmartCard Rx transfer Buffer */
<> 144:ef7eb2e8f9f7 259
AnnaBridge 181:57724642e740 260 uint16_t RxXferSize; /*!< SmartCard Rx Transfer size */
<> 144:ef7eb2e8f9f7 261
AnnaBridge 181:57724642e740 262 __IO uint16_t RxXferCount; /*!< SmartCard Rx Transfer Counter */
AnnaBridge 181:57724642e740 263
AnnaBridge 181:57724642e740 264 #if defined(USART_CR1_FIFOEN)
AnnaBridge 181:57724642e740 265 uint16_t NbRxDataToProcess; /*!< Number of data to process during RX ISR execution */
<> 144:ef7eb2e8f9f7 266
AnnaBridge 181:57724642e740 267 uint16_t NbTxDataToProcess; /*!< Number of data to process during TX ISR execution */
<> 144:ef7eb2e8f9f7 268
AnnaBridge 181:57724642e740 269 uint32_t FifoMode; /*!< Specifies if the FIFO mode is being used.
AnnaBridge 181:57724642e740 270 This parameter can be a value of @ref SMARTCARDEx_FIFO_mode. */
AnnaBridge 181:57724642e740 271 #endif
<> 144:ef7eb2e8f9f7 272
AnnaBridge 181:57724642e740 273 void (*RxISR)(struct __SMARTCARD_HandleTypeDef *huart); /*!< Function pointer on Rx IRQ handler */
<> 144:ef7eb2e8f9f7 274
AnnaBridge 181:57724642e740 275 void (*TxISR)(struct __SMARTCARD_HandleTypeDef *huart); /*!< Function pointer on Tx IRQ handler */
AnnaBridge 181:57724642e740 276
AnnaBridge 181:57724642e740 277 DMA_HandleTypeDef *hdmatx; /*!< SmartCard Tx DMA Handle parameters */
<> 144:ef7eb2e8f9f7 278
AnnaBridge 181:57724642e740 279 DMA_HandleTypeDef *hdmarx; /*!< SmartCard Rx DMA Handle parameters */
AnnaBridge 181:57724642e740 280
AnnaBridge 181:57724642e740 281 HAL_LockTypeDef Lock; /*!< Locking object */
<> 144:ef7eb2e8f9f7 282
AnnaBridge 181:57724642e740 283 __IO HAL_SMARTCARD_StateTypeDef gState; /*!< SmartCard state information related to global Handle management
AnnaBridge 181:57724642e740 284 and also related to Tx operations.
AnnaBridge 181:57724642e740 285 This parameter can be a value of @ref HAL_SMARTCARD_StateTypeDef */
<> 144:ef7eb2e8f9f7 286
AnnaBridge 181:57724642e740 287 __IO HAL_SMARTCARD_StateTypeDef RxState; /*!< SmartCard state information related to Rx operations.
AnnaBridge 181:57724642e740 288 This parameter can be a value of @ref HAL_SMARTCARD_StateTypeDef */
<> 144:ef7eb2e8f9f7 289
AnnaBridge 181:57724642e740 290 uint32_t ErrorCode; /*!< SmartCard Error code */
<> 144:ef7eb2e8f9f7 291
<> 144:ef7eb2e8f9f7 292 }SMARTCARD_HandleTypeDef;
<> 144:ef7eb2e8f9f7 293
<> 144:ef7eb2e8f9f7 294 /**
<> 144:ef7eb2e8f9f7 295 * @brief SMARTCARD clock sources
<> 144:ef7eb2e8f9f7 296 */
<> 144:ef7eb2e8f9f7 297 typedef enum
<> 144:ef7eb2e8f9f7 298 {
<> 144:ef7eb2e8f9f7 299 SMARTCARD_CLOCKSOURCE_PCLK1 = 0x00, /*!< PCLK1 clock source */
<> 144:ef7eb2e8f9f7 300 SMARTCARD_CLOCKSOURCE_PCLK2 = 0x01, /*!< PCLK2 clock source */
<> 144:ef7eb2e8f9f7 301 SMARTCARD_CLOCKSOURCE_HSI = 0x02, /*!< HSI clock source */
<> 144:ef7eb2e8f9f7 302 SMARTCARD_CLOCKSOURCE_SYSCLK = 0x04, /*!< SYSCLK clock source */
<> 144:ef7eb2e8f9f7 303 SMARTCARD_CLOCKSOURCE_LSE = 0x08, /*!< LSE clock source */
<> 144:ef7eb2e8f9f7 304 SMARTCARD_CLOCKSOURCE_UNDEFINED = 0x10 /*!< undefined clock source */
<> 144:ef7eb2e8f9f7 305 }SMARTCARD_ClockSourceTypeDef;
<> 144:ef7eb2e8f9f7 306
<> 144:ef7eb2e8f9f7 307 /**
<> 144:ef7eb2e8f9f7 308 * @}
<> 144:ef7eb2e8f9f7 309 */
<> 144:ef7eb2e8f9f7 310
<> 144:ef7eb2e8f9f7 311 /* Exported constants --------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 312 /** @defgroup SMARTCARD_Exported_Constants SMARTCARD Exported Constants
<> 144:ef7eb2e8f9f7 313 * @{
<> 144:ef7eb2e8f9f7 314 */
<> 144:ef7eb2e8f9f7 315
<> 144:ef7eb2e8f9f7 316 /** @defgroup SMARTCARD_Word_Length SMARTCARD Word Length
<> 144:ef7eb2e8f9f7 317 * @{
<> 144:ef7eb2e8f9f7 318 */
AnnaBridge 181:57724642e740 319 #define SMARTCARD_WORDLENGTH_9B USART_CR1_M0 /*!< SMARTCARD frame length */
<> 144:ef7eb2e8f9f7 320 /**
<> 144:ef7eb2e8f9f7 321 * @}
<> 144:ef7eb2e8f9f7 322 */
<> 144:ef7eb2e8f9f7 323
<> 144:ef7eb2e8f9f7 324 /** @defgroup SMARTCARD_Stop_Bits SMARTCARD Number of Stop Bits
<> 144:ef7eb2e8f9f7 325 * @{
<> 144:ef7eb2e8f9f7 326 */
AnnaBridge 181:57724642e740 327 #define SMARTCARD_STOPBITS_0_5 USART_CR2_STOP_0 /*!< SMARTCARD frame with 0.5 stop bit */
AnnaBridge 181:57724642e740 328 #define SMARTCARD_STOPBITS_1_5 USART_CR2_STOP /*!< SMARTCARD frame with 1.5 stop bits */
<> 144:ef7eb2e8f9f7 329 /**
<> 144:ef7eb2e8f9f7 330 * @}
AnnaBridge 181:57724642e740 331 */
AnnaBridge 181:57724642e740 332
<> 144:ef7eb2e8f9f7 333 /** @defgroup SMARTCARD_Parity SMARTCARD Parity
<> 144:ef7eb2e8f9f7 334 * @{
<> 144:ef7eb2e8f9f7 335 */
AnnaBridge 181:57724642e740 336 #define SMARTCARD_PARITY_EVEN USART_CR1_PCE /*!< SMARTCARD frame even parity */
AnnaBridge 181:57724642e740 337 #define SMARTCARD_PARITY_ODD (USART_CR1_PCE | USART_CR1_PS) /*!< SMARTCARD frame odd parity */
<> 144:ef7eb2e8f9f7 338 /**
<> 144:ef7eb2e8f9f7 339 * @}
<> 144:ef7eb2e8f9f7 340 */
<> 144:ef7eb2e8f9f7 341
<> 144:ef7eb2e8f9f7 342 /** @defgroup SMARTCARD_Mode SMARTCARD Transfer Mode
<> 144:ef7eb2e8f9f7 343 * @{
<> 144:ef7eb2e8f9f7 344 */
AnnaBridge 181:57724642e740 345 #define SMARTCARD_MODE_RX USART_CR1_RE /*!< SMARTCARD RX mode */
AnnaBridge 181:57724642e740 346 #define SMARTCARD_MODE_TX USART_CR1_TE /*!< SMARTCARD TX mode */
AnnaBridge 181:57724642e740 347 #define SMARTCARD_MODE_TX_RX (USART_CR1_TE |USART_CR1_RE) /*!< SMARTCARD RX and TX mode */
<> 144:ef7eb2e8f9f7 348 /**
<> 144:ef7eb2e8f9f7 349 * @}
<> 144:ef7eb2e8f9f7 350 */
<> 144:ef7eb2e8f9f7 351
<> 144:ef7eb2e8f9f7 352 /** @defgroup SMARTCARD_Clock_Polarity SMARTCARD Clock Polarity
<> 144:ef7eb2e8f9f7 353 * @{
<> 144:ef7eb2e8f9f7 354 */
AnnaBridge 181:57724642e740 355 #define SMARTCARD_POLARITY_LOW 0x00000000U /*!< SMARTCARD frame low polarity */
AnnaBridge 181:57724642e740 356 #define SMARTCARD_POLARITY_HIGH USART_CR2_CPOL /*!< SMARTCARD frame high polarity */
<> 144:ef7eb2e8f9f7 357 /**
<> 144:ef7eb2e8f9f7 358 * @}
<> 144:ef7eb2e8f9f7 359 */
<> 144:ef7eb2e8f9f7 360
<> 144:ef7eb2e8f9f7 361 /** @defgroup SMARTCARD_Clock_Phase SMARTCARD Clock Phase
<> 144:ef7eb2e8f9f7 362 * @{
<> 144:ef7eb2e8f9f7 363 */
AnnaBridge 181:57724642e740 364 #define SMARTCARD_PHASE_1EDGE 0x00000000U /*!< SMARTCARD frame phase on first clock transition */
AnnaBridge 181:57724642e740 365 #define SMARTCARD_PHASE_2EDGE USART_CR2_CPHA /*!< SMARTCARD frame phase on second clock transition */
<> 144:ef7eb2e8f9f7 366 /**
<> 144:ef7eb2e8f9f7 367 * @}
<> 144:ef7eb2e8f9f7 368 */
<> 144:ef7eb2e8f9f7 369
<> 144:ef7eb2e8f9f7 370 /** @defgroup SMARTCARD_Last_Bit SMARTCARD Last Bit
<> 144:ef7eb2e8f9f7 371 * @{
<> 144:ef7eb2e8f9f7 372 */
AnnaBridge 181:57724642e740 373 #define SMARTCARD_LASTBIT_DISABLE 0x00000000U /*!< SMARTCARD frame last data bit clock pulse not output to SCLK pin */
AnnaBridge 181:57724642e740 374 #define SMARTCARD_LASTBIT_ENABLE USART_CR2_LBCL /*!< SMARTCARD frame last data bit clock pulse output to SCLK pin */
<> 144:ef7eb2e8f9f7 375 /**
<> 144:ef7eb2e8f9f7 376 * @}
<> 144:ef7eb2e8f9f7 377 */
<> 144:ef7eb2e8f9f7 378
<> 144:ef7eb2e8f9f7 379 /** @defgroup SMARTCARD_OneBit_Sampling SMARTCARD One Bit Sampling Method
<> 144:ef7eb2e8f9f7 380 * @{
<> 144:ef7eb2e8f9f7 381 */
AnnaBridge 181:57724642e740 382 #define SMARTCARD_ONE_BIT_SAMPLE_DISABLE 0x00000000U /*!< SMARTCARD frame one-bit sample disabled */
AnnaBridge 181:57724642e740 383 #define SMARTCARD_ONE_BIT_SAMPLE_ENABLE USART_CR3_ONEBIT /*!< SMARTCARD frame one-bit sample enabled */
<> 144:ef7eb2e8f9f7 384 /**
<> 144:ef7eb2e8f9f7 385 * @}
<> 144:ef7eb2e8f9f7 386 */
<> 144:ef7eb2e8f9f7 387
<> 144:ef7eb2e8f9f7 388
<> 144:ef7eb2e8f9f7 389 /** @defgroup SMARTCARD_NACK_Enable SMARTCARD NACK Enable
<> 144:ef7eb2e8f9f7 390 * @{
<> 144:ef7eb2e8f9f7 391 */
AnnaBridge 181:57724642e740 392 #define SMARTCARD_NACK_DISABLE 0x00000000U /*!< SMARTCARD NACK transmission disabled */
AnnaBridge 181:57724642e740 393 #define SMARTCARD_NACK_ENABLE USART_CR3_NACK /*!< SMARTCARD NACK transmission enabled */
<> 144:ef7eb2e8f9f7 394 /**
<> 144:ef7eb2e8f9f7 395 * @}
<> 144:ef7eb2e8f9f7 396 */
<> 144:ef7eb2e8f9f7 397
<> 144:ef7eb2e8f9f7 398 /** @defgroup SMARTCARD_Timeout_Enable SMARTCARD Timeout Enable
<> 144:ef7eb2e8f9f7 399 * @{
<> 144:ef7eb2e8f9f7 400 */
AnnaBridge 181:57724642e740 401 #define SMARTCARD_TIMEOUT_DISABLE 0x00000000U /*!< SMARTCARD receiver timeout disabled */
AnnaBridge 181:57724642e740 402 #define SMARTCARD_TIMEOUT_ENABLE USART_CR2_RTOEN /*!< SMARTCARD receiver timeout enabled */
<> 144:ef7eb2e8f9f7 403 /**
<> 144:ef7eb2e8f9f7 404 * @}
<> 144:ef7eb2e8f9f7 405 */
<> 144:ef7eb2e8f9f7 406
AnnaBridge 181:57724642e740 407 #if defined(USART_PRESC_PRESCALER)
AnnaBridge 181:57724642e740 408 /** @defgroup SMARTCARD_ClockPrescaler Clock Prescaler
AnnaBridge 181:57724642e740 409 * @{
AnnaBridge 181:57724642e740 410 */
AnnaBridge 181:57724642e740 411 #define SMARTCARD_PRESCALER_DIV1 0x00000000U /*!< fclk_pres = fclk */
AnnaBridge 181:57724642e740 412 #define SMARTCARD_PRESCALER_DIV2 0x00000001U /*!< fclk_pres = fclk/2 */
AnnaBridge 181:57724642e740 413 #define SMARTCARD_PRESCALER_DIV4 0x00000002U /*!< fclk_pres = fclk/4 */
AnnaBridge 181:57724642e740 414 #define SMARTCARD_PRESCALER_DIV6 0x00000003U /*!< fclk_pres = fclk/6 */
AnnaBridge 181:57724642e740 415 #define SMARTCARD_PRESCALER_DIV8 0x00000004U /*!< fclk_pres = fclk/8 */
AnnaBridge 181:57724642e740 416 #define SMARTCARD_PRESCALER_DIV10 0x00000005U /*!< fclk_pres = fclk/10 */
AnnaBridge 181:57724642e740 417 #define SMARTCARD_PRESCALER_DIV12 0x00000006U /*!< fclk_pres = fclk/12 */
AnnaBridge 181:57724642e740 418 #define SMARTCARD_PRESCALER_DIV16 0x00000007U /*!< fclk_pres = fclk/16 */
AnnaBridge 181:57724642e740 419 #define SMARTCARD_PRESCALER_DIV32 0x00000008U /*!< fclk_pres = fclk/32 */
AnnaBridge 181:57724642e740 420 #define SMARTCARD_PRESCALER_DIV64 0x00000009U /*!< fclk_pres = fclk/64 */
AnnaBridge 181:57724642e740 421 #define SMARTCARD_PRESCALER_DIV128 0x0000000AU /*!< fclk_pres = fclk/128 */
AnnaBridge 181:57724642e740 422 #define SMARTCARD_PRESCALER_DIV256 0x0000000BU /*!< fclk_pres = fclk/256 */
AnnaBridge 181:57724642e740 423
AnnaBridge 181:57724642e740 424 /**
AnnaBridge 181:57724642e740 425 * @}
AnnaBridge 181:57724642e740 426 */
AnnaBridge 181:57724642e740 427 #endif
AnnaBridge 181:57724642e740 428
<> 144:ef7eb2e8f9f7 429 /** @defgroup SMARTCARD_Tx_Inv SMARTCARD advanced feature TX pin active level inversion
<> 144:ef7eb2e8f9f7 430 * @{
<> 144:ef7eb2e8f9f7 431 */
AnnaBridge 181:57724642e740 432 #define SMARTCARD_ADVFEATURE_TXINV_DISABLE 0x00000000U /*!< TX pin active level inversion disable */
AnnaBridge 181:57724642e740 433 #define SMARTCARD_ADVFEATURE_TXINV_ENABLE USART_CR2_TXINV /*!< TX pin active level inversion enable */
<> 144:ef7eb2e8f9f7 434 /**
<> 144:ef7eb2e8f9f7 435 * @}
<> 144:ef7eb2e8f9f7 436 */
<> 144:ef7eb2e8f9f7 437
<> 144:ef7eb2e8f9f7 438 /** @defgroup SMARTCARD_Rx_Inv SMARTCARD advanced feature RX pin active level inversion
<> 144:ef7eb2e8f9f7 439 * @{
<> 144:ef7eb2e8f9f7 440 */
AnnaBridge 181:57724642e740 441 #define SMARTCARD_ADVFEATURE_RXINV_DISABLE 0x00000000U /*!< RX pin active level inversion disable */
AnnaBridge 181:57724642e740 442 #define SMARTCARD_ADVFEATURE_RXINV_ENABLE USART_CR2_RXINV /*!< RX pin active level inversion enable */
<> 144:ef7eb2e8f9f7 443 /**
<> 144:ef7eb2e8f9f7 444 * @}
<> 144:ef7eb2e8f9f7 445 */
<> 144:ef7eb2e8f9f7 446
<> 144:ef7eb2e8f9f7 447 /** @defgroup SMARTCARD_Data_Inv SMARTCARD advanced feature Binary Data inversion
<> 144:ef7eb2e8f9f7 448 * @{
<> 144:ef7eb2e8f9f7 449 */
AnnaBridge 181:57724642e740 450 #define SMARTCARD_ADVFEATURE_DATAINV_DISABLE 0x00000000U /*!< Binary data inversion disable */
AnnaBridge 181:57724642e740 451 #define SMARTCARD_ADVFEATURE_DATAINV_ENABLE USART_CR2_DATAINV /*!< Binary data inversion enable */
<> 144:ef7eb2e8f9f7 452 /**
<> 144:ef7eb2e8f9f7 453 * @}
<> 144:ef7eb2e8f9f7 454 */
<> 144:ef7eb2e8f9f7 455
<> 144:ef7eb2e8f9f7 456 /** @defgroup SMARTCARD_Rx_Tx_Swap SMARTCARD advanced feature RX TX pins swap
<> 144:ef7eb2e8f9f7 457 * @{
<> 144:ef7eb2e8f9f7 458 */
AnnaBridge 181:57724642e740 459 #define SMARTCARD_ADVFEATURE_SWAP_DISABLE 0x00000000U /*!< TX/RX pins swap disable */
AnnaBridge 181:57724642e740 460 #define SMARTCARD_ADVFEATURE_SWAP_ENABLE USART_CR2_SWAP /*!< TX/RX pins swap enable */
<> 144:ef7eb2e8f9f7 461 /**
<> 144:ef7eb2e8f9f7 462 * @}
<> 144:ef7eb2e8f9f7 463 */
<> 144:ef7eb2e8f9f7 464
<> 144:ef7eb2e8f9f7 465 /** @defgroup SMARTCARD_Overrun_Disable SMARTCARD advanced feature Overrun Disable
<> 144:ef7eb2e8f9f7 466 * @{
<> 144:ef7eb2e8f9f7 467 */
AnnaBridge 181:57724642e740 468 #define SMARTCARD_ADVFEATURE_OVERRUN_ENABLE 0x00000000U /*!< RX overrun enable */
AnnaBridge 181:57724642e740 469 #define SMARTCARD_ADVFEATURE_OVERRUN_DISABLE USART_CR3_OVRDIS /*!< RX overrun disable */
<> 144:ef7eb2e8f9f7 470 /**
<> 144:ef7eb2e8f9f7 471 * @}
<> 144:ef7eb2e8f9f7 472 */
<> 144:ef7eb2e8f9f7 473
<> 144:ef7eb2e8f9f7 474 /** @defgroup SMARTCARD_DMA_Disable_on_Rx_Error SMARTCARD advanced feature DMA Disable on Rx Error
<> 144:ef7eb2e8f9f7 475 * @{
<> 144:ef7eb2e8f9f7 476 */
AnnaBridge 181:57724642e740 477 #define SMARTCARD_ADVFEATURE_DMA_ENABLEONRXERROR 0x00000000U /*!< DMA enable on Reception Error */
AnnaBridge 181:57724642e740 478 #define SMARTCARD_ADVFEATURE_DMA_DISABLEONRXERROR USART_CR3_DDRE /*!< DMA disable on Reception Error */
<> 144:ef7eb2e8f9f7 479 /**
<> 144:ef7eb2e8f9f7 480 * @}
<> 144:ef7eb2e8f9f7 481 */
<> 144:ef7eb2e8f9f7 482
<> 144:ef7eb2e8f9f7 483 /** @defgroup SMARTCARD_MSB_First SMARTCARD advanced feature MSB first
<> 144:ef7eb2e8f9f7 484 * @{
<> 144:ef7eb2e8f9f7 485 */
AnnaBridge 181:57724642e740 486 #define SMARTCARD_ADVFEATURE_MSBFIRST_DISABLE 0x00000000U /*!< Most significant bit sent/received first disable */
AnnaBridge 181:57724642e740 487 #define SMARTCARD_ADVFEATURE_MSBFIRST_ENABLE USART_CR2_MSBFIRST /*!< Most significant bit sent/received first enable */
<> 144:ef7eb2e8f9f7 488 /**
<> 144:ef7eb2e8f9f7 489 * @}
<> 144:ef7eb2e8f9f7 490 */
<> 144:ef7eb2e8f9f7 491
<> 144:ef7eb2e8f9f7 492 /** @defgroup SMARTCARD_Request_Parameters SMARTCARD Request Parameters
<> 144:ef7eb2e8f9f7 493 * @{
<> 144:ef7eb2e8f9f7 494 */
AnnaBridge 181:57724642e740 495 #define SMARTCARD_RXDATA_FLUSH_REQUEST USART_RQR_RXFRQ /*!< Receive data flush request */
AnnaBridge 181:57724642e740 496 #define SMARTCARD_TXDATA_FLUSH_REQUEST USART_RQR_TXFRQ /*!< Transmit data flush request */
<> 144:ef7eb2e8f9f7 497 /**
<> 144:ef7eb2e8f9f7 498 * @}
<> 144:ef7eb2e8f9f7 499 */
<> 144:ef7eb2e8f9f7 500
<> 144:ef7eb2e8f9f7 501 /** @defgroup SMARTCARD_Interruption_Mask SMARTCARD interruptions flags mask
<> 144:ef7eb2e8f9f7 502 * @{
<> 144:ef7eb2e8f9f7 503 */
AnnaBridge 181:57724642e740 504 #define SMARTCARD_IT_MASK 0x001FU /*!< SMARTCARD interruptions flags mask */
<> 144:ef7eb2e8f9f7 505 /**
<> 144:ef7eb2e8f9f7 506 * @}
<> 144:ef7eb2e8f9f7 507 */
<> 144:ef7eb2e8f9f7 508
<> 144:ef7eb2e8f9f7 509 /**
<> 144:ef7eb2e8f9f7 510 * @}
<> 144:ef7eb2e8f9f7 511 */
<> 144:ef7eb2e8f9f7 512
<> 144:ef7eb2e8f9f7 513 /* Exported macros -----------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 514 /** @defgroup SMARTCARD_Exported_Macros SMARTCARD Exported Macros
<> 144:ef7eb2e8f9f7 515 * @{
<> 144:ef7eb2e8f9f7 516 */
<> 144:ef7eb2e8f9f7 517
<> 144:ef7eb2e8f9f7 518 /** @brief Reset SMARTCARD handle states.
AnnaBridge 181:57724642e740 519 * @param __HANDLE__ SMARTCARD handle.
<> 144:ef7eb2e8f9f7 520 * @retval None
<> 144:ef7eb2e8f9f7 521 */
<> 144:ef7eb2e8f9f7 522 #define __HAL_SMARTCARD_RESET_HANDLE_STATE(__HANDLE__) do{ \
<> 144:ef7eb2e8f9f7 523 (__HANDLE__)->gState = HAL_SMARTCARD_STATE_RESET; \
<> 144:ef7eb2e8f9f7 524 (__HANDLE__)->RxState = HAL_SMARTCARD_STATE_RESET; \
<> 144:ef7eb2e8f9f7 525 } while(0)
<> 144:ef7eb2e8f9f7 526
<> 144:ef7eb2e8f9f7 527 /** @brief Flush the Smartcard Data registers.
AnnaBridge 181:57724642e740 528 * @param __HANDLE__ specifies the SMARTCARD Handle.
<> 144:ef7eb2e8f9f7 529 * @retval None
<> 144:ef7eb2e8f9f7 530 */
<> 144:ef7eb2e8f9f7 531 #define __HAL_SMARTCARD_FLUSH_DRREGISTER(__HANDLE__) \
<> 144:ef7eb2e8f9f7 532 do{ \
<> 144:ef7eb2e8f9f7 533 SET_BIT((__HANDLE__)->Instance->RQR, SMARTCARD_RXDATA_FLUSH_REQUEST); \
<> 144:ef7eb2e8f9f7 534 SET_BIT((__HANDLE__)->Instance->RQR, SMARTCARD_TXDATA_FLUSH_REQUEST); \
<> 144:ef7eb2e8f9f7 535 } while(0)
<> 144:ef7eb2e8f9f7 536
<> 144:ef7eb2e8f9f7 537 /** @brief Clear the specified SMARTCARD pending flag.
AnnaBridge 181:57724642e740 538 * @param __HANDLE__ specifies the SMARTCARD Handle.
AnnaBridge 181:57724642e740 539 * @param __FLAG__ specifies the flag to check.
<> 144:ef7eb2e8f9f7 540 * This parameter can be any combination of the following values:
<> 144:ef7eb2e8f9f7 541 * @arg @ref SMARTCARD_CLEAR_PEF Parity error clear flag
<> 144:ef7eb2e8f9f7 542 * @arg @ref SMARTCARD_CLEAR_FEF Framing error clear flag
<> 144:ef7eb2e8f9f7 543 * @arg @ref SMARTCARD_CLEAR_NEF Noise detected clear flag
<> 144:ef7eb2e8f9f7 544 * @arg @ref SMARTCARD_CLEAR_OREF OverRun error clear flag
<> 144:ef7eb2e8f9f7 545 * @arg @ref SMARTCARD_CLEAR_IDLEF Idle line detected clear flag
<> 144:ef7eb2e8f9f7 546 * @arg @ref SMARTCARD_CLEAR_TCF Transmission complete clear flag
AnnaBridge 181:57724642e740 547 * @arg @ref SMARTCARD_CLEAR_TCBGTF Transmission complete before guard time clear flag
<> 144:ef7eb2e8f9f7 548 * @arg @ref SMARTCARD_CLEAR_RTOF Receiver timeout clear flag
<> 144:ef7eb2e8f9f7 549 * @arg @ref SMARTCARD_CLEAR_EOBF End of block clear flag
AnnaBridge 181:57724642e740 550 * @arg @ref SMARTCARD_CLEAR_TXFECF TXFIFO empty Clear flag
<> 144:ef7eb2e8f9f7 551 * @retval None
<> 144:ef7eb2e8f9f7 552 */
<> 144:ef7eb2e8f9f7 553 #define __HAL_SMARTCARD_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ICR = (__FLAG__))
<> 144:ef7eb2e8f9f7 554
<> 144:ef7eb2e8f9f7 555 /** @brief Clear the SMARTCARD PE pending flag.
AnnaBridge 181:57724642e740 556 * @param __HANDLE__ specifies the SMARTCARD Handle.
<> 144:ef7eb2e8f9f7 557 * @retval None
<> 144:ef7eb2e8f9f7 558 */
<> 144:ef7eb2e8f9f7 559 #define __HAL_SMARTCARD_CLEAR_PEFLAG(__HANDLE__) __HAL_SMARTCARD_CLEAR_FLAG((__HANDLE__), SMARTCARD_CLEAR_PEF)
<> 144:ef7eb2e8f9f7 560
<> 144:ef7eb2e8f9f7 561
<> 144:ef7eb2e8f9f7 562 /** @brief Clear the SMARTCARD FE pending flag.
AnnaBridge 181:57724642e740 563 * @param __HANDLE__ specifies the SMARTCARD Handle.
<> 144:ef7eb2e8f9f7 564 * @retval None
<> 144:ef7eb2e8f9f7 565 */
<> 144:ef7eb2e8f9f7 566 #define __HAL_SMARTCARD_CLEAR_FEFLAG(__HANDLE__) __HAL_SMARTCARD_CLEAR_FLAG((__HANDLE__), SMARTCARD_CLEAR_FEF)
<> 144:ef7eb2e8f9f7 567
<> 144:ef7eb2e8f9f7 568 /** @brief Clear the SMARTCARD NE pending flag.
AnnaBridge 181:57724642e740 569 * @param __HANDLE__ specifies the SMARTCARD Handle.
<> 144:ef7eb2e8f9f7 570 * @retval None
<> 144:ef7eb2e8f9f7 571 */
<> 144:ef7eb2e8f9f7 572 #define __HAL_SMARTCARD_CLEAR_NEFLAG(__HANDLE__) __HAL_SMARTCARD_CLEAR_FLAG((__HANDLE__), SMARTCARD_CLEAR_NEF)
<> 144:ef7eb2e8f9f7 573
<> 144:ef7eb2e8f9f7 574 /** @brief Clear the SMARTCARD ORE pending flag.
AnnaBridge 181:57724642e740 575 * @param __HANDLE__ specifies the SMARTCARD Handle.
<> 144:ef7eb2e8f9f7 576 * @retval None
<> 144:ef7eb2e8f9f7 577 */
<> 144:ef7eb2e8f9f7 578 #define __HAL_SMARTCARD_CLEAR_OREFLAG(__HANDLE__) __HAL_SMARTCARD_CLEAR_FLAG((__HANDLE__), SMARTCARD_CLEAR_OREF)
<> 144:ef7eb2e8f9f7 579
<> 144:ef7eb2e8f9f7 580 /** @brief Clear the SMARTCARD IDLE pending flag.
AnnaBridge 181:57724642e740 581 * @param __HANDLE__ specifies the SMARTCARD Handle.
<> 144:ef7eb2e8f9f7 582 * @retval None
<> 144:ef7eb2e8f9f7 583 */
<> 144:ef7eb2e8f9f7 584 #define __HAL_SMARTCARD_CLEAR_IDLEFLAG(__HANDLE__) __HAL_SMARTCARD_CLEAR_FLAG((__HANDLE__), SMARTCARD_CLEAR_IDLEF)
<> 144:ef7eb2e8f9f7 585
<> 144:ef7eb2e8f9f7 586 /** @brief Check whether the specified Smartcard flag is set or not.
AnnaBridge 181:57724642e740 587 * @param __HANDLE__ specifies the SMARTCARD Handle.
AnnaBridge 181:57724642e740 588 * @param __FLAG__ specifies the flag to check.
<> 144:ef7eb2e8f9f7 589 * This parameter can be one of the following values:
<> 144:ef7eb2e8f9f7 590 * @arg @ref SMARTCARD_FLAG_TCBGT Transmission complete before guard time flag (when flag available)
<> 144:ef7eb2e8f9f7 591 * @arg @ref SMARTCARD_FLAG_REACK Receive enable acknowledge flag
<> 144:ef7eb2e8f9f7 592 * @arg @ref SMARTCARD_FLAG_TEACK Transmit enable acknowledge flag
<> 144:ef7eb2e8f9f7 593 * @arg @ref SMARTCARD_FLAG_BUSY Busy flag
<> 144:ef7eb2e8f9f7 594 * @arg @ref SMARTCARD_FLAG_EOBF End of block flag
<> 144:ef7eb2e8f9f7 595 * @arg @ref SMARTCARD_FLAG_RTOF Receiver timeout flag
<> 144:ef7eb2e8f9f7 596 * @arg @ref SMARTCARD_FLAG_TXE Transmit data register empty flag
AnnaBridge 181:57724642e740 597 * @arg @ref SMARTCARD_FLAG_TXFNF TXFIFO not full flag
<> 144:ef7eb2e8f9f7 598 * @arg @ref SMARTCARD_FLAG_TC Transmission complete flag
<> 144:ef7eb2e8f9f7 599 * @arg @ref SMARTCARD_FLAG_RXNE Receive data register not empty flag
AnnaBridge 181:57724642e740 600 * @arg @ref SMARTCARD_FLAG_RXFNE RXFIFO not empty flag
<> 144:ef7eb2e8f9f7 601 * @arg @ref SMARTCARD_FLAG_IDLE Idle line detection flag
<> 144:ef7eb2e8f9f7 602 * @arg @ref SMARTCARD_FLAG_ORE Overrun error flag
<> 144:ef7eb2e8f9f7 603 * @arg @ref SMARTCARD_FLAG_NE Noise error flag
<> 144:ef7eb2e8f9f7 604 * @arg @ref SMARTCARD_FLAG_FE Framing error flag
<> 144:ef7eb2e8f9f7 605 * @arg @ref SMARTCARD_FLAG_PE Parity error flag
AnnaBridge 181:57724642e740 606 * @arg @ref SMARTCARD_FLAG_TXFE TXFIFO Empty flag
AnnaBridge 181:57724642e740 607 * @arg @ref SMARTCARD_FLAG_RXFF RXFIFO Full flag
AnnaBridge 181:57724642e740 608 * @arg @ref SMARTCARD_FLAG_RXFT SMARTCARD RXFIFO threshold flag
AnnaBridge 181:57724642e740 609 * @arg @ref SMARTCARD_FLAG_TXFT SMARTCARD TXFIFO threshold flag
<> 144:ef7eb2e8f9f7 610 * @retval The new state of __FLAG__ (TRUE or FALSE).
<> 144:ef7eb2e8f9f7 611 */
<> 144:ef7eb2e8f9f7 612 #define __HAL_SMARTCARD_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->ISR & (__FLAG__)) == (__FLAG__))
<> 144:ef7eb2e8f9f7 613
<> 144:ef7eb2e8f9f7 614 /** @brief Enable the specified SmartCard interrupt.
AnnaBridge 181:57724642e740 615 * @param __HANDLE__ specifies the SMARTCARD Handle.
AnnaBridge 181:57724642e740 616 * @param __INTERRUPT__ specifies the SMARTCARD interrupt to enable.
<> 144:ef7eb2e8f9f7 617 * This parameter can be one of the following values:
AnnaBridge 181:57724642e740 618 * @arg @ref SMARTCARD_IT_EOB End of block interrupt
AnnaBridge 181:57724642e740 619 * @arg @ref SMARTCARD_IT_RTO Receive timeout interrupt
AnnaBridge 181:57724642e740 620 * @arg @ref SMARTCARD_IT_TXE Transmit data register empty interrupt
AnnaBridge 181:57724642e740 621 * @arg @ref SMARTCARD_IT_TXFNF TX FIFO not full interruption
AnnaBridge 181:57724642e740 622 * @arg @ref SMARTCARD_IT_TC Transmission complete interrupt
AnnaBridge 181:57724642e740 623 * @arg @ref SMARTCARD_IT_TCBGT Transmission complete before guard time interrupt (when interruption available)
AnnaBridge 181:57724642e740 624 * @arg @ref SMARTCARD_IT_RXNE Receive data register not empty interrupt
AnnaBridge 181:57724642e740 625 * @arg @ref SMARTCARD_IT_RXFNE RXFIFO not empty interruption
AnnaBridge 181:57724642e740 626 * @arg @ref SMARTCARD_IT_IDLE Idle line detection interrupt
AnnaBridge 181:57724642e740 627 * @arg @ref SMARTCARD_IT_PE Parity error interrupt
AnnaBridge 181:57724642e740 628 * @arg @ref SMARTCARD_IT_ERR Error interrupt(frame error, noise error, overrun error)
AnnaBridge 181:57724642e740 629 * @arg @ref SMARTCARD_IT_RXFF RXFIFO full interruption
AnnaBridge 181:57724642e740 630 * @arg @ref SMARTCARD_IT_TXFE TXFIFO empty interruption
AnnaBridge 181:57724642e740 631 * @arg @ref SMARTCARD_IT_RXFT RXFIFO threshold reached interruption
AnnaBridge 181:57724642e740 632 * @arg @ref SMARTCARD_IT_TXFT TXFIFO threshold reached interruption
<> 144:ef7eb2e8f9f7 633 * @retval None
<> 144:ef7eb2e8f9f7 634 */
<> 144:ef7eb2e8f9f7 635 #define __HAL_SMARTCARD_ENABLE_IT(__HANDLE__, __INTERRUPT__) (((((uint8_t)(__INTERRUPT__)) >> 5U) == 1)? ((__HANDLE__)->Instance->CR1 |= (1U << ((__INTERRUPT__) & SMARTCARD_IT_MASK))): \
<> 144:ef7eb2e8f9f7 636 ((((uint8_t)(__INTERRUPT__)) >> 5U) == 2)? ((__HANDLE__)->Instance->CR2 |= (1U << ((__INTERRUPT__) & SMARTCARD_IT_MASK))): \
<> 144:ef7eb2e8f9f7 637 ((__HANDLE__)->Instance->CR3 |= (1U << ((__INTERRUPT__) & SMARTCARD_IT_MASK))))
<> 144:ef7eb2e8f9f7 638
<> 144:ef7eb2e8f9f7 639 /** @brief Disable the specified SmartCard interrupt.
AnnaBridge 181:57724642e740 640 * @param __HANDLE__ specifies the SMARTCARD Handle.
AnnaBridge 181:57724642e740 641 * @param __INTERRUPT__ specifies the SMARTCARD interrupt to disable.
<> 144:ef7eb2e8f9f7 642 * This parameter can be one of the following values:
AnnaBridge 181:57724642e740 643 * @arg @ref SMARTCARD_IT_EOB End of block interrupt
AnnaBridge 181:57724642e740 644 * @arg @ref SMARTCARD_IT_RTO Receive timeout interrupt
AnnaBridge 181:57724642e740 645 * @arg @ref SMARTCARD_IT_TXE Transmit data register empty interrupt
AnnaBridge 181:57724642e740 646 * @arg @ref SMARTCARD_IT_TXFNF TX FIFO not full interruption
AnnaBridge 181:57724642e740 647 * @arg @ref SMARTCARD_IT_TC Transmission complete interrupt
AnnaBridge 181:57724642e740 648 * @arg @ref SMARTCARD_IT_TCBGT Transmission complete before guard time interrupt (when interruption available)
AnnaBridge 181:57724642e740 649 * @arg @ref SMARTCARD_IT_RXNE Receive data register not empty interrupt
AnnaBridge 181:57724642e740 650 * @arg @ref SMARTCARD_IT_RXFNE RXFIFO not empty interruption
AnnaBridge 181:57724642e740 651 * @arg @ref SMARTCARD_IT_IDLE Idle line detection interrupt
AnnaBridge 181:57724642e740 652 * @arg @ref SMARTCARD_IT_PE Parity error interrupt
AnnaBridge 181:57724642e740 653 * @arg @ref SMARTCARD_IT_ERR Error interrupt(frame error, noise error, overrun error)
AnnaBridge 181:57724642e740 654 * @arg @ref SMARTCARD_IT_RXFF RXFIFO full interruption
AnnaBridge 181:57724642e740 655 * @arg @ref SMARTCARD_IT_TXFE TXFIFO empty interruption
AnnaBridge 181:57724642e740 656 * @arg @ref SMARTCARD_IT_RXFT RXFIFO threshold reached interruption
AnnaBridge 181:57724642e740 657 * @arg @ref SMARTCARD_IT_TXFT TXFIFO threshold reached interruption
<> 144:ef7eb2e8f9f7 658 * @retval None
<> 144:ef7eb2e8f9f7 659 */
<> 144:ef7eb2e8f9f7 660 #define __HAL_SMARTCARD_DISABLE_IT(__HANDLE__, __INTERRUPT__) (((((uint8_t)(__INTERRUPT__)) >> 5U) == 1)? ((__HANDLE__)->Instance->CR1 &= ~ (1U << ((__INTERRUPT__) & SMARTCARD_IT_MASK))): \
<> 144:ef7eb2e8f9f7 661 ((((uint8_t)(__INTERRUPT__)) >> 5U) == 2)? ((__HANDLE__)->Instance->CR2 &= ~ (1U << ((__INTERRUPT__) & SMARTCARD_IT_MASK))): \
<> 144:ef7eb2e8f9f7 662 ((__HANDLE__)->Instance->CR3 &= ~ (1U << ((__INTERRUPT__) & SMARTCARD_IT_MASK))))
<> 144:ef7eb2e8f9f7 663
<> 144:ef7eb2e8f9f7 664
<> 144:ef7eb2e8f9f7 665 /** @brief Check whether the specified SmartCard interrupt has occurred or not.
AnnaBridge 181:57724642e740 666 * @param __HANDLE__ specifies the SMARTCARD Handle.
AnnaBridge 181:57724642e740 667 * @param __INTERRUPT__ specifies the SMARTCARD interrupt to check.
<> 144:ef7eb2e8f9f7 668 * This parameter can be one of the following values:
AnnaBridge 181:57724642e740 669 * @arg @ref SMARTCARD_IT_EOB End of block interrupt
AnnaBridge 181:57724642e740 670 * @arg @ref SMARTCARD_IT_RTO Receive timeout interrupt
AnnaBridge 181:57724642e740 671 * @arg @ref SMARTCARD_IT_TXE Transmit data register empty interrupt
AnnaBridge 181:57724642e740 672 * @arg @ref SMARTCARD_IT_TXFNF TX FIFO not full interruption
AnnaBridge 181:57724642e740 673 * @arg @ref SMARTCARD_IT_TC Transmission complete interrupt
AnnaBridge 181:57724642e740 674 * @arg @ref SMARTCARD_IT_TCBGT Transmission complete before guard time interrupt (when interruption available)
AnnaBridge 181:57724642e740 675 * @arg @ref SMARTCARD_IT_RXNE Receive data register not empty interrupt
AnnaBridge 181:57724642e740 676 * @arg @ref SMARTCARD_IT_RXFNE RXFIFO not empty interruption
AnnaBridge 181:57724642e740 677 * @arg @ref SMARTCARD_IT_IDLE Idle line detection interrupt
AnnaBridge 181:57724642e740 678 * @arg @ref SMARTCARD_IT_PE Parity error interrupt
AnnaBridge 181:57724642e740 679 * @arg @ref SMARTCARD_IT_ERR Error interrupt(frame error, noise error, overrun error)
AnnaBridge 181:57724642e740 680 * @arg @ref SMARTCARD_IT_RXFF RXFIFO full interruption
AnnaBridge 181:57724642e740 681 * @arg @ref SMARTCARD_IT_TXFE TXFIFO empty interruption
AnnaBridge 181:57724642e740 682 * @arg @ref SMARTCARD_IT_RXFT RXFIFO threshold reached interruption
AnnaBridge 181:57724642e740 683 * @arg @ref SMARTCARD_IT_TXFT TXFIFO threshold reached interruption
AnnaBridge 181:57724642e740 684 * @retval The new state of __INTERRUPT__ (SET or RESET).
<> 144:ef7eb2e8f9f7 685 */
AnnaBridge 181:57724642e740 686 #define __HAL_SMARTCARD_GET_IT(__HANDLE__, __INTERRUPT__) ((((__HANDLE__)->Instance->ISR & (0x01U << ((__INTERRUPT__)>> 0x08U))) != RESET) ? SET : RESET)
<> 144:ef7eb2e8f9f7 687
<> 144:ef7eb2e8f9f7 688 /** @brief Check whether the specified SmartCard interrupt source is enabled or not.
AnnaBridge 181:57724642e740 689 * @param __HANDLE__ specifies the SMARTCARD Handle.
AnnaBridge 181:57724642e740 690 * @param __INTERRUPT__ specifies the SMARTCARD interrupt source to check.
<> 144:ef7eb2e8f9f7 691 * This parameter can be one of the following values:
AnnaBridge 181:57724642e740 692 * @arg @ref SMARTCARD_IT_EOB End of block interrupt
AnnaBridge 181:57724642e740 693 * @arg @ref SMARTCARD_IT_RTO Receive timeout interrupt
AnnaBridge 181:57724642e740 694 * @arg @ref SMARTCARD_IT_TXE Transmit data register empty interrupt
AnnaBridge 181:57724642e740 695 * @arg @ref SMARTCARD_IT_TXFNF TX FIFO not full interruption
AnnaBridge 181:57724642e740 696 * @arg @ref SMARTCARD_IT_TC Transmission complete interrupt
AnnaBridge 181:57724642e740 697 * @arg @ref SMARTCARD_IT_TCBGT Transmission complete before guard time interrupt (when interruption available)
AnnaBridge 181:57724642e740 698 * @arg @ref SMARTCARD_IT_RXNE Receive data register not empty interrupt
AnnaBridge 181:57724642e740 699 * @arg @ref SMARTCARD_IT_RXFNE RXFIFO not empty interruption
AnnaBridge 181:57724642e740 700 * @arg @ref SMARTCARD_IT_IDLE Idle line detection interrupt
AnnaBridge 181:57724642e740 701 * @arg @ref SMARTCARD_IT_PE Parity error interrupt
AnnaBridge 181:57724642e740 702 * @arg @ref SMARTCARD_IT_ERR Error interrupt(frame error, noise error, overrun error)
AnnaBridge 181:57724642e740 703 * @arg @ref SMARTCARD_IT_RXFF RXFIFO full interruption
AnnaBridge 181:57724642e740 704 * @arg @ref SMARTCARD_IT_TXFE TXFIFO empty interruption
AnnaBridge 181:57724642e740 705 * @arg @ref SMARTCARD_IT_RXFT RXFIFO threshold reached interruption
AnnaBridge 181:57724642e740 706 * @arg @ref SMARTCARD_IT_TXFT TXFIFO threshold reached interruption
AnnaBridge 181:57724642e740 707 * @retval The new state of __INTERRUPT__ (SET or RESET).
<> 144:ef7eb2e8f9f7 708 */
AnnaBridge 181:57724642e740 709 #define __HAL_SMARTCARD_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((((((((uint8_t)(__INTERRUPT__)) >> 0x05U) == 0x01U)? (__HANDLE__)->Instance->CR1 : \
AnnaBridge 181:57724642e740 710 (((((uint8_t)(__INTERRUPT__)) >> 0x05U) == 0x01U)? (__HANDLE__)->Instance->CR2 : \
AnnaBridge 181:57724642e740 711 (__HANDLE__)->Instance->CR3)) & (0x01U << (((uint16_t)(__INTERRUPT__)) & SMARTCARD_IT_MASK))) != RESET) ? SET : RESET)
<> 144:ef7eb2e8f9f7 712
<> 144:ef7eb2e8f9f7 713
<> 144:ef7eb2e8f9f7 714 /** @brief Clear the specified SMARTCARD ISR flag, in setting the proper ICR register flag.
AnnaBridge 181:57724642e740 715 * @param __HANDLE__ specifies the SMARTCARD Handle.
AnnaBridge 181:57724642e740 716 * @param __IT_CLEAR__ specifies the interrupt clear register flag that needs to be set
<> 144:ef7eb2e8f9f7 717 * to clear the corresponding interrupt.
<> 144:ef7eb2e8f9f7 718 * This parameter can be one of the following values:
<> 144:ef7eb2e8f9f7 719 * @arg @ref SMARTCARD_CLEAR_PEF Parity error clear flag
<> 144:ef7eb2e8f9f7 720 * @arg @ref SMARTCARD_CLEAR_FEF Framing error clear flag
<> 144:ef7eb2e8f9f7 721 * @arg @ref SMARTCARD_CLEAR_NEF Noise detected clear flag
<> 144:ef7eb2e8f9f7 722 * @arg @ref SMARTCARD_CLEAR_OREF OverRun error clear flag
<> 144:ef7eb2e8f9f7 723 * @arg @ref SMARTCARD_CLEAR_IDLEF Idle line detection clear flag
AnnaBridge 181:57724642e740 724 * @arg @ref SMARTCARD_CLEAR_TXFECF TXFIFO empty Clear Flag
<> 144:ef7eb2e8f9f7 725 * @arg @ref SMARTCARD_CLEAR_TCF Transmission complete clear flag
<> 144:ef7eb2e8f9f7 726 * @arg @ref SMARTCARD_CLEAR_TCBGTF Transmission complete before guard time clear flag (when flag available)
<> 144:ef7eb2e8f9f7 727 * @arg @ref SMARTCARD_CLEAR_RTOF Receiver timeout clear flag
<> 144:ef7eb2e8f9f7 728 * @arg @ref SMARTCARD_CLEAR_EOBF End of block clear flag
<> 144:ef7eb2e8f9f7 729 * @retval None
<> 144:ef7eb2e8f9f7 730 */
AnnaBridge 181:57724642e740 731 #define __HAL_SMARTCARD_CLEAR_IT(__HANDLE__, __IT_CLEAR__) ((__HANDLE__)->Instance->ICR |= (uint32_t)(__IT_CLEAR__))
<> 144:ef7eb2e8f9f7 732
<> 144:ef7eb2e8f9f7 733 /** @brief Set a specific SMARTCARD request flag.
AnnaBridge 181:57724642e740 734 * @param __HANDLE__ specifies the SMARTCARD Handle.
AnnaBridge 181:57724642e740 735 * @param __REQ__ specifies the request flag to set
<> 144:ef7eb2e8f9f7 736 * This parameter can be one of the following values:
<> 144:ef7eb2e8f9f7 737 * @arg @ref SMARTCARD_RXDATA_FLUSH_REQUEST Receive data flush Request
<> 144:ef7eb2e8f9f7 738 * @arg @ref SMARTCARD_TXDATA_FLUSH_REQUEST Transmit data flush Request
<> 144:ef7eb2e8f9f7 739 *
<> 144:ef7eb2e8f9f7 740 * @retval None
<> 144:ef7eb2e8f9f7 741 */
<> 144:ef7eb2e8f9f7 742 #define __HAL_SMARTCARD_SEND_REQ(__HANDLE__, __REQ__) ((__HANDLE__)->Instance->RQR |= (uint16_t)(__REQ__))
<> 144:ef7eb2e8f9f7 743
<> 144:ef7eb2e8f9f7 744 /** @brief Enable the SMARTCARD one bit sample method.
AnnaBridge 181:57724642e740 745 * @param __HANDLE__ specifies the SMARTCARD Handle.
<> 144:ef7eb2e8f9f7 746 * @retval None
<> 144:ef7eb2e8f9f7 747 */
<> 144:ef7eb2e8f9f7 748 #define __HAL_SMARTCARD_ONE_BIT_SAMPLE_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR3|= USART_CR3_ONEBIT)
<> 144:ef7eb2e8f9f7 749
<> 144:ef7eb2e8f9f7 750 /** @brief Disable the SMARTCARD one bit sample method.
AnnaBridge 181:57724642e740 751 * @param __HANDLE__ specifies the SMARTCARD Handle.
<> 144:ef7eb2e8f9f7 752 * @retval None
<> 144:ef7eb2e8f9f7 753 */
<> 144:ef7eb2e8f9f7 754 #define __HAL_SMARTCARD_ONE_BIT_SAMPLE_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR3 &= (uint32_t)~((uint32_t)USART_CR3_ONEBIT))
<> 144:ef7eb2e8f9f7 755
<> 144:ef7eb2e8f9f7 756 /** @brief Enable the USART associated to the SMARTCARD Handle.
AnnaBridge 181:57724642e740 757 * @param __HANDLE__ specifies the SMARTCARD Handle.
<> 144:ef7eb2e8f9f7 758 * @retval None
<> 144:ef7eb2e8f9f7 759 */
<> 144:ef7eb2e8f9f7 760 #define __HAL_SMARTCARD_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1 |= USART_CR1_UE)
<> 144:ef7eb2e8f9f7 761
<> 144:ef7eb2e8f9f7 762 /** @brief Disable the USART associated to the SMARTCARD Handle
AnnaBridge 181:57724642e740 763 * @param __HANDLE__ specifies the SMARTCARD Handle.
<> 144:ef7eb2e8f9f7 764 * @retval None
<> 144:ef7eb2e8f9f7 765 */
<> 144:ef7eb2e8f9f7 766 #define __HAL_SMARTCARD_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1 &= ~USART_CR1_UE)
<> 144:ef7eb2e8f9f7 767
<> 144:ef7eb2e8f9f7 768 /**
<> 144:ef7eb2e8f9f7 769 * @}
<> 144:ef7eb2e8f9f7 770 */
<> 144:ef7eb2e8f9f7 771
<> 144:ef7eb2e8f9f7 772 /* Private macros -------------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 773 /** @defgroup SMARTCARD_Private_Macros SMARTCARD Private Macros
<> 144:ef7eb2e8f9f7 774 * @{
<> 144:ef7eb2e8f9f7 775 */
<> 144:ef7eb2e8f9f7 776
<> 144:ef7eb2e8f9f7 777 /** @brief Check the Baud rate range.
<> 144:ef7eb2e8f9f7 778 * @note The maximum Baud Rate is derived from the maximum clock on L4 (80 MHz)
<> 144:ef7eb2e8f9f7 779 * divided by the oversampling used on the SMARTCARD (i.e. 16).
AnnaBridge 181:57724642e740 780 * @param __BAUDRATE__ Baud rate set by the configuration function.
<> 144:ef7eb2e8f9f7 781 * @retval Test result (TRUE or FALSE)
<> 144:ef7eb2e8f9f7 782 */
<> 144:ef7eb2e8f9f7 783 #define IS_SMARTCARD_BAUDRATE(__BAUDRATE__) ((__BAUDRATE__) < 5000001)
<> 144:ef7eb2e8f9f7 784
<> 144:ef7eb2e8f9f7 785 /** @brief Check the block length range.
<> 144:ef7eb2e8f9f7 786 * @note The maximum SMARTCARD block length is 0xFF.
AnnaBridge 181:57724642e740 787 * @param __LENGTH__ block length.
<> 144:ef7eb2e8f9f7 788 * @retval Test result (TRUE or FALSE)
<> 144:ef7eb2e8f9f7 789 */
AnnaBridge 181:57724642e740 790 #define IS_SMARTCARD_BLOCKLENGTH(__LENGTH__) ((__LENGTH__) <= 0xFFU)
<> 144:ef7eb2e8f9f7 791
<> 144:ef7eb2e8f9f7 792 /** @brief Check the receiver timeout value.
<> 144:ef7eb2e8f9f7 793 * @note The maximum SMARTCARD receiver timeout value is 0xFFFFFF.
AnnaBridge 181:57724642e740 794 * @param __TIMEOUTVALUE__ receiver timeout value.
<> 144:ef7eb2e8f9f7 795 * @retval Test result (TRUE or FALSE)
<> 144:ef7eb2e8f9f7 796 */
AnnaBridge 181:57724642e740 797 #define IS_SMARTCARD_TIMEOUT_VALUE(__TIMEOUTVALUE__) ((__TIMEOUTVALUE__) <= 0xFFFFFFU)
<> 144:ef7eb2e8f9f7 798
<> 144:ef7eb2e8f9f7 799 /** @brief Check the SMARTCARD autoretry counter value.
<> 144:ef7eb2e8f9f7 800 * @note The maximum number of retransmissions is 0x7.
AnnaBridge 181:57724642e740 801 * @param __COUNT__ number of retransmissions.
<> 144:ef7eb2e8f9f7 802 * @retval Test result (TRUE or FALSE)
<> 144:ef7eb2e8f9f7 803 */
AnnaBridge 181:57724642e740 804 #define IS_SMARTCARD_AUTORETRY_COUNT(__COUNT__) ((__COUNT__) <= 0x7U)
<> 144:ef7eb2e8f9f7 805
<> 144:ef7eb2e8f9f7 806 /**
<> 144:ef7eb2e8f9f7 807 * @brief Ensure that SMARTCARD frame length is valid.
AnnaBridge 181:57724642e740 808 * @param __LENGTH__ SMARTCARD frame length.
<> 144:ef7eb2e8f9f7 809 * @retval SET (__LENGTH__ is valid) or RESET (__LENGTH__ is invalid)
<> 144:ef7eb2e8f9f7 810 */
<> 144:ef7eb2e8f9f7 811 #define IS_SMARTCARD_WORD_LENGTH(__LENGTH__) ((__LENGTH__) == SMARTCARD_WORDLENGTH_9B)
<> 144:ef7eb2e8f9f7 812
<> 144:ef7eb2e8f9f7 813 /**
<> 144:ef7eb2e8f9f7 814 * @brief Ensure that SMARTCARD frame number of stop bits is valid.
AnnaBridge 181:57724642e740 815 * @param __STOPBITS__ SMARTCARD frame number of stop bits.
<> 144:ef7eb2e8f9f7 816 * @retval SET (__STOPBITS__ is valid) or RESET (__STOPBITS__ is invalid)
<> 144:ef7eb2e8f9f7 817 */
<> 144:ef7eb2e8f9f7 818 #define IS_SMARTCARD_STOPBITS(__STOPBITS__) (((__STOPBITS__) == SMARTCARD_STOPBITS_0_5) ||\
<> 144:ef7eb2e8f9f7 819 ((__STOPBITS__) == SMARTCARD_STOPBITS_1_5))
<> 144:ef7eb2e8f9f7 820
<> 144:ef7eb2e8f9f7 821 /**
<> 144:ef7eb2e8f9f7 822 * @brief Ensure that SMARTCARD frame parity is valid.
AnnaBridge 181:57724642e740 823 * @param __PARITY__ SMARTCARD frame parity.
<> 144:ef7eb2e8f9f7 824 * @retval SET (__PARITY__ is valid) or RESET (__PARITY__ is invalid)
<> 144:ef7eb2e8f9f7 825 */
<> 144:ef7eb2e8f9f7 826 #define IS_SMARTCARD_PARITY(__PARITY__) (((__PARITY__) == SMARTCARD_PARITY_EVEN) || \
<> 144:ef7eb2e8f9f7 827 ((__PARITY__) == SMARTCARD_PARITY_ODD))
<> 144:ef7eb2e8f9f7 828
<> 144:ef7eb2e8f9f7 829 /**
<> 144:ef7eb2e8f9f7 830 * @brief Ensure that SMARTCARD communication mode is valid.
AnnaBridge 181:57724642e740 831 * @param __MODE__ SMARTCARD communication mode.
<> 144:ef7eb2e8f9f7 832 * @retval SET (__MODE__ is valid) or RESET (__MODE__ is invalid)
<> 144:ef7eb2e8f9f7 833 */
AnnaBridge 181:57724642e740 834 #define IS_SMARTCARD_MODE(__MODE__) ((((__MODE__) & 0xFFF3U) == 0x00U) && ((__MODE__) != 0x00U))
<> 144:ef7eb2e8f9f7 835
<> 144:ef7eb2e8f9f7 836 /**
<> 144:ef7eb2e8f9f7 837 * @brief Ensure that SMARTCARD frame polarity is valid.
AnnaBridge 181:57724642e740 838 * @param __CPOL__ SMARTCARD frame polarity.
<> 144:ef7eb2e8f9f7 839 * @retval SET (__CPOL__ is valid) or RESET (__CPOL__ is invalid)
<> 144:ef7eb2e8f9f7 840 */
<> 144:ef7eb2e8f9f7 841 #define IS_SMARTCARD_POLARITY(__CPOL__) (((__CPOL__) == SMARTCARD_POLARITY_LOW) || ((__CPOL__) == SMARTCARD_POLARITY_HIGH))
<> 144:ef7eb2e8f9f7 842
<> 144:ef7eb2e8f9f7 843 /**
<> 144:ef7eb2e8f9f7 844 * @brief Ensure that SMARTCARD frame phase is valid.
AnnaBridge 181:57724642e740 845 * @param __CPHA__ SMARTCARD frame phase.
<> 144:ef7eb2e8f9f7 846 * @retval SET (__CPHA__ is valid) or RESET (__CPHA__ is invalid)
<> 144:ef7eb2e8f9f7 847 */
<> 144:ef7eb2e8f9f7 848 #define IS_SMARTCARD_PHASE(__CPHA__) (((__CPHA__) == SMARTCARD_PHASE_1EDGE) || ((__CPHA__) == SMARTCARD_PHASE_2EDGE))
<> 144:ef7eb2e8f9f7 849
<> 144:ef7eb2e8f9f7 850 /**
<> 144:ef7eb2e8f9f7 851 * @brief Ensure that SMARTCARD frame last bit clock pulse setting is valid.
AnnaBridge 181:57724642e740 852 * @param __LASTBIT__ SMARTCARD frame last bit clock pulse setting.
<> 144:ef7eb2e8f9f7 853 * @retval SET (__LASTBIT__ is valid) or RESET (__LASTBIT__ is invalid)
<> 144:ef7eb2e8f9f7 854 */
<> 144:ef7eb2e8f9f7 855 #define IS_SMARTCARD_LASTBIT(__LASTBIT__) (((__LASTBIT__) == SMARTCARD_LASTBIT_DISABLE) || \
<> 144:ef7eb2e8f9f7 856 ((__LASTBIT__) == SMARTCARD_LASTBIT_ENABLE))
<> 144:ef7eb2e8f9f7 857
<> 144:ef7eb2e8f9f7 858 /**
<> 144:ef7eb2e8f9f7 859 * @brief Ensure that SMARTCARD frame sampling is valid.
AnnaBridge 181:57724642e740 860 * @param __ONEBIT__ SMARTCARD frame sampling.
<> 144:ef7eb2e8f9f7 861 * @retval SET (__ONEBIT__ is valid) or RESET (__ONEBIT__ is invalid)
<> 144:ef7eb2e8f9f7 862 */
<> 144:ef7eb2e8f9f7 863 #define IS_SMARTCARD_ONE_BIT_SAMPLE(__ONEBIT__) (((__ONEBIT__) == SMARTCARD_ONE_BIT_SAMPLE_DISABLE) || \
<> 144:ef7eb2e8f9f7 864 ((__ONEBIT__) == SMARTCARD_ONE_BIT_SAMPLE_ENABLE))
<> 144:ef7eb2e8f9f7 865
<> 144:ef7eb2e8f9f7 866 /**
<> 144:ef7eb2e8f9f7 867 * @brief Ensure that SMARTCARD NACK transmission setting is valid.
AnnaBridge 181:57724642e740 868 * @param __NACK__ SMARTCARD NACK transmission setting.
<> 144:ef7eb2e8f9f7 869 * @retval SET (__NACK__ is valid) or RESET (__NACK__ is invalid)
<> 144:ef7eb2e8f9f7 870 */
<> 144:ef7eb2e8f9f7 871 #define IS_SMARTCARD_NACK(__NACK__) (((__NACK__) == SMARTCARD_NACK_ENABLE) || \
<> 144:ef7eb2e8f9f7 872 ((__NACK__) == SMARTCARD_NACK_DISABLE))
<> 144:ef7eb2e8f9f7 873
<> 144:ef7eb2e8f9f7 874 /**
<> 144:ef7eb2e8f9f7 875 * @brief Ensure that SMARTCARD receiver timeout setting is valid.
AnnaBridge 181:57724642e740 876 * @param __TIMEOUT__ SMARTCARD receiver timeout setting.
<> 144:ef7eb2e8f9f7 877 * @retval SET (__TIMEOUT__ is valid) or RESET (__TIMEOUT__ is invalid)
<> 144:ef7eb2e8f9f7 878 */
<> 144:ef7eb2e8f9f7 879 #define IS_SMARTCARD_TIMEOUT(__TIMEOUT__) (((__TIMEOUT__) == SMARTCARD_TIMEOUT_DISABLE) || \
<> 144:ef7eb2e8f9f7 880 ((__TIMEOUT__) == SMARTCARD_TIMEOUT_ENABLE))
<> 144:ef7eb2e8f9f7 881
<> 144:ef7eb2e8f9f7 882 /**
AnnaBridge 181:57724642e740 883 * @brief Ensure that SMARTCARD clock Prescaler is valid.
AnnaBridge 181:57724642e740 884 * @param __CLOCKPRESCALER__ SMARTCARD clock Prescaler value.
AnnaBridge 181:57724642e740 885 * @retval SET (__CLOCKPRESCALER__ is valid) or RESET (__CLOCKPRESCALER__ is invalid)
AnnaBridge 181:57724642e740 886 */
AnnaBridge 181:57724642e740 887 #define IS_SMARTCARD_CLOCKPRESCALER(__CLOCKPRESCALER__) (((__CLOCKPRESCALER__) == SMARTCARD_PRESCALER_DIV1) || \
AnnaBridge 181:57724642e740 888 ((__CLOCKPRESCALER__) == SMARTCARD_PRESCALER_DIV2) || \
AnnaBridge 181:57724642e740 889 ((__CLOCKPRESCALER__) == SMARTCARD_PRESCALER_DIV4) || \
AnnaBridge 181:57724642e740 890 ((__CLOCKPRESCALER__) == SMARTCARD_PRESCALER_DIV6) || \
AnnaBridge 181:57724642e740 891 ((__CLOCKPRESCALER__) == SMARTCARD_PRESCALER_DIV8) || \
AnnaBridge 181:57724642e740 892 ((__CLOCKPRESCALER__) == SMARTCARD_PRESCALER_DIV10) || \
AnnaBridge 181:57724642e740 893 ((__CLOCKPRESCALER__) == SMARTCARD_PRESCALER_DIV12) || \
AnnaBridge 181:57724642e740 894 ((__CLOCKPRESCALER__) == SMARTCARD_PRESCALER_DIV16) || \
AnnaBridge 181:57724642e740 895 ((__CLOCKPRESCALER__) == SMARTCARD_PRESCALER_DIV32) || \
AnnaBridge 181:57724642e740 896 ((__CLOCKPRESCALER__) == SMARTCARD_PRESCALER_DIV64) || \
AnnaBridge 181:57724642e740 897 ((__CLOCKPRESCALER__) == SMARTCARD_PRESCALER_DIV128) || \
AnnaBridge 181:57724642e740 898 ((__CLOCKPRESCALER__) == SMARTCARD_PRESCALER_DIV256))
AnnaBridge 181:57724642e740 899
AnnaBridge 181:57724642e740 900 /**
AnnaBridge 181:57724642e740 901 * @brief Ensure that SMARTCARD FIFO mode is valid.
AnnaBridge 181:57724642e740 902 * @param __STATE__ SMARTCARD FIFO mode.
AnnaBridge 181:57724642e740 903 * @retval SET (__STATE__ is valid) or RESET (__STATE__ is invalid)
AnnaBridge 181:57724642e740 904 */
AnnaBridge 181:57724642e740 905 #define IS_SMARTCARD_FIFOMODE_STATE(__STATE__) (((__STATE__) == SMARTCARD_FIFOMODE_DISABLE ) || \
AnnaBridge 181:57724642e740 906 ((__STATE__) == SMARTCARD_FIFOMODE_ENABLE))
AnnaBridge 181:57724642e740 907
AnnaBridge 181:57724642e740 908 /**
AnnaBridge 181:57724642e740 909 * @brief Ensure that SMARTCARD TXFIFO threshold level is valid.
AnnaBridge 181:57724642e740 910 * @param __THRESHOLD__ SMARTCARD TXFIFO threshold level.
AnnaBridge 181:57724642e740 911 * @retval SET (__THRESHOLD__ is valid) or RESET (__THRESHOLD__ is invalid)
AnnaBridge 181:57724642e740 912 */
AnnaBridge 181:57724642e740 913 #define IS_SMARTCARD_TXFIFO_THRESHOLD(__THRESHOLD__) (((__THRESHOLD__) == SMARTCARD_TXFIFO_THRESHOLD_1_8) || \
AnnaBridge 181:57724642e740 914 ((__THRESHOLD__) == SMARTCARD_TXFIFO_THRESHOLD_1_4) || \
AnnaBridge 181:57724642e740 915 ((__THRESHOLD__) == SMARTCARD_TXFIFO_THRESHOLD_1_2) || \
AnnaBridge 181:57724642e740 916 ((__THRESHOLD__) == SMARTCARD_TXFIFO_THRESHOLD_3_4) || \
AnnaBridge 181:57724642e740 917 ((__THRESHOLD__) == SMARTCARD_TXFIFO_THRESHOLD_7_8) || \
AnnaBridge 181:57724642e740 918 ((__THRESHOLD__) == SMARTCARD_TXFIFO_THRESHOLD_8_8))
AnnaBridge 181:57724642e740 919
AnnaBridge 181:57724642e740 920 /**
AnnaBridge 181:57724642e740 921 * @brief Ensure that SMARTCARD RXFIFO threshold level is valid.
AnnaBridge 181:57724642e740 922 * @param __THRESHOLD__ SMARTCARD RXFIFO threshold level.
AnnaBridge 181:57724642e740 923 * @retval SET (__THRESHOLD__ is valid) or RESET (__THRESHOLD__ is invalid)
AnnaBridge 181:57724642e740 924 */
AnnaBridge 181:57724642e740 925 #define IS_SMARTCARD_RXFIFO_THRESHOLD(__THRESHOLD__) (((__THRESHOLD__) == SMARTCARD_RXFIFO_THRESHOLD_1_8) || \
AnnaBridge 181:57724642e740 926 ((__THRESHOLD__) == SMARTCARD_RXFIFO_THRESHOLD_1_4) || \
AnnaBridge 181:57724642e740 927 ((__THRESHOLD__) == SMARTCARD_RXFIFO_THRESHOLD_1_2) || \
AnnaBridge 181:57724642e740 928 ((__THRESHOLD__) == SMARTCARD_RXFIFO_THRESHOLD_3_4) || \
AnnaBridge 181:57724642e740 929 ((__THRESHOLD__) == SMARTCARD_RXFIFO_THRESHOLD_7_8) || \
AnnaBridge 181:57724642e740 930 ((__THRESHOLD__) == SMARTCARD_RXFIFO_THRESHOLD_8_8))
AnnaBridge 181:57724642e740 931
AnnaBridge 181:57724642e740 932 /**
<> 144:ef7eb2e8f9f7 933 * @brief Ensure that SMARTCARD advanced features initialization is valid.
AnnaBridge 181:57724642e740 934 * @param __INIT__ SMARTCARD advanced features initialization.
<> 144:ef7eb2e8f9f7 935 * @retval SET (__INIT__ is valid) or RESET (__INIT__ is invalid)
<> 144:ef7eb2e8f9f7 936 */
<> 144:ef7eb2e8f9f7 937 #define IS_SMARTCARD_ADVFEATURE_INIT(__INIT__) ((__INIT__) <= (SMARTCARD_ADVFEATURE_NO_INIT | \
<> 144:ef7eb2e8f9f7 938 SMARTCARD_ADVFEATURE_TXINVERT_INIT | \
<> 144:ef7eb2e8f9f7 939 SMARTCARD_ADVFEATURE_RXINVERT_INIT | \
<> 144:ef7eb2e8f9f7 940 SMARTCARD_ADVFEATURE_DATAINVERT_INIT | \
<> 144:ef7eb2e8f9f7 941 SMARTCARD_ADVFEATURE_SWAP_INIT | \
<> 144:ef7eb2e8f9f7 942 SMARTCARD_ADVFEATURE_RXOVERRUNDISABLE_INIT | \
<> 144:ef7eb2e8f9f7 943 SMARTCARD_ADVFEATURE_DMADISABLEONERROR_INIT | \
<> 144:ef7eb2e8f9f7 944 SMARTCARD_ADVFEATURE_MSBFIRST_INIT))
<> 144:ef7eb2e8f9f7 945
<> 144:ef7eb2e8f9f7 946 /**
<> 144:ef7eb2e8f9f7 947 * @brief Ensure that SMARTCARD frame TX inversion setting is valid.
AnnaBridge 181:57724642e740 948 * @param __TXINV__ SMARTCARD frame TX inversion setting.
<> 144:ef7eb2e8f9f7 949 * @retval SET (__TXINV__ is valid) or RESET (__TXINV__ is invalid)
<> 144:ef7eb2e8f9f7 950 */
<> 144:ef7eb2e8f9f7 951 #define IS_SMARTCARD_ADVFEATURE_TXINV(__TXINV__) (((__TXINV__) == SMARTCARD_ADVFEATURE_TXINV_DISABLE) || \
<> 144:ef7eb2e8f9f7 952 ((__TXINV__) == SMARTCARD_ADVFEATURE_TXINV_ENABLE))
<> 144:ef7eb2e8f9f7 953
<> 144:ef7eb2e8f9f7 954 /**
<> 144:ef7eb2e8f9f7 955 * @brief Ensure that SMARTCARD frame RX inversion setting is valid.
AnnaBridge 181:57724642e740 956 * @param __RXINV__ SMARTCARD frame RX inversion setting.
<> 144:ef7eb2e8f9f7 957 * @retval SET (__RXINV__ is valid) or RESET (__RXINV__ is invalid)
<> 144:ef7eb2e8f9f7 958 */
<> 144:ef7eb2e8f9f7 959 #define IS_SMARTCARD_ADVFEATURE_RXINV(__RXINV__) (((__RXINV__) == SMARTCARD_ADVFEATURE_RXINV_DISABLE) || \
<> 144:ef7eb2e8f9f7 960 ((__RXINV__) == SMARTCARD_ADVFEATURE_RXINV_ENABLE))
<> 144:ef7eb2e8f9f7 961
<> 144:ef7eb2e8f9f7 962 /**
<> 144:ef7eb2e8f9f7 963 * @brief Ensure that SMARTCARD frame data inversion setting is valid.
AnnaBridge 181:57724642e740 964 * @param __DATAINV__ SMARTCARD frame data inversion setting.
<> 144:ef7eb2e8f9f7 965 * @retval SET (__DATAINV__ is valid) or RESET (__DATAINV__ is invalid)
<> 144:ef7eb2e8f9f7 966 */
<> 144:ef7eb2e8f9f7 967 #define IS_SMARTCARD_ADVFEATURE_DATAINV(__DATAINV__) (((__DATAINV__) == SMARTCARD_ADVFEATURE_DATAINV_DISABLE) || \
<> 144:ef7eb2e8f9f7 968 ((__DATAINV__) == SMARTCARD_ADVFEATURE_DATAINV_ENABLE))
<> 144:ef7eb2e8f9f7 969
<> 144:ef7eb2e8f9f7 970 /**
<> 144:ef7eb2e8f9f7 971 * @brief Ensure that SMARTCARD frame RX/TX pins swap setting is valid.
AnnaBridge 181:57724642e740 972 * @param __SWAP__ SMARTCARD frame RX/TX pins swap setting.
<> 144:ef7eb2e8f9f7 973 * @retval SET (__SWAP__ is valid) or RESET (__SWAP__ is invalid)
<> 144:ef7eb2e8f9f7 974 */
<> 144:ef7eb2e8f9f7 975 #define IS_SMARTCARD_ADVFEATURE_SWAP(__SWAP__) (((__SWAP__) == SMARTCARD_ADVFEATURE_SWAP_DISABLE) || \
<> 144:ef7eb2e8f9f7 976 ((__SWAP__) == SMARTCARD_ADVFEATURE_SWAP_ENABLE))
<> 144:ef7eb2e8f9f7 977
<> 144:ef7eb2e8f9f7 978 /**
<> 144:ef7eb2e8f9f7 979 * @brief Ensure that SMARTCARD frame overrun setting is valid.
AnnaBridge 181:57724642e740 980 * @param __OVERRUN__ SMARTCARD frame overrun setting.
<> 144:ef7eb2e8f9f7 981 * @retval SET (__OVERRUN__ is valid) or RESET (__OVERRUN__ is invalid)
<> 144:ef7eb2e8f9f7 982 */
<> 144:ef7eb2e8f9f7 983 #define IS_SMARTCARD_OVERRUN(__OVERRUN__) (((__OVERRUN__) == SMARTCARD_ADVFEATURE_OVERRUN_ENABLE) || \
<> 144:ef7eb2e8f9f7 984 ((__OVERRUN__) == SMARTCARD_ADVFEATURE_OVERRUN_DISABLE))
<> 144:ef7eb2e8f9f7 985
<> 144:ef7eb2e8f9f7 986 /**
<> 144:ef7eb2e8f9f7 987 * @brief Ensure that SMARTCARD DMA enabling or disabling on error setting is valid.
AnnaBridge 181:57724642e740 988 * @param __DMA__ SMARTCARD DMA enabling or disabling on error setting.
<> 144:ef7eb2e8f9f7 989 * @retval SET (__DMA__ is valid) or RESET (__DMA__ is invalid)
<> 144:ef7eb2e8f9f7 990 */
<> 144:ef7eb2e8f9f7 991 #define IS_SMARTCARD_ADVFEATURE_DMAONRXERROR(__DMA__) (((__DMA__) == SMARTCARD_ADVFEATURE_DMA_ENABLEONRXERROR) || \
<> 144:ef7eb2e8f9f7 992 ((__DMA__) == SMARTCARD_ADVFEATURE_DMA_DISABLEONRXERROR))
<> 144:ef7eb2e8f9f7 993
<> 144:ef7eb2e8f9f7 994 /**
<> 144:ef7eb2e8f9f7 995 * @brief Ensure that SMARTCARD frame MSB first setting is valid.
AnnaBridge 181:57724642e740 996 * @param __MSBFIRST__ SMARTCARD frame MSB first setting.
<> 144:ef7eb2e8f9f7 997 * @retval SET (__MSBFIRST__ is valid) or RESET (__MSBFIRST__ is invalid)
<> 144:ef7eb2e8f9f7 998 */
<> 144:ef7eb2e8f9f7 999 #define IS_SMARTCARD_ADVFEATURE_MSBFIRST(__MSBFIRST__) (((__MSBFIRST__) == SMARTCARD_ADVFEATURE_MSBFIRST_DISABLE) || \
<> 144:ef7eb2e8f9f7 1000 ((__MSBFIRST__) == SMARTCARD_ADVFEATURE_MSBFIRST_ENABLE))
<> 144:ef7eb2e8f9f7 1001
<> 144:ef7eb2e8f9f7 1002 /**
<> 144:ef7eb2e8f9f7 1003 * @brief Ensure that SMARTCARD request parameter is valid.
AnnaBridge 181:57724642e740 1004 * @param __PARAM__ SMARTCARD request parameter.
<> 144:ef7eb2e8f9f7 1005 * @retval SET (__PARAM__ is valid) or RESET (__PARAM__ is invalid)
<> 144:ef7eb2e8f9f7 1006 */
<> 144:ef7eb2e8f9f7 1007 #define IS_SMARTCARD_REQUEST_PARAMETER(__PARAM__) (((__PARAM__) == SMARTCARD_RXDATA_FLUSH_REQUEST) || \
<> 144:ef7eb2e8f9f7 1008 ((__PARAM__) == SMARTCARD_TXDATA_FLUSH_REQUEST))
<> 144:ef7eb2e8f9f7 1009
<> 144:ef7eb2e8f9f7 1010 /**
<> 144:ef7eb2e8f9f7 1011 * @}
<> 144:ef7eb2e8f9f7 1012 */
<> 144:ef7eb2e8f9f7 1013
<> 144:ef7eb2e8f9f7 1014 /* Include SMARTCARD HAL Extended module */
<> 144:ef7eb2e8f9f7 1015 #include "stm32l4xx_hal_smartcard_ex.h"
<> 144:ef7eb2e8f9f7 1016
<> 144:ef7eb2e8f9f7 1017
<> 144:ef7eb2e8f9f7 1018 /* Exported functions --------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 1019 /** @addtogroup SMARTCARD_Exported_Functions
<> 144:ef7eb2e8f9f7 1020 * @{
<> 144:ef7eb2e8f9f7 1021 */
<> 144:ef7eb2e8f9f7 1022
<> 144:ef7eb2e8f9f7 1023 /* Initialization and de-initialization functions ****************************/
<> 144:ef7eb2e8f9f7 1024 /** @addtogroup SMARTCARD_Exported_Functions_Group1
<> 144:ef7eb2e8f9f7 1025 * @{
<> 144:ef7eb2e8f9f7 1026 */
<> 144:ef7eb2e8f9f7 1027
<> 144:ef7eb2e8f9f7 1028 HAL_StatusTypeDef HAL_SMARTCARD_Init(SMARTCARD_HandleTypeDef *hsmartcard);
<> 144:ef7eb2e8f9f7 1029 HAL_StatusTypeDef HAL_SMARTCARD_DeInit(SMARTCARD_HandleTypeDef *hsmartcard);
<> 144:ef7eb2e8f9f7 1030 void HAL_SMARTCARD_MspInit(SMARTCARD_HandleTypeDef *hsmartcard);
<> 144:ef7eb2e8f9f7 1031 void HAL_SMARTCARD_MspDeInit(SMARTCARD_HandleTypeDef *hsmartcard);
<> 144:ef7eb2e8f9f7 1032
<> 144:ef7eb2e8f9f7 1033 /**
<> 144:ef7eb2e8f9f7 1034 * @}
<> 144:ef7eb2e8f9f7 1035 */
<> 144:ef7eb2e8f9f7 1036
<> 144:ef7eb2e8f9f7 1037 /* IO operation functions *****************************************************/
<> 144:ef7eb2e8f9f7 1038 /** @addtogroup SMARTCARD_Exported_Functions_Group2
<> 144:ef7eb2e8f9f7 1039 * @{
<> 144:ef7eb2e8f9f7 1040 */
<> 144:ef7eb2e8f9f7 1041
<> 144:ef7eb2e8f9f7 1042 HAL_StatusTypeDef HAL_SMARTCARD_Transmit(SMARTCARD_HandleTypeDef *hsmartcard, uint8_t *pData, uint16_t Size, uint32_t Timeout);
<> 144:ef7eb2e8f9f7 1043 HAL_StatusTypeDef HAL_SMARTCARD_Receive(SMARTCARD_HandleTypeDef *hsmartcard, uint8_t *pData, uint16_t Size, uint32_t Timeout);
<> 144:ef7eb2e8f9f7 1044 HAL_StatusTypeDef HAL_SMARTCARD_Transmit_IT(SMARTCARD_HandleTypeDef *hsmartcard, uint8_t *pData, uint16_t Size);
<> 144:ef7eb2e8f9f7 1045 HAL_StatusTypeDef HAL_SMARTCARD_Receive_IT(SMARTCARD_HandleTypeDef *hsmartcard, uint8_t *pData, uint16_t Size);
<> 144:ef7eb2e8f9f7 1046 HAL_StatusTypeDef HAL_SMARTCARD_Transmit_DMA(SMARTCARD_HandleTypeDef *hsmartcard, uint8_t *pData, uint16_t Size);
<> 144:ef7eb2e8f9f7 1047 HAL_StatusTypeDef HAL_SMARTCARD_Receive_DMA(SMARTCARD_HandleTypeDef *hsmartcard, uint8_t *pData, uint16_t Size);
AnnaBridge 167:e84263d55307 1048 /* Transfer Abort functions */
AnnaBridge 167:e84263d55307 1049 HAL_StatusTypeDef HAL_SMARTCARD_Abort(SMARTCARD_HandleTypeDef *hsmartcard);
AnnaBridge 167:e84263d55307 1050 HAL_StatusTypeDef HAL_SMARTCARD_AbortTransmit(SMARTCARD_HandleTypeDef *hsmartcard);
AnnaBridge 167:e84263d55307 1051 HAL_StatusTypeDef HAL_SMARTCARD_AbortReceive(SMARTCARD_HandleTypeDef *hsmartcard);
AnnaBridge 167:e84263d55307 1052 HAL_StatusTypeDef HAL_SMARTCARD_Abort_IT(SMARTCARD_HandleTypeDef *hsmartcard);
AnnaBridge 167:e84263d55307 1053 HAL_StatusTypeDef HAL_SMARTCARD_AbortTransmit_IT(SMARTCARD_HandleTypeDef *hsmartcard);
AnnaBridge 167:e84263d55307 1054 HAL_StatusTypeDef HAL_SMARTCARD_AbortReceive_IT(SMARTCARD_HandleTypeDef *hsmartcard);
AnnaBridge 167:e84263d55307 1055
<> 144:ef7eb2e8f9f7 1056 void HAL_SMARTCARD_IRQHandler(SMARTCARD_HandleTypeDef *hsmartcard);
<> 144:ef7eb2e8f9f7 1057 void HAL_SMARTCARD_TxCpltCallback(SMARTCARD_HandleTypeDef *hsmartcard);
<> 144:ef7eb2e8f9f7 1058 void HAL_SMARTCARD_RxCpltCallback(SMARTCARD_HandleTypeDef *hsmartcard);
<> 144:ef7eb2e8f9f7 1059 void HAL_SMARTCARD_ErrorCallback(SMARTCARD_HandleTypeDef *hsmartcard);
AnnaBridge 167:e84263d55307 1060 void HAL_SMARTCARD_AbortCpltCallback (SMARTCARD_HandleTypeDef *hsmartcard);
AnnaBridge 167:e84263d55307 1061 void HAL_SMARTCARD_AbortTransmitCpltCallback (SMARTCARD_HandleTypeDef *hsmartcard);
AnnaBridge 167:e84263d55307 1062 void HAL_SMARTCARD_AbortReceiveCpltCallback (SMARTCARD_HandleTypeDef *hsmartcard);
<> 144:ef7eb2e8f9f7 1063
<> 144:ef7eb2e8f9f7 1064 /**
<> 144:ef7eb2e8f9f7 1065 * @}
<> 144:ef7eb2e8f9f7 1066 */
<> 144:ef7eb2e8f9f7 1067
<> 144:ef7eb2e8f9f7 1068 /* Peripheral Control functions ***********************************************/
<> 144:ef7eb2e8f9f7 1069 /* Peripheral State and Error functions ***************************************/
<> 144:ef7eb2e8f9f7 1070 /** @addtogroup SMARTCARD_Exported_Functions_Group4
<> 144:ef7eb2e8f9f7 1071 * @{
<> 144:ef7eb2e8f9f7 1072 */
<> 144:ef7eb2e8f9f7 1073
<> 144:ef7eb2e8f9f7 1074 HAL_SMARTCARD_StateTypeDef HAL_SMARTCARD_GetState(SMARTCARD_HandleTypeDef *hsmartcard);
<> 144:ef7eb2e8f9f7 1075 uint32_t HAL_SMARTCARD_GetError(SMARTCARD_HandleTypeDef *hsmartcard);
<> 144:ef7eb2e8f9f7 1076
<> 144:ef7eb2e8f9f7 1077 /**
<> 144:ef7eb2e8f9f7 1078 * @}
<> 144:ef7eb2e8f9f7 1079 */
<> 144:ef7eb2e8f9f7 1080
<> 144:ef7eb2e8f9f7 1081 /**
<> 144:ef7eb2e8f9f7 1082 * @}
<> 144:ef7eb2e8f9f7 1083 */
<> 144:ef7eb2e8f9f7 1084
<> 144:ef7eb2e8f9f7 1085 /**
<> 144:ef7eb2e8f9f7 1086 * @}
<> 144:ef7eb2e8f9f7 1087 */
<> 144:ef7eb2e8f9f7 1088
<> 144:ef7eb2e8f9f7 1089 /**
<> 144:ef7eb2e8f9f7 1090 * @}
<> 144:ef7eb2e8f9f7 1091 */
<> 144:ef7eb2e8f9f7 1092
<> 144:ef7eb2e8f9f7 1093 #ifdef __cplusplus
<> 144:ef7eb2e8f9f7 1094 }
<> 144:ef7eb2e8f9f7 1095 #endif
<> 144:ef7eb2e8f9f7 1096
<> 144:ef7eb2e8f9f7 1097 #endif /* __STM32L4xx_HAL_SMARTCARD_H */
<> 144:ef7eb2e8f9f7 1098
<> 144:ef7eb2e8f9f7 1099 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/