STM32L486xx HAL User Manual
Data Structures | Defines | Typedefs | Enumerations | Functions
stm32l4xx_hal_smartcard.h File Reference

Header file of SMARTCARD HAL module. More...

#include "stm32l4xx_hal_def.h"
#include "stm32l4xx_hal_smartcard_ex.h"

Go to the source code of this file.

Data Structures

struct  SMARTCARD_InitTypeDef
 SMARTCARD Init Structure definition. More...
struct  SMARTCARD_AdvFeatureInitTypeDef
 SMARTCARD advanced features initalization structure definition. More...
struct  __SMARTCARD_HandleTypeDef
 SMARTCARD handle Structure definition. More...

Defines

#define HAL_SMARTCARD_ERROR_NONE   ((uint32_t)0x00000000U)
#define HAL_SMARTCARD_ERROR_PE   ((uint32_t)0x00000001U)
#define HAL_SMARTCARD_ERROR_NE   ((uint32_t)0x00000002U)
#define HAL_SMARTCARD_ERROR_FE   ((uint32_t)0x00000004U)
#define HAL_SMARTCARD_ERROR_ORE   ((uint32_t)0x00000008U)
#define HAL_SMARTCARD_ERROR_DMA   ((uint32_t)0x00000010U)
#define HAL_SMARTCARD_ERROR_RTO   ((uint32_t)0x00000020U)
#define HAL_SMARTCARD_ERROR_INVALID_CALLBACK   ((uint32_t)0x00000040U)
#define SMARTCARD_WORDLENGTH_9B   USART_CR1_M0
#define SMARTCARD_STOPBITS_0_5   USART_CR2_STOP_0
#define SMARTCARD_STOPBITS_1_5   USART_CR2_STOP
#define SMARTCARD_PARITY_EVEN   USART_CR1_PCE
#define SMARTCARD_PARITY_ODD   (USART_CR1_PCE | USART_CR1_PS)
#define SMARTCARD_MODE_RX   USART_CR1_RE
#define SMARTCARD_MODE_TX   USART_CR1_TE
#define SMARTCARD_MODE_TX_RX   (USART_CR1_TE |USART_CR1_RE)
#define SMARTCARD_POLARITY_LOW   0x00000000U
#define SMARTCARD_POLARITY_HIGH   USART_CR2_CPOL
#define SMARTCARD_PHASE_1EDGE   0x00000000U
#define SMARTCARD_PHASE_2EDGE   USART_CR2_CPHA
#define SMARTCARD_LASTBIT_DISABLE   0x00000000U
#define SMARTCARD_LASTBIT_ENABLE   USART_CR2_LBCL
#define SMARTCARD_ONE_BIT_SAMPLE_DISABLE   0x00000000U
#define SMARTCARD_ONE_BIT_SAMPLE_ENABLE   USART_CR3_ONEBIT
#define SMARTCARD_NACK_DISABLE   0x00000000U
#define SMARTCARD_NACK_ENABLE   USART_CR3_NACK
#define SMARTCARD_TIMEOUT_DISABLE   0x00000000U
#define SMARTCARD_TIMEOUT_ENABLE   USART_CR2_RTOEN
#define SMARTCARD_ADVFEATURE_TXINV_DISABLE   0x00000000U
#define SMARTCARD_ADVFEATURE_TXINV_ENABLE   USART_CR2_TXINV
#define SMARTCARD_ADVFEATURE_RXINV_DISABLE   0x00000000U
#define SMARTCARD_ADVFEATURE_RXINV_ENABLE   USART_CR2_RXINV
#define SMARTCARD_ADVFEATURE_DATAINV_DISABLE   0x00000000U
#define SMARTCARD_ADVFEATURE_DATAINV_ENABLE   USART_CR2_DATAINV
#define SMARTCARD_ADVFEATURE_SWAP_DISABLE   0x00000000U
#define SMARTCARD_ADVFEATURE_SWAP_ENABLE   USART_CR2_SWAP
#define SMARTCARD_ADVFEATURE_OVERRUN_ENABLE   0x00000000U
#define SMARTCARD_ADVFEATURE_OVERRUN_DISABLE   USART_CR3_OVRDIS
#define SMARTCARD_ADVFEATURE_DMA_ENABLEONRXERROR   0x00000000U
#define SMARTCARD_ADVFEATURE_DMA_DISABLEONRXERROR   USART_CR3_DDRE
#define SMARTCARD_ADVFEATURE_MSBFIRST_DISABLE   0x00000000U
#define SMARTCARD_ADVFEATURE_MSBFIRST_ENABLE   USART_CR2_MSBFIRST
#define SMARTCARD_RXDATA_FLUSH_REQUEST   USART_RQR_RXFRQ
#define SMARTCARD_TXDATA_FLUSH_REQUEST   USART_RQR_TXFRQ
#define SMARTCARD_IT_MASK   0x001FU
#define __HAL_SMARTCARD_RESET_HANDLE_STATE(__HANDLE__)
 Reset SMARTCARD handle states.
