mbed official / mbed

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

Committer:
Kojto
Date:
Thu Jul 07 14:34:11 2016 +0100
Revision:
122:f9eeca106725
Parent:
107:4f6c30876dfa
Release 122 of the mbed library

Changes:
- new targets - Nucleo L432KC, Beetle, Nucleo F446ZE, Nucleo L011K4
- Thread safety addition - mbed API should contain a statement about thread safety
- critical section API addition
- CAS API (core_util_atomic_incr/decr)
- DEVICE_ are generated from targets.json file, device.h deprecated
- Callback replaces FunctionPointer to provide std like interface
- mbed HAL API docs improvements
- toolchain - prexif attributes with MBED_
- add new attributes - packed, weak, forcedinline, align
- target.json - contains targets definitions
- ST - L1XX - Cube update to 1.5
- SPI clock selection fix (clock from APB domain)
- F7 - Cube update v1.4.0
- L0 - baudrate init fix
- L1 - Cube update v1.5
- F3 - baudrate init fix, 3 targets CAN support
- F4 - Cube update v1.12.0, 3 targets CAN support
- L4XX - Cube update v1.5.1
- F0 - update Cube to v1.5.0
- L4 - 2 targets (L476RG/VG) CAN support
- NXP - pwm clock fix for KSDK2 MCU
- LPC2368 - remove ARM toolchain support - due to regression
- KSDK2 - fix SPI , I2C address and repeat start
- Silabs - some fixes backported from mbed 3
- Renesas - RZ_A1H - SystemCoreClockUpdate addition

Who changed what in which revision?

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