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:
Wed Jul 01 09:45:11 2015 +0100
Revision:
579:53297373a894
Parent:
489:119543c9f674
Synchronized with git revision d5b4d2ab9c47edb4dc5776e7177b0c2263459081

Full URL: https://github.com/mbedmicro/mbed/commit/d5b4d2ab9c47edb4dc5776e7177b0c2263459081/

Initial version of drivers for SAMR21

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 489:119543c9f674 5 * @version V1.2.0
mbed_official 489:119543c9f674 6 * @date 06-February-2015
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 489:119543c9f674 11 * <h2><center>&copy; COPYRIGHT(c) 2015 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 489:119543c9f674 53 /** @defgroup SMARTCARD 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 489:119543c9f674 169 * @brief HAL SMARTCARD Error Code definition
mbed_official 376:cb4d9db17537 170 */
mbed_official 489:119543c9f674 171
mbed_official 489:119543c9f674 172 #define HAL_SMARTCARD_ERROR_NONE ((uint32_t)0x00) /*!< No error */
mbed_official 489:119543c9f674 173 #define HAL_SMARTCARD_ERROR_PE ((uint32_t)0x01) /*!< Parity error */
mbed_official 489:119543c9f674 174 #define HAL_SMARTCARD_ERROR_NE ((uint32_t)0x02) /*!< Noise error */
mbed_official 489:119543c9f674 175 #define HAL_SMARTCARD_ERROR_FE ((uint32_t)0x04) /*!< frame error */
mbed_official 489:119543c9f674 176 #define HAL_SMARTCARD_ERROR_ORE ((uint32_t)0x08) /*!< Overrun error */
mbed_official 489:119543c9f674 177 #define HAL_SMARTCARD_ERROR_DMA ((uint32_t)0x10) /*!< DMA transfer error */
mbed_official 489:119543c9f674 178 #define HAL_SMARTCARD_ERROR_RTO ((uint32_t)0x20) /*!< Receiver TimeOut error */
mbed_official 489:119543c9f674 179
mbed_official 376:cb4d9db17537 180
mbed_official 376:cb4d9db17537 181 /**
mbed_official 376:cb4d9db17537 182 * @brief SMARTCARD clock sources definition
mbed_official 376:cb4d9db17537 183 */
mbed_official 376:cb4d9db17537 184 typedef enum
mbed_official 376:cb4d9db17537 185 {
mbed_official 376:cb4d9db17537 186 SMARTCARD_CLOCKSOURCE_PCLK1 = 0x00, /*!< PCLK1 clock source */
mbed_official 376:cb4d9db17537 187 SMARTCARD_CLOCKSOURCE_PCLK2 = 0x01, /*!< PCLK2 clock source */
mbed_official 376:cb4d9db17537 188 SMARTCARD_CLOCKSOURCE_HSI = 0x02, /*!< HSI clock source */
mbed_official 376:cb4d9db17537 189 SMARTCARD_CLOCKSOURCE_SYSCLK = 0x04, /*!< SYSCLK clock source */
mbed_official 376:cb4d9db17537 190 SMARTCARD_CLOCKSOURCE_LSE = 0x08 /*!< LSE clock source */
mbed_official 376:cb4d9db17537 191 }SMARTCARD_ClockSourceTypeDef;
mbed_official 376:cb4d9db17537 192
mbed_official 376:cb4d9db17537 193 /**
mbed_official 376:cb4d9db17537 194 * @brief SMARTCARD handle Structure definition
mbed_official 376:cb4d9db17537 195 */
mbed_official 376:cb4d9db17537 196 typedef struct
mbed_official 376:cb4d9db17537 197 {
mbed_official 376:cb4d9db17537 198 USART_TypeDef *Instance; /* USART registers base address */
mbed_official 376:cb4d9db17537 199
mbed_official 376:cb4d9db17537 200 SMARTCARD_InitTypeDef Init; /* SmartCard communication parameters */
mbed_official 376:cb4d9db17537 201
mbed_official 376:cb4d9db17537 202 SMARTCARD_AdvFeatureInitTypeDef AdvancedInit; /* SmartCard advanced features initialization parameters */
mbed_official 376:cb4d9db17537 203
mbed_official 376:cb4d9db17537 204 uint8_t *pTxBuffPtr; /* Pointer to SmartCard Tx transfer Buffer */
mbed_official 376:cb4d9db17537 205
mbed_official 376:cb4d9db17537 206 uint16_t TxXferSize; /* SmartCard Tx Transfer size */
mbed_official 376:cb4d9db17537 207
mbed_official 376:cb4d9db17537 208 uint16_t TxXferCount; /* SmartCard Tx Transfer Counter */
mbed_official 376:cb4d9db17537 209
mbed_official 376:cb4d9db17537 210 uint8_t *pRxBuffPtr; /* Pointer to SmartCard Rx transfer Buffer */
mbed_official 376:cb4d9db17537 211
mbed_official 376:cb4d9db17537 212 uint16_t RxXferSize; /* SmartCard Rx Transfer size */
mbed_official 376:cb4d9db17537 213
mbed_official 376:cb4d9db17537 214 uint16_t RxXferCount; /* SmartCard Rx Transfer Counter */
mbed_official 376:cb4d9db17537 215
mbed_official 376:cb4d9db17537 216 DMA_HandleTypeDef *hdmatx; /* SmartCard Tx DMA Handle parameters */
mbed_official 376:cb4d9db17537 217
mbed_official 376:cb4d9db17537 218 DMA_HandleTypeDef *hdmarx; /* SmartCard Rx DMA Handle parameters */
mbed_official 376:cb4d9db17537 219
mbed_official 376:cb4d9db17537 220 HAL_LockTypeDef Lock; /* Locking object */
mbed_official 376:cb4d9db17537 221
mbed_official 489:119543c9f674 222 __IO HAL_SMARTCARD_StateTypeDef State; /* SmartCard communication state */
mbed_official 376:cb4d9db17537 223
mbed_official 489:119543c9f674 224 __IO uint32_t ErrorCode; /* SmartCard Error code */
mbed_official 376:cb4d9db17537 225
mbed_official 376:cb4d9db17537 226 }SMARTCARD_HandleTypeDef;
mbed_official 376:cb4d9db17537 227
mbed_official 376:cb4d9db17537 228 /* Exported constants --------------------------------------------------------*/
mbed_official 489:119543c9f674 229 /** @defgroup SMARTCARD_Exported_Constants SMARTCARD Exported Constants
mbed_official 376:cb4d9db17537 230 * @{
mbed_official 376:cb4d9db17537 231 */
mbed_official 376:cb4d9db17537 232
mbed_official 489:119543c9f674 233 /** @defgroup SMARTCARD_Word_Length SMARTCARD Word Length
mbed_official 376:cb4d9db17537 234 * @{
mbed_official 376:cb4d9db17537 235 */
mbed_official 376:cb4d9db17537 236 #define SMARTCARD_WORDLENGTH_9B ((uint32_t)USART_CR1_M_0)
mbed_official 376:cb4d9db17537 237 #define IS_SMARTCARD_WORD_LENGTH(LENGTH) ((LENGTH) == SMARTCARD_WORDLENGTH_9B)
mbed_official 376:cb4d9db17537 238 /**
mbed_official 376:cb4d9db17537 239 * @}
mbed_official 376:cb4d9db17537 240 */
mbed_official 376:cb4d9db17537 241
mbed_official 489:119543c9f674 242 /** @defgroup SMARTCARD_Stop_Bits SMARTCARD Stop Bits
mbed_official 376:cb4d9db17537 243 * @{
mbed_official 376:cb4d9db17537 244 */
mbed_official 376:cb4d9db17537 245 #define SMARTCARD_STOPBITS_1_5 ((uint32_t)(USART_CR2_STOP))
mbed_official 376:cb4d9db17537 246 #define IS_SMARTCARD_STOPBITS(STOPBITS) ((STOPBITS) == SMARTCARD_STOPBITS_1_5)
mbed_official 376:cb4d9db17537 247 /**
mbed_official 376:cb4d9db17537 248 * @}
mbed_official 376:cb4d9db17537 249 */
mbed_official 376:cb4d9db17537 250
mbed_official 489:119543c9f674 251 /** @defgroup SMARTCARD_Parity SMARTCARD Parity
mbed_official 376:cb4d9db17537 252 * @{
mbed_official 376:cb4d9db17537 253 */
mbed_official 376:cb4d9db17537 254 #define SMARTCARD_PARITY_EVEN ((uint32_t)USART_CR1_PCE)
mbed_official 376:cb4d9db17537 255 #define SMARTCARD_PARITY_ODD ((uint32_t)(USART_CR1_PCE | USART_CR1_PS))
mbed_official 376:cb4d9db17537 256 #define IS_SMARTCARD_PARITY(PARITY) (((PARITY) == SMARTCARD_PARITY_EVEN) || \
mbed_official 376:cb4d9db17537 257 ((PARITY) == SMARTCARD_PARITY_ODD))
mbed_official 376:cb4d9db17537 258 /**
mbed_official 376:cb4d9db17537 259 * @}
mbed_official 376:cb4d9db17537 260 */
mbed_official 376:cb4d9db17537 261
mbed_official 489:119543c9f674 262 /** @defgroup SMARTCARD_Mode SMARTCARD Mode
mbed_official 376:cb4d9db17537 263 * @{
mbed_official 376:cb4d9db17537 264 */
mbed_official 376:cb4d9db17537 265 #define SMARTCARD_MODE_RX ((uint32_t)USART_CR1_RE)
mbed_official 376:cb4d9db17537 266 #define SMARTCARD_MODE_TX ((uint32_t)USART_CR1_TE)
mbed_official 376:cb4d9db17537 267 #define SMARTCARD_MODE_TX_RX ((uint32_t)(USART_CR1_TE |USART_CR1_RE))
mbed_official 376:cb4d9db17537 268 #define IS_SMARTCARD_MODE(MODE) ((((MODE) & (uint32_t)0xFFF3) == 0x00) && ((MODE) != (uint32_t)0x00))
mbed_official 376:cb4d9db17537 269 /**
mbed_official 376:cb4d9db17537 270 * @}
mbed_official 376:cb4d9db17537 271 */
mbed_official 376:cb4d9db17537 272
mbed_official 489:119543c9f674 273 /** @defgroup SMARTCARD_Clock_Polarity SMARTCARD Clock Polarity
mbed_official 376:cb4d9db17537 274 * @{
mbed_official 376:cb4d9db17537 275 */
mbed_official 376:cb4d9db17537 276 #define SMARTCARD_POLARITY_LOW ((uint32_t)0x0000)
mbed_official 376:cb4d9db17537 277 #define SMARTCARD_POLARITY_HIGH ((uint32_t)USART_CR2_CPOL)
mbed_official 376:cb4d9db17537 278 #define IS_SMARTCARD_POLARITY(CPOL) (((CPOL) == SMARTCARD_POLARITY_LOW) || ((CPOL) == SMARTCARD_POLARITY_HIGH))
mbed_official 376:cb4d9db17537 279 /**
mbed_official 376:cb4d9db17537 280 * @}
mbed_official 376:cb4d9db17537 281 */
mbed_official 376:cb4d9db17537 282
mbed_official 489:119543c9f674 283 /** @defgroup SMARTCARD_Clock_Phase SMARTCARD Clock Phase
mbed_official 376:cb4d9db17537 284 * @{
mbed_official 376:cb4d9db17537 285 */
mbed_official 376:cb4d9db17537 286 #define SMARTCARD_PHASE_1EDGE ((uint32_t)0x0000)
mbed_official 376:cb4d9db17537 287 #define SMARTCARD_PHASE_2EDGE ((uint32_t)USART_CR2_CPHA)
mbed_official 376:cb4d9db17537 288 #define IS_SMARTCARD_PHASE(CPHA) (((CPHA) == SMARTCARD_PHASE_1EDGE) || ((CPHA) == SMARTCARD_PHASE_2EDGE))
mbed_official 376:cb4d9db17537 289 /**
mbed_official 376:cb4d9db17537 290 * @}
mbed_official 376:cb4d9db17537 291 */
mbed_official 376:cb4d9db17537 292
mbed_official 489:119543c9f674 293 /** @defgroup SMARTCARD_Last_Bit SMARTCARD Last Bit
mbed_official 376:cb4d9db17537 294 * @{
mbed_official 376:cb4d9db17537 295 */
mbed_official 376:cb4d9db17537 296 #define SMARTCARD_LASTBIT_DISABLE ((uint32_t)0x0000)
mbed_official 376:cb4d9db17537 297 #define SMARTCARD_LASTBIT_ENABLE ((uint32_t)USART_CR2_LBCL)
mbed_official 376:cb4d9db17537 298 #define IS_SMARTCARD_LASTBIT(LASTBIT) (((LASTBIT) == SMARTCARD_LASTBIT_DISABLE) || \
mbed_official 376:cb4d9db17537 299 ((LASTBIT) == SMARTCARD_LASTBIT_ENABLE))
mbed_official 376:cb4d9db17537 300 /**
mbed_official 376:cb4d9db17537 301 * @}
mbed_official 376:cb4d9db17537 302 */
mbed_official 376:cb4d9db17537 303
mbed_official 489:119543c9f674 304 /** @defgroup SMARTCARD_OneBit_Sampling SMARTCARD OneBit Sampling
mbed_official 376:cb4d9db17537 305 * @{
mbed_official 376:cb4d9db17537 306 */
mbed_official 489:119543c9f674 307 #define SMARTCARD_ONE_BIT_SAMPLE_DISABLE ((uint32_t)0x0000)
mbed_official 489:119543c9f674 308 #define SMARTCARD_ONE_BIT_SAMPLE_ENABLE ((uint32_t)USART_CR3_ONEBIT)
mbed_official 489:119543c9f674 309 #define IS_SMARTCARD_ONE_BIT_SAMPLE(ONEBIT) (((ONEBIT) == SMARTCARD_ONE_BIT_SAMPLE_DISABLE) || \
mbed_official 489:119543c9f674 310 ((ONEBIT) == SMARTCARD_ONE_BIT_SAMPLE_ENABLE))
mbed_official 376:cb4d9db17537 311 /**
mbed_official 376:cb4d9db17537 312 * @}
mbed_official 376:cb4d9db17537 313 */
mbed_official 376:cb4d9db17537 314
mbed_official 376:cb4d9db17537 315
mbed_official 489:119543c9f674 316 /** @defgroup SMARTCARD_NACK_Enable SMARTCARD NACK Enable
mbed_official 376:cb4d9db17537 317 * @{
mbed_official 376:cb4d9db17537 318 */
mbed_official 489:119543c9f674 319 #define SMARTCARD_NACK_ENABLE ((uint32_t)USART_CR3_NACK)
mbed_official 489:119543c9f674 320 #define SMARTCARD_NACK_DISABLE ((uint32_t)0x0000)
mbed_official 489:119543c9f674 321 #define IS_SMARTCARD_NACK(NACK) (((NACK) == SMARTCARD_NACK_ENABLE) || \
mbed_official 489:119543c9f674 322 ((NACK) == SMARTCARD_NACK_DISABLE))
mbed_official 376:cb4d9db17537 323 /**
mbed_official 376:cb4d9db17537 324 * @}
mbed_official 376:cb4d9db17537 325 */
mbed_official 376:cb4d9db17537 326
mbed_official 489:119543c9f674 327 /** @defgroup SMARTCARD_Timeout_Enable SMARTCARD Timeout Enable
mbed_official 376:cb4d9db17537 328 * @{
mbed_official 376:cb4d9db17537 329 */
mbed_official 489:119543c9f674 330 #define SMARTCARD_TIMEOUT_DISABLE ((uint32_t)0x00000000)
mbed_official 489:119543c9f674 331 #define SMARTCARD_TIMEOUT_ENABLE ((uint32_t)USART_CR2_RTOEN)
mbed_official 489:119543c9f674 332 #define IS_SMARTCARD_TIMEOUT(TIMEOUT) (((TIMEOUT) == SMARTCARD_TIMEOUT_DISABLE) || \
mbed_official 489:119543c9f674 333 ((TIMEOUT) == SMARTCARD_TIMEOUT_ENABLE))
mbed_official 376:cb4d9db17537 334 /**
mbed_official 376:cb4d9db17537 335 * @}
mbed_official 376:cb4d9db17537 336 */
mbed_official 376:cb4d9db17537 337
mbed_official 489:119543c9f674 338 /** @defgroup SMARTCARD_DMA_Requests SMARTCARD DMA Requests
mbed_official 376:cb4d9db17537 339 * @{
mbed_official 376:cb4d9db17537 340 */
mbed_official 376:cb4d9db17537 341
mbed_official 376:cb4d9db17537 342 #define SMARTCARD_DMAREQ_TX ((uint32_t)USART_CR3_DMAT)
mbed_official 376:cb4d9db17537 343 #define SMARTCARD_DMAREQ_RX ((uint32_t)USART_CR3_DMAR)
mbed_official 376:cb4d9db17537 344
mbed_official 376:cb4d9db17537 345 /**
mbed_official 376:cb4d9db17537 346 * @}
mbed_official 376:cb4d9db17537 347 */
mbed_official 376:cb4d9db17537 348
mbed_official 489:119543c9f674 349 /** @defgroup SMARTCARD_Advanced_Features_Initialization_Type SMARTCARD Advanced Features Initialization
mbed_official 376:cb4d9db17537 350 * @{
mbed_official 376:cb4d9db17537 351 */
mbed_official 376:cb4d9db17537 352 #define SMARTCARD_ADVFEATURE_NO_INIT ((uint32_t)0x00000000)
mbed_official 376:cb4d9db17537 353 #define SMARTCARD_ADVFEATURE_TXINVERT_INIT ((uint32_t)0x00000001)
mbed_official 376:cb4d9db17537 354 #define SMARTCARD_ADVFEATURE_RXINVERT_INIT ((uint32_t)0x00000002)
mbed_official 376:cb4d9db17537 355 #define SMARTCARD_ADVFEATURE_DATAINVERT_INIT ((uint32_t)0x00000004)
mbed_official 376:cb4d9db17537 356 #define SMARTCARD_ADVFEATURE_SWAP_INIT ((uint32_t)0x00000008)
mbed_official 376:cb4d9db17537 357 #define SMARTCARD_ADVFEATURE_RXOVERRUNDISABLE_INIT ((uint32_t)0x00000010)
mbed_official 376:cb4d9db17537 358 #define SMARTCARD_ADVFEATURE_DMADISABLEONERROR_INIT ((uint32_t)0x00000020)
mbed_official 376:cb4d9db17537 359 #define SMARTCARD_ADVFEATURE_MSBFIRST_INIT ((uint32_t)0x00000080)
mbed_official 376:cb4d9db17537 360 #define IS_SMARTCARD_ADVFEATURE_INIT(INIT) ((INIT) <= (SMARTCARD_ADVFEATURE_NO_INIT | \
mbed_official 376:cb4d9db17537 361 SMARTCARD_ADVFEATURE_TXINVERT_INIT | \
mbed_official 376:cb4d9db17537 362 SMARTCARD_ADVFEATURE_RXINVERT_INIT | \
mbed_official 376:cb4d9db17537 363 SMARTCARD_ADVFEATURE_DATAINVERT_INIT | \
mbed_official 376:cb4d9db17537 364 SMARTCARD_ADVFEATURE_SWAP_INIT | \
mbed_official 376:cb4d9db17537 365 SMARTCARD_ADVFEATURE_RXOVERRUNDISABLE_INIT | \
mbed_official 376:cb4d9db17537 366 SMARTCARD_ADVFEATURE_DMADISABLEONERROR_INIT | \
mbed_official 376:cb4d9db17537 367 SMARTCARD_ADVFEATURE_MSBFIRST_INIT))
mbed_official 376:cb4d9db17537 368 /**
mbed_official 376:cb4d9db17537 369 * @}
mbed_official 376:cb4d9db17537 370 */
mbed_official 376:cb4d9db17537 371
mbed_official 489:119543c9f674 372 /** @defgroup SMARTCARD_Tx_Inv SMARTCARD Tx Inv
mbed_official 376:cb4d9db17537 373 * @{
mbed_official 376:cb4d9db17537 374 */
mbed_official 376:cb4d9db17537 375 #define SMARTCARD_ADVFEATURE_TXINV_DISABLE ((uint32_t)0x00000000)
mbed_official 376:cb4d9db17537 376 #define SMARTCARD_ADVFEATURE_TXINV_ENABLE ((uint32_t)USART_CR2_TXINV)
mbed_official 376:cb4d9db17537 377 #define IS_SMARTCARD_ADVFEATURE_TXINV(TXINV) (((TXINV) == SMARTCARD_ADVFEATURE_TXINV_DISABLE) || \
mbed_official 376:cb4d9db17537 378 ((TXINV) == SMARTCARD_ADVFEATURE_TXINV_ENABLE))
mbed_official 376:cb4d9db17537 379 /**
mbed_official 376:cb4d9db17537 380 * @}
mbed_official 376:cb4d9db17537 381 */
mbed_official 376:cb4d9db17537 382
mbed_official 489:119543c9f674 383 /** @defgroup SMARTCARD_Rx_Inv SMARTCARD Rx Inv
mbed_official 376:cb4d9db17537 384 * @{
mbed_official 376:cb4d9db17537 385 */
mbed_official 376:cb4d9db17537 386 #define SMARTCARD_ADVFEATURE_RXINV_DISABLE ((uint32_t)0x00000000)
mbed_official 376:cb4d9db17537 387 #define SMARTCARD_ADVFEATURE_RXINV_ENABLE ((uint32_t)USART_CR2_RXINV)
mbed_official 376:cb4d9db17537 388 #define IS_SMARTCARD_ADVFEATURE_RXINV(RXINV) (((RXINV) == SMARTCARD_ADVFEATURE_RXINV_DISABLE) || \
mbed_official 376:cb4d9db17537 389 ((RXINV) == SMARTCARD_ADVFEATURE_RXINV_ENABLE))
mbed_official 376:cb4d9db17537 390 /**
mbed_official 376:cb4d9db17537 391 * @}
mbed_official 376:cb4d9db17537 392 */
mbed_official 376:cb4d9db17537 393
mbed_official 489:119543c9f674 394 /** @defgroup SMARTCARD_Data_Inv SMARTCARD Data Inv
mbed_official 376:cb4d9db17537 395 * @{
mbed_official 376:cb4d9db17537 396 */
mbed_official 376:cb4d9db17537 397 #define SMARTCARD_ADVFEATURE_DATAINV_DISABLE ((uint32_t)0x00000000)
mbed_official 376:cb4d9db17537 398 #define SMARTCARD_ADVFEATURE_DATAINV_ENABLE ((uint32_t)USART_CR2_DATAINV)
mbed_official 376:cb4d9db17537 399 #define IS_SMARTCARD_ADVFEATURE_DATAINV(DATAINV) (((DATAINV) == SMARTCARD_ADVFEATURE_DATAINV_DISABLE) || \
mbed_official 376:cb4d9db17537 400 ((DATAINV) == SMARTCARD_ADVFEATURE_DATAINV_ENABLE))
mbed_official 376:cb4d9db17537 401 /**
mbed_official 376:cb4d9db17537 402 * @}
mbed_official 376:cb4d9db17537 403 */
mbed_official 376:cb4d9db17537 404
mbed_official 489:119543c9f674 405 /** @defgroup SMARTCARD_Rx_Tx_Swap SMARTCARD Rx Tx Swap
mbed_official 376:cb4d9db17537 406 * @{
mbed_official 376:cb4d9db17537 407 */
mbed_official 376:cb4d9db17537 408 #define SMARTCARD_ADVFEATURE_SWAP_DISABLE ((uint32_t)0x00000000)
mbed_official 376:cb4d9db17537 409 #define SMARTCARD_ADVFEATURE_SWAP_ENABLE ((uint32_t)USART_CR2_SWAP)
mbed_official 376:cb4d9db17537 410 #define IS_SMARTCARD_ADVFEATURE_SWAP(SWAP) (((SWAP) == SMARTCARD_ADVFEATURE_SWAP_DISABLE) || \
mbed_official 376:cb4d9db17537 411 ((SWAP) == SMARTCARD_ADVFEATURE_SWAP_ENABLE))
mbed_official 376:cb4d9db17537 412 /**
mbed_official 376:cb4d9db17537 413 * @}
mbed_official 376:cb4d9db17537 414 */
mbed_official 376:cb4d9db17537 415
mbed_official 489:119543c9f674 416 /** @defgroup SMARTCARD_Overrun_Disable SMARTCARD Overrun Enabling
mbed_official 376:cb4d9db17537 417 * @{
mbed_official 376:cb4d9db17537 418 */
mbed_official 376:cb4d9db17537 419 #define SMARTCARD_ADVFEATURE_OVERRUN_ENABLE ((uint32_t)0x00000000)
mbed_official 376:cb4d9db17537 420 #define SMARTCARD_ADVFEATURE_OVERRUN_DISABLE ((uint32_t)USART_CR3_OVRDIS)
mbed_official 376:cb4d9db17537 421 #define IS_SMARTCARD_OVERRUN(OVERRUN) (((OVERRUN) == SMARTCARD_ADVFEATURE_OVERRUN_ENABLE) || \
mbed_official 376:cb4d9db17537 422 ((OVERRUN) == SMARTCARD_ADVFEATURE_OVERRUN_DISABLE))
mbed_official 376:cb4d9db17537 423 /**
mbed_official 376:cb4d9db17537 424 * @}
mbed_official 376:cb4d9db17537 425 */
mbed_official 376:cb4d9db17537 426
mbed_official 489:119543c9f674 427 /** @defgroup SMARTCARD_DMA_Disable_on_Rx_Error SMARTCARD DMA on Rx Error
mbed_official 376:cb4d9db17537 428 * @{
mbed_official 376:cb4d9db17537 429 */
mbed_official 376:cb4d9db17537 430 #define SMARTCARD_ADVFEATURE_DMA_ENABLEONRXERROR ((uint32_t)0x00000000)
mbed_official 376:cb4d9db17537 431 #define SMARTCARD_ADVFEATURE_DMA_DISABLEONRXERROR ((uint32_t)USART_CR3_DDRE)
mbed_official 376:cb4d9db17537 432 #define IS_SMARTCARD_ADVFEATURE_DMAONRXERROR(DMA) (((DMA) == SMARTCARD_ADVFEATURE_DMA_ENABLEONRXERROR) || \
mbed_official 376:cb4d9db17537 433 ((DMA) == SMARTCARD_ADVFEATURE_DMA_DISABLEONRXERROR))
mbed_official 376:cb4d9db17537 434 /**
mbed_official 376:cb4d9db17537 435 * @}
mbed_official 376:cb4d9db17537 436 */
mbed_official 376:cb4d9db17537 437
mbed_official 489:119543c9f674 438 /** @defgroup SMARTCARD_MSB_First SMARTCARD MSB First
mbed_official 376:cb4d9db17537 439 * @{
mbed_official 376:cb4d9db17537 440 */
mbed_official 376:cb4d9db17537 441 #define SMARTCARD_ADVFEATURE_MSBFIRST_DISABLE ((uint32_t)0x00000000)
mbed_official 376:cb4d9db17537 442 #define SMARTCARD_ADVFEATURE_MSBFIRST_ENABLE ((uint32_t)USART_CR2_MSBFIRST)
mbed_official 376:cb4d9db17537 443 #define IS_SMARTCARD_ADVFEATURE_MSBFIRST(MSBFIRST) (((MSBFIRST) == SMARTCARD_ADVFEATURE_MSBFIRST_DISABLE) || \
mbed_official 376:cb4d9db17537 444 ((MSBFIRST) == SMARTCARD_ADVFEATURE_MSBFIRST_ENABLE))
mbed_official 376:cb4d9db17537 445 /**
mbed_official 376:cb4d9db17537 446 * @}
mbed_official 376:cb4d9db17537 447 */
mbed_official 376:cb4d9db17537 448
mbed_official 489:119543c9f674 449 /** @defgroup SMARTCARD_Flags SMARTCARD Flags
mbed_official 376:cb4d9db17537 450 * Elements values convention: 0xXXXX
mbed_official 376:cb4d9db17537 451 * - 0xXXXX : Flag mask in the ISR register
mbed_official 376:cb4d9db17537 452 * @{
mbed_official 376:cb4d9db17537 453 */
mbed_official 376:cb4d9db17537 454 #define SMARTCARD_FLAG_REACK ((uint32_t)0x00400000)
mbed_official 376:cb4d9db17537 455 #define SMARTCARD_FLAG_TEACK ((uint32_t)0x00200000)
mbed_official 376:cb4d9db17537 456 #define SMARTCARD_FLAG_BUSY ((uint32_t)0x00010000)
mbed_official 376:cb4d9db17537 457 #define SMARTCARD_FLAG_EOBF ((uint32_t)0x00001000)
mbed_official 376:cb4d9db17537 458 #define SMARTCARD_FLAG_RTOF ((uint32_t)0x00000800)
mbed_official 376:cb4d9db17537 459 #define SMARTCARD_FLAG_TXE ((uint32_t)0x00000080)
mbed_official 376:cb4d9db17537 460 #define SMARTCARD_FLAG_TC ((uint32_t)0x00000040)
mbed_official 376:cb4d9db17537 461 #define SMARTCARD_FLAG_RXNE ((uint32_t)0x00000020)
mbed_official 376:cb4d9db17537 462 #define SMARTCARD_FLAG_ORE ((uint32_t)0x00000008)
mbed_official 376:cb4d9db17537 463 #define SMARTCARD_FLAG_NE ((uint32_t)0x00000004)
mbed_official 376:cb4d9db17537 464 #define SMARTCARD_FLAG_FE ((uint32_t)0x00000002)
mbed_official 376:cb4d9db17537 465 #define SMARTCARD_FLAG_PE ((uint32_t)0x00000001)
mbed_official 376:cb4d9db17537 466 /**
mbed_official 376:cb4d9db17537 467 * @}
mbed_official 376:cb4d9db17537 468 */
mbed_official 376:cb4d9db17537 469
mbed_official 489:119543c9f674 470 /** @defgroup SMARTCARD_Interrupt_definition SMARTCARD Interrupt definition
mbed_official 376:cb4d9db17537 471 * Elements values convention: 0000ZZZZ0XXYYYYYb
mbed_official 376:cb4d9db17537 472 * - YYYYY : Interrupt source position in the XX register (5bits)
mbed_official 376:cb4d9db17537 473 * - XX : Interrupt source register (2bits)
mbed_official 376:cb4d9db17537 474 * - 01: CR1 register
mbed_official 376:cb4d9db17537 475 * - 10: CR2 register
mbed_official 376:cb4d9db17537 476 * - 11: CR3 register
mbed_official 376:cb4d9db17537 477 * - ZZZZ : Flag position in the ISR register(4bits)
mbed_official 376:cb4d9db17537 478 * @{
mbed_official 376:cb4d9db17537 479 */
mbed_official 376:cb4d9db17537 480
mbed_official 376:cb4d9db17537 481 #define SMARTCARD_IT_PE ((uint16_t)0x0028)
mbed_official 376:cb4d9db17537 482 #define SMARTCARD_IT_TXE ((uint16_t)0x0727)
mbed_official 376:cb4d9db17537 483 #define SMARTCARD_IT_TC ((uint16_t)0x0626)
mbed_official 376:cb4d9db17537 484 #define SMARTCARD_IT_RXNE ((uint16_t)0x0525)
mbed_official 376:cb4d9db17537 485
mbed_official 376:cb4d9db17537 486 #define SMARTCARD_IT_ERR ((uint16_t)0x0060)
mbed_official 376:cb4d9db17537 487 #define SMARTCARD_IT_ORE ((uint16_t)0x0300)
mbed_official 376:cb4d9db17537 488 #define SMARTCARD_IT_NE ((uint16_t)0x0200)
mbed_official 376:cb4d9db17537 489 #define SMARTCARD_IT_FE ((uint16_t)0x0100)
mbed_official 376:cb4d9db17537 490
mbed_official 376:cb4d9db17537 491 #define SMARTCARD_IT_EOB ((uint16_t)0x0C3B)
mbed_official 376:cb4d9db17537 492 #define SMARTCARD_IT_RTO ((uint16_t)0x0B3A)
mbed_official 376:cb4d9db17537 493 /**
mbed_official 376:cb4d9db17537 494 * @}
mbed_official 376:cb4d9db17537 495 */
mbed_official 376:cb4d9db17537 496
mbed_official 376:cb4d9db17537 497
mbed_official 489:119543c9f674 498 /** @defgroup SMARTCARD_IT_CLEAR_Flags SMARTCARD IT CLEAR Flags
mbed_official 376:cb4d9db17537 499 * @{
mbed_official 376:cb4d9db17537 500 */
mbed_official 376:cb4d9db17537 501 #define SMARTCARD_CLEAR_PEF USART_ICR_PECF /*!< Parity Error Clear Flag */
mbed_official 376:cb4d9db17537 502 #define SMARTCARD_CLEAR_FEF USART_ICR_FECF /*!< Framing Error Clear Flag */
mbed_official 376:cb4d9db17537 503 #define SMARTCARD_CLEAR_NEF USART_ICR_NCF /*!< Noise detected Clear Flag */
mbed_official 376:cb4d9db17537 504 #define SMARTCARD_CLEAR_OREF USART_ICR_ORECF /*!< OverRun Error Clear Flag */
mbed_official 489:119543c9f674 505 #define SMARTCARD_CLEAR_IDLEF USART_ICR_IDLECF /*!< IDLE line detected 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 489:119543c9f674 513 /** @defgroup SMARTCARD_Request_Parameters 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 489:119543c9f674 525 /** @defgroup SMARTCARD_CR3_SCAR_CNT_LSB_POS SMARTCARD CR3 LSB Position
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 489:119543c9f674 533 /** @defgroup SMARTCARD_GTPR_GT_LSBPOS SMARTCARD GTPR GT LSB Position
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 489:119543c9f674 541 /** @defgroup SMARTCARD_RTOR_BLEN_LSBPOS SMARTCARD RTOR BLEN LSB Position
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 489:119543c9f674 549 /** @defgroup SMARTCARD_Interruption_Mask 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 489:119543c9f674 562 /** @defgroup SMARTCARD_Exported_Macros 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 489:119543c9f674 575 * @retval None
mbed_official 489:119543c9f674 576 */
mbed_official 489:119543c9f674 577 #define __HAL_SMARTCARD_FLUSH_DRREGISTER(__HANDLE__) \
mbed_official 489:119543c9f674 578 do{ \
mbed_official 489:119543c9f674 579 SET_BIT((__HANDLE__)->Instance->RQR, SMARTCARD_RXDATA_FLUSH_REQUEST); \
mbed_official 489:119543c9f674 580 SET_BIT((__HANDLE__)->Instance->RQR, SMARTCARD_TXDATA_FLUSH_REQUEST); \
mbed_official 489:119543c9f674 581 } while(0)
mbed_official 489:119543c9f674 582
mbed_official 489:119543c9f674 583 /** @brief Clears the specified SMARTCARD pending flag.
mbed_official 489:119543c9f674 584 * @param __HANDLE__: specifies the SMARTCARD Handle.
mbed_official 489:119543c9f674 585 * @param __FLAG__: specifies the flag to check.
mbed_official 489:119543c9f674 586 * This parameter can be any combination of the following values:
mbed_official 489:119543c9f674 587 * @arg SMARTCARD_CLEAR_PEF
mbed_official 489:119543c9f674 588 * @arg SMARTCARD_CLEAR_FEF
mbed_official 489:119543c9f674 589 * @arg SMARTCARD_CLEAR_NEF
mbed_official 489:119543c9f674 590 * @arg SMARTCARD_CLEAR_OREF
mbed_official 489:119543c9f674 591 * @arg SMARTCARD_CLEAR_IDLEF
mbed_official 489:119543c9f674 592 * @arg SMARTCARD_CLEAR_TCF
mbed_official 489:119543c9f674 593 * @arg SMARTCARD_CLEAR_RTOF
mbed_official 489:119543c9f674 594 * @arg SMARTCARD_CLEAR_EOBF
mbed_official 376:cb4d9db17537 595 * @retval None
mbed_official 376:cb4d9db17537 596 */
mbed_official 489:119543c9f674 597 #define __HAL_SMARTCARD_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ICR = ~(__FLAG__))
mbed_official 489:119543c9f674 598
mbed_official 489:119543c9f674 599 /** @brief Clear the SMARTCARD PE pending flag.
mbed_official 489:119543c9f674 600 * @param __HANDLE__: specifies the SMARTCARD Handle.
mbed_official 489:119543c9f674 601 * @retval None
mbed_official 489:119543c9f674 602 */
mbed_official 489:119543c9f674 603 #define __HAL_SMARTCARD_CLEAR_PEFLAG(__HANDLE__) __HAL_SMARTCARD_CLEAR_FLAG(__HANDLE__,SMARTCARD_CLEAR_PEF)
mbed_official 489:119543c9f674 604
mbed_official 489:119543c9f674 605
mbed_official 489:119543c9f674 606 /** @brief Clear the SMARTCARD FE pending flag.
mbed_official 489:119543c9f674 607 * @param __HANDLE__: specifies the SMARTCARD Handle.
mbed_official 489:119543c9f674 608 * @retval None
mbed_official 489:119543c9f674 609 */
mbed_official 489:119543c9f674 610 #define __HAL_SMARTCARD_CLEAR_FEFLAG(__HANDLE__) __HAL_SMARTCARD_CLEAR_FLAG(__HANDLE__,SMARTCARD_CLEAR_FEF)
mbed_official 489:119543c9f674 611
mbed_official 489:119543c9f674 612 /** @brief Clear the SMARTCARD NE pending flag.
mbed_official 489:119543c9f674 613 * @param __HANDLE__: specifies the SMARTCARD Handle.
mbed_official 489:119543c9f674 614 * @retval None
mbed_official 489:119543c9f674 615 */
mbed_official 489:119543c9f674 616 #define __HAL_SMARTCARD_CLEAR_NEFLAG(__HANDLE__) __HAL_SMARTCARD_CLEAR_FLAG(__HANDLE__,SMARTCARD_CLEAR_NEF)
mbed_official 489:119543c9f674 617
mbed_official 489:119543c9f674 618 /** @brief Clear the SMARTCARD ORE pending flag.
mbed_official 489:119543c9f674 619 * @param __HANDLE__: specifies the SMARTCARD Handle.
mbed_official 489:119543c9f674 620 * @retval None
mbed_official 489:119543c9f674 621 */
mbed_official 489:119543c9f674 622 #define __HAL_SMARTCARD_CLEAR_OREFLAG(__HANDLE__) __HAL_SMARTCARD_CLEAR_FLAG(__HANDLE__,SMARTCARD_CLEAR_OREF)
mbed_official 489:119543c9f674 623
mbed_official 489:119543c9f674 624 /** @brief Clear the SMARTCARD IDLE pending flag.
mbed_official 489:119543c9f674 625 * @param __HANDLE__: specifies the SMARTCARD Handle.
mbed_official 489:119543c9f674 626 * @retval None
mbed_official 489:119543c9f674 627 */
mbed_official 489:119543c9f674 628 #define __HAL_SMARTCARD_CLEAR_IDLEFLAG(__HANDLE__) __HAL_SMARTCARD_CLEAR_FLAG(__HANDLE__,SMARTCARD_CLEAR_IDLEF)
mbed_official 376:cb4d9db17537 629
mbed_official 376:cb4d9db17537 630 /** @brief Checks whether the specified Smartcard flag is set or not.
mbed_official 376:cb4d9db17537 631 * @param __HANDLE__: specifies the SMARTCARD Handle.
mbed_official 376:cb4d9db17537 632 * The Handle Instance which can be USART1 or USART2.
mbed_official 376:cb4d9db17537 633 * @param __FLAG__: specifies the flag to check.
mbed_official 376:cb4d9db17537 634 * This parameter can be one of the following values:
mbed_official 376:cb4d9db17537 635 * @arg SMARTCARD_FLAG_REACK: Receive enable ackowledge flag
mbed_official 376:cb4d9db17537 636 * @arg SMARTCARD_FLAG_TEACK: Transmit enable ackowledge flag
mbed_official 376:cb4d9db17537 637 * @arg SMARTCARD_FLAG_BUSY: Busy flag
mbed_official 376:cb4d9db17537 638 * @arg SMARTCARD_FLAG_EOBF: End of block flag
mbed_official 376:cb4d9db17537 639 * @arg SMARTCARD_FLAG_RTOF: Receiver timeout flag
mbed_official 376:cb4d9db17537 640 * @arg SMARTCARD_FLAG_TXE: Transmit data register empty flag
mbed_official 376:cb4d9db17537 641 * @arg SMARTCARD_FLAG_TC: Transmission Complete flag
mbed_official 376:cb4d9db17537 642 * @arg SMARTCARD_FLAG_RXNE: Receive data register not empty flag
mbed_official 376:cb4d9db17537 643 * @arg SMARTCARD_FLAG_ORE: OverRun Error flag
mbed_official 376:cb4d9db17537 644 * @arg SMARTCARD_FLAG_NE: Noise Error flag
mbed_official 376:cb4d9db17537 645 * @arg SMARTCARD_FLAG_FE: Framing Error flag
mbed_official 376:cb4d9db17537 646 * @arg SMARTCARD_FLAG_PE: Parity Error flag
mbed_official 376:cb4d9db17537 647 * @retval The new state of __FLAG__ (TRUE or FALSE).
mbed_official 376:cb4d9db17537 648 */
mbed_official 376:cb4d9db17537 649 #define __HAL_SMARTCARD_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->ISR & (__FLAG__)) == (__FLAG__))
mbed_official 376:cb4d9db17537 650
mbed_official 376:cb4d9db17537 651 /** @brief Enables the specified SmartCard interrupt.
mbed_official 376:cb4d9db17537 652 * @param __HANDLE__: specifies the SMARTCARD Handle.
mbed_official 376:cb4d9db17537 653 * The Handle Instance which can be USART1 or USART2.
mbed_official 376:cb4d9db17537 654 * @param __INTERRUPT__: specifies the SMARTCARD interrupt to enable.
mbed_official 376:cb4d9db17537 655 * This parameter can be one of the following values:
mbed_official 376:cb4d9db17537 656 * @arg SMARTCARD_IT_EOBF: End Of Block interrupt
mbed_official 376:cb4d9db17537 657 * @arg SMARTCARD_IT_RTOF: Receive TimeOut interrupt
mbed_official 376:cb4d9db17537 658 * @arg SMARTCARD_IT_TXE: Transmit Data Register empty interrupt
mbed_official 376:cb4d9db17537 659 * @arg SMARTCARD_IT_TC: Transmission complete interrupt
mbed_official 376:cb4d9db17537 660 * @arg SMARTCARD_IT_RXNE: Receive Data register not empty interrupt
mbed_official 376:cb4d9db17537 661 * @arg SMARTCARD_IT_PE: Parity Error interrupt
mbed_official 376:cb4d9db17537 662 * @arg SMARTCARD_IT_ERR: Error interrupt(Frame error, noise error, overrun error)
mbed_official 376:cb4d9db17537 663 * @retval None
mbed_official 376:cb4d9db17537 664 */
mbed_official 376:cb4d9db17537 665 #define __HAL_SMARTCARD_ENABLE_IT(__HANDLE__, __INTERRUPT__) (((((uint8_t)(__INTERRUPT__)) >> 5) == 1)? ((__HANDLE__)->Instance->CR1 |= (1 << ((__INTERRUPT__) & SMARTCARD_IT_MASK))): \
mbed_official 376:cb4d9db17537 666 ((((uint8_t)(__INTERRUPT__)) >> 5) == 2)? ((__HANDLE__)->Instance->CR2 |= (1 << ((__INTERRUPT__) & SMARTCARD_IT_MASK))): \
mbed_official 376:cb4d9db17537 667 ((__HANDLE__)->Instance->CR3 |= (1 << ((__INTERRUPT__) & SMARTCARD_IT_MASK))))
mbed_official 376:cb4d9db17537 668 /** @brief Disables the specified SmartCard interrupt.
mbed_official 376:cb4d9db17537 669 * @param __HANDLE__: specifies the SMARTCARD Handle.
mbed_official 376:cb4d9db17537 670 * The Handle Instance which can be USART1 or USART2.
mbed_official 376:cb4d9db17537 671 * @param __INTERRUPT__: specifies the SMARTCARD interrupt to enable.
mbed_official 376:cb4d9db17537 672 * This parameter can be one of the following values:
mbed_official 376:cb4d9db17537 673 * @arg SMARTCARD_IT_EOBF: End Of Block interrupt
mbed_official 376:cb4d9db17537 674 * @arg SMARTCARD_IT_RTOF: Receive TimeOut interrupt
mbed_official 376:cb4d9db17537 675 * @arg SMARTCARD_IT_TXE: Transmit Data Register empty interrupt
mbed_official 376:cb4d9db17537 676 * @arg SMARTCARD_IT_TC: Transmission complete interrupt
mbed_official 376:cb4d9db17537 677 * @arg SMARTCARD_IT_RXNE: Receive Data register not empty interrupt
mbed_official 376:cb4d9db17537 678 * @arg SMARTCARD_IT_PE: Parity Error interrupt
mbed_official 376:cb4d9db17537 679 * @arg SMARTCARD_IT_ERR: Error interrupt(Frame error, noise error, overrun error)
mbed_official 376:cb4d9db17537 680 * @retval None
mbed_official 376:cb4d9db17537 681 */
mbed_official 376:cb4d9db17537 682 #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 683 ((((uint8_t)(__INTERRUPT__)) >> 5) == 2)? ((__HANDLE__)->Instance->CR2 &= ~ ((uint32_t)1 << ((__INTERRUPT__) & SMARTCARD_IT_MASK))): \
mbed_official 376:cb4d9db17537 684 ((__HANDLE__)->Instance->CR3 &= ~ ((uint32_t)1 << ((__INTERRUPT__) & SMARTCARD_IT_MASK))))
mbed_official 376:cb4d9db17537 685
mbed_official 376:cb4d9db17537 686 /** @brief Checks whether the specified SmartCard interrupt has occurred or not.
mbed_official 376:cb4d9db17537 687 * @param __HANDLE__: specifies the SMARTCARD Handle.
mbed_official 376:cb4d9db17537 688 * The Handle Instance which can be USART1 or USART2.
mbed_official 376:cb4d9db17537 689 * @param __IT__: specifies the SMARTCARD interrupt to check.
mbed_official 376:cb4d9db17537 690 * This parameter can be one of the following values:
mbed_official 376:cb4d9db17537 691 * @arg SMARTCARD_IT_EOBF: End Of Block interrupt
mbed_official 376:cb4d9db17537 692 * @arg SMARTCARD_IT_RTOF: Receive TimeOut interrupt
mbed_official 376:cb4d9db17537 693 * @arg SMARTCARD_IT_TXE: Transmit Data Register empty interrupt
mbed_official 376:cb4d9db17537 694 * @arg SMARTCARD_IT_TC: Transmission complete interrupt
mbed_official 376:cb4d9db17537 695 * @arg SMARTCARD_IT_RXNE: Receive Data register not empty interrupt
mbed_official 376:cb4d9db17537 696 * @arg SMARTCARD_IT_ORE: OverRun Error interrupt
mbed_official 376:cb4d9db17537 697 * @arg SMARTCARD_IT_NE: Noise Error interrupt
mbed_official 376:cb4d9db17537 698 * @arg SMARTCARD_IT_FE: Framing Error interrupt
mbed_official 376:cb4d9db17537 699 * @arg SMARTCARD_IT_PE: Parity Error interrupt
mbed_official 376:cb4d9db17537 700 * @retval The new state of __IT__ (TRUE or FALSE).
mbed_official 376:cb4d9db17537 701 */
mbed_official 376:cb4d9db17537 702 #define __HAL_SMARTCARD_GET_IT(__HANDLE__, __IT__) ((__HANDLE__)->Instance->ISR & ((uint32_t)1 << ((__IT__)>> 0x08)))
mbed_official 376:cb4d9db17537 703
mbed_official 376:cb4d9db17537 704 /** @brief Checks whether the specified SmartCard interrupt interrupt source is enabled.
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 * @param __IT__: specifies the SMARTCARD interrupt source to check.
mbed_official 376:cb4d9db17537 708 * This parameter can be one of the following values:
mbed_official 376:cb4d9db17537 709 * @arg SMARTCARD_IT_EOBF: End Of Block interrupt
mbed_official 376:cb4d9db17537 710 * @arg SMARTCARD_IT_RTOF: Receive TimeOut interrupt
mbed_official 376:cb4d9db17537 711 * @arg SMARTCARD_IT_TXE: Transmit Data Register empty interrupt
mbed_official 376:cb4d9db17537 712 * @arg SMARTCARD_IT_TC: Transmission complete interrupt
mbed_official 376:cb4d9db17537 713 * @arg SMARTCARD_IT_RXNE: Receive Data register not empty interrupt
mbed_official 376:cb4d9db17537 714 * @arg SMARTCARD_IT_ORE: OverRun Error interrupt
mbed_official 376:cb4d9db17537 715 * @arg SMARTCARD_IT_NE: Noise Error interrupt
mbed_official 376:cb4d9db17537 716 * @arg SMARTCARD_IT_FE: Framing Error interrupt
mbed_official 376:cb4d9db17537 717 * @arg SMARTCARD_IT_PE: Parity Error interrupt
mbed_official 376:cb4d9db17537 718 * @retval The new state of __IT__ (TRUE or FALSE).
mbed_official 376:cb4d9db17537 719 */
mbed_official 376:cb4d9db17537 720 #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 721 (__HANDLE__)->Instance->CR2 : (__HANDLE__)->Instance->CR3)) & ((uint32_t)1 << \
mbed_official 376:cb4d9db17537 722 (((uint16_t)(__IT__)) & SMARTCARD_IT_MASK)))
mbed_official 376:cb4d9db17537 723
mbed_official 376:cb4d9db17537 724
mbed_official 376:cb4d9db17537 725 /** @brief Clears the specified SMARTCARD ISR flag, in setting the proper ICR register flag.
mbed_official 376:cb4d9db17537 726 * @param __HANDLE__: specifies the SMARTCARD Handle.
mbed_official 376:cb4d9db17537 727 * The Handle Instance which can be USART1 or USART2.
mbed_official 376:cb4d9db17537 728 * @param __IT_CLEAR__: specifies the interrupt clear register flag that needs to be set
mbed_official 376:cb4d9db17537 729 * to clear the corresponding interrupt
mbed_official 376:cb4d9db17537 730 * This parameter can be one of the following values:
mbed_official 376:cb4d9db17537 731 * @arg USART_CLEAR_PEF: Parity Error Clear Flag
mbed_official 376:cb4d9db17537 732 * @arg USART_CLEAR_FEF: Framing Error Clear Flag
mbed_official 376:cb4d9db17537 733 * @arg USART_CLEAR_NEF: Noise detected Clear Flag
mbed_official 376:cb4d9db17537 734 * @arg USART_CLEAR_OREF: OverRun Error Clear Flag
mbed_official 376:cb4d9db17537 735 * @arg USART_CLEAR_TCF: Transmission Complete Clear Flag
mbed_official 376:cb4d9db17537 736 * @arg USART_CLEAR_RTOF: Receiver Time Out Clear Flag
mbed_official 376:cb4d9db17537 737 * @arg USART_CLEAR_EOBF: End Of Block Clear Flag
mbed_official 376:cb4d9db17537 738 * @retval None
mbed_official 376:cb4d9db17537 739 */
mbed_official 376:cb4d9db17537 740 #define __HAL_SMARTCARD_CLEAR_IT(__HANDLE__, __IT_CLEAR__) ((__HANDLE__)->Instance->ICR = (uint32_t)(__IT_CLEAR__))
mbed_official 376:cb4d9db17537 741
mbed_official 376:cb4d9db17537 742 /** @brief Set a specific SMARTCARD request flag.
mbed_official 376:cb4d9db17537 743 * @param __HANDLE__: specifies the SMARTCARD Handle.
mbed_official 376:cb4d9db17537 744 * The Handle Instance which can be USART1 or USART2.
mbed_official 376:cb4d9db17537 745 * @param __REQ__: specifies the request flag to set
mbed_official 376:cb4d9db17537 746 * This parameter can be one of the following values:
mbed_official 376:cb4d9db17537 747 * @arg SMARTCARD_RXDATA_FLUSH_REQUEST: Receive Data flush Request
mbed_official 376:cb4d9db17537 748 * @arg SMARTCARD_TXDATA_FLUSH_REQUEST: Transmit data flush Request
mbed_official 376:cb4d9db17537 749 *
mbed_official 376:cb4d9db17537 750 * @retval None
mbed_official 376:cb4d9db17537 751 */
mbed_official 376:cb4d9db17537 752 #define __HAL_SMARTCARD_SEND_REQ(__HANDLE__, __REQ__) ((__HANDLE__)->Instance->RQR |= (uint32_t)(__REQ__))
mbed_official 376:cb4d9db17537 753
mbed_official 489:119543c9f674 754 /** @brief Enables the SMARTCARD one bit sample method
mbed_official 489:119543c9f674 755 * @param __HANDLE__: specifies the SMARTCARD Handle.
mbed_official 489:119543c9f674 756 * @retval None
mbed_official 489:119543c9f674 757 */
mbed_official 489:119543c9f674 758 #define __HAL_SMARTCARD_ONE_BIT_SAMPLE_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR3|= USART_CR3_ONEBIT)
mbed_official 489:119543c9f674 759
mbed_official 489:119543c9f674 760 /** @brief Disables the SMARTCARD one bit sample method
mbed_official 489:119543c9f674 761 * @param __HANDLE__: specifies the SMARTCARD Handle.
mbed_official 489:119543c9f674 762 * @retval None
mbed_official 489:119543c9f674 763 */
mbed_official 489:119543c9f674 764 #define __HAL_SMARTCARD_ONE_BIT_SAMPLE_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR3 &= (uint32_t)~((uint32_t)USART_CR3_ONEBIT))
mbed_official 489:119543c9f674 765
mbed_official 376:cb4d9db17537 766 /** @brief Enable the USART associated to the SMARTCARD Handle
mbed_official 376:cb4d9db17537 767 * @param __HANDLE__: specifies the SMARTCARD Handle.
mbed_official 376:cb4d9db17537 768 * The Handle Instance which can be USART1 or USART2.
mbed_official 376:cb4d9db17537 769 * @retval None
mbed_official 376:cb4d9db17537 770 */
mbed_official 489:119543c9f674 771
mbed_official 376:cb4d9db17537 772 #define __HAL_SMARTCARD_ENABLE(__HANDLE__) ( (__HANDLE__)->Instance->CR1 |= USART_CR1_UE)
mbed_official 376:cb4d9db17537 773
mbed_official 376:cb4d9db17537 774 /** @brief Disable the USART associated to the SMARTCARD Handle
mbed_official 376:cb4d9db17537 775 * @param __HANDLE__: specifies the SMARTCARD Handle.
mbed_official 376:cb4d9db17537 776 * The Handle Instance which can be USART1 or USART2.
mbed_official 376:cb4d9db17537 777 * @retval None
mbed_official 376:cb4d9db17537 778 */
mbed_official 376:cb4d9db17537 779 #define __HAL_SMARTCARD_DISABLE(__HANDLE__) ( (__HANDLE__)->Instance->CR1 &= ~USART_CR1_UE)
mbed_official 376:cb4d9db17537 780
mbed_official 376:cb4d9db17537 781 /** @brief Macros to enable or disable the SmartCard DMA request.
mbed_official 376:cb4d9db17537 782 * @param __HANDLE__: specifies the SMARTCARD Handle.
mbed_official 376:cb4d9db17537 783 * The Handle Instance which can be USART1 or USART2.
mbed_official 376:cb4d9db17537 784 * @param __REQUEST__: specifies the SmartCard DMA request.
mbed_official 376:cb4d9db17537 785 * This parameter can be one of the following values:
mbed_official 376:cb4d9db17537 786 * @arg SMARTCARD_DMAREQ_TX: SmartCard DMA transmit request
mbed_official 376:cb4d9db17537 787 * @arg SMARTCARD_DMAREQ_RX: SmartCard DMA receive request
mbed_official 376:cb4d9db17537 788 */
mbed_official 376:cb4d9db17537 789 #define __HAL_SMARTCARD_DMA_REQUEST_ENABLE(__HANDLE__, __REQUEST__) ((__HANDLE__)->Instance->CR3 |= (__REQUEST__))
mbed_official 376:cb4d9db17537 790 #define __HAL_SMARTCARD_DMA_REQUEST_DISABLE(__HANDLE__, __REQUEST__) ((__HANDLE__)->Instance->CR3 &= ~(__REQUEST__))
mbed_official 376:cb4d9db17537 791
mbed_official 376:cb4d9db17537 792 /** @brief Check the Baud rate range. The maximum Baud Rate is derived from the
mbed_official 376:cb4d9db17537 793 * maximum clock on F3 (i.e. 72 MHz) divided by the oversampling used
mbed_official 376:cb4d9db17537 794 * on the SMARTCARD (i.e. 16)
mbed_official 376:cb4d9db17537 795 * @param __BAUDRATE__: Baud rate set by the configuration function.
mbed_official 376:cb4d9db17537 796 * @retval Test result (TRUE or FALSE)
mbed_official 376:cb4d9db17537 797 */
mbed_official 376:cb4d9db17537 798 #define IS_SMARTCARD_BAUDRATE(__BAUDRATE__) ((__BAUDRATE__) < 4500001)
mbed_official 376:cb4d9db17537 799
mbed_official 376:cb4d9db17537 800 /** @brief Check the block length range. The maximum SMARTCARD block length is 0xFF.
mbed_official 376:cb4d9db17537 801 * @param __LENGTH__: block length.
mbed_official 376:cb4d9db17537 802 * @retval Test result (TRUE or FALSE)
mbed_official 376:cb4d9db17537 803 */
mbed_official 376:cb4d9db17537 804 #define IS_SMARTCARD_BLOCKLENGTH(__LENGTH__) ((__LENGTH__) <= 0xFF)
mbed_official 376:cb4d9db17537 805
mbed_official 376:cb4d9db17537 806 /** @brief Check the receiver timeout value. The maximum SMARTCARD receiver timeout
mbed_official 376:cb4d9db17537 807 * value is 0xFFFFFF.
mbed_official 376:cb4d9db17537 808 * @param __TIMEOUTVALUE__: receiver timeout value.
mbed_official 376:cb4d9db17537 809 * @retval Test result (TRUE or FALSE)
mbed_official 376:cb4d9db17537 810 */
mbed_official 376:cb4d9db17537 811 #define IS_SMARTCARD_TIMEOUT_VALUE(__TIMEOUTVALUE__) ((__TIMEOUTVALUE__) <= 0xFFFFFF)
mbed_official 376:cb4d9db17537 812
mbed_official 376:cb4d9db17537 813 /** @brief Check the SMARTCARD autoretry counter value. The maximum number of
mbed_official 376:cb4d9db17537 814 * retransmissions is 0x7.
mbed_official 376:cb4d9db17537 815 * @param __COUNT__: number of retransmissions
mbed_official 376:cb4d9db17537 816 * @retval Test result (TRUE or FALSE)
mbed_official 376:cb4d9db17537 817 */
mbed_official 376:cb4d9db17537 818 #define IS_SMARTCARD_AUTORETRY_COUNT(__COUNT__) ((__COUNT__) <= 0x7)
mbed_official 376:cb4d9db17537 819
mbed_official 376:cb4d9db17537 820 /**
mbed_official 376:cb4d9db17537 821 * @}
mbed_official 376:cb4d9db17537 822 */
mbed_official 376:cb4d9db17537 823
mbed_official 376:cb4d9db17537 824 /* Include SMARTCARD HAL Extension module */
mbed_official 376:cb4d9db17537 825 #include "stm32l0xx_hal_smartcard_ex.h"
mbed_official 376:cb4d9db17537 826 /* Exported functions --------------------------------------------------------*/
mbed_official 489:119543c9f674 827 /** @defgroup SMARTCARD_Exported_Functions SMARTCARD Exported Functions
mbed_official 489:119543c9f674 828 * @{
mbed_official 489:119543c9f674 829 */
mbed_official 376:cb4d9db17537 830 /* Initialization/de-initialization functions **********************************/
mbed_official 489:119543c9f674 831 /** @defgroup SMARTCARD_Exported_Functions_Group1 Initialization/de-initialization functions
mbed_official 489:119543c9f674 832 * @{
mbed_official 489:119543c9f674 833 */
mbed_official 376:cb4d9db17537 834 HAL_StatusTypeDef HAL_SMARTCARD_Init(SMARTCARD_HandleTypeDef *hsc);
mbed_official 376:cb4d9db17537 835 HAL_StatusTypeDef HAL_SMARTCARD_DeInit(SMARTCARD_HandleTypeDef *hsc);
mbed_official 376:cb4d9db17537 836 void HAL_SMARTCARD_MspInit(SMARTCARD_HandleTypeDef *hsc);
mbed_official 376:cb4d9db17537 837 void HAL_SMARTCARD_MspDeInit(SMARTCARD_HandleTypeDef *hsc);
mbed_official 489:119543c9f674 838 /**
mbed_official 489:119543c9f674 839 * @}
mbed_official 489:119543c9f674 840 */
mbed_official 376:cb4d9db17537 841
mbed_official 376:cb4d9db17537 842 /* IO operation functions *******************************************************/
mbed_official 489:119543c9f674 843 /** @defgroup SMARTCARD_Exported_Functions_Group2 IO operation functions
mbed_official 489:119543c9f674 844 * @{
mbed_official 489:119543c9f674 845 */
mbed_official 376:cb4d9db17537 846 HAL_StatusTypeDef HAL_SMARTCARD_Transmit(SMARTCARD_HandleTypeDef *hsc, uint8_t *pData, uint16_t Size, uint32_t Timeout);
mbed_official 376:cb4d9db17537 847 HAL_StatusTypeDef HAL_SMARTCARD_Receive(SMARTCARD_HandleTypeDef *hsc, uint8_t *pData, uint16_t Size, uint32_t Timeout);
mbed_official 376:cb4d9db17537 848 HAL_StatusTypeDef HAL_SMARTCARD_Transmit_IT(SMARTCARD_HandleTypeDef *hsc, uint8_t *pData, uint16_t Size);
mbed_official 376:cb4d9db17537 849 HAL_StatusTypeDef HAL_SMARTCARD_Receive_IT(SMARTCARD_HandleTypeDef *hsc, uint8_t *pData, uint16_t Size);
mbed_official 376:cb4d9db17537 850 HAL_StatusTypeDef HAL_SMARTCARD_Transmit_DMA(SMARTCARD_HandleTypeDef *hsc, uint8_t *pData, uint16_t Size);
mbed_official 376:cb4d9db17537 851 HAL_StatusTypeDef HAL_SMARTCARD_Receive_DMA(SMARTCARD_HandleTypeDef *hsc, uint8_t *pData, uint16_t Size);
mbed_official 376:cb4d9db17537 852 void HAL_SMARTCARD_IRQHandler(SMARTCARD_HandleTypeDef *hsc);
mbed_official 376:cb4d9db17537 853 void HAL_SMARTCARD_TxCpltCallback(SMARTCARD_HandleTypeDef *hsc);
mbed_official 376:cb4d9db17537 854 void HAL_SMARTCARD_RxCpltCallback(SMARTCARD_HandleTypeDef *hsc);
mbed_official 376:cb4d9db17537 855 void HAL_SMARTCARD_ErrorCallback(SMARTCARD_HandleTypeDef *hsc);
mbed_official 489:119543c9f674 856 /**
mbed_official 489:119543c9f674 857 * @}
mbed_official 489:119543c9f674 858 */
mbed_official 489:119543c9f674 859 /* IO operation functions *******************************************************/
mbed_official 489:119543c9f674 860 /** @defgroup SMARTCARD_Exported_Functions_Group3 Peripheral State functions
mbed_official 489:119543c9f674 861 * @{
mbed_official 489:119543c9f674 862 */
mbed_official 376:cb4d9db17537 863 /* Peripheral State functions **************************************************/
mbed_official 376:cb4d9db17537 864 HAL_SMARTCARD_StateTypeDef HAL_SMARTCARD_GetState(SMARTCARD_HandleTypeDef *hsc);
mbed_official 376:cb4d9db17537 865 uint32_t HAL_SMARTCARD_GetError(SMARTCARD_HandleTypeDef *hsc);
mbed_official 376:cb4d9db17537 866 /**
mbed_official 376:cb4d9db17537 867 * @}
mbed_official 489:119543c9f674 868 */
mbed_official 489:119543c9f674 869
mbed_official 489:119543c9f674 870 /**
mbed_official 489:119543c9f674 871 * @}
mbed_official 489:119543c9f674 872 */
mbed_official 489:119543c9f674 873
mbed_official 489:119543c9f674 874 /**
mbed_official 489:119543c9f674 875 * @}
mbed_official 376:cb4d9db17537 876 */
mbed_official 376:cb4d9db17537 877
mbed_official 376:cb4d9db17537 878 /**
mbed_official 376:cb4d9db17537 879 * @}
mbed_official 376:cb4d9db17537 880 */
mbed_official 376:cb4d9db17537 881
mbed_official 376:cb4d9db17537 882 #ifdef __cplusplus
mbed_official 376:cb4d9db17537 883 }
mbed_official 376:cb4d9db17537 884 #endif
mbed_official 376:cb4d9db17537 885
mbed_official 376:cb4d9db17537 886 #endif /* __STM32L0xx_HAL_SMARTCARD_H */
mbed_official 376:cb4d9db17537 887
mbed_official 376:cb4d9db17537 888 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
mbed_official 489:119543c9f674 889