#define __HAL_SMARTCARD_FLUSH_DRREGISTER(__HANDLE__)
 Flush the Smartcard Data registers.
#define __HAL_SMARTCARD_CLEAR_FLAG(__HANDLE__, __FLAG__)   ((__HANDLE__)->Instance->ICR = (__FLAG__))
 Clear the specified SMARTCARD pending flag.
#define __HAL_SMARTCARD_CLEAR_PEFLAG(__HANDLE__)   __HAL_SMARTCARD_CLEAR_FLAG((__HANDLE__), SMARTCARD_CLEAR_PEF)
 Clear the SMARTCARD PE pending flag.
#define __HAL_SMARTCARD_CLEAR_FEFLAG(__HANDLE__)   __HAL_SMARTCARD_CLEAR_FLAG((__HANDLE__), SMARTCARD_CLEAR_FEF)
 Clear the SMARTCARD FE pending flag.
#define __HAL_SMARTCARD_CLEAR_NEFLAG(__HANDLE__)   __HAL_SMARTCARD_CLEAR_FLAG((__HANDLE__), SMARTCARD_CLEAR_NEF)
 Clear the SMARTCARD NE pending flag.
#define __HAL_SMARTCARD_CLEAR_OREFLAG(__HANDLE__)   __HAL_SMARTCARD_CLEAR_FLAG((__HANDLE__), SMARTCARD_CLEAR_OREF)
 Clear the SMARTCARD ORE pending flag.
#define __HAL_SMARTCARD_CLEAR_IDLEFLAG(__HANDLE__)   __HAL_SMARTCARD_CLEAR_FLAG((__HANDLE__), SMARTCARD_CLEAR_IDLEF)
 Clear the SMARTCARD IDLE pending flag.
#define __HAL_SMARTCARD_GET_FLAG(__HANDLE__, __FLAG__)   (((__HANDLE__)->Instance->ISR & (__FLAG__)) == (__FLAG__))
 Check whether the specified Smartcard flag is set or not.
#define __HAL_SMARTCARD_ENABLE_IT(__HANDLE__, __INTERRUPT__)
 Enable the specified SmartCard interrupt.
#define __HAL_SMARTCARD_DISABLE_IT(__HANDLE__, __INTERRUPT__)
 Disable the specified SmartCard interrupt.
#define __HAL_SMARTCARD_GET_IT(__HANDLE__, __INTERRUPT__)   ((((__HANDLE__)->Instance->ISR & (0x01U << ((__INTERRUPT__)>> 0x08U))) != RESET) ? SET : RESET)
 Check whether the specified SmartCard interrupt has occurred or not.
#define __HAL_SMARTCARD_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__)
 Check whether the specified SmartCard interrupt source is enabled or not.
#define __HAL_SMARTCARD_CLEAR_IT(__HANDLE__, __IT_CLEAR__)   ((__HANDLE__)->Instance->ICR |= (uint32_t)(__IT_CLEAR__))
 Clear the specified SMARTCARD ISR flag, in setting the proper ICR register flag.
#define __HAL_SMARTCARD_SEND_REQ(__HANDLE__, __REQ__)   ((__HANDLE__)->Instance->RQR |= (uint16_t)(__REQ__))
 Set a specific SMARTCARD request flag.
#define __HAL_SMARTCARD_ONE_BIT_SAMPLE_ENABLE(__HANDLE__)   ((__HANDLE__)->Instance->CR3|= USART_CR3_ONEBIT)
 Enable the SMARTCARD one bit sample method.
#define __HAL_SMARTCARD_ONE_BIT_SAMPLE_DISABLE(__HANDLE__)   ((__HANDLE__)->Instance->CR3 &= (uint32_t)~((uint32_t)USART_CR3_ONEBIT))
 Disable the SMARTCARD one bit sample method.
