STM32F439xx HAL User Manual
Data Structures | Defines | Enumerations | Functions
stm32f4xx_hal_smartcard.h File Reference

Header file of SMARTCARD HAL module. More...

#include "stm32f4xx_hal_def.h"

Go to the source code of this file.

Data Structures

struct  SMARTCARD_InitTypeDef
 SMARTCARD Init Structure definition. More...
struct  SMARTCARD_HandleTypeDef
 SMARTCARD handle Structure definition. More...

Defines

#define HAL_SMARTCARD_ERROR_NONE   0x00000000U
#define HAL_SMARTCARD_ERROR_PE   0x00000001U
#define HAL_SMARTCARD_ERROR_NE   0x00000002U
#define HAL_SMARTCARD_ERROR_FE   0x00000004U
#define HAL_SMARTCARD_ERROR_ORE   0x00000008U
#define HAL_SMARTCARD_ERROR_DMA   0x00000010U
#define SMARTCARD_WORDLENGTH_9B   ((uint32_t)USART_CR1_M)
#define SMARTCARD_STOPBITS_0_5   ((uint32_t)USART_CR2_STOP_0)
#define SMARTCARD_STOPBITS_1_5   ((uint32_t)(USART_CR2_STOP_0 | USART_CR2_STOP_1))
#define SMARTCARD_PARITY_EVEN   ((uint32_t)USART_CR1_PCE)
#define SMARTCARD_PARITY_ODD   ((uint32_t)(USART_CR1_PCE | USART_CR1_PS))
#define SMARTCARD_MODE_RX   ((uint32_t)USART_CR1_RE)
#define SMARTCARD_MODE_TX   ((uint32_t)USART_CR1_TE)
#define SMARTCARD_MODE_TX_RX   ((uint32_t)(USART_CR1_TE |USART_CR1_RE))
#define SMARTCARD_POLARITY_LOW   0x00000000U
#define SMARTCARD_POLARITY_HIGH   ((uint32_t)USART_CR2_CPOL)
#define SMARTCARD_PHASE_1EDGE   0x00000000U
#define SMARTCARD_PHASE_2EDGE   ((uint32_t)USART_CR2_CPHA)
#define SMARTCARD_LASTBIT_DISABLE   0x00000000U
#define SMARTCARD_LASTBIT_ENABLE   ((uint32_t)USART_CR2_LBCL)
#define SMARTCARD_NACK_ENABLE   ((uint32_t)USART_CR3_NACK)
#define SMARTCARD_NACK_DISABLE   0x00000000U
#define SMARTCARD_DMAREQ_TX   ((uint32_t)USART_CR3_DMAT)
#define SMARTCARD_DMAREQ_RX   ((uint32_t)USART_CR3_DMAR)
#define SMARTCARD_PRESCALER_SYSCLK_DIV2   0x00000001U
#define SMARTCARD_PRESCALER_SYSCLK_DIV4   0x00000002U
#define SMARTCARD_PRESCALER_SYSCLK_DIV6   0x00000003U
#define SMARTCARD_PRESCALER_SYSCLK_DIV8   0x00000004U
#define SMARTCARD_PRESCALER_SYSCLK_DIV10   0x00000005U
#define SMARTCARD_PRESCALER_SYSCLK_DIV12   0x00000006U
#define SMARTCARD_PRESCALER_SYSCLK_DIV14   0x00000007U
#define SMARTCARD_PRESCALER_SYSCLK_DIV16   0x00000008U
#define SMARTCARD_PRESCALER_SYSCLK_DIV18   0x00000009U
#define SMARTCARD_PRESCALER_SYSCLK_DIV20   0x0000000AU
#define SMARTCARD_PRESCALER_SYSCLK_DIV22   0x0000000BU
#define SMARTCARD_PRESCALER_SYSCLK_DIV24   0x0000000CU
#define SMARTCARD_PRESCALER_SYSCLK_DIV26   0x0000000DU
#define SMARTCARD_PRESCALER_SYSCLK_DIV28   0x0000000EU
#define SMARTCARD_PRESCALER_SYSCLK_DIV30   0x0000000FU
#define SMARTCARD_PRESCALER_SYSCLK_DIV32   0x00000010U
#define SMARTCARD_PRESCALER_SYSCLK_DIV34   0x00000011U
#define SMARTCARD_PRESCALER_SYSCLK_DIV36   0x00000012U
#define SMARTCARD_PRESCALER_SYSCLK_DIV38   0x00000013U
#define SMARTCARD_PRESCALER_SYSCLK_DIV40   0x00000014U
#define SMARTCARD_PRESCALER_SYSCLK_DIV42   0x00000015U
#define SMARTCARD_PRESCALER_SYSCLK_DIV44   0x00000016U
#define SMARTCARD_PRESCALER_SYSCLK_DIV46   0x00000017U
#define SMARTCARD_PRESCALER_SYSCLK_DIV48   0x00000018U
#define SMARTCARD_PRESCALER_SYSCLK_DIV50   0x00000019U
#define SMARTCARD_PRESCALER_SYSCLK_DIV52   0x0000001AU
#define SMARTCARD_PRESCALER_SYSCLK_DIV54   0x0000001BU
#define SMARTCARD_PRESCALER_SYSCLK_DIV56   0x0000001CU
#define SMARTCARD_PRESCALER_SYSCLK_DIV58   0x0000001DU
#define SMARTCARD_PRESCALER_SYSCLK_DIV60   0x0000001EU
#define SMARTCARD_PRESCALER_SYSCLK_DIV62   0x0000001FU
#define SMARTCARD_FLAG_TXE   0x00000080U
#define SMARTCARD_FLAG_TC   0x00000040U
#define SMARTCARD_FLAG_RXNE   0x00000020U
#define SMARTCARD_FLAG_IDLE   0x00000010U
#define SMARTCARD_FLAG_ORE   0x00000008U
#define SMARTCARD_FLAG_NE   0x00000004U
#define SMARTCARD_FLAG_FE   0x00000002U
#define SMARTCARD_FLAG_PE   0x00000001U
#define SMARTCARD_IT_PE   ((uint32_t)(SMARTCARD_CR1_REG_INDEX << 28U | USART_CR1_PEIE))
#define SMARTCARD_IT_TXE   ((uint32_t)(SMARTCARD_CR1_REG_INDEX << 28U | USART_CR1_TXEIE))
#define SMARTCARD_IT_TC   ((uint32_t)(SMARTCARD_CR1_REG_INDEX << 28U | USART_CR1_TCIE))
#define SMARTCARD_IT_RXNE   ((uint32_t)(SMARTCARD_CR1_REG_INDEX << 28U | USART_CR1_RXNEIE))
#define SMARTCARD_IT_IDLE   ((uint32_t)(SMARTCARD_CR1_REG_INDEX << 28U | USART_CR1_IDLEIE))
#define SMARTCARD_IT_ERR   ((uint32_t)(SMARTCARD_CR3_REG_INDEX << 28U | USART_CR3_EIE))
#define __HAL_SMARTCARD_RESET_HANDLE_STATE(__HANDLE__)
 Reset SMARTCARD handle gstate & RxState.
