21 #ifndef STM32L4xx_HAL_SMARTCARD_H 22 #define STM32L4xx_HAL_SMARTCARD_H 108 #if defined(USART_PRESC_PRESCALER) 215 #if defined(USART_CR1_FIFOEN) 243 #if (USE_HAL_SMARTCARD_REGISTER_CALLBACKS == 1) 256 #if defined(USART_CR1_FIFOEN) 269 #if (USE_HAL_SMARTCARD_REGISTER_CALLBACKS == 1) 281 #if defined(USART_CR1_FIFOEN) 323 #define HAL_SMARTCARD_STATE_RESET 0x00000000U 325 #define HAL_SMARTCARD_STATE_READY 0x00000020U 327 #define HAL_SMARTCARD_STATE_BUSY 0x00000024U 329 #define HAL_SMARTCARD_STATE_BUSY_TX 0x00000021U 331 #define HAL_SMARTCARD_STATE_BUSY_RX 0x00000022U 333 #define HAL_SMARTCARD_STATE_BUSY_TX_RX 0x00000023U 336 #define HAL_SMARTCARD_STATE_TIMEOUT 0x000000A0U 338 #define HAL_SMARTCARD_STATE_ERROR 0x000000E0U 347 #define HAL_SMARTCARD_ERROR_NONE ((uint32_t)0x00000000U) 348 #define HAL_SMARTCARD_ERROR_PE ((uint32_t)0x00000001U) 349 #define HAL_SMARTCARD_ERROR_NE ((uint32_t)0x00000002U) 350 #define HAL_SMARTCARD_ERROR_FE ((uint32_t)0x00000004U) 351 #define HAL_SMARTCARD_ERROR_ORE ((uint32_t)0x00000008U) 352 #define HAL_SMARTCARD_ERROR_DMA ((uint32_t)0x00000010U) 353 #define HAL_SMARTCARD_ERROR_RTO ((uint32_t)0x00000020U) 354 #if (USE_HAL_SMARTCARD_REGISTER_CALLBACKS == 1) 355 #define HAL_SMARTCARD_ERROR_INVALID_CALLBACK ((uint32_t)0x00000040U) 364 #define SMARTCARD_WORDLENGTH_9B USART_CR1_M0 372 #define SMARTCARD_STOPBITS_0_5 USART_CR2_STOP_0 373 #define SMARTCARD_STOPBITS_1_5 USART_CR2_STOP 381 #define SMARTCARD_PARITY_EVEN USART_CR1_PCE 382 #define SMARTCARD_PARITY_ODD (USART_CR1_PCE | USART_CR1_PS) 390 #define SMARTCARD_MODE_RX USART_CR1_RE 391 #define SMARTCARD_MODE_TX USART_CR1_TE 392 #define SMARTCARD_MODE_TX_RX (USART_CR1_TE |USART_CR1_RE) 400 #define SMARTCARD_POLARITY_LOW 0x00000000U 401 #define SMARTCARD_POLARITY_HIGH USART_CR2_CPOL 409 #define SMARTCARD_PHASE_1EDGE 0x00000000U 410 #define SMARTCARD_PHASE_2EDGE USART_CR2_CPHA 418 #define SMARTCARD_LASTBIT_DISABLE 0x00000000U 419 #define SMARTCARD_LASTBIT_ENABLE USART_CR2_LBCL 427 #define SMARTCARD_ONE_BIT_SAMPLE_DISABLE 0x00000000U 428 #define SMARTCARD_ONE_BIT_SAMPLE_ENABLE USART_CR3_ONEBIT 436 #define SMARTCARD_NACK_DISABLE 0x00000000U 437 #define SMARTCARD_NACK_ENABLE USART_CR3_NACK 445 #define SMARTCARD_TIMEOUT_DISABLE 0x00000000U 446 #define SMARTCARD_TIMEOUT_ENABLE USART_CR2_RTOEN 451 #if defined(USART_PRESC_PRESCALER) 455 #define SMARTCARD_PRESCALER_DIV1 0x00000000U 456 #define SMARTCARD_PRESCALER_DIV2 0x00000001U 457 #define SMARTCARD_PRESCALER_DIV4 0x00000002U 458 #define SMARTCARD_PRESCALER_DIV6 0x00000003U 459 #define SMARTCARD_PRESCALER_DIV8 0x00000004U 460 #define SMARTCARD_PRESCALER_DIV10 0x00000005U 461 #define SMARTCARD_PRESCALER_DIV12 0x00000006U 462 #define SMARTCARD_PRESCALER_DIV16 0x00000007U 463 #define SMARTCARD_PRESCALER_DIV32 0x00000008U 464 #define SMARTCARD_PRESCALER_DIV64 0x00000009U 465 #define SMARTCARD_PRESCALER_DIV128 0x0000000AU 466 #define SMARTCARD_PRESCALER_DIV256 0x0000000BU 475 #define SMARTCARD_ADVFEATURE_TXINV_DISABLE 0x00000000U 476 #define SMARTCARD_ADVFEATURE_TXINV_ENABLE USART_CR2_TXINV 484 #define SMARTCARD_ADVFEATURE_RXINV_DISABLE 0x00000000U 485 #define SMARTCARD_ADVFEATURE_RXINV_ENABLE USART_CR2_RXINV 493 #define SMARTCARD_ADVFEATURE_DATAINV_DISABLE 0x00000000U 494 #define SMARTCARD_ADVFEATURE_DATAINV_ENABLE USART_CR2_DATAINV 502 #define SMARTCARD_ADVFEATURE_SWAP_DISABLE 0x00000000U 503 #define SMARTCARD_ADVFEATURE_SWAP_ENABLE USART_CR2_SWAP 511 #define SMARTCARD_ADVFEATURE_OVERRUN_ENABLE 0x00000000U 512 #define SMARTCARD_ADVFEATURE_OVERRUN_DISABLE USART_CR3_OVRDIS 520 #define SMARTCARD_ADVFEATURE_DMA_ENABLEONRXERROR 0x00000000U 521 #define SMARTCARD_ADVFEATURE_DMA_DISABLEONRXERROR USART_CR3_DDRE 529 #define SMARTCARD_ADVFEATURE_MSBFIRST_DISABLE 0x00000000U 530 #define SMARTCARD_ADVFEATURE_MSBFIRST_ENABLE USART_CR2_MSBFIRST 538 #define SMARTCARD_RXDATA_FLUSH_REQUEST USART_RQR_RXFRQ 539 #define SMARTCARD_TXDATA_FLUSH_REQUEST USART_RQR_TXFRQ 547 #define SMARTCARD_IT_MASK 0x001FU 548 #define SMARTCARD_CR_MASK 0x00E0U 549 #define SMARTCARD_CR_POS 5U 550 #define SMARTCARD_ISR_MASK 0x1F00U 551 #define SMARTCARD_ISR_POS 8U 569 #if USE_HAL_SMARTCARD_REGISTER_CALLBACKS == 1 570 #define __HAL_SMARTCARD_RESET_HANDLE_STATE(__HANDLE__) do{ \ 571 (__HANDLE__)->gState = HAL_SMARTCARD_STATE_RESET; \ 572 (__HANDLE__)->RxState = HAL_SMARTCARD_STATE_RESET; \ 573 (__HANDLE__)->MspInitCallback = NULL; \ 574 (__HANDLE__)->MspDeInitCallback = NULL; \ 577 #define __HAL_SMARTCARD_RESET_HANDLE_STATE(__HANDLE__) do{ \ 578 (__HANDLE__)->gState = HAL_SMARTCARD_STATE_RESET; \ 579 (__HANDLE__)->RxState = HAL_SMARTCARD_STATE_RESET; \ 587 #define __HAL_SMARTCARD_FLUSH_DRREGISTER(__HANDLE__) \ 589 SET_BIT((__HANDLE__)->Instance->RQR, SMARTCARD_RXDATA_FLUSH_REQUEST); \ 590 SET_BIT((__HANDLE__)->Instance->RQR, SMARTCARD_TXDATA_FLUSH_REQUEST); \ 611 #define __HAL_SMARTCARD_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ICR = (__FLAG__)) 617 #define __HAL_SMARTCARD_CLEAR_PEFLAG(__HANDLE__) __HAL_SMARTCARD_CLEAR_FLAG((__HANDLE__), SMARTCARD_CLEAR_PEF) 623 #define __HAL_SMARTCARD_CLEAR_FEFLAG(__HANDLE__) __HAL_SMARTCARD_CLEAR_FLAG((__HANDLE__), SMARTCARD_CLEAR_FEF) 629 #define __HAL_SMARTCARD_CLEAR_NEFLAG(__HANDLE__) __HAL_SMARTCARD_CLEAR_FLAG((__HANDLE__), SMARTCARD_CLEAR_NEF) 635 #define __HAL_SMARTCARD_CLEAR_OREFLAG(__HANDLE__) __HAL_SMARTCARD_CLEAR_FLAG((__HANDLE__), SMARTCARD_CLEAR_OREF) 641 #define __HAL_SMARTCARD_CLEAR_IDLEFLAG(__HANDLE__) __HAL_SMARTCARD_CLEAR_FLAG((__HANDLE__), SMARTCARD_CLEAR_IDLEF) 669 #define __HAL_SMARTCARD_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->ISR & (__FLAG__)) == (__FLAG__)) 692 #define __HAL_SMARTCARD_ENABLE_IT(__HANDLE__, __INTERRUPT__) (((((__INTERRUPT__) & SMARTCARD_CR_MASK) >> SMARTCARD_CR_POS) == 1U)? ((__HANDLE__)->Instance->CR1 |= ((uint32_t)1U << ((__INTERRUPT__) & SMARTCARD_IT_MASK))): \ 693 ((((__INTERRUPT__) & SMARTCARD_CR_MASK) >> SMARTCARD_CR_POS) == 2U)? ((__HANDLE__)->Instance->CR2 |= ((uint32_t)1U << ((__INTERRUPT__) & SMARTCARD_IT_MASK))): \ 694 ((__HANDLE__)->Instance->CR3 |= ((uint32_t)1U << ((__INTERRUPT__) & SMARTCARD_IT_MASK)))) 717 #define __HAL_SMARTCARD_DISABLE_IT(__HANDLE__, __INTERRUPT__) (((((__INTERRUPT__) & SMARTCARD_CR_MASK) >> SMARTCARD_CR_POS) == 1U)? ((__HANDLE__)->Instance->CR1 &= ~ ((uint32_t)1U << ((__INTERRUPT__) & SMARTCARD_IT_MASK))): \ 718 ((((__INTERRUPT__) & SMARTCARD_CR_MASK) >> SMARTCARD_CR_POS) == 2U)? ((__HANDLE__)->Instance->CR2 &= ~ ((uint32_t)1U << ((__INTERRUPT__) & SMARTCARD_IT_MASK))): \ 719 ((__HANDLE__)->Instance->CR3 &= ~ ((uint32_t)1U << ((__INTERRUPT__) & SMARTCARD_IT_MASK)))) 742 #define __HAL_SMARTCARD_GET_IT(__HANDLE__, __INTERRUPT__) ((((__HANDLE__)->Instance->ISR\ 743 & ((uint32_t)0x01U << (((__INTERRUPT__) & SMARTCARD_ISR_MASK)>> SMARTCARD_ISR_POS))) != 0U) ? SET : RESET) 766 #define __HAL_SMARTCARD_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((((((((__INTERRUPT__) & SMARTCARD_CR_MASK) >> SMARTCARD_CR_POS) == 0x01U)? (__HANDLE__)->Instance->CR1 : \ 767 (((((__INTERRUPT__) & SMARTCARD_CR_MASK) >> SMARTCARD_CR_POS) == 0x02U)? (__HANDLE__)->Instance->CR2 : \ 768 (__HANDLE__)->Instance->CR3)) & ((uint32_t)0x01U << (((uint16_t)(__INTERRUPT__)) & SMARTCARD_IT_MASK))) != 0U) ? SET : RESET) 787 #define __HAL_SMARTCARD_CLEAR_IT(__HANDLE__, __IT_CLEAR__) ((__HANDLE__)->Instance->ICR |= (uint32_t)(__IT_CLEAR__)) 797 #define __HAL_SMARTCARD_SEND_REQ(__HANDLE__, __REQ__) ((__HANDLE__)->Instance->RQR |= (uint16_t)(__REQ__)) 803 #define __HAL_SMARTCARD_ONE_BIT_SAMPLE_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR3|= USART_CR3_ONEBIT) 809 #define __HAL_SMARTCARD_ONE_BIT_SAMPLE_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR3\ 810 &= (uint32_t)~((uint32_t)USART_CR3_ONEBIT)) 816 #define __HAL_SMARTCARD_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1 |= USART_CR1_UE) 822 #define __HAL_SMARTCARD_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1 &= ~USART_CR1_UE) 838 #if defined (STM32L432xx) || defined (STM32L442xx) 839 #define SMARTCARD_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__) \ 841 if((__HANDLE__)->Instance == USART1) \ 843 switch(__HAL_RCC_GET_USART1_SOURCE()) \ 845 case RCC_USART1CLKSOURCE_PCLK2: \ 846 (__CLOCKSOURCE__) = SMARTCARD_CLOCKSOURCE_PCLK2; \ 848 case RCC_USART1CLKSOURCE_HSI: \ 849 (__CLOCKSOURCE__) = SMARTCARD_CLOCKSOURCE_HSI; \ 851 case RCC_USART1CLKSOURCE_SYSCLK: \ 852 (__CLOCKSOURCE__) = SMARTCARD_CLOCKSOURCE_SYSCLK; \ 854 case RCC_USART1CLKSOURCE_LSE: \ 855 (__CLOCKSOURCE__) = SMARTCARD_CLOCKSOURCE_LSE; \ 858 (__CLOCKSOURCE__) = SMARTCARD_CLOCKSOURCE_UNDEFINED; \ 862 else if((__HANDLE__)->Instance == USART2) \ 864 switch(__HAL_RCC_GET_USART2_SOURCE()) \ 866 case RCC_USART2CLKSOURCE_PCLK1: \ 867 (__CLOCKSOURCE__) = SMARTCARD_CLOCKSOURCE_PCLK1; \ 869 case RCC_USART2CLKSOURCE_HSI: \ 870 (__CLOCKSOURCE__) = SMARTCARD_CLOCKSOURCE_HSI; \ 872 case RCC_USART2CLKSOURCE_SYSCLK: \ 873 (__CLOCKSOURCE__) = SMARTCARD_CLOCKSOURCE_SYSCLK; \ 875 case RCC_USART2CLKSOURCE_LSE: \ 876 (__CLOCKSOURCE__) = SMARTCARD_CLOCKSOURCE_LSE; \ 879 (__CLOCKSOURCE__) = SMARTCARD_CLOCKSOURCE_UNDEFINED; \ 885 (__CLOCKSOURCE__) = SMARTCARD_CLOCKSOURCE_UNDEFINED; \ 889 #define SMARTCARD_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__) \ 891 if((__HANDLE__)->Instance == USART1) \ 893 switch(__HAL_RCC_GET_USART1_SOURCE()) \ 895 case RCC_USART1CLKSOURCE_PCLK2: \ 896 (__CLOCKSOURCE__) = SMARTCARD_CLOCKSOURCE_PCLK2; \ 898 case RCC_USART1CLKSOURCE_HSI: \ 899 (__CLOCKSOURCE__) = SMARTCARD_CLOCKSOURCE_HSI; \ 901 case RCC_USART1CLKSOURCE_SYSCLK: \ 902 (__CLOCKSOURCE__) = SMARTCARD_CLOCKSOURCE_SYSCLK; \ 904 case RCC_USART1CLKSOURCE_LSE: \ 905 (__CLOCKSOURCE__) = SMARTCARD_CLOCKSOURCE_LSE; \ 908 (__CLOCKSOURCE__) = SMARTCARD_CLOCKSOURCE_UNDEFINED; \ 912 else if((__HANDLE__)->Instance == USART2) \ 914 switch(__HAL_RCC_GET_USART2_SOURCE()) \ 916 case RCC_USART2CLKSOURCE_PCLK1: \ 917 (__CLOCKSOURCE__) = SMARTCARD_CLOCKSOURCE_PCLK1; \ 919 case RCC_USART2CLKSOURCE_HSI: \ 920 (__CLOCKSOURCE__) = SMARTCARD_CLOCKSOURCE_HSI; \ 922 case RCC_USART2CLKSOURCE_SYSCLK: \ 923 (__CLOCKSOURCE__) = SMARTCARD_CLOCKSOURCE_SYSCLK; \ 925 case RCC_USART2CLKSOURCE_LSE: \ 926 (__CLOCKSOURCE__) = SMARTCARD_CLOCKSOURCE_LSE; \ 929 (__CLOCKSOURCE__) = SMARTCARD_CLOCKSOURCE_UNDEFINED; \ 933 else if((__HANDLE__)->Instance == USART3) \ 935 switch(__HAL_RCC_GET_USART3_SOURCE()) \ 937 case RCC_USART3CLKSOURCE_PCLK1: \ 938 (__CLOCKSOURCE__) = SMARTCARD_CLOCKSOURCE_PCLK1; \ 940 case RCC_USART3CLKSOURCE_HSI: \ 941 (__CLOCKSOURCE__) = SMARTCARD_CLOCKSOURCE_HSI; \ 943 case RCC_USART3CLKSOURCE_SYSCLK: \ 944 (__CLOCKSOURCE__) = SMARTCARD_CLOCKSOURCE_SYSCLK; \ 946 case RCC_USART3CLKSOURCE_LSE: \ 947 (__CLOCKSOURCE__) = SMARTCARD_CLOCKSOURCE_LSE; \ 950 (__CLOCKSOURCE__) = SMARTCARD_CLOCKSOURCE_UNDEFINED; \ 956 (__CLOCKSOURCE__) = SMARTCARD_CLOCKSOURCE_UNDEFINED; \ 967 #define IS_SMARTCARD_BAUDRATE(__BAUDRATE__) ((__BAUDRATE__) < 7500001U) 974 #define IS_SMARTCARD_BLOCKLENGTH(__LENGTH__) ((__LENGTH__) <= 0xFFU) 981 #define IS_SMARTCARD_TIMEOUT_VALUE(__TIMEOUTVALUE__) ((__TIMEOUTVALUE__) <= 0xFFFFFFU) 988 #define IS_SMARTCARD_AUTORETRY_COUNT(__COUNT__) ((__COUNT__) <= 0x7U) 994 #define IS_SMARTCARD_WORD_LENGTH(__LENGTH__) ((__LENGTH__) == SMARTCARD_WORDLENGTH_9B) 1000 #define IS_SMARTCARD_STOPBITS(__STOPBITS__) (((__STOPBITS__) == SMARTCARD_STOPBITS_0_5) ||\ 1001 ((__STOPBITS__) == SMARTCARD_STOPBITS_1_5)) 1007 #define IS_SMARTCARD_PARITY(__PARITY__) (((__PARITY__) == SMARTCARD_PARITY_EVEN) || \ 1008 ((__PARITY__) == SMARTCARD_PARITY_ODD)) 1014 #define IS_SMARTCARD_MODE(__MODE__) ((((__MODE__) & 0xFFF3U) == 0x00U) && ((__MODE__) != 0x00U)) 1020 #define IS_SMARTCARD_POLARITY(__CPOL__) (((__CPOL__) == SMARTCARD_POLARITY_LOW)\ 1021 || ((__CPOL__) == SMARTCARD_POLARITY_HIGH)) 1027 #define IS_SMARTCARD_PHASE(__CPHA__) (((__CPHA__) == SMARTCARD_PHASE_1EDGE) || ((__CPHA__) == SMARTCARD_PHASE_2EDGE)) 1033 #define IS_SMARTCARD_LASTBIT(__LASTBIT__) (((__LASTBIT__) == SMARTCARD_LASTBIT_DISABLE) || \ 1034 ((__LASTBIT__) == SMARTCARD_LASTBIT_ENABLE)) 1040 #define IS_SMARTCARD_ONE_BIT_SAMPLE(__ONEBIT__) (((__ONEBIT__) == SMARTCARD_ONE_BIT_SAMPLE_DISABLE) || \ 1041 ((__ONEBIT__) == SMARTCARD_ONE_BIT_SAMPLE_ENABLE)) 1047 #define IS_SMARTCARD_NACK(__NACK__) (((__NACK__) == SMARTCARD_NACK_ENABLE) || \ 1048 ((__NACK__) == SMARTCARD_NACK_DISABLE)) 1054 #define IS_SMARTCARD_TIMEOUT(__TIMEOUT__) (((__TIMEOUT__) == SMARTCARD_TIMEOUT_DISABLE) || \ 1055 ((__TIMEOUT__) == SMARTCARD_TIMEOUT_ENABLE)) 1057 #if defined(USART_PRESC_PRESCALER) 1062 #define IS_SMARTCARD_CLOCKPRESCALER(__CLOCKPRESCALER__) (((__CLOCKPRESCALER__) == SMARTCARD_PRESCALER_DIV1) || \ 1063 ((__CLOCKPRESCALER__) == SMARTCARD_PRESCALER_DIV2) || \ 1064 ((__CLOCKPRESCALER__) == SMARTCARD_PRESCALER_DIV4) || \ 1065 ((__CLOCKPRESCALER__) == SMARTCARD_PRESCALER_DIV6) || \ 1066 ((__CLOCKPRESCALER__) == SMARTCARD_PRESCALER_DIV8) || \ 1067 ((__CLOCKPRESCALER__) == SMARTCARD_PRESCALER_DIV10) || \ 1068 ((__CLOCKPRESCALER__) == SMARTCARD_PRESCALER_DIV12) || \ 1069 ((__CLOCKPRESCALER__) == SMARTCARD_PRESCALER_DIV16) || \ 1070 ((__CLOCKPRESCALER__) == SMARTCARD_PRESCALER_DIV32) || \ 1071 ((__CLOCKPRESCALER__) == SMARTCARD_PRESCALER_DIV64) || \ 1072 ((__CLOCKPRESCALER__) == SMARTCARD_PRESCALER_DIV128) || \ 1073 ((__CLOCKPRESCALER__) == SMARTCARD_PRESCALER_DIV256)) 1080 #define IS_SMARTCARD_ADVFEATURE_INIT(__INIT__) ((__INIT__) <= (SMARTCARD_ADVFEATURE_NO_INIT | \ 1081 SMARTCARD_ADVFEATURE_TXINVERT_INIT | \ 1082 SMARTCARD_ADVFEATURE_RXINVERT_INIT | \ 1083 SMARTCARD_ADVFEATURE_DATAINVERT_INIT | \ 1084 SMARTCARD_ADVFEATURE_SWAP_INIT | \ 1085 SMARTCARD_ADVFEATURE_RXOVERRUNDISABLE_INIT | \ 1086 SMARTCARD_ADVFEATURE_DMADISABLEONERROR_INIT | \ 1087 SMARTCARD_ADVFEATURE_MSBFIRST_INIT)) 1093 #define IS_SMARTCARD_ADVFEATURE_TXINV(__TXINV__) (((__TXINV__) == SMARTCARD_ADVFEATURE_TXINV_DISABLE) || \ 1094 ((__TXINV__) == SMARTCARD_ADVFEATURE_TXINV_ENABLE)) 1100 #define IS_SMARTCARD_ADVFEATURE_RXINV(__RXINV__) (((__RXINV__) == SMARTCARD_ADVFEATURE_RXINV_DISABLE) || \ 1101 ((__RXINV__) == SMARTCARD_ADVFEATURE_RXINV_ENABLE)) 1107 #define IS_SMARTCARD_ADVFEATURE_DATAINV(__DATAINV__) (((__DATAINV__) == SMARTCARD_ADVFEATURE_DATAINV_DISABLE) || \ 1108 ((__DATAINV__) == SMARTCARD_ADVFEATURE_DATAINV_ENABLE)) 1114 #define IS_SMARTCARD_ADVFEATURE_SWAP(__SWAP__) (((__SWAP__) == SMARTCARD_ADVFEATURE_SWAP_DISABLE) || \ 1115 ((__SWAP__) == SMARTCARD_ADVFEATURE_SWAP_ENABLE)) 1121 #define IS_SMARTCARD_OVERRUN(__OVERRUN__) (((__OVERRUN__) == SMARTCARD_ADVFEATURE_OVERRUN_ENABLE) || \ 1122 ((__OVERRUN__) == SMARTCARD_ADVFEATURE_OVERRUN_DISABLE)) 1128 #define IS_SMARTCARD_ADVFEATURE_DMAONRXERROR(__DMA__) (((__DMA__) == SMARTCARD_ADVFEATURE_DMA_ENABLEONRXERROR) || \ 1129 ((__DMA__) == SMARTCARD_ADVFEATURE_DMA_DISABLEONRXERROR)) 1135 #define IS_SMARTCARD_ADVFEATURE_MSBFIRST(__MSBFIRST__) (((__MSBFIRST__) == SMARTCARD_ADVFEATURE_MSBFIRST_DISABLE) || \ 1136 ((__MSBFIRST__) == SMARTCARD_ADVFEATURE_MSBFIRST_ENABLE)) 1142 #define IS_SMARTCARD_REQUEST_PARAMETER(__PARAM__) (((__PARAM__) == SMARTCARD_RXDATA_FLUSH_REQUEST) || \ 1143 ((__PARAM__) == SMARTCARD_TXDATA_FLUSH_REQUEST)) 1167 #if (USE_HAL_SMARTCARD_REGISTER_CALLBACKS == 1) 1172 HAL_SMARTCARD_CallbackIDTypeDef CallbackID);
void(* TxCpltCallback)(struct __SMARTCARD_HandleTypeDef *hsmartcard)
void HAL_SMARTCARD_MspDeInit(SMARTCARD_HandleTypeDef *hsmartcard)
DeInitialize the SMARTCARD MSP.
void(* RxISR)(struct __SMARTCARD_HandleTypeDef *huart)
void(* TxISR)(struct __SMARTCARD_HandleTypeDef *huart)
DMA handle Structure definition.
struct __SMARTCARD_HandleTypeDef SMARTCARD_HandleTypeDef
SMARTCARD handle Structure definition.
uint16_t TxCompletionIndication
void(* AbortTransmitCpltCallback)(struct __SMARTCARD_HandleTypeDef *hsmartcard)
HAL_StatusTypeDef HAL_SMARTCARD_Abort(SMARTCARD_HandleTypeDef *hsmartcard)
Abort ongoing transfers (blocking mode).
__IO HAL_SMARTCARD_StateTypeDef gState
void(* TxFifoEmptyCallback)(struct __SMARTCARD_HandleTypeDef *hsmartcard)
HAL_SMARTCARD_StateTypeDef HAL_SMARTCARD_GetState(SMARTCARD_HandleTypeDef *hsmartcard)
Return the SMARTCARD handle state.
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_AbortReceive_IT(SMARTCARD_HandleTypeDef *hsmartcard)
Abort ongoing Receive transfer (Interrupt mode).
HAL_StatusTypeDef HAL_SMARTCARD_AbortTransmit_IT(SMARTCARD_HandleTypeDef *hsmartcard)
Abort ongoing Transmit transfer (Interrupt mode).
HAL_StatusTypeDef HAL_SMARTCARD_Init(SMARTCARD_HandleTypeDef *hsmartcard)
Initialize the SMARTCARD mode according to the specified parameters in the SMARTCARD_HandleTypeDef an...
uint32_t HAL_SMARTCARD_StateTypeDef
HAL SMARTCARD State definition.
This file contains HAL common defines, enumeration, macros and structures definitions.
void HAL_SMARTCARD_RxCpltCallback(SMARTCARD_HandleTypeDef *hsmartcard)
Rx Transfer completed callback.
uint32_t HAL_SMARTCARD_GetError(SMARTCARD_HandleTypeDef *hsmartcard)
Return the SMARTCARD handle error code.
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...
void HAL_SMARTCARD_ErrorCallback(SMARTCARD_HandleTypeDef *hsmartcard)
SMARTCARD error callback.
SMARTCARD Init Structure definition.
void HAL_SMARTCARD_IRQHandler(SMARTCARD_HandleTypeDef *hsmartcard)
Handle SMARTCARD interrupt requests.
uint32_t DMADisableonRxError
void HAL_SMARTCARD_MspInit(SMARTCARD_HandleTypeDef *hsmartcard)
Initialize the SMARTCARD MSP.
DMA_HandleTypeDef * hdmatx
uint16_t NbTxDataToProcess
void HAL_SMARTCARD_AbortCpltCallback(SMARTCARD_HandleTypeDef *hsmartcard)
SMARTCARD Abort Complete callback.
Header file of SMARTCARD HAL Extended module.
void(* AbortReceiveCpltCallback)(struct __SMARTCARD_HandleTypeDef *hsmartcard)
void(* ErrorCallback)(struct __SMARTCARD_HandleTypeDef *hsmartcard)
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.
uint32_t TxPinLevelInvert
void HAL_SMARTCARD_AbortReceiveCpltCallback(SMARTCARD_HandleTypeDef *hsmartcard)
SMARTCARD Abort Receive Complete callback.
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_AbortTransmit(SMARTCARD_HandleTypeDef *hsmartcard)
Abort ongoing Transmit transfer (blocking mode).
SMARTCARD_AdvFeatureInitTypeDef AdvancedInit
DMA_HandleTypeDef * hdmarx
HAL_StatusTypeDef HAL_SMARTCARD_AbortReceive(SMARTCARD_HandleTypeDef *hsmartcard)
Abort ongoing Receive transfer (blocking mode).
SMARTCARD_ClockSourceTypeDef
SMARTCARD clock sources.
HAL_StatusTypeDef HAL_SMARTCARD_Abort_IT(SMARTCARD_HandleTypeDef *hsmartcard)
Abort ongoing transfers (Interrupt mode).
SMARTCARD_InitTypeDef Init
void(* pSMARTCARD_CallbackTypeDef)(SMARTCARD_HandleTypeDef *hsmartcard)
HAL SMARTCARD Callback pointer definition.
HAL_StatusTypeDef HAL_SMARTCARD_DeInit(SMARTCARD_HandleTypeDef *hsmartcard)
DeInitialize the SMARTCARD peripheral.
HAL_StatusTypeDef HAL_SMARTCARD_Transmit_DMA(SMARTCARD_HandleTypeDef *hsmartcard, uint8_t *pData, uint16_t Size)
Send an amount of data in DMA mode.
void(* MspInitCallback)(struct __SMARTCARD_HandleTypeDef *hsmartcard)
HAL_LockTypeDef
HAL Lock structures definition.
uint32_t RxPinLevelInvert
HAL_SMARTCARD_CallbackIDTypeDef
HAL SMARTCARD Callback ID enumeration definition.
SMARTCARD advanced features initalization structure definition.
void(* MspDeInitCallback)(struct __SMARTCARD_HandleTypeDef *hsmartcard)
void(* RxCpltCallback)(struct __SMARTCARD_HandleTypeDef *hsmartcard)
void HAL_SMARTCARD_AbortTransmitCpltCallback(SMARTCARD_HandleTypeDef *hsmartcard)
SMARTCARD Abort Complete callback.
void(* RxFifoFullCallback)(struct __SMARTCARD_HandleTypeDef *hsmartcard)
uint16_t NbRxDataToProcess
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.
__IO HAL_SMARTCARD_StateTypeDef RxState
HAL_StatusTypeDef HAL_SMARTCARD_Receive_DMA(SMARTCARD_HandleTypeDef *hsmartcard, uint8_t *pData, uint16_t Size)
Receive an amount of data in DMA mode.
__IO uint16_t TxXferCount
void HAL_SMARTCARD_TxCpltCallback(SMARTCARD_HandleTypeDef *hsmartcard)
Tx Transfer completed callback.
void(* AbortCpltCallback)(struct __SMARTCARD_HandleTypeDef *hsmartcard)
HAL_StatusTypeDef HAL_SMARTCARD_Transmit_IT(SMARTCARD_HandleTypeDef *hsmartcard, uint8_t *pData, uint16_t Size)
Send an amount of data in interrupt mode.
SMARTCARD handle Structure definition.
__IO uint16_t RxXferCount