#define __HAL_SMARTCARD_ENABLE(__HANDLE__)   ((__HANDLE__)->Instance->CR1 |= USART_CR1_UE)
 Enable the USART associated to the SMARTCARD Handle.
#define __HAL_SMARTCARD_DISABLE(__HANDLE__)   ((__HANDLE__)->Instance->CR1 &= ~USART_CR1_UE)
 Disable the USART associated to the SMARTCARD Handle.
#define SMARTCARD_GETCLOCKSOURCE(__HANDLE__, __CLOCKSOURCE__)
 Report the SMARTCARD clock source.
#define IS_SMARTCARD_BAUDRATE(__BAUDRATE__)   ((__BAUDRATE__) < 7500001U)
 Check the Baud rate range.
#define IS_SMARTCARD_BLOCKLENGTH(__LENGTH__)   ((__LENGTH__) <= 0xFFU)
 Check the block length range.
#define IS_SMARTCARD_TIMEOUT_VALUE(__TIMEOUTVALUE__)   ((__TIMEOUTVALUE__) <= 0xFFFFFFU)
 Check the receiver timeout value.
#define IS_SMARTCARD_AUTORETRY_COUNT(__COUNT__)   ((__COUNT__) <= 0x7U)
 Check the SMARTCARD autoretry counter value.
#define IS_SMARTCARD_WORD_LENGTH(__LENGTH__)   ((__LENGTH__) == SMARTCARD_WORDLENGTH_9B)
 Ensure that SMARTCARD frame length is valid.
#define IS_SMARTCARD_STOPBITS(__STOPBITS__)
 Ensure that SMARTCARD frame number of stop bits is valid.
#define IS_SMARTCARD_PARITY(__PARITY__)
 Ensure that SMARTCARD frame parity is valid.
#define IS_SMARTCARD_MODE(__MODE__)   ((((__MODE__) & 0xFFF3U) == 0x00U) && ((__MODE__) != 0x00U))
 Ensure that SMARTCARD communication mode is valid.
#define IS_SMARTCARD_POLARITY(__CPOL__)   (((__CPOL__) == SMARTCARD_POLARITY_LOW) || ((__CPOL__) == SMARTCARD_POLARITY_HIGH))
 Ensure that SMARTCARD frame polarity is valid.
#define IS_SMARTCARD_PHASE(__CPHA__)   (((__CPHA__) == SMARTCARD_PHASE_1EDGE) || ((__CPHA__) == SMARTCARD_PHASE_2EDGE))
 Ensure that SMARTCARD frame phase is valid.
#define IS_SMARTCARD_LASTBIT(__LASTBIT__)
 Ensure that SMARTCARD frame last bit clock pulse setting is valid.
#define IS_SMARTCARD_ONE_BIT_SAMPLE(__ONEBIT__)
 Ensure that SMARTCARD frame sampling is valid.
#define IS_SMARTCARD_NACK(__NACK__)
 Ensure that SMARTCARD NACK transmission setting is valid.
#define IS_SMARTCARD_TIMEOUT(__TIMEOUT__)
 Ensure that SMARTCARD receiver timeout setting is valid.
#define IS_SMARTCARD_ADVFEATURE_INIT(__INIT__)
 Ensure that SMARTCARD advanced features initialization is valid.
#define IS_SMARTCARD_ADVFEATURE_TXINV(__TXINV__)
 Ensure that SMARTCARD frame TX inversion setting is valid.
#define IS_SMARTCARD_ADVFEATURE_RXINV(__RXINV__)
 Ensure that SMARTCARD frame RX inversion setting is valid.
#define IS_SMARTCARD_ADVFEATURE_DATAINV(__DATAINV__)
 Ensure that SMARTCARD frame data inversion setting is valid.
#define IS_SMARTCARD_ADVFEATURE_SWAP(__SWAP__)
 Ensure that SMARTCARD frame RX/TX pins swap setting is valid.
#define IS_SMARTCARD_OVERRUN(__OVERRUN__)
 Ensure that SMARTCARD frame overrun setting is valid.
#define IS_SMARTCARD_ADVFEATURE_DMAONRXERROR(__DMA__)
 Ensure that SMARTCARD DMA enabling or disabling on error setting is valid.
#define IS_SMARTCARD_ADVFEATURE_MSBFIRST(__MSBFIRST__)
 Ensure that SMARTCARD frame MSB first setting is valid.
