mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

This library was superseded by mbed-dev - https://os.mbed.com/users/mbed_official/code/mbed-dev/.

Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.

If you are looking for a stable and tested release, please import one of the official mbed library releases:

Import librarymbed

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

Committer:
mbed_official
Date:
Fri Aug 14 13:15:17 2015 +0100
Revision:
610:813dcc80987e
Synchronized with git revision 6d84db41c6833e0b9b024741eb0616a5f62d5599

Full URL: https://github.com/mbedmicro/mbed/commit/6d84db41c6833e0b9b024741eb0616a5f62d5599/

DISCO_F746NG - Improvements

Who changed what in which revision?

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