#define __HAL_SMARTCARD_FLUSH_DRREGISTER(__HANDLE__)   ((__HANDLE__)->Instance->DR)
 Flushs the Smartcard DR register.
#define __HAL_SMARTCARD_GET_FLAG(__HANDLE__, __FLAG__)   (((__HANDLE__)->Instance->SR & (__FLAG__)) == (__FLAG__))
 Checks whether the specified Smartcard flag is set or not.
#define __HAL_SMARTCARD_CLEAR_FLAG(__HANDLE__, __FLAG__)   ((__HANDLE__)->Instance->SR = ~(__FLAG__))
 Clears the specified Smartcard pending flags.
#define __HAL_SMARTCARD_CLEAR_PEFLAG(__HANDLE__)
 Clear the SMARTCARD PE pending flag.
#define __HAL_SMARTCARD_CLEAR_FEFLAG(__HANDLE__)   __HAL_SMARTCARD_CLEAR_PEFLAG(__HANDLE__)
 Clear the SMARTCARD FE pending flag.
#define __HAL_SMARTCARD_CLEAR_NEFLAG(__HANDLE__)   __HAL_SMARTCARD_CLEAR_PEFLAG(__HANDLE__)
 Clear the SMARTCARD NE pending flag.
#define __HAL_SMARTCARD_CLEAR_OREFLAG(__HANDLE__)   __HAL_SMARTCARD_CLEAR_PEFLAG(__HANDLE__)
 Clear the SMARTCARD ORE pending flag.