#define IS_SMARTCARD_REQUEST_PARAMETER(__PARAM__)
 Ensure that SMARTCARD request parameter is valid.

Typedefs

typedef struct
__SMARTCARD_HandleTypeDef 
SMARTCARD_HandleTypeDef
 SMARTCARD handle Structure definition.
typedef void(* pSMARTCARD_CallbackTypeDef )(SMARTCARD_HandleTypeDef *hsmartcard)
 HAL SMARTCARD Callback pointer definition.

Enumerations

enum  HAL_SMARTCARD_StateTypeDef {
  HAL_SMARTCARD_STATE_RESET = 0x00U, HAL_SMARTCARD_STATE_READY = 0x20U, HAL_SMARTCARD_STATE_BUSY = 0x24U, HAL_SMARTCARD_STATE_BUSY_TX = 0x21U,
  HAL_SMARTCARD_STATE_BUSY_RX = 0x22U, HAL_SMARTCARD_STATE_BUSY_TX_RX = 0x23U, HAL_SMARTCARD_STATE_TIMEOUT = 0xA0U, HAL_SMARTCARD_STATE_ERROR = 0xE0U
}
 HAL SMARTCARD State structures definition. More...
enum  HAL_SMARTCARD_CallbackIDTypeDef {
  HAL_SMARTCARD_TX_COMPLETE_CB_ID = 0x00U, HAL_SMARTCARD_RX_COMPLETE_CB_ID = 0x01U, HAL_SMARTCARD_ERROR_CB_ID = 0x02U, HAL_SMARTCARD_ABORT_COMPLETE_CB_ID = 0x03U,
  HAL_SMARTCARD_ABORT_TRANSMIT_COMPLETE_CB_ID = 0x04U, HAL_SMARTCARD_ABORT_RECEIVE_COMPLETE_CB_ID = 0x05U, HAL_SMARTCARD_RX_FIFO_FULL_CB_ID = 0x06U, HAL_SMARTCARD_TX_FIFO_EMPTY_CB_ID = 0x07U,
  HAL_SMARTCARD_MSPINIT_CB_ID = 0x08U, HAL_SMARTCARD_MSPDEINIT_CB_ID = 0x09U
}
 HAL SMARTCARD Callback ID enumeration definition. More...
enum  SMARTCARD_ClockSourceTypeDef {
  SMARTCARD_CLOCKSOURCE_PCLK1 = 0x00, SMARTCARD_CLOCKSOURCE_PCLK2 = 0x01, SMARTCARD_CLOCKSOURCE_HSI = 0x02, SMARTCARD_CLOCKSOURCE_SYSCLK = 0x04,
  SMARTCARD_CLOCKSOURCE_LSE = 0x08, SMARTCARD_CLOCKSOURCE_UNDEFINED = 0x10
}
 SMARTCARD clock sources. More...

Functions

HAL_StatusTypeDef HAL_SMARTCARD_Init (SMARTCARD_HandleTypeDef *hsmartcard)
 Initialize the SMARTCARD mode according to the specified parameters in the SMARTCARD_HandleTypeDef and initialize the associated handle.
HAL_StatusTypeDef HAL_SMARTCARD_DeInit (SMARTCARD_HandleTypeDef *hsmartcard)
 DeInitialize the SMARTCARD peripheral.
__weak void HAL_SMARTCARD_MspInit (SMARTCARD_HandleTypeDef *hsmartcard)
 Initialize the SMARTCARD MSP.
__weak void HAL_SMARTCARD_MspDeInit (SMARTCARD_HandleTypeDef *hsmartcard)
 DeInitialize the SMARTCARD MSP.
HAL_StatusTypeDef HAL_SMARTCARD_RegisterCallback (SMARTCARD_HandleTypeDef *hsmartcard, HAL_SMARTCARD_CallbackIDTypeDef CallbackID, pSMARTCARD_CallbackTypeDef pCallback)
 Register a User SMARTCARD Callback To be used instead of the weak predefined callback.
HAL_StatusTypeDef HAL_SMARTCARD_UnRegisterCallback (SMARTCARD_HandleTypeDef *hsmartcard, HAL_SMARTCARD_CallbackIDTypeDef CallbackID)
 Unregister an SMARTCARD callback SMARTCARD callback is redirected to the weak predefined callback.
