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 Oct 31 11:00:10 2014 +0000
Revision:
376:cb4d9db17537
Synchronized with git revision 07b49da75eac883fc8916d3d6b6962664b8db29e

Full URL: https://github.com/mbedmicro/mbed/commit/07b49da75eac883fc8916d3d6b6962664b8db29e/

Targets: DISCO_L053C8 - new platform - STM32L0 Discovery board

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 376:cb4d9db17537 1 /**
mbed_official 376:cb4d9db17537 2 ******************************************************************************
mbed_official 376:cb4d9db17537 3 * @file stm32l0xx_hal_smartcard.h
mbed_official 376:cb4d9db17537 4 * @author MCD Application Team
mbed_official 376:cb4d9db17537 5 * @version V1.1.0
mbed_official 376:cb4d9db17537 6 * @date 18-June-2014
mbed_official 376:cb4d9db17537 7 * @brief Header file of SMARTCARD HAL module.
mbed_official 376:cb4d9db17537 8 ******************************************************************************
mbed_official 376:cb4d9db17537 9 * @attention
mbed_official 376:cb4d9db17537 10 *
mbed_official 376:cb4d9db17537 11 * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
mbed_official 376:cb4d9db17537 12 *
mbed_official 376:cb4d9db17537 13 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 376:cb4d9db17537 14 * are permitted provided that the following conditions are met:
mbed_official 376:cb4d9db17537 15 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 376:cb4d9db17537 16 * this list of conditions and the following disclaimer.
mbed_official 376:cb4d9db17537 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 376:cb4d9db17537 18 * this list of conditions and the following disclaimer in the documentation
mbed_official 376:cb4d9db17537 19 * and/or other materials provided with the distribution.
mbed_official 376:cb4d9db17537 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 376:cb4d9db17537 21 * may be used to endorse or promote products derived from this software
mbed_official 376:cb4d9db17537 22 * without specific prior written permission.
mbed_official 376:cb4d9db17537 23 *
mbed_official 376:cb4d9db17537 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 376:cb4d9db17537 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 376:cb4d9db17537 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 376:cb4d9db17537 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 376:cb4d9db17537 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 376:cb4d9db17537 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 376:cb4d9db17537 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 376:cb4d9db17537 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 376:cb4d9db17537 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 376:cb4d9db17537 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 376:cb4d9db17537 34 *
mbed_official 376:cb4d9db17537 35 ******************************************************************************
mbed_official 376:cb4d9db17537 36 */
mbed_official 376:cb4d9db17537 37
mbed_official 376:cb4d9db17537 38 /* Define to prevent recursive inclusion -------------------------------------*/
mbed_official 376:cb4d9db17537 39 #ifndef __STM32L0xx_HAL_SMARTCARD_H
mbed_official 376:cb4d9db17537 40 #define __STM32L0xx_HAL_SMARTCARD_H
mbed_official 376:cb4d9db17537 41
mbed_official 376:cb4d9db17537 42 #ifdef __cplusplus
mbed_official 376:cb4d9db17537 43 extern "C" {
mbed_official 376:cb4d9db17537 44 #endif
mbed_official 376:cb4d9db17537 45
mbed_official 376:cb4d9db17537 46 /* Includes ------------------------------------------------------------------*/
mbed_official 376:cb4d9db17537 47 #include "stm32l0xx_hal_def.h"
mbed_official 376:cb4d9db17537 48
mbed_official 376:cb4d9db17537 49 /** @addtogroup STM32L0xx_HAL_Driver
mbed_official 376:cb4d9db17537 50 * @{
mbed_official 376:cb4d9db17537 51 */
mbed_official 376:cb4d9db17537 52
mbed_official 376:cb4d9db17537 53 /** @addtogroup SMARTCARD
mbed_official 376:cb4d9db17537 54 * @{
mbed_official 376:cb4d9db17537 55 */
mbed_official 376:cb4d9db17537 56
mbed_official 376:cb4d9db17537 57 /* Exported types ------------------------------------------------------------*/
mbed_official 376:cb4d9db17537 58 /**
mbed_official 376:cb4d9db17537 59 * @brief SMARTCARD Init Structure definition
mbed_official 376:cb4d9db17537 60 */
mbed_official 376:cb4d9db17537 61 typedef struct
mbed_official 376:cb4d9db17537 62 {
mbed_official 376:cb4d9db17537 63 uint32_t BaudRate; /*!< Configures the SmartCard communication baud rate.
mbed_official 376:cb4d9db17537 64 The baud rate register is computed using the following formula:
mbed_official 376:cb4d9db17537 65 Baud Rate Register = ((PCLKx) / ((hsc->Init.BaudRate))) */
mbed_official 376:cb4d9db17537 66
mbed_official 376:cb4d9db17537 67 uint32_t WordLength; /*!< Specifies the number of data bits transmitted or received in a frame.
mbed_official 376:cb4d9db17537 68 This parameter @ref SMARTCARD_Word_Length can only be set to 9 (8 data + 1 parity bits). */
mbed_official 376:cb4d9db17537 69
mbed_official 376:cb4d9db17537 70 uint32_t StopBits; /*!< Specifies the number of stop bits @ref SMARTCARD_Stop_Bits.
mbed_official 376:cb4d9db17537 71 Only 1.5 stop bits are authorized in SmartCard mode. */
mbed_official 376:cb4d9db17537 72
mbed_official 376:cb4d9db17537 73 uint32_t Parity; /*!< Specifies the parity mode.
mbed_official 376:cb4d9db17537 74 This parameter can be a value of @ref SMARTCARD_Parity
mbed_official 376:cb4d9db17537 75 @note The parity is enabled by default (PCE is forced to 1).
mbed_official 376:cb4d9db17537 76 Since the WordLength is forced to 8 bits + parity, M is
mbed_official 376:cb4d9db17537 77 forced to 1 and the parity bit is the 9th bit. */
mbed_official 376:cb4d9db17537 78
mbed_official 376:cb4d9db17537 79 uint32_t Mode; /*!< Specifies whether the Receive or Transmit mode is enabled or disabled.
mbed_official 376:cb4d9db17537 80 This parameter can be a value of @ref SMARTCARD_Mode */
mbed_official 376:cb4d9db17537 81
mbed_official 376:cb4d9db17537 82 uint32_t CLKPolarity; /*!< Specifies the steady state of the serial clock.
mbed_official 376:cb4d9db17537 83 This parameter can be a value of @ref SMARTCARD_Clock_Polarity */
mbed_official 376:cb4d9db17537 84
mbed_official 376:cb4d9db17537 85 uint32_t CLKPhase; /*!< Specifies the clock transition on which the bit capture is made.
mbed_official 376:cb4d9db17537 86 This parameter can be a value of @ref SMARTCARD_Clock_Phase */
mbed_official 376:cb4d9db17537 87
mbed_official 376:cb4d9db17537 88 uint32_t CLKLastBit; /*!< Specifies whether the clock pulse corresponding to the last transmitted
mbed_official 376:cb4d9db17537 89 data bit (MSB) has to be output on the SCLK pin in synchronous mode.
mbed_official 376:cb4d9db17537 90 This parameter can be a value of @ref SMARTCARD_Last_Bit */
mbed_official 376:cb4d9db17537 91
mbed_official 376:cb4d9db17537 92 uint32_t OneBitSampling; /*!< Specifies wether a single sample or three samples' majority vote is selected.
mbed_official 376:cb4d9db17537 93 Selecting the single sample method increases the receiver tolerance to clock
mbed_official 376:cb4d9db17537 94 deviations. This parameter can be a value of @ref SMARTCARD_OneBit_Sampling */
mbed_official 376:cb4d9db17537 95
mbed_official 376:cb4d9db17537 96 uint32_t Prescaler; /*!< Specifies the SmartCard Prescaler */
mbed_official 376:cb4d9db17537 97
mbed_official 376:cb4d9db17537 98 uint32_t GuardTime; /*!< Specifies the SmartCard Guard Time */
mbed_official 376:cb4d9db17537 99
mbed_official 376:cb4d9db17537 100 uint32_t NACKState; /*!< Specifies whether the SmartCard NACK transmission is enabled
mbed_official 376:cb4d9db17537 101 in case of parity error.
mbed_official 376:cb4d9db17537 102 This parameter can be a value of @ref SMARTCARD_NACK_Enable */
mbed_official 376:cb4d9db17537 103
mbed_official 376:cb4d9db17537 104 uint32_t TimeOutEnable; /*!< Specifies whether the receiver timeout is enabled.
mbed_official 376:cb4d9db17537 105 This parameter can be a value of @ref SMARTCARD_Timeout_Enable*/
mbed_official 376:cb4d9db17537 106
mbed_official 376:cb4d9db17537 107 uint32_t TimeOutValue; /*!< Specifies the receiver time out value in number of baud blocks:
mbed_official 376:cb4d9db17537 108 it is used to implement the Character Wait Time (CWT) and
mbed_official 376:cb4d9db17537 109 Block Wait Time (BWT). It is coded over 24 bits. */
mbed_official 376:cb4d9db17537 110
mbed_official 376:cb4d9db17537 111 uint32_t BlockLength; /*!< Specifies the SmartCard Block Length in T=1 Reception mode.
mbed_official 376:cb4d9db17537 112 This parameter can be any value from 0x0 to 0xFF */
mbed_official 376:cb4d9db17537 113
mbed_official 376:cb4d9db17537 114 uint32_t AutoRetryCount; /*!< Specifies the SmartCard auto-retry count (number of retries in
mbed_official 376:cb4d9db17537 115 receive and transmit mode). When set to 0, retransmission is
mbed_official 376:cb4d9db17537 116 disabled. Otherwise, its maximum value is 7 (before signalling
mbed_official 376:cb4d9db17537 117 an error) */
mbed_official 376:cb4d9db17537 118
mbed_official 376:cb4d9db17537 119 }SMARTCARD_InitTypeDef;
mbed_official 376:cb4d9db17537 120
mbed_official 376:cb4d9db17537 121 /**
mbed_official 376:cb4d9db17537 122 * @brief SMARTCARD advanced features initalization structure definition
mbed_official 376:cb4d9db17537 123 */
mbed_official 376:cb4d9db17537 124 typedef struct
mbed_official 376:cb4d9db17537 125 {
mbed_official 376:cb4d9db17537 126 uint32_t AdvFeatureInit; /*!< Specifies which advanced SMARTCARD features is initialized. Several
mbed_official 376:cb4d9db17537 127 advanced features may be initialized at the same time. This parameter
mbed_official 376:cb4d9db17537 128 can be a value of @ref SMARTCARD_Advanced_Features_Initialization_Type */
mbed_official 376:cb4d9db17537 129
mbed_official 376:cb4d9db17537 130 uint32_t TxPinLevelInvert; /*!< Specifies whether the TX pin active level is inverted.
mbed_official 376:cb4d9db17537 131 This parameter can be a value of @ref SMARTCARD_Tx_Inv */
mbed_official 376:cb4d9db17537 132
mbed_official 376:cb4d9db17537 133 uint32_t RxPinLevelInvert; /*!< Specifies whether the RX pin active level is inverted.
mbed_official 376:cb4d9db17537 134 This parameter can be a value of @ref SMARTCARD_Rx_Inv */
mbed_official 376:cb4d9db17537 135
mbed_official 376:cb4d9db17537 136 uint32_t DataInvert; /*!< Specifies whether data are inverted (positive/direct logic
mbed_official 376:cb4d9db17537 137 vs negative/inverted logic).
mbed_official 376:cb4d9db17537 138 This parameter can be a value of @ref SMARTCARD_Data_Inv */
mbed_official 376:cb4d9db17537 139
mbed_official 376:cb4d9db17537 140 uint32_t Swap; /*!< Specifies whether TX and RX pins are swapped.
mbed_official 376:cb4d9db17537 141 This parameter can be a value of @ref SMARTCARD_Rx_Tx_Swap */
mbed_official 376:cb4d9db17537 142
mbed_official 376:cb4d9db17537 143 uint32_t OverrunDisable; /*!< Specifies whether the reception overrun detection is disabled.
mbed_official 376:cb4d9db17537 144 This parameter can be a value of @ref SMARTCARD_Overrun_Disable */
mbed_official 376:cb4d9db17537 145
mbed_official 376:cb4d9db17537 146 uint32_t DMADisableonRxError; /*!< Specifies whether the DMA is disabled in case of reception error.
mbed_official 376:cb4d9db17537 147 This parameter can be a value of @ref SMARTCARD_DMA_Disable_on_Rx_Error */
mbed_official 376:cb4d9db17537 148
mbed_official 376:cb4d9db17537 149 uint32_t MSBFirst; /*!< Specifies whether MSB is sent first on UART line.
mbed_official 376:cb4d9db17537 150 This parameter can be a value of @ref SMARTCARD_MSB_First */
mbed_official 376:cb4d9db17537 151 }SMARTCARD_AdvFeatureInitTypeDef;
mbed_official 376:cb4d9db17537 152
mbed_official 376:cb4d9db17537 153 /**
mbed_official 376:cb4d9db17537 154 * @brief HAL State structures definition
mbed_official 376:cb4d9db17537 155 */
mbed_official 376:cb4d9db17537 156 typedef enum
mbed_official 376:cb4d9db17537 157 {
mbed_official 376:cb4d9db17537 158 HAL_SMARTCARD_STATE_RESET = 0x00, /*!< Peripheral is not yet Initialized */
mbed_official 376:cb4d9db17537 159 HAL_SMARTCARD_STATE_READY = 0x01, /*!< Peripheral Initialized and ready for use */
mbed_official 376:cb4d9db17537 160 HAL_SMARTCARD_STATE_BUSY = 0x02, /*!< an internal process is ongoing */
mbed_official 376:cb4d9db17537 161 HAL_SMARTCARD_STATE_BUSY_TX = 0x12, /*!< Data Transmission process is ongoing */
mbed_official 376:cb4d9db17537 162 HAL_SMARTCARD_STATE_BUSY_RX = 0x22, /*!< Data Reception process is ongoing */
mbed_official 376:cb4d9db17537 163 HAL_SMARTCARD_STATE_BUSY_TX_RX = 0x32, /*!< Data Transmission and Reception process is ongoing */
mbed_official 376:cb4d9db17537 164 HAL_SMARTCARD_STATE_TIMEOUT = 0x03, /*!< Timeout state */
mbed_official 376:cb4d9db17537 165 HAL_SMARTCARD_STATE_ERROR = 0x04 /*!< Error */
mbed_official 376:cb4d9db17537 166 }HAL_SMARTCARD_StateTypeDef;
mbed_official 376:cb4d9db17537 167
mbed_official 376:cb4d9db17537 168 /**
mbed_official 376:cb4d9db17537 169 * @brief HAL SMARTCARD Error Code structure definition
mbed_official 376:cb4d9db17537 170 */
mbed_official 376:cb4d9db17537 171 typedef enum
mbed_official 376:cb4d9db17537 172 {
mbed_official 376:cb4d9db17537 173 HAL_SMARTCARD_ERROR_NONE = 0x00, /*!< No error */
mbed_official 376:cb4d9db17537 174 HAL_SMARTCARD_ERROR_PE = 0x01, /*!< Parity error */
mbed_official 376:cb4d9db17537 175 HAL_SMARTCARD_ERROR_NE = 0x02, /*!< Noise error */
mbed_official 376:cb4d9db17537 176 HAL_SMARTCARD_ERROR_FE = 0x04, /*!< frame error */
mbed_official 376:cb4d9db17537 177 HAL_SMARTCARD_ERROR_ORE = 0x08, /*!< Overrun error */
mbed_official 376:cb4d9db17537 178 HAL_SMARTCARD_ERROR_DMA = 0x10, /*!< DMA transfer error */
mbed_official 376:cb4d9db17537 179 HAL_SMARTCARD_ERROR_RTO = 0x20 /*!< Receiver TimeOut error */
mbed_official 376:cb4d9db17537 180 }HAL_SMARTCARD_ErrorTypeDef;
mbed_official 376:cb4d9db17537 181
mbed_official 376:cb4d9db17537 182 /**
mbed_official 376:cb4d9db17537 183 * @brief SMARTCARD clock sources definition
mbed_official 376:cb4d9db17537 184 */
mbed_official 376:cb4d9db17537 185 typedef enum
mbed_official 376:cb4d9db17537 186 {
mbed_official 376:cb4d9db17537 187 SMARTCARD_CLOCKSOURCE_PCLK1 = 0x00, /*!< PCLK1 clock source */
mbed_official 376:cb4d9db17537 188 SMARTCARD_CLOCKSOURCE_PCLK2 = 0x01, /*!< PCLK2 clock source */
mbed_official 376:cb4d9db17537 189 SMARTCARD_CLOCKSOURCE_HSI = 0x02, /*!< HSI clock source */
mbed_official 376:cb4d9db17537 190 SMARTCARD_CLOCKSOURCE_SYSCLK = 0x04, /*!< SYSCLK clock source */
mbed_official 376:cb4d9db17537 191 SMARTCARD_CLOCKSOURCE_LSE = 0x08 /*!< LSE clock source */
mbed_official 376:cb4d9db17537 192 }SMARTCARD_ClockSourceTypeDef;
mbed_official 376:cb4d9db17537 193
mbed_official 376:cb4d9db17537 194 /**
mbed_official 376:cb4d9db17537 195 * @brief SMARTCARD handle Structure definition
mbed_official 376:cb4d9db17537 196 */
mbed_official 376:cb4d9db17537 197 typedef struct
mbed_official 376:cb4d9db17537 198 {
mbed_official 376:cb4d9db17537 199 USART_TypeDef *Instance; /* USART registers base address */
mbed_official 376:cb4d9db17537 200
mbed_official 376:cb4d9db17537 201 SMARTCARD_InitTypeDef Init; /* SmartCard communication parameters */
mbed_official 376:cb4d9db17537 202
mbed_official 376:cb4d9db17537 203 SMARTCARD_AdvFeatureInitTypeDef AdvancedInit; /* SmartCard advanced features initialization parameters */
mbed_official 376:cb4d9db17537 204
mbed_official 376:cb4d9db17537 205 uint8_t *pTxBuffPtr; /* Pointer to SmartCard Tx transfer Buffer */
mbed_official 376:cb4d9db17537 206
mbed_official 376:cb4d9db17537 207 uint16_t TxXferSize; /* SmartCard Tx Transfer size */
mbed_official 376:cb4d9db17537 208
mbed_official 376:cb4d9db17537 209 uint16_t TxXferCount; /* SmartCard Tx Transfer Counter */
mbed_official 376:cb4d9db17537 210
mbed_official 376:cb4d9db17537 211 uint8_t *pRxBuffPtr; /* Pointer to SmartCard Rx transfer Buffer */
mbed_official 376:cb4d9db17537 212
mbed_official 376:cb4d9db17537 213 uint16_t RxXferSize; /* SmartCard Rx Transfer size */
mbed_official 376:cb4d9db17537 214
mbed_official 376:cb4d9db17537 215 uint16_t RxXferCount; /* SmartCard Rx Transfer Counter */
mbed_official 376:cb4d9db17537 216
mbed_official 376:cb4d9db17537 217 DMA_HandleTypeDef *hdmatx; /* SmartCard Tx DMA Handle parameters */
mbed_official 376:cb4d9db17537 218
mbed_official 376:cb4d9db17537 219 DMA_HandleTypeDef *hdmarx; /* SmartCard Rx DMA Handle parameters */
mbed_official 376:cb4d9db17537 220
mbed_official 376:cb4d9db17537 221 HAL_LockTypeDef Lock; /* Locking object */
mbed_official 376:cb4d9db17537 222
mbed_official 376:cb4d9db17537 223 __IO HAL_SMARTCARD_StateTypeDef State; /* SmartCard communication state */
mbed_official 376:cb4d9db17537 224
mbed_official 376:cb4d9db17537 225 __IO HAL_SMARTCARD_ErrorTypeDef ErrorCode; /* SmartCard Error code */
mbed_official 376:cb4d9db17537 226
mbed_official 376:cb4d9db17537 227 }SMARTCARD_HandleTypeDef;
mbed_official 376:cb4d9db17537 228
mbed_official 376:cb4d9db17537 229 /* Exported constants --------------------------------------------------------*/
mbed_official 376:cb4d9db17537 230 /** @defgroup SMARTCARD_Exported_Constants
mbed_official 376:cb4d9db17537 231 * @{
mbed_official 376:cb4d9db17537 232 */
mbed_official 376:cb4d9db17537 233
mbed_official 376:cb4d9db17537 234 /** @defgroup SMARTCARD_Word_Length
mbed_official 376:cb4d9db17537 235 * @{
mbed_official 376:cb4d9db17537 236 */
mbed_official 376:cb4d9db17537 237 #define SMARTCARD_WORDLENGTH_9B ((uint32_t)USART_CR1_M_0)
mbed_official 376:cb4d9db17537 238 #define IS_SMARTCARD_WORD_LENGTH(LENGTH) ((LENGTH) == SMARTCARD_WORDLENGTH_9B)
mbed_official 376:cb4d9db17537 239 /**
mbed_official 376:cb4d9db17537 240 * @}
mbed_official 376:cb4d9db17537 241 */
mbed_official 376:cb4d9db17537 242
mbed_official 376:cb4d9db17537 243 /** @defgroup SMARTCARD_Stop_Bits
mbed_official 376:cb4d9db17537 244 * @{
mbed_official 376:cb4d9db17537 245 */
mbed_official 376:cb4d9db17537 246 #define SMARTCARD_STOPBITS_1_5 ((uint32_t)(USART_CR2_STOP))
mbed_official 376:cb4d9db17537 247 #define IS_SMARTCARD_STOPBITS(STOPBITS) ((STOPBITS) == SMARTCARD_STOPBITS_1_5)
mbed_official 376:cb4d9db17537 248 /**
mbed_official 376:cb4d9db17537 249 * @}
mbed_official 376:cb4d9db17537 250 */
mbed_official 376:cb4d9db17537 251
mbed_official 376:cb4d9db17537 252 /** @defgroup SMARTCARD_Parity
mbed_official 376:cb4d9db17537 253 * @{
mbed_official 376:cb4d9db17537 254 */
mbed_official 376:cb4d9db17537 255 #define SMARTCARD_PARITY_EVEN ((uint32_t)USART_CR1_PCE)
mbed_official 376:cb4d9db17537 256 #define SMARTCARD_PARITY_ODD ((uint32_t)(USART_CR1_PCE | USART_CR1_PS))
mbed_official 376:cb4d9db17537 257 #define IS_SMARTCARD_PARITY(PARITY) (((PARITY) == SMARTCARD_PARITY_EVEN) || \
mbed_official 376:cb4d9db17537 258 ((PARITY) == SMARTCARD_PARITY_ODD))
mbed_official 376:cb4d9db17537 259 /**
mbed_official 376:cb4d9db17537 260 * @}
mbed_official 376:cb4d9db17537 261 */
mbed_official 376:cb4d9db17537 262
mbed_official 376:cb4d9db17537 263 /** @defgroup SMARTCARD_Mode
mbed_official 376:cb4d9db17537 264 * @{
mbed_official 376:cb4d9db17537 265 */
mbed_official 376:cb4d9db17537 266 #define SMARTCARD_MODE_RX ((uint32_t)USART_CR1_RE)
mbed_official 376:cb4d9db17537 267 #define SMARTCARD_MODE_TX ((uint32_t)USART_CR1_TE)
mbed_official 376:cb4d9db17537 268 #define SMARTCARD_MODE_TX_RX ((uint32_t)(USART_CR1_TE |USART_CR1_RE))
mbed_official 376:cb4d9db17537 269 #define IS_SMARTCARD_MODE(MODE) ((((MODE) & (uint32_t)0xFFF3) == 0x00) && ((MODE) != (uint32_t)0x00))
mbed_official 376:cb4d9db17537 270 /**
mbed_official 376:cb4d9db17537 271 * @}
mbed_official 376:cb4d9db17537 272 */
mbed_official 376:cb4d9db17537 273
mbed_official 376:cb4d9db17537 274 /** @defgroup SMARTCARD_Clock_Polarity
mbed_official 376:cb4d9db17537 275 * @{
mbed_official 376:cb4d9db17537 276 */
mbed_official 376:cb4d9db17537 277 #define SMARTCARD_POLARITY_LOW ((uint32_t)0x0000)
mbed_official 376:cb4d9db17537 278 #define SMARTCARD_POLARITY_HIGH ((uint32_t)USART_CR2_CPOL)
mbed_official 376:cb4d9db17537 279 #define IS_SMARTCARD_POLARITY(CPOL) (((CPOL) == SMARTCARD_POLARITY_LOW) || ((CPOL) == SMARTCARD_POLARITY_HIGH))
mbed_official 376:cb4d9db17537 280 /**
mbed_official 376:cb4d9db17537 281 * @}
mbed_official 376:cb4d9db17537 282 */
mbed_official 376:cb4d9db17537 283
mbed_official 376:cb4d9db17537 284 /** @defgroup SMARTCARD_Clock_Phase
mbed_official 376:cb4d9db17537 285 * @{
mbed_official 376:cb4d9db17537 286 */
mbed_official 376:cb4d9db17537 287 #define SMARTCARD_PHASE_1EDGE ((uint32_t)0x0000)
mbed_official 376:cb4d9db17537 288 #define SMARTCARD_PHASE_2EDGE ((uint32_t)USART_CR2_CPHA)
mbed_official 376:cb4d9db17537 289 #define IS_SMARTCARD_PHASE(CPHA) (((CPHA) == SMARTCARD_PHASE_1EDGE) || ((CPHA) == SMARTCARD_PHASE_2EDGE))
mbed_official 376:cb4d9db17537 290 /**
mbed_official 376:cb4d9db17537 291 * @}
mbed_official 376:cb4d9db17537 292 */
mbed_official 376:cb4d9db17537 293
mbed_official 376:cb4d9db17537 294 /** @defgroup SMARTCARD_Last_Bit
mbed_official 376:cb4d9db17537 295 * @{
mbed_official 376:cb4d9db17537 296 */
mbed_official 376:cb4d9db17537 297 #define SMARTCARD_LASTBIT_DISABLE ((uint32_t)0x0000)
mbed_official 376:cb4d9db17537 298 #define SMARTCARD_LASTBIT_ENABLE ((uint32_t)USART_CR2_LBCL)
mbed_official 376:cb4d9db17537 299 #define IS_SMARTCARD_LASTBIT(LASTBIT) (((LASTBIT) == SMARTCARD_LASTBIT_DISABLE) || \
mbed_official 376:cb4d9db17537 300 ((LASTBIT) == SMARTCARD_LASTBIT_ENABLE))
mbed_official 376:cb4d9db17537 301 /**
mbed_official 376:cb4d9db17537 302 * @}
mbed_official 376:cb4d9db17537 303 */
mbed_official 376:cb4d9db17537 304
mbed_official 376:cb4d9db17537 305 /** @defgroup SMARTCARD_OneBit_Sampling
mbed_official 376:cb4d9db17537 306 * @{
mbed_official 376:cb4d9db17537 307 */
mbed_official 376:cb4d9db17537 308 #define SMARTCARD_ONEBIT_SAMPLING_DISABLED ((uint32_t)0x0000)
mbed_official 376:cb4d9db17537 309 #define SMARTCARD_ONEBIT_SAMPLING_ENABLED ((uint32_t)USART_CR3_ONEBIT)
mbed_official 376:cb4d9db17537 310 #define IS_SMARTCARD_ONEBIT_SAMPLING(ONEBIT) (((ONEBIT) == SMARTCARD_ONEBIT_SAMPLING_DISABLED) || \
mbed_official 376:cb4d9db17537 311 ((ONEBIT) == SMARTCARD_ONEBIT_SAMPLING_ENABLED))
mbed_official 376:cb4d9db17537 312 /**
mbed_official 376:cb4d9db17537 313 * @}
mbed_official 376:cb4d9db17537 314 */
mbed_official 376:cb4d9db17537 315
mbed_official 376:cb4d9db17537 316
mbed_official 376:cb4d9db17537 317 /** @defgroup SMARTCARD_NACK_Enable
mbed_official 376:cb4d9db17537 318 * @{
mbed_official 376:cb4d9db17537 319 */
mbed_official 376:cb4d9db17537 320 #define SMARTCARD_NACK_ENABLED ((uint32_t)USART_CR3_NACK)
mbed_official 376:cb4d9db17537 321 #define SMARTCARD_NACK_DISABLED ((uint32_t)0x0000)
mbed_official 376:cb4d9db17537 322 #define IS_SMARTCARD_NACK(NACK) (((NACK) == SMARTCARD_NACK_ENABLED) || \
mbed_official 376:cb4d9db17537 323 ((NACK) == SMARTCARD_NACK_DISABLED))
mbed_official 376:cb4d9db17537 324 /**
mbed_official 376:cb4d9db17537 325 * @}
mbed_official 376:cb4d9db17537 326 */
mbed_official 376:cb4d9db17537 327
mbed_official 376:cb4d9db17537 328 /** @defgroup SMARTCARD_Timeout_Enable
mbed_official 376:cb4d9db17537 329 * @{
mbed_official 376:cb4d9db17537 330 */
mbed_official 376:cb4d9db17537 331 #define SMARTCARD_TIMEOUT_DISABLED ((uint32_t)0x00000000)
mbed_official 376:cb4d9db17537 332 #define SMARTCARD_TIMEOUT_ENABLED ((uint32_t)USART_CR2_RTOEN)
mbed_official 376:cb4d9db17537 333 #define IS_SMARTCARD_TIMEOUT(TIMEOUT) (((TIMEOUT) == SMARTCARD_TIMEOUT_DISABLED) || \
mbed_official 376:cb4d9db17537 334 ((TIMEOUT) == SMARTCARD_TIMEOUT_ENABLED))
mbed_official 376:cb4d9db17537 335 /**
mbed_official 376:cb4d9db17537 336 * @}
mbed_official 376:cb4d9db17537 337 */
mbed_official 376:cb4d9db17537 338
mbed_official 376:cb4d9db17537 339 /** @defgroup SmartCard_DMA_Requests
mbed_official 376:cb4d9db17537 340 * @{
mbed_official 376:cb4d9db17537 341 */
mbed_official 376:cb4d9db17537 342
mbed_official 376:cb4d9db17537 343 #define SMARTCARD_DMAREQ_TX ((uint32_t)USART_CR3_DMAT)
mbed_official 376:cb4d9db17537 344 #define SMARTCARD_DMAREQ_RX ((uint32_t)USART_CR3_DMAR)
mbed_official 376:cb4d9db17537 345
mbed_official 376:cb4d9db17537 346 /**
mbed_official 376:cb4d9db17537 347 * @}
mbed_official 376:cb4d9db17537 348 */
mbed_official 376:cb4d9db17537 349
mbed_official 376:cb4d9db17537 350 /** @defgroup SMARTCARD_Advanced_Features_Initialization_Type
mbed_official 376:cb4d9db17537 351 * @{
mbed_official 376:cb4d9db17537 352 */
mbed_official 376:cb4d9db17537 353 #define SMARTCARD_ADVFEATURE_NO_INIT ((uint32_t)0x00000000)
mbed_official 376:cb4d9db17537 354 #define SMARTCARD_ADVFEATURE_TXINVERT_INIT ((uint32_t)0x00000001)
mbed_official 376:cb4d9db17537 355 #define SMARTCARD_ADVFEATURE_RXINVERT_INIT ((uint32_t)0x00000002)
mbed_official 376:cb4d9db17537 356 #define SMARTCARD_ADVFEATURE_DATAINVERT_INIT ((uint32_t)0x00000004)
mbed_official 376:cb4d9db17537 357 #define SMARTCARD_ADVFEATURE_SWAP_INIT ((uint32_t)0x00000008)
mbed_official 376:cb4d9db17537 358 #define SMARTCARD_ADVFEATURE_RXOVERRUNDISABLE_INIT ((uint32_t)0x00000010)
mbed_official 376:cb4d9db17537 359 #define SMARTCARD_ADVFEATURE_DMADISABLEONERROR_INIT ((uint32_t)0x00000020)
mbed_official 376:cb4d9db17537 360 #define SMARTCARD_ADVFEATURE_MSBFIRST_INIT ((uint32_t)0x00000080)
mbed_official 376:cb4d9db17537 361 #define IS_SMARTCARD_ADVFEATURE_INIT(INIT) ((INIT) <= (SMARTCARD_ADVFEATURE_NO_INIT | \
mbed_official 376:cb4d9db17537 362 SMARTCARD_ADVFEATURE_TXINVERT_INIT | \
mbed_official 376:cb4d9db17537 363 SMARTCARD_ADVFEATURE_RXINVERT_INIT | \
mbed_official 376:cb4d9db17537 364 SMARTCARD_ADVFEATURE_DATAINVERT_INIT | \
mbed_official 376:cb4d9db17537 365 SMARTCARD_ADVFEATURE_SWAP_INIT | \
mbed_official 376:cb4d9db17537 366 SMARTCARD_ADVFEATURE_RXOVERRUNDISABLE_INIT | \
mbed_official 376:cb4d9db17537 367 SMARTCARD_ADVFEATURE_DMADISABLEONERROR_INIT | \
mbed_official 376:cb4d9db17537 368 SMARTCARD_ADVFEATURE_MSBFIRST_INIT))
mbed_official 376:cb4d9db17537 369 /**
mbed_official 376:cb4d9db17537 370 * @}
mbed_official 376:cb4d9db17537 371 */
mbed_official 376:cb4d9db17537 372
mbed_official 376:cb4d9db17537 373 /** @defgroup SMARTCARD_Tx_Inv
mbed_official 376:cb4d9db17537 374 * @{
mbed_official 376:cb4d9db17537 375 */
mbed_official 376:cb4d9db17537 376 #define SMARTCARD_ADVFEATURE_TXINV_DISABLE ((uint32_t)0x00000000)
mbed_official 376:cb4d9db17537 377 #define SMARTCARD_ADVFEATURE_TXINV_ENABLE ((uint32_t)USART_CR2_TXINV)
mbed_official 376:cb4d9db17537 378 #define IS_SMARTCARD_ADVFEATURE_TXINV(TXINV) (((TXINV) == SMARTCARD_ADVFEATURE_TXINV_DISABLE) || \
mbed_official 376:cb4d9db17537 379 ((TXINV) == SMARTCARD_ADVFEATURE_TXINV_ENABLE))
mbed_official 376:cb4d9db17537 380 /**
mbed_official 376:cb4d9db17537 381 * @}
mbed_official 376:cb4d9db17537 382 */
mbed_official 376:cb4d9db17537 383
mbed_official 376:cb4d9db17537 384 /** @defgroup SMARTCARD_Rx_Inv
mbed_official 376:cb4d9db17537 385 * @{
mbed_official 376:cb4d9db17537 386 */
mbed_official 376:cb4d9db17537 387 #define SMARTCARD_ADVFEATURE_RXINV_DISABLE ((uint32_t)0x00000000)
mbed_official 376:cb4d9db17537 388 #define SMARTCARD_ADVFEATURE_RXINV_ENABLE ((uint32_t)USART_CR2_RXINV)
mbed_official 376:cb4d9db17537 389 #define IS_SMARTCARD_ADVFEATURE_RXINV(RXINV) (((RXINV) == SMARTCARD_ADVFEATURE_RXINV_DISABLE) || \
mbed_official 376:cb4d9db17537 390 ((RXINV) == SMARTCARD_ADVFEATURE_RXINV_ENABLE))
mbed_official 376:cb4d9db17537 391 /**
mbed_official 376:cb4d9db17537 392 * @}
mbed_official 376:cb4d9db17537 393 */
mbed_official 376:cb4d9db17537 394
mbed_official 376:cb4d9db17537 395 /** @defgroup SMARTCARD_Data_Inv
mbed_official 376:cb4d9db17537 396 * @{
mbed_official 376:cb4d9db17537 397 */
mbed_official 376:cb4d9db17537 398 #define SMARTCARD_ADVFEATURE_DATAINV_DISABLE ((uint32_t)0x00000000)
mbed_official 376:cb4d9db17537 399 #define SMARTCARD_ADVFEATURE_DATAINV_ENABLE ((uint32_t)USART_CR2_DATAINV)
mbed_official 376:cb4d9db17537 400 #define IS_SMARTCARD_ADVFEATURE_DATAINV(DATAINV) (((DATAINV) == SMARTCARD_ADVFEATURE_DATAINV_DISABLE) || \
mbed_official 376:cb4d9db17537 401 ((DATAINV) == SMARTCARD_ADVFEATURE_DATAINV_ENABLE))
mbed_official 376:cb4d9db17537 402 /**
mbed_official 376:cb4d9db17537 403 * @}
mbed_official 376:cb4d9db17537 404 */
mbed_official 376:cb4d9db17537 405
mbed_official 376:cb4d9db17537 406 /** @defgroup SMARTCARD_Rx_Tx_Swap
mbed_official 376:cb4d9db17537 407 * @{
mbed_official 376:cb4d9db17537 408 */
mbed_official 376:cb4d9db17537 409 #define SMARTCARD_ADVFEATURE_SWAP_DISABLE ((uint32_t)0x00000000)
mbed_official 376:cb4d9db17537 410 #define SMARTCARD_ADVFEATURE_SWAP_ENABLE ((uint32_t)USART_CR2_SWAP)
mbed_official 376:cb4d9db17537 411 #define IS_SMARTCARD_ADVFEATURE_SWAP(SWAP) (((SWAP) == SMARTCARD_ADVFEATURE_SWAP_DISABLE) || \
mbed_official 376:cb4d9db17537 412 ((SWAP) == SMARTCARD_ADVFEATURE_SWAP_ENABLE))
mbed_official 376:cb4d9db17537 413 /**
mbed_official 376:cb4d9db17537 414 * @}
mbed_official 376:cb4d9db17537 415 */
mbed_official 376:cb4d9db17537 416
mbed_official 376:cb4d9db17537 417 /** @defgroup SMARTCARD_Overrun_Disable
mbed_official 376:cb4d9db17537 418 * @{
mbed_official 376:cb4d9db17537 419 */
mbed_official 376:cb4d9db17537 420 #define SMARTCARD_ADVFEATURE_OVERRUN_ENABLE ((uint32_t)0x00000000)
mbed_official 376:cb4d9db17537 421 #define SMARTCARD_ADVFEATURE_OVERRUN_DISABLE ((uint32_t)USART_CR3_OVRDIS)
mbed_official 376:cb4d9db17537 422 #define IS_SMARTCARD_OVERRUN(OVERRUN) (((OVERRUN) == SMARTCARD_ADVFEATURE_OVERRUN_ENABLE) || \
mbed_official 376:cb4d9db17537 423 ((OVERRUN) == SMARTCARD_ADVFEATURE_OVERRUN_DISABLE))
mbed_official 376:cb4d9db17537 424 /**
mbed_official 376:cb4d9db17537 425 * @}
mbed_official 376:cb4d9db17537 426 */
mbed_official 376:cb4d9db17537 427
mbed_official 376:cb4d9db17537 428 /** @defgroup SMARTCARD_DMA_Disable_on_Rx_Error
mbed_official 376:cb4d9db17537 429 * @{
mbed_official 376:cb4d9db17537 430 */
mbed_official 376:cb4d9db17537 431 #define SMARTCARD_ADVFEATURE_DMA_ENABLEONRXERROR ((uint32_t)0x00000000)
mbed_official 376:cb4d9db17537 432 #define SMARTCARD_ADVFEATURE_DMA_DISABLEONRXERROR ((uint32_t)USART_CR3_DDRE)
mbed_official 376:cb4d9db17537 433 #define IS_SMARTCARD_ADVFEATURE_DMAONRXERROR(DMA) (((DMA) == SMARTCARD_ADVFEATURE_DMA_ENABLEONRXERROR) || \
mbed_official 376:cb4d9db17537 434 ((DMA) == SMARTCARD_ADVFEATURE_DMA_DISABLEONRXERROR))
mbed_official 376:cb4d9db17537 435 /**
mbed_official 376:cb4d9db17537 436 * @}
mbed_official 376:cb4d9db17537 437 */
mbed_official 376:cb4d9db17537 438
mbed_official 376:cb4d9db17537 439 /** @defgroup SMARTCARD_MSB_First
mbed_official 376:cb4d9db17537 440 * @{
mbed_official 376:cb4d9db17537 441 */
mbed_official 376:cb4d9db17537 442 #define SMARTCARD_ADVFEATURE_MSBFIRST_DISABLE ((uint32_t)0x00000000)
mbed_official 376:cb4d9db17537 443 #define SMARTCARD_ADVFEATURE_MSBFIRST_ENABLE ((uint32_t)USART_CR2_MSBFIRST)
mbed_official 376:cb4d9db17537 444 #define IS_SMARTCARD_ADVFEATURE_MSBFIRST(MSBFIRST) (((MSBFIRST) == SMARTCARD_ADVFEATURE_MSBFIRST_DISABLE) || \
mbed_official 376:cb4d9db17537 445 ((MSBFIRST) == SMARTCARD_ADVFEATURE_MSBFIRST_ENABLE))
mbed_official 376:cb4d9db17537 446 /**
mbed_official 376:cb4d9db17537 447 * @}
mbed_official 376:cb4d9db17537 448 */
mbed_official 376:cb4d9db17537 449
mbed_official 376:cb4d9db17537 450 /** @defgroup SmartCard_Flags
mbed_official 376:cb4d9db17537 451 * Elements values convention: 0xXXXX
mbed_official 376:cb4d9db17537 452 * - 0xXXXX : Flag mask in the ISR register
mbed_official 376:cb4d9db17537 453 * @{
mbed_official 376:cb4d9db17537 454 */
mbed_official 376:cb4d9db17537 455 #define SMARTCARD_FLAG_REACK ((uint32_t)0x00400000)
mbed_official 376:cb4d9db17537 456 #define SMARTCARD_FLAG_TEACK ((uint32_t)0x00200000)
mbed_official 376:cb4d9db17537 457 #define SMARTCARD_FLAG_BUSY ((uint32_t)0x00010000)
mbed_official 376:cb4d9db17537 458 #define SMARTCARD_FLAG_EOBF ((uint32_t)0x00001000)
mbed_official 376:cb4d9db17537 459 #define SMARTCARD_FLAG_RTOF ((uint32_t)0x00000800)
mbed_official 376:cb4d9db17537 460 #define SMARTCARD_FLAG_TXE ((uint32_t)0x00000080)
mbed_official 376:cb4d9db17537 461 #define SMARTCARD_FLAG_TC ((uint32_t)0x00000040)
mbed_official 376:cb4d9db17537 462 #define SMARTCARD_FLAG_RXNE ((uint32_t)0x00000020)
mbed_official 376:cb4d9db17537 463 #define SMARTCARD_FLAG_ORE ((uint32_t)0x00000008)
mbed_official 376:cb4d9db17537 464 #define SMARTCARD_FLAG_NE ((uint32_t)0x00000004)
mbed_official 376:cb4d9db17537 465 #define SMARTCARD_FLAG_FE ((uint32_t)0x00000002)
mbed_official 376:cb4d9db17537 466 #define SMARTCARD_FLAG_PE ((uint32_t)0x00000001)
mbed_official 376:cb4d9db17537 467 /**
mbed_official 376:cb4d9db17537 468 * @}
mbed_official 376:cb4d9db17537 469 */
mbed_official 376:cb4d9db17537 470
mbed_official 376:cb4d9db17537 471 /** @defgroup SMARTCARD_Interrupt_definition
mbed_official 376:cb4d9db17537 472 * Elements values convention: 0000ZZZZ0XXYYYYYb
mbed_official 376:cb4d9db17537 473 * - YYYYY : Interrupt source position in the XX register (5bits)
mbed_official 376:cb4d9db17537 474 * - XX : Interrupt source register (2bits)
mbed_official 376:cb4d9db17537 475 * - 01: CR1 register
mbed_official 376:cb4d9db17537 476 * - 10: CR2 register
mbed_official 376:cb4d9db17537 477 * - 11: CR3 register
mbed_official 376:cb4d9db17537 478 * - ZZZZ : Flag position in the ISR register(4bits)
mbed_official 376:cb4d9db17537 479 * @{
mbed_official 376:cb4d9db17537 480 */
mbed_official 376:cb4d9db17537 481
mbed_official 376:cb4d9db17537 482 #define SMARTCARD_IT_PE ((uint16_t)0x0028)
mbed_official 376:cb4d9db17537 483 #define SMARTCARD_IT_TXE ((uint16_t)0x0727)
mbed_official 376:cb4d9db17537 484 #define SMARTCARD_IT_TC ((uint16_t)0x0626)
mbed_official 376:cb4d9db17537 485 #define SMARTCARD_IT_RXNE ((uint16_t)0x0525)
mbed_official 376:cb4d9db17537 486
mbed_official 376:cb4d9db17537 487 #define SMARTCARD_IT_ERR ((uint16_t)0x0060)
mbed_official 376:cb4d9db17537 488 #define SMARTCARD_IT_ORE ((uint16_t)0x0300)
mbed_official 376:cb4d9db17537 489 #define SMARTCARD_IT_NE ((uint16_t)0x0200)
mbed_official 376:cb4d9db17537 490 #define SMARTCARD_IT_FE ((uint16_t)0x0100)
mbed_official 376:cb4d9db17537 491
mbed_official 376:cb4d9db17537 492 #define SMARTCARD_IT_EOB ((uint16_t)0x0C3B)
mbed_official 376:cb4d9db17537 493 #define SMARTCARD_IT_RTO ((uint16_t)0x0B3A)
mbed_official 376:cb4d9db17537 494 /**
mbed_official 376:cb4d9db17537 495 * @}
mbed_official 376:cb4d9db17537 496 */
mbed_official 376:cb4d9db17537 497
mbed_official 376:cb4d9db17537 498
mbed_official 376:cb4d9db17537 499 /** @defgroup SMARTCARD_IT_CLEAR_Flags
mbed_official 376:cb4d9db17537 500 * @{
mbed_official 376:cb4d9db17537 501 */
mbed_official 376:cb4d9db17537 502 #define SMARTCARD_CLEAR_PEF USART_ICR_PECF /*!< Parity Error Clear Flag */
mbed_official 376:cb4d9db17537 503 #define SMARTCARD_CLEAR_FEF USART_ICR_FECF /*!< Framing Error Clear Flag */
mbed_official 376:cb4d9db17537 504 #define SMARTCARD_CLEAR_NEF USART_ICR_NCF /*!< Noise detected Clear Flag */
mbed_official 376:cb4d9db17537 505 #define SMARTCARD_CLEAR_OREF USART_ICR_ORECF /*!< OverRun Error Clear Flag */
mbed_official 376:cb4d9db17537 506 #define SMARTCARD_CLEAR_TCF USART_ICR_TCCF /*!< Transmission Complete Clear Flag */
mbed_official 376:cb4d9db17537 507 #define SMARTCARD_CLEAR_RTOF USART_ICR_RTOCF /*!< Receiver Time Out Clear Flag */
mbed_official 376:cb4d9db17537 508 #define SMARTCARD_CLEAR_EOBF USART_ICR_EOBCF /*!< End Of Block Clear Flag */
mbed_official 376:cb4d9db17537 509 /**
mbed_official 376:cb4d9db17537 510 * @}
mbed_official 376:cb4d9db17537 511 */
mbed_official 376:cb4d9db17537 512
mbed_official 376:cb4d9db17537 513 /** @defgroup SMARTCARD_Request_Parameters
mbed_official 376:cb4d9db17537 514 * @{
mbed_official 376:cb4d9db17537 515 */
mbed_official 376:cb4d9db17537 516 #define SMARTCARD_RXDATA_FLUSH_REQUEST ((uint32_t)USART_RQR_RXFRQ) /*!< Receive Data flush Request */
mbed_official 376:cb4d9db17537 517 #define SMARTCARD_TXDATA_FLUSH_REQUEST ((uint32_t)USART_RQR_TXFRQ) /*!< Transmit data flush Request */
mbed_official 376:cb4d9db17537 518 #define IS_SMARTCARD_REQUEST_PARAMETER(PARAM) (((PARAM) == SMARTCARD_RXDATA_FLUSH_REQUEST) || \
mbed_official 376:cb4d9db17537 519 ((PARAM) == SMARTCARD_TXDATA_FLUSH_REQUEST))
mbed_official 376:cb4d9db17537 520 /**
mbed_official 376:cb4d9db17537 521 * @}
mbed_official 376:cb4d9db17537 522 */
mbed_official 376:cb4d9db17537 523
mbed_official 376:cb4d9db17537 524
mbed_official 376:cb4d9db17537 525 /** @defgroup SMARTCARD_CR3_SCAR_CNT_LSB_POS
mbed_official 376:cb4d9db17537 526 * @{
mbed_official 376:cb4d9db17537 527 */
mbed_official 376:cb4d9db17537 528 #define SMARTCARD_CR3_SCARCNT_LSB_POS ((uint32_t) 17)
mbed_official 376:cb4d9db17537 529 /**
mbed_official 376:cb4d9db17537 530 * @}
mbed_official 376:cb4d9db17537 531 */
mbed_official 376:cb4d9db17537 532
mbed_official 376:cb4d9db17537 533 /** @defgroup SMARTCARD_GTPR_GT_LSBPOS
mbed_official 376:cb4d9db17537 534 * @{
mbed_official 376:cb4d9db17537 535 */
mbed_official 376:cb4d9db17537 536 #define SMARTCARD_GTPR_GT_LSB_POS ((uint32_t) 8)
mbed_official 376:cb4d9db17537 537 /**
mbed_official 376:cb4d9db17537 538 * @}
mbed_official 376:cb4d9db17537 539 */
mbed_official 376:cb4d9db17537 540
mbed_official 376:cb4d9db17537 541 /** @defgroup SMARTCARD_RTOR_BLEN_LSBPOS
mbed_official 376:cb4d9db17537 542 * @{
mbed_official 376:cb4d9db17537 543 */
mbed_official 376:cb4d9db17537 544 #define SMARTCARD_RTOR_BLEN_LSB_POS ((uint32_t) 24)
mbed_official 376:cb4d9db17537 545 /**
mbed_official 376:cb4d9db17537 546 * @}
mbed_official 376:cb4d9db17537 547 */
mbed_official 376:cb4d9db17537 548
mbed_official 376:cb4d9db17537 549 /** @defgroup SMARTCARD_Interruption_Mask
mbed_official 376:cb4d9db17537 550 * @{
mbed_official 376:cb4d9db17537 551 */
mbed_official 376:cb4d9db17537 552 #define SMARTCARD_IT_MASK ((uint16_t)0x001F)
mbed_official 376:cb4d9db17537 553 /**
mbed_official 376:cb4d9db17537 554 * @}
mbed_official 376:cb4d9db17537 555 */
mbed_official 376:cb4d9db17537 556
mbed_official 376:cb4d9db17537 557 /**
mbed_official 376:cb4d9db17537 558 * @}
mbed_official 376:cb4d9db17537 559 */
mbed_official 376:cb4d9db17537 560
mbed_official 376:cb4d9db17537 561 /* Exported macro ------------------------------------------------------------*/
mbed_official 376:cb4d9db17537 562 /** @defgroup SMARTCARD_Exported_Macros
mbed_official 376:cb4d9db17537 563 * @{
mbed_official 376:cb4d9db17537 564 */
mbed_official 376:cb4d9db17537 565
mbed_official 376:cb4d9db17537 566 /** @brief Reset SMARTCARD handle state
mbed_official 376:cb4d9db17537 567 * @param __HANDLE__: specifies the SMARTCARD Handle.
mbed_official 376:cb4d9db17537 568 * The Handle Instance which can be USART1 or USART2
mbed_official 376:cb4d9db17537 569 * @retval None
mbed_official 376:cb4d9db17537 570 */
mbed_official 376:cb4d9db17537 571 #define __HAL_SMARTCARD_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_SMARTCARD_STATE_RESET)
mbed_official 376:cb4d9db17537 572
mbed_official 376:cb4d9db17537 573 /** @brief Flushs the Smartcard DR register
mbed_official 376:cb4d9db17537 574 * @param __HANDLE__: specifies the SMARTCARD Handle.
mbed_official 376:cb4d9db17537 575 * The Handle Instance which can be USART1 or USART2.
mbed_official 376:cb4d9db17537 576 * @retval None
mbed_official 376:cb4d9db17537 577 */
mbed_official 376:cb4d9db17537 578 #define __HAL_SMARTCARD_FLUSH_DRREGISTER(__HANDLE__) (__HAL_SMARTCARD_SEND_REQ((__HANDLE__), SMARTCARD_RXDATA_FLUSH_REQUEST))
mbed_official 376:cb4d9db17537 579
mbed_official 376:cb4d9db17537 580 /** @brief Checks whether the specified Smartcard flag is set or not.
mbed_official 376:cb4d9db17537 581 * @param __HANDLE__: specifies the SMARTCARD Handle.
mbed_official 376:cb4d9db17537 582 * The Handle Instance which can be USART1 or USART2.
mbed_official 376:cb4d9db17537 583 * @param __FLAG__: specifies the flag to check.
mbed_official 376:cb4d9db17537 584 * This parameter can be one of the following values:
mbed_official 376:cb4d9db17537 585 * @arg SMARTCARD_FLAG_REACK: Receive enable ackowledge flag
mbed_official 376:cb4d9db17537 586 * @arg SMARTCARD_FLAG_TEACK: Transmit enable ackowledge flag
mbed_official 376:cb4d9db17537 587 * @arg SMARTCARD_FLAG_BUSY: Busy flag
mbed_official 376:cb4d9db17537 588 * @arg SMARTCARD_FLAG_EOBF: End of block flag
mbed_official 376:cb4d9db17537 589 * @arg SMARTCARD_FLAG_RTOF: Receiver timeout flag
mbed_official 376:cb4d9db17537 590 * @arg SMARTCARD_FLAG_TXE: Transmit data register empty flag
mbed_official 376:cb4d9db17537 591 * @arg SMARTCARD_FLAG_TC: Transmission Complete flag
mbed_official 376:cb4d9db17537 592 * @arg SMARTCARD_FLAG_RXNE: Receive data register not empty flag
mbed_official 376:cb4d9db17537 593 * @arg SMARTCARD_FLAG_ORE: OverRun Error flag
mbed_official 376:cb4d9db17537 594 * @arg SMARTCARD_FLAG_NE: Noise Error flag
mbed_official 376:cb4d9db17537 595 * @arg SMARTCARD_FLAG_FE: Framing Error flag
mbed_official 376:cb4d9db17537 596 * @arg SMARTCARD_FLAG_PE: Parity Error flag
mbed_official 376:cb4d9db17537 597 * @retval The new state of __FLAG__ (TRUE or FALSE).
mbed_official 376:cb4d9db17537 598 */
mbed_official 376:cb4d9db17537 599 #define __HAL_SMARTCARD_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->ISR & (__FLAG__)) == (__FLAG__))
mbed_official 376:cb4d9db17537 600
mbed_official 376:cb4d9db17537 601 /** @brief Enables the specified SmartCard interrupt.
mbed_official 376:cb4d9db17537 602 * @param __HANDLE__: specifies the SMARTCARD Handle.
mbed_official 376:cb4d9db17537 603 * The Handle Instance which can be USART1 or USART2.
mbed_official 376:cb4d9db17537 604 * @param __INTERRUPT__: specifies the SMARTCARD interrupt to enable.
mbed_official 376:cb4d9db17537 605 * This parameter can be one of the following values:
mbed_official 376:cb4d9db17537 606 * @arg SMARTCARD_IT_EOBF: End Of Block interrupt
mbed_official 376:cb4d9db17537 607 * @arg SMARTCARD_IT_RTOF: Receive TimeOut interrupt
mbed_official 376:cb4d9db17537 608 * @arg SMARTCARD_IT_TXE: Transmit Data Register empty interrupt
mbed_official 376:cb4d9db17537 609 * @arg SMARTCARD_IT_TC: Transmission complete interrupt
mbed_official 376:cb4d9db17537 610 * @arg SMARTCARD_IT_RXNE: Receive Data register not empty interrupt
mbed_official 376:cb4d9db17537 611 * @arg SMARTCARD_IT_PE: Parity Error interrupt
mbed_official 376:cb4d9db17537 612 * @arg SMARTCARD_IT_ERR: Error interrupt(Frame error, noise error, overrun error)
mbed_official 376:cb4d9db17537 613 * @retval None
mbed_official 376:cb4d9db17537 614 */
mbed_official 376:cb4d9db17537 615 #define __HAL_SMARTCARD_ENABLE_IT(__HANDLE__, __INTERRUPT__) (((((uint8_t)(__INTERRUPT__)) >> 5) == 1)? ((__HANDLE__)->Instance->CR1 |= (1 << ((__INTERRUPT__) & SMARTCARD_IT_MASK))): \
mbed_official 376:cb4d9db17537 616 ((((uint8_t)(__INTERRUPT__)) >> 5) == 2)? ((__HANDLE__)->Instance->CR2 |= (1 << ((__INTERRUPT__) & SMARTCARD_IT_MASK))): \
mbed_official 376:cb4d9db17537 617 ((__HANDLE__)->Instance->CR3 |= (1 << ((__INTERRUPT__) & SMARTCARD_IT_MASK))))
mbed_official 376:cb4d9db17537 618 /** @brief Disables the specified SmartCard interrupt.
mbed_official 376:cb4d9db17537 619 * @param __HANDLE__: specifies the SMARTCARD Handle.
mbed_official 376:cb4d9db17537 620 * The Handle Instance which can be USART1 or USART2.
mbed_official 376:cb4d9db17537 621 * @param __INTERRUPT__: specifies the SMARTCARD interrupt to enable.
mbed_official 376:cb4d9db17537 622 * This parameter can be one of the following values:
mbed_official 376:cb4d9db17537 623 * @arg SMARTCARD_IT_EOBF: End Of Block interrupt
mbed_official 376:cb4d9db17537 624 * @arg SMARTCARD_IT_RTOF: Receive TimeOut interrupt
mbed_official 376:cb4d9db17537 625 * @arg SMARTCARD_IT_TXE: Transmit Data Register empty interrupt
mbed_official 376:cb4d9db17537 626 * @arg SMARTCARD_IT_TC: Transmission complete interrupt
mbed_official 376:cb4d9db17537 627 * @arg SMARTCARD_IT_RXNE: Receive Data register not empty interrupt
mbed_official 376:cb4d9db17537 628 * @arg SMARTCARD_IT_PE: Parity Error interrupt
mbed_official 376:cb4d9db17537 629 * @arg SMARTCARD_IT_ERR: Error interrupt(Frame error, noise error, overrun error)
mbed_official 376:cb4d9db17537 630 * @retval None
mbed_official 376:cb4d9db17537 631 */
mbed_official 376:cb4d9db17537 632 #define __HAL_SMARTCARD_DISABLE_IT(__HANDLE__, __INTERRUPT__) (((((uint8_t)(__INTERRUPT__)) >> 5) == 1)? ((__HANDLE__)->Instance->CR1 &= ~ ((uint32_t)1 << ((__INTERRUPT__) & SMARTCARD_IT_MASK))): \
mbed_official 376:cb4d9db17537 633 ((((uint8_t)(__INTERRUPT__)) >> 5) == 2)? ((__HANDLE__)->Instance->CR2 &= ~ ((uint32_t)1 << ((__INTERRUPT__) & SMARTCARD_IT_MASK))): \
mbed_official 376:cb4d9db17537 634 ((__HANDLE__)->Instance->CR3 &= ~ ((uint32_t)1 << ((__INTERRUPT__) & SMARTCARD_IT_MASK))))
mbed_official 376:cb4d9db17537 635
mbed_official 376:cb4d9db17537 636 /** @brief Checks whether the specified SmartCard interrupt has occurred or not.
mbed_official 376:cb4d9db17537 637 * @param __HANDLE__: specifies the SMARTCARD Handle.
mbed_official 376:cb4d9db17537 638 * The Handle Instance which can be USART1 or USART2.
mbed_official 376:cb4d9db17537 639 * @param __IT__: specifies the SMARTCARD interrupt to check.
mbed_official 376:cb4d9db17537 640 * This parameter can be one of the following values:
mbed_official 376:cb4d9db17537 641 * @arg SMARTCARD_IT_EOBF: End Of Block interrupt
mbed_official 376:cb4d9db17537 642 * @arg SMARTCARD_IT_RTOF: Receive TimeOut interrupt
mbed_official 376:cb4d9db17537 643 * @arg SMARTCARD_IT_TXE: Transmit Data Register empty interrupt
mbed_official 376:cb4d9db17537 644 * @arg SMARTCARD_IT_TC: Transmission complete interrupt
mbed_official 376:cb4d9db17537 645 * @arg SMARTCARD_IT_RXNE: Receive Data register not empty interrupt
mbed_official 376:cb4d9db17537 646 * @arg SMARTCARD_IT_ORE: OverRun Error interrupt
mbed_official 376:cb4d9db17537 647 * @arg SMARTCARD_IT_NE: Noise Error interrupt
mbed_official 376:cb4d9db17537 648 * @arg SMARTCARD_IT_FE: Framing Error interrupt
mbed_official 376:cb4d9db17537 649 * @arg SMARTCARD_IT_PE: Parity Error interrupt
mbed_official 376:cb4d9db17537 650 * @retval The new state of __IT__ (TRUE or FALSE).
mbed_official 376:cb4d9db17537 651 */
mbed_official 376:cb4d9db17537 652 #define __HAL_SMARTCARD_GET_IT(__HANDLE__, __IT__) ((__HANDLE__)->Instance->ISR & ((uint32_t)1 << ((__IT__)>> 0x08)))
mbed_official 376:cb4d9db17537 653
mbed_official 376:cb4d9db17537 654 /** @brief Checks whether the specified SmartCard interrupt interrupt source is enabled.
mbed_official 376:cb4d9db17537 655 * @param __HANDLE__: specifies the SMARTCARD Handle.
mbed_official 376:cb4d9db17537 656 * The Handle Instance which can be USART1 or USART2.
mbed_official 376:cb4d9db17537 657 * @param __IT__: specifies the SMARTCARD interrupt source to check.
mbed_official 376:cb4d9db17537 658 * This parameter can be one of the following values:
mbed_official 376:cb4d9db17537 659 * @arg SMARTCARD_IT_EOBF: End Of Block interrupt
mbed_official 376:cb4d9db17537 660 * @arg SMARTCARD_IT_RTOF: Receive TimeOut interrupt
mbed_official 376:cb4d9db17537 661 * @arg SMARTCARD_IT_TXE: Transmit Data Register empty interrupt
mbed_official 376:cb4d9db17537 662 * @arg SMARTCARD_IT_TC: Transmission complete interrupt
mbed_official 376:cb4d9db17537 663 * @arg SMARTCARD_IT_RXNE: Receive Data register not empty interrupt
mbed_official 376:cb4d9db17537 664 * @arg SMARTCARD_IT_ORE: OverRun Error interrupt
mbed_official 376:cb4d9db17537 665 * @arg SMARTCARD_IT_NE: Noise Error interrupt
mbed_official 376:cb4d9db17537 666 * @arg SMARTCARD_IT_FE: Framing Error interrupt
mbed_official 376:cb4d9db17537 667 * @arg SMARTCARD_IT_PE: Parity Error interrupt
mbed_official 376:cb4d9db17537 668 * @retval The new state of __IT__ (TRUE or FALSE).
mbed_official 376:cb4d9db17537 669 */
mbed_official 376:cb4d9db17537 670 #define __HAL_SMARTCARD_GET_IT_SOURCE(__HANDLE__, __IT__) ((((((uint8_t)(__IT__)) >> 5) == 1)? (__HANDLE__)->Instance->CR1:(((((uint8_t)(__IT__)) >> 5) == 2)? \
mbed_official 376:cb4d9db17537 671 (__HANDLE__)->Instance->CR2 : (__HANDLE__)->Instance->CR3)) & ((uint32_t)1 << \
mbed_official 376:cb4d9db17537 672 (((uint16_t)(__IT__)) & SMARTCARD_IT_MASK)))
mbed_official 376:cb4d9db17537 673
mbed_official 376:cb4d9db17537 674
mbed_official 376:cb4d9db17537 675 /** @brief Clears the specified SMARTCARD ISR flag, in setting the proper ICR register flag.
mbed_official 376:cb4d9db17537 676 * @param __HANDLE__: specifies the SMARTCARD Handle.
mbed_official 376:cb4d9db17537 677 * The Handle Instance which can be USART1 or USART2.
mbed_official 376:cb4d9db17537 678 * @param __IT_CLEAR__: specifies the interrupt clear register flag that needs to be set
mbed_official 376:cb4d9db17537 679 * to clear the corresponding interrupt
mbed_official 376:cb4d9db17537 680 * This parameter can be one of the following values:
mbed_official 376:cb4d9db17537 681 * @arg USART_CLEAR_PEF: Parity Error Clear Flag
mbed_official 376:cb4d9db17537 682 * @arg USART_CLEAR_FEF: Framing Error Clear Flag
mbed_official 376:cb4d9db17537 683 * @arg USART_CLEAR_NEF: Noise detected Clear Flag
mbed_official 376:cb4d9db17537 684 * @arg USART_CLEAR_OREF: OverRun Error Clear Flag
mbed_official 376:cb4d9db17537 685 * @arg USART_CLEAR_TCF: Transmission Complete Clear Flag
mbed_official 376:cb4d9db17537 686 * @arg USART_CLEAR_RTOF: Receiver Time Out Clear Flag
mbed_official 376:cb4d9db17537 687 * @arg USART_CLEAR_EOBF: End Of Block Clear Flag
mbed_official 376:cb4d9db17537 688 * @retval None
mbed_official 376:cb4d9db17537 689 */
mbed_official 376:cb4d9db17537 690 #define __HAL_SMARTCARD_CLEAR_IT(__HANDLE__, __IT_CLEAR__) ((__HANDLE__)->Instance->ICR = (uint32_t)(__IT_CLEAR__))
mbed_official 376:cb4d9db17537 691
mbed_official 376:cb4d9db17537 692 /** @brief Set a specific SMARTCARD request flag.
mbed_official 376:cb4d9db17537 693 * @param __HANDLE__: specifies the SMARTCARD Handle.
mbed_official 376:cb4d9db17537 694 * The Handle Instance which can be USART1 or USART2.
mbed_official 376:cb4d9db17537 695 * @param __REQ__: specifies the request flag to set
mbed_official 376:cb4d9db17537 696 * This parameter can be one of the following values:
mbed_official 376:cb4d9db17537 697 * @arg SMARTCARD_RXDATA_FLUSH_REQUEST: Receive Data flush Request
mbed_official 376:cb4d9db17537 698 * @arg SMARTCARD_TXDATA_FLUSH_REQUEST: Transmit data flush Request
mbed_official 376:cb4d9db17537 699 *
mbed_official 376:cb4d9db17537 700 * @retval None
mbed_official 376:cb4d9db17537 701 */
mbed_official 376:cb4d9db17537 702 #define __HAL_SMARTCARD_SEND_REQ(__HANDLE__, __REQ__) ((__HANDLE__)->Instance->RQR |= (uint32_t)(__REQ__))
mbed_official 376:cb4d9db17537 703
mbed_official 376:cb4d9db17537 704 /** @brief Enable the USART associated to the SMARTCARD Handle
mbed_official 376:cb4d9db17537 705 * @param __HANDLE__: specifies the SMARTCARD Handle.
mbed_official 376:cb4d9db17537 706 * The Handle Instance which can be USART1 or USART2.
mbed_official 376:cb4d9db17537 707 * @retval None
mbed_official 376:cb4d9db17537 708 */
mbed_official 376:cb4d9db17537 709 #define __HAL_SMARTCARD_ENABLE(__HANDLE__) ( (__HANDLE__)->Instance->CR1 |= USART_CR1_UE)
mbed_official 376:cb4d9db17537 710
mbed_official 376:cb4d9db17537 711 /** @brief Disable the USART associated to the SMARTCARD Handle
mbed_official 376:cb4d9db17537 712 * @param __HANDLE__: specifies the SMARTCARD Handle.
mbed_official 376:cb4d9db17537 713 * The Handle Instance which can be USART1 or USART2.
mbed_official 376:cb4d9db17537 714 * @retval None
mbed_official 376:cb4d9db17537 715 */
mbed_official 376:cb4d9db17537 716 #define __HAL_SMARTCARD_DISABLE(__HANDLE__) ( (__HANDLE__)->Instance->CR1 &= ~USART_CR1_UE)
mbed_official 376:cb4d9db17537 717
mbed_official 376:cb4d9db17537 718 /** @brief Macros to enable or disable the SmartCard DMA request.
mbed_official 376:cb4d9db17537 719 * @param __HANDLE__: specifies the SMARTCARD Handle.
mbed_official 376:cb4d9db17537 720 * The Handle Instance which can be USART1 or USART2.
mbed_official 376:cb4d9db17537 721 * @param __REQUEST__: specifies the SmartCard DMA request.
mbed_official 376:cb4d9db17537 722 * This parameter can be one of the following values:
mbed_official 376:cb4d9db17537 723 * @arg SMARTCARD_DMAREQ_TX: SmartCard DMA transmit request
mbed_official 376:cb4d9db17537 724 * @arg SMARTCARD_DMAREQ_RX: SmartCard DMA receive request
mbed_official 376:cb4d9db17537 725 */
mbed_official 376:cb4d9db17537 726 #define __HAL_SMARTCARD_DMA_REQUEST_ENABLE(__HANDLE__, __REQUEST__) ((__HANDLE__)->Instance->CR3 |= (__REQUEST__))
mbed_official 376:cb4d9db17537 727 #define __HAL_SMARTCARD_DMA_REQUEST_DISABLE(__HANDLE__, __REQUEST__) ((__HANDLE__)->Instance->CR3 &= ~(__REQUEST__))
mbed_official 376:cb4d9db17537 728
mbed_official 376:cb4d9db17537 729 /** @brief Check the Baud rate range. The maximum Baud Rate is derived from the
mbed_official 376:cb4d9db17537 730 * maximum clock on F3 (i.e. 72 MHz) divided by the oversampling used
mbed_official 376:cb4d9db17537 731 * on the SMARTCARD (i.e. 16)
mbed_official 376:cb4d9db17537 732 * @param __BAUDRATE__: Baud rate set by the configuration function.
mbed_official 376:cb4d9db17537 733 * @retval Test result (TRUE or FALSE)
mbed_official 376:cb4d9db17537 734 */
mbed_official 376:cb4d9db17537 735 #define IS_SMARTCARD_BAUDRATE(__BAUDRATE__) ((__BAUDRATE__) < 4500001)
mbed_official 376:cb4d9db17537 736
mbed_official 376:cb4d9db17537 737 /** @brief Check the block length range. The maximum SMARTCARD block length is 0xFF.
mbed_official 376:cb4d9db17537 738 * @param __LENGTH__: block length.
mbed_official 376:cb4d9db17537 739 * @retval Test result (TRUE or FALSE)
mbed_official 376:cb4d9db17537 740 */
mbed_official 376:cb4d9db17537 741 #define IS_SMARTCARD_BLOCKLENGTH(__LENGTH__) ((__LENGTH__) <= 0xFF)
mbed_official 376:cb4d9db17537 742
mbed_official 376:cb4d9db17537 743 /** @brief Check the receiver timeout value. The maximum SMARTCARD receiver timeout
mbed_official 376:cb4d9db17537 744 * value is 0xFFFFFF.
mbed_official 376:cb4d9db17537 745 * @param __TIMEOUTVALUE__: receiver timeout value.
mbed_official 376:cb4d9db17537 746 * @retval Test result (TRUE or FALSE)
mbed_official 376:cb4d9db17537 747 */
mbed_official 376:cb4d9db17537 748 #define IS_SMARTCARD_TIMEOUT_VALUE(__TIMEOUTVALUE__) ((__TIMEOUTVALUE__) <= 0xFFFFFF)
mbed_official 376:cb4d9db17537 749
mbed_official 376:cb4d9db17537 750 /** @brief Check the SMARTCARD autoretry counter value. The maximum number of
mbed_official 376:cb4d9db17537 751 * retransmissions is 0x7.
mbed_official 376:cb4d9db17537 752 * @param __COUNT__: number of retransmissions
mbed_official 376:cb4d9db17537 753 * @retval Test result (TRUE or FALSE)
mbed_official 376:cb4d9db17537 754 */
mbed_official 376:cb4d9db17537 755 #define IS_SMARTCARD_AUTORETRY_COUNT(__COUNT__) ((__COUNT__) <= 0x7)
mbed_official 376:cb4d9db17537 756
mbed_official 376:cb4d9db17537 757 /**
mbed_official 376:cb4d9db17537 758 * @}
mbed_official 376:cb4d9db17537 759 */
mbed_official 376:cb4d9db17537 760
mbed_official 376:cb4d9db17537 761 /* Include SMARTCARD HAL Extension module */
mbed_official 376:cb4d9db17537 762 #include "stm32l0xx_hal_smartcard_ex.h"
mbed_official 376:cb4d9db17537 763 /* Exported functions --------------------------------------------------------*/
mbed_official 376:cb4d9db17537 764 /* Initialization/de-initialization functions **********************************/
mbed_official 376:cb4d9db17537 765 HAL_StatusTypeDef HAL_SMARTCARD_Init(SMARTCARD_HandleTypeDef *hsc);
mbed_official 376:cb4d9db17537 766 HAL_StatusTypeDef HAL_SMARTCARD_DeInit(SMARTCARD_HandleTypeDef *hsc);
mbed_official 376:cb4d9db17537 767 void HAL_SMARTCARD_MspInit(SMARTCARD_HandleTypeDef *hsc);
mbed_official 376:cb4d9db17537 768 void HAL_SMARTCARD_MspDeInit(SMARTCARD_HandleTypeDef *hsc);
mbed_official 376:cb4d9db17537 769
mbed_official 376:cb4d9db17537 770 /* IO operation functions *******************************************************/
mbed_official 376:cb4d9db17537 771 HAL_StatusTypeDef HAL_SMARTCARD_Transmit(SMARTCARD_HandleTypeDef *hsc, uint8_t *pData, uint16_t Size, uint32_t Timeout);
mbed_official 376:cb4d9db17537 772 HAL_StatusTypeDef HAL_SMARTCARD_Receive(SMARTCARD_HandleTypeDef *hsc, uint8_t *pData, uint16_t Size, uint32_t Timeout);
mbed_official 376:cb4d9db17537 773 HAL_StatusTypeDef HAL_SMARTCARD_Transmit_IT(SMARTCARD_HandleTypeDef *hsc, uint8_t *pData, uint16_t Size);
mbed_official 376:cb4d9db17537 774 HAL_StatusTypeDef HAL_SMARTCARD_Receive_IT(SMARTCARD_HandleTypeDef *hsc, uint8_t *pData, uint16_t Size);
mbed_official 376:cb4d9db17537 775 HAL_StatusTypeDef HAL_SMARTCARD_Transmit_DMA(SMARTCARD_HandleTypeDef *hsc, uint8_t *pData, uint16_t Size);
mbed_official 376:cb4d9db17537 776 HAL_StatusTypeDef HAL_SMARTCARD_Receive_DMA(SMARTCARD_HandleTypeDef *hsc, uint8_t *pData, uint16_t Size);
mbed_official 376:cb4d9db17537 777 void HAL_SMARTCARD_IRQHandler(SMARTCARD_HandleTypeDef *hsc);
mbed_official 376:cb4d9db17537 778 void HAL_SMARTCARD_TxCpltCallback(SMARTCARD_HandleTypeDef *hsc);
mbed_official 376:cb4d9db17537 779 void HAL_SMARTCARD_RxCpltCallback(SMARTCARD_HandleTypeDef *hsc);
mbed_official 376:cb4d9db17537 780 void HAL_SMARTCARD_ErrorCallback(SMARTCARD_HandleTypeDef *hsc);
mbed_official 376:cb4d9db17537 781
mbed_official 376:cb4d9db17537 782 /* Peripheral State functions **************************************************/
mbed_official 376:cb4d9db17537 783 HAL_SMARTCARD_StateTypeDef HAL_SMARTCARD_GetState(SMARTCARD_HandleTypeDef *hsc);
mbed_official 376:cb4d9db17537 784 uint32_t HAL_SMARTCARD_GetError(SMARTCARD_HandleTypeDef *hsc);
mbed_official 376:cb4d9db17537 785 /**
mbed_official 376:cb4d9db17537 786 * @}
mbed_official 376:cb4d9db17537 787 */
mbed_official 376:cb4d9db17537 788
mbed_official 376:cb4d9db17537 789 /**
mbed_official 376:cb4d9db17537 790 * @}
mbed_official 376:cb4d9db17537 791 */
mbed_official 376:cb4d9db17537 792
mbed_official 376:cb4d9db17537 793 #ifdef __cplusplus
mbed_official 376:cb4d9db17537 794 }
mbed_official 376:cb4d9db17537 795 #endif
mbed_official 376:cb4d9db17537 796
mbed_official 376:cb4d9db17537 797 #endif /* __STM32L0xx_HAL_SMARTCARD_H */
mbed_official 376:cb4d9db17537 798
mbed_official 376:cb4d9db17537 799 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/