#define __HAL_SMARTCARD_CLEAR_IDLEFLAG(__HANDLE__)   __HAL_SMARTCARD_CLEAR_PEFLAG(__HANDLE__)
 Clear the SMARTCARD IDLE pending flag.
#define __HAL_SMARTCARD_ENABLE_IT(__HANDLE__, __INTERRUPT__)
 Enables or disables the specified SmartCard interrupts.
#define __HAL_SMARTCARD_DISABLE_IT(__HANDLE__, __INTERRUPT__)
#define __HAL_SMARTCARD_GET_IT_SOURCE(__HANDLE__, __IT__)   (((((__IT__) >> 28U) == 1U)? (__HANDLE__)->Instance->CR1: (__HANDLE__)->Instance->CR3) & (((uint32_t)(__IT__)) & SMARTCARD_IT_MASK))
 Checks whether the specified SmartCard interrupt has occurred or not.
#define __HAL_SMARTCARD_ONE_BIT_SAMPLE_ENABLE(__HANDLE__)   ((__HANDLE__)->Instance->CR3|= USART_CR3_ONEBIT)
 Macro to enable the SMARTCARD's one bit sample method.
#define __HAL_SMARTCARD_ONE_BIT_SAMPLE_DISABLE(__HANDLE__)   ((__HANDLE__)->Instance->CR3 &= (uint16_t)~((uint16_t)USART_CR3_ONEBIT))
 Macro to disable the SMARTCARD's 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 __HAL_SMARTCARD_DMA_REQUEST_ENABLE(__HANDLE__, __REQUEST__)   ((__HANDLE__)->Instance->CR3 |= (__REQUEST__))
 Macros to enable or disable the SmartCard DMA request.
#define __HAL_SMARTCARD_DMA_REQUEST_DISABLE(__HANDLE__, __REQUEST__)   ((__HANDLE__)->Instance->CR3 &= ~(__REQUEST__))
#define SMARTCARD_IT_MASK
 SMARTCARD interruptions flag mask.
#define SMARTCARD_DIV(_PCLK_, _BAUD_)   (((_PCLK_)*25U)/(4U*(_BAUD_)))
#define SMARTCARD_DIVMANT(_PCLK_, _BAUD_)   (SMARTCARD_DIV((_PCLK_), (_BAUD_))/100U)
#define SMARTCARD_DIVFRAQ(_PCLK_, _BAUD_)   (((SMARTCARD_DIV((_PCLK_), (_BAUD_)) - (SMARTCARD_DIVMANT((_PCLK_), (_BAUD_)) * 100U)) * 16U + 50U) / 100U)
#define SMARTCARD_BRR(_PCLK_, _BAUD_)
#define SMARTCARD_CR1_REG_INDEX   1U
#define SMARTCARD_CR3_REG_INDEX   3U
#define IS_SMARTCARD_WORD_LENGTH(LENGTH)   ((LENGTH) == SMARTCARD_WORDLENGTH_9B)
#define IS_SMARTCARD_STOPBITS(STOPBITS)
#define IS_SMARTCARD_PARITY(PARITY)
#define IS_SMARTCARD_MODE(MODE)   ((((MODE) & 0x0000FFF3U) == 0x00U) && ((MODE) != 0x000000U))
#define IS_SMARTCARD_POLARITY(CPOL)   (((CPOL) == SMARTCARD_POLARITY_LOW) || ((CPOL) == SMARTCARD_POLARITY_HIGH))
#define IS_SMARTCARD_PHASE(CPHA)   (((CPHA) == SMARTCARD_PHASE_1EDGE) || ((CPHA) == SMARTCARD_PHASE_2EDGE))
#define IS_SMARTCARD_LASTBIT(LASTBIT)
#define IS_SMARTCARD_NACK_STATE(NACK)
#define IS_SMARTCARD_BAUDRATE(BAUDRATE)   ((BAUDRATE) < 10500001U)

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...

Functions

HAL_StatusTypeDef HAL_SMARTCARD_Init (SMARTCARD_HandleTypeDef *hsc)
 Initializes the SmartCard mode according to the specified parameters in the SMARTCARD_InitTypeDef and create the associated handle .