HAL_StatusTypeDef HAL_SMARTCARD_Transmit (SMARTCARD_HandleTypeDef *hsmartcard, uint8_t *pData, uint16_t Size, uint32_t Timeout)
 Send an amount of data in blocking mode.
HAL_StatusTypeDef HAL_SMARTCARD_Receive (SMARTCARD_HandleTypeDef *hsmartcard, uint8_t *pData, uint16_t Size, uint32_t Timeout)
 Receive an amount of data in blocking mode.
HAL_StatusTypeDef HAL_SMARTCARD_Transmit_IT (SMARTCARD_HandleTypeDef *hsmartcard, uint8_t *pData, uint16_t Size)
 Send an amount of data in interrupt mode.
HAL_StatusTypeDef HAL_SMARTCARD_Receive_IT (SMARTCARD_HandleTypeDef *hsmartcard, uint8_t *pData, uint16_t Size)
 Receive an amount of data in interrupt mode.
HAL_StatusTypeDef HAL_SMARTCARD_Transmit_DMA (SMARTCARD_HandleTypeDef *hsmartcard, uint8_t *pData, uint16_t Size)
 Send an amount of data in DMA mode.
HAL_StatusTypeDef HAL_SMARTCARD_Receive_DMA (SMARTCARD_HandleTypeDef *hsmartcard, uint8_t *pData, uint16_t Size)
 Receive an amount of data in DMA mode.
HAL_StatusTypeDef HAL_SMARTCARD_Abort (SMARTCARD_HandleTypeDef *hsmartcard)
 Abort ongoing transfers (blocking mode).
HAL_StatusTypeDef HAL_SMARTCARD_AbortTransmit (SMARTCARD_HandleTypeDef *hsmartcard)
 Abort ongoing Transmit transfer (blocking mode).
HAL_StatusTypeDef HAL_SMARTCARD_AbortReceive (SMARTCARD_HandleTypeDef *hsmartcard)
 Abort ongoing Receive transfer (blocking mode).
HAL_StatusTypeDef HAL_SMARTCARD_Abort_IT (SMARTCARD_HandleTypeDef *hsmartcard)
 Abort ongoing transfers (Interrupt mode).
HAL_StatusTypeDef HAL_SMARTCARD_AbortTransmit_IT (SMARTCARD_HandleTypeDef *hsmartcard)
 Abort ongoing Transmit transfer (Interrupt mode).
HAL_StatusTypeDef HAL_SMARTCARD_AbortReceive_IT (SMARTCARD_HandleTypeDef *hsmartcard)
 Abort ongoing Receive transfer (Interrupt mode).
void HAL_SMARTCARD_IRQHandler (SMARTCARD_HandleTypeDef *hsmartcard)
 Handle SMARTCARD interrupt requests.
__weak void HAL_SMARTCARD_TxCpltCallback (SMARTCARD_HandleTypeDef *hsmartcard)
 Tx Transfer completed callback.
__weak void HAL_SMARTCARD_RxCpltCallback (SMARTCARD_HandleTypeDef *hsmartcard)
 Rx Transfer completed callback.
__weak void HAL_SMARTCARD_ErrorCallback (SMARTCARD_HandleTypeDef *hsmartcard)
 SMARTCARD error callback.
__weak void HAL_SMARTCARD_AbortCpltCallback (SMARTCARD_HandleTypeDef *hsmartcard)
 SMARTCARD Abort Complete callback.
__weak void HAL_SMARTCARD_AbortTransmitCpltCallback (SMARTCARD_HandleTypeDef *hsmartcard)
 SMARTCARD Abort Complete callback.
__weak void HAL_SMARTCARD_AbortReceiveCpltCallback (SMARTCARD_HandleTypeDef *hsmartcard)
 SMARTCARD Abort Receive Complete callback.
HAL_SMARTCARD_StateTypeDef HAL_SMARTCARD_GetState (SMARTCARD_HandleTypeDef *hsmartcard)
 Return the SMARTCARD handle state.
uint32_t HAL_SMARTCARD_GetError (SMARTCARD_HandleTypeDef *hsmartcard)
 Return the SMARTCARD handle error code.

Detailed Description

Header file of SMARTCARD HAL module.

Author:
MCD Application Team
Attention:

© COPYRIGHT(c) 2017 STMicroelectronics

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of STMicroelectronics nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Definition in file stm32l4xx_hal_smartcard.h.