HAL_StatusTypeDef HAL_SMARTCARD_ReInit (SMARTCARD_HandleTypeDef *hsc)
HAL_StatusTypeDef HAL_SMARTCARD_DeInit (SMARTCARD_HandleTypeDef *hsc)
 DeInitializes the USART SmartCard peripheral.
__weak void HAL_SMARTCARD_MspInit (SMARTCARD_HandleTypeDef *hsc)
 SMARTCARD MSP Init.
__weak void HAL_SMARTCARD_MspDeInit (SMARTCARD_HandleTypeDef *hsc)
 SMARTCARD MSP DeInit.
HAL_StatusTypeDef HAL_SMARTCARD_Transmit (SMARTCARD_HandleTypeDef *hsc, uint8_t *pData, uint16_t Size, uint32_t Timeout)
 Send an amount of data in blocking mode.
HAL_StatusTypeDef HAL_SMARTCARD_Receive (SMARTCARD_HandleTypeDef *hsc, 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 *hsc, uint8_t *pData, uint16_t Size)
 Send an amount of data in non blocking mode.
HAL_StatusTypeDef HAL_SMARTCARD_Receive_IT (SMARTCARD_HandleTypeDef *hsc, uint8_t *pData, uint16_t Size)
 Receive an amount of data in non blocking mode.
HAL_StatusTypeDef HAL_SMARTCARD_Transmit_DMA (SMARTCARD_HandleTypeDef *hsc, uint8_t *pData, uint16_t Size)
 Send an amount of data in non blocking mode.
HAL_StatusTypeDef HAL_SMARTCARD_Receive_DMA (SMARTCARD_HandleTypeDef *hsc, uint8_t *pData, uint16_t Size)
 Receive an amount of data in non blocking mode.
HAL_StatusTypeDef HAL_SMARTCARD_Abort (SMARTCARD_HandleTypeDef *hsc)
 Abort ongoing transfers (blocking mode).
HAL_StatusTypeDef HAL_SMARTCARD_AbortTransmit (SMARTCARD_HandleTypeDef *hsc)
 Abort ongoing Transmit transfer (blocking mode).
HAL_StatusTypeDef HAL_SMARTCARD_AbortReceive (SMARTCARD_HandleTypeDef *hsc)
 Abort ongoing Receive transfer (blocking mode).
HAL_StatusTypeDef HAL_SMARTCARD_Abort_IT (SMARTCARD_HandleTypeDef *hsc)
 Abort ongoing transfers (Interrupt mode).
HAL_StatusTypeDef HAL_SMARTCARD_AbortTransmit_IT (SMARTCARD_HandleTypeDef *hsc)
 Abort ongoing Transmit transfer (Interrupt mode).
HAL_StatusTypeDef HAL_SMARTCARD_AbortReceive_IT (SMARTCARD_HandleTypeDef *hsc)
 Abort ongoing Receive transfer (Interrupt mode).
void HAL_SMARTCARD_IRQHandler (SMARTCARD_HandleTypeDef *hsc)
 This function handles SMARTCARD interrupt request.
__weak void HAL_SMARTCARD_TxCpltCallback (SMARTCARD_HandleTypeDef *hsc)
 Tx Transfer completed callbacks.
__weak void HAL_SMARTCARD_RxCpltCallback (SMARTCARD_HandleTypeDef *hsc)
 Rx Transfer completed callbacks.
__weak void HAL_SMARTCARD_ErrorCallback (SMARTCARD_HandleTypeDef *hsc)
 SMARTCARD error callbacks.
__weak void HAL_SMARTCARD_AbortCpltCallback (SMARTCARD_HandleTypeDef *hsc)
 SMARTCARD Abort Complete callback.
__weak void HAL_SMARTCARD_AbortTransmitCpltCallback (SMARTCARD_HandleTypeDef *hsc)
 SMARTCARD Abort Transmit Complete callback.
__weak void HAL_SMARTCARD_AbortReceiveCpltCallback (SMARTCARD_HandleTypeDef *hsc)
 SMARTCARD Abort ReceiveComplete callback.
HAL_SMARTCARD_StateTypeDef HAL_SMARTCARD_GetState (SMARTCARD_HandleTypeDef *hsc)
 return the SMARTCARD state
uint32_t HAL_SMARTCARD_GetError (SMARTCARD_HandleTypeDef *hsc)
 Return the SMARTCARD 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 stm32f4xx_hal_smartcard.h.