39 #ifndef __STM32F4xx_HAL_SMARTCARD_H 40 #define __STM32F4xx_HAL_SMARTCARD_H 182 uint16_t TxXferCount;
188 uint16_t RxXferCount;
196 __IO HAL_SMARTCARD_StateTypeDef gState;
200 __IO HAL_SMARTCARD_StateTypeDef RxState;
203 __IO uint32_t ErrorCode;
219 #define HAL_SMARTCARD_ERROR_NONE ((uint32_t)0x00000000U) 220 #define HAL_SMARTCARD_ERROR_PE ((uint32_t)0x00000001U) 221 #define HAL_SMARTCARD_ERROR_NE ((uint32_t)0x00000002U) 222 #define HAL_SMARTCARD_ERROR_FE ((uint32_t)0x00000004U) 223 #define HAL_SMARTCARD_ERROR_ORE ((uint32_t)0x00000008U) 224 #define HAL_SMARTCARD_ERROR_DMA ((uint32_t)0x00000010U) 232 #define SMARTCARD_WORDLENGTH_9B ((uint32_t)USART_CR1_M) 240 #define SMARTCARD_STOPBITS_0_5 ((uint32_t)USART_CR2_STOP_0) 241 #define SMARTCARD_STOPBITS_1_5 ((uint32_t)(USART_CR2_STOP_0 | USART_CR2_STOP_1)) 249 #define SMARTCARD_PARITY_EVEN ((uint32_t)USART_CR1_PCE) 250 #define SMARTCARD_PARITY_ODD ((uint32_t)(USART_CR1_PCE | USART_CR1_PS)) 258 #define SMARTCARD_MODE_RX ((uint32_t)USART_CR1_RE) 259 #define SMARTCARD_MODE_TX ((uint32_t)USART_CR1_TE) 260 #define SMARTCARD_MODE_TX_RX ((uint32_t)(USART_CR1_TE |USART_CR1_RE)) 268 #define SMARTCARD_POLARITY_LOW ((uint32_t)0x00000000U) 269 #define SMARTCARD_POLARITY_HIGH ((uint32_t)USART_CR2_CPOL) 277 #define SMARTCARD_PHASE_1EDGE ((uint32_t)0x00000000U) 278 #define SMARTCARD_PHASE_2EDGE ((uint32_t)USART_CR2_CPHA) 286 #define SMARTCARD_LASTBIT_DISABLE ((uint32_t)0x00000000U) 287 #define SMARTCARD_LASTBIT_ENABLE ((uint32_t)USART_CR2_LBCL) 295 #define SMARTCARD_NACK_ENABLE ((uint32_t)USART_CR3_NACK) 296 #define SMARTCARD_NACK_DISABLE ((uint32_t)0x00000000U) 304 #define SMARTCARD_DMAREQ_TX ((uint32_t)USART_CR3_DMAT) 305 #define SMARTCARD_DMAREQ_RX ((uint32_t)USART_CR3_DMAR) 313 #define SMARTCARD_PRESCALER_SYSCLK_DIV2 ((uint32_t)0x00000001U) 314 #define SMARTCARD_PRESCALER_SYSCLK_DIV4 ((uint32_t)0x00000002U) 315 #define SMARTCARD_PRESCALER_SYSCLK_DIV6 ((uint32_t)0x00000003U) 316 #define SMARTCARD_PRESCALER_SYSCLK_DIV8 ((uint32_t)0x00000004U) 317 #define SMARTCARD_PRESCALER_SYSCLK_DIV10 ((uint32_t)0x00000005U) 318 #define SMARTCARD_PRESCALER_SYSCLK_DIV12 ((uint32_t)0x00000006U) 319 #define SMARTCARD_PRESCALER_SYSCLK_DIV14 ((uint32_t)0x00000007U) 320 #define SMARTCARD_PRESCALER_SYSCLK_DIV16 ((uint32_t)0x00000008U) 321 #define SMARTCARD_PRESCALER_SYSCLK_DIV18 ((uint32_t)0x00000009U) 322 #define SMARTCARD_PRESCALER_SYSCLK_DIV20 ((uint32_t)0x0000000AU) 323 #define SMARTCARD_PRESCALER_SYSCLK_DIV22 ((uint32_t)0x0000000BU) 324 #define SMARTCARD_PRESCALER_SYSCLK_DIV24 ((uint32_t)0x0000000CU) 325 #define SMARTCARD_PRESCALER_SYSCLK_DIV26 ((uint32_t)0x0000000DU) 326 #define SMARTCARD_PRESCALER_SYSCLK_DIV28 ((uint32_t)0x0000000EU) 327 #define SMARTCARD_PRESCALER_SYSCLK_DIV30 ((uint32_t)0x0000000FU) 328 #define SMARTCARD_PRESCALER_SYSCLK_DIV32 ((uint32_t)0x00000010U) 329 #define SMARTCARD_PRESCALER_SYSCLK_DIV34 ((uint32_t)0x00000011U) 330 #define SMARTCARD_PRESCALER_SYSCLK_DIV36 ((uint32_t)0x00000012U) 331 #define SMARTCARD_PRESCALER_SYSCLK_DIV38 ((uint32_t)0x00000013U) 332 #define SMARTCARD_PRESCALER_SYSCLK_DIV40 ((uint32_t)0x00000014U) 333 #define SMARTCARD_PRESCALER_SYSCLK_DIV42 ((uint32_t)0x00000015U) 334 #define SMARTCARD_PRESCALER_SYSCLK_DIV44 ((uint32_t)0x00000016U) 335 #define SMARTCARD_PRESCALER_SYSCLK_DIV46 ((uint32_t)0x00000017U) 336 #define SMARTCARD_PRESCALER_SYSCLK_DIV48 ((uint32_t)0x00000018U) 337 #define SMARTCARD_PRESCALER_SYSCLK_DIV50 ((uint32_t)0x00000019U) 338 #define SMARTCARD_PRESCALER_SYSCLK_DIV52 ((uint32_t)0x0000001AU) 339 #define SMARTCARD_PRESCALER_SYSCLK_DIV54 ((uint32_t)0x0000001BU) 340 #define SMARTCARD_PRESCALER_SYSCLK_DIV56 ((uint32_t)0x0000001CU) 341 #define SMARTCARD_PRESCALER_SYSCLK_DIV58 ((uint32_t)0x0000001DU) 342 #define SMARTCARD_PRESCALER_SYSCLK_DIV60 ((uint32_t)0x0000001EU) 343 #define SMARTCARD_PRESCALER_SYSCLK_DIV62 ((uint32_t)0x0000001FU) 353 #define SMARTCARD_FLAG_TXE ((uint32_t)0x00000080U) 354 #define SMARTCARD_FLAG_TC ((uint32_t)0x00000040U) 355 #define SMARTCARD_FLAG_RXNE ((uint32_t)0x00000020U) 356 #define SMARTCARD_FLAG_IDLE ((uint32_t)0x00000010U) 357 #define SMARTCARD_FLAG_ORE ((uint32_t)0x00000008U) 358 #define SMARTCARD_FLAG_NE ((uint32_t)0x00000004U) 359 #define SMARTCARD_FLAG_FE ((uint32_t)0x00000002U) 360 #define SMARTCARD_FLAG_PE ((uint32_t)0x00000001U) 373 #define SMARTCARD_IT_PE ((uint32_t)(SMARTCARD_CR1_REG_INDEX << 28U | USART_CR1_PEIE)) 374 #define SMARTCARD_IT_TXE ((uint32_t)(SMARTCARD_CR1_REG_INDEX << 28U | USART_CR1_TXEIE)) 375 #define SMARTCARD_IT_TC ((uint32_t)(SMARTCARD_CR1_REG_INDEX << 28U | USART_CR1_TCIE)) 376 #define SMARTCARD_IT_RXNE ((uint32_t)(SMARTCARD_CR1_REG_INDEX << 28U | USART_CR1_RXNEIE)) 377 #define SMARTCARD_IT_IDLE ((uint32_t)(SMARTCARD_CR1_REG_INDEX << 28U | USART_CR1_IDLEIE)) 378 #define SMARTCARD_IT_ERR ((uint32_t)(SMARTCARD_CR3_REG_INDEX << 28U | USART_CR3_EIE)) 396 #define __HAL_SMARTCARD_RESET_HANDLE_STATE(__HANDLE__) do{ \ 397 (__HANDLE__)->gState = HAL_SMARTCARD_STATE_RESET; \ 398 (__HANDLE__)->RxState = HAL_SMARTCARD_STATE_RESET; \ 404 #define __HAL_SMARTCARD_FLUSH_DRREGISTER(__HANDLE__) ((__HANDLE__)->Instance->DR) 420 #define __HAL_SMARTCARD_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->SR & (__FLAG__)) == (__FLAG__)) 437 #define __HAL_SMARTCARD_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->SR = ~(__FLAG__)) 445 #define __HAL_SMARTCARD_CLEAR_PEFLAG(__HANDLE__) \ 447 __IO uint32_t tmpreg = 0x00U; \ 448 tmpreg = (__HANDLE__)->Instance->SR; \ 449 tmpreg = (__HANDLE__)->Instance->DR; \ 459 #define __HAL_SMARTCARD_CLEAR_FEFLAG(__HANDLE__) __HAL_SMARTCARD_CLEAR_PEFLAG(__HANDLE__) 467 #define __HAL_SMARTCARD_CLEAR_NEFLAG(__HANDLE__) __HAL_SMARTCARD_CLEAR_PEFLAG(__HANDLE__) 475 #define __HAL_SMARTCARD_CLEAR_OREFLAG(__HANDLE__) __HAL_SMARTCARD_CLEAR_PEFLAG(__HANDLE__) 483 #define __HAL_SMARTCARD_CLEAR_IDLEFLAG(__HANDLE__) __HAL_SMARTCARD_CLEAR_PEFLAG(__HANDLE__) 496 #define __HAL_SMARTCARD_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((((__INTERRUPT__) >> 28U) == 1U)? ((__HANDLE__)->Instance->CR1 |= ((__INTERRUPT__) & SMARTCARD_IT_MASK)): \ 497 ((__HANDLE__)->Instance->CR3 |= ((__INTERRUPT__) & SMARTCARD_IT_MASK))) 498 #define __HAL_SMARTCARD_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((((__INTERRUPT__) >> 28U) == 1U)? ((__HANDLE__)->Instance->CR1 &= ~((__INTERRUPT__) & SMARTCARD_IT_MASK)): \ 499 ((__HANDLE__)->Instance->CR3 &= ~ ((__INTERRUPT__) & SMARTCARD_IT_MASK))) 513 #define __HAL_SMARTCARD_GET_IT_SOURCE(__HANDLE__, __IT__) (((((__IT__) >> 28U) == 1U)? (__HANDLE__)->Instance->CR1: (__HANDLE__)->Instance->CR3) & (((uint32_t)(__IT__)) & SMARTCARD_IT_MASK)) 519 #define __HAL_SMARTCARD_ONE_BIT_SAMPLE_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR3|= USART_CR3_ONEBIT) 525 #define __HAL_SMARTCARD_ONE_BIT_SAMPLE_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR3 &= (uint16_t)~((uint16_t)USART_CR3_ONEBIT)) 532 #define __HAL_SMARTCARD_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1 |= USART_CR1_UE) 539 #define __HAL_SMARTCARD_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1 &= ~USART_CR1_UE) 548 #define __HAL_SMARTCARD_DMA_REQUEST_ENABLE(__HANDLE__, __REQUEST__) ((__HANDLE__)->Instance->CR3 |= (__REQUEST__)) 549 #define __HAL_SMARTCARD_DMA_REQUEST_DISABLE(__HANDLE__, __REQUEST__) ((__HANDLE__)->Instance->CR3 &= ~(__REQUEST__)) 616 #define SMARTCARD_IT_MASK ((uint32_t) USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_TCIE | USART_CR1_RXNEIE | \ 617 USART_CR1_IDLEIE | USART_CR3_EIE ) 619 #define SMARTCARD_DIV(_PCLK_, _BAUD_) (((_PCLK_)*25U)/(4U*(_BAUD_))) 620 #define SMARTCARD_DIVMANT(_PCLK_, _BAUD_) (SMARTCARD_DIV((_PCLK_), (_BAUD_))/100U) 621 #define SMARTCARD_DIVFRAQ(_PCLK_, _BAUD_) (((SMARTCARD_DIV((_PCLK_), (_BAUD_)) - (SMARTCARD_DIVMANT((_PCLK_), (_BAUD_)) * 100U)) * 16U + 50U) / 100U) 624 #define SMARTCARD_BRR(_PCLK_, _BAUD_) (((SMARTCARD_DIVMANT((_PCLK_), (_BAUD_)) << 4U) + \ 625 (SMARTCARD_DIVFRAQ((_PCLK_), (_BAUD_)) & 0xF0U)) + \ 626 (SMARTCARD_DIVFRAQ((_PCLK_), (_BAUD_)) & 0x0FU)) 628 #define SMARTCARD_CR1_REG_INDEX 1U 629 #define SMARTCARD_CR3_REG_INDEX 3U 638 #define IS_SMARTCARD_WORD_LENGTH(LENGTH) ((LENGTH) == SMARTCARD_WORDLENGTH_9B) 639 #define IS_SMARTCARD_STOPBITS(STOPBITS) (((STOPBITS) == SMARTCARD_STOPBITS_0_5) || \ 640 ((STOPBITS) == SMARTCARD_STOPBITS_1_5)) 641 #define IS_SMARTCARD_PARITY(PARITY) (((PARITY) == SMARTCARD_PARITY_EVEN) || \ 642 ((PARITY) == SMARTCARD_PARITY_ODD)) 643 #define IS_SMARTCARD_MODE(MODE) ((((MODE) & (uint32_t)0x0000FFF3U) == 0x00U) && ((MODE) != (uint32_t)0x000000U)) 644 #define IS_SMARTCARD_POLARITY(CPOL) (((CPOL) == SMARTCARD_POLARITY_LOW) || ((CPOL) == SMARTCARD_POLARITY_HIGH)) 645 #define IS_SMARTCARD_PHASE(CPHA) (((CPHA) == SMARTCARD_PHASE_1EDGE) || ((CPHA) == SMARTCARD_PHASE_2EDGE)) 646 #define IS_SMARTCARD_LASTBIT(LASTBIT) (((LASTBIT) == SMARTCARD_LASTBIT_DISABLE) || \ 647 ((LASTBIT) == SMARTCARD_LASTBIT_ENABLE)) 648 #define IS_SMARTCARD_NACK_STATE(NACK) (((NACK) == SMARTCARD_NACK_ENABLE) || \ 649 ((NACK) == SMARTCARD_NACK_DISABLE)) 650 #define IS_SMARTCARD_BAUDRATE(BAUDRATE) ((BAUDRATE) < 10500001U) uint32_t Prescaler
Definition: stm32f4xx_hal_smartcard.h:98
uint32_t NACKState
Definition: stm32f4xx_hal_smartcard.h:105
Definition: stm32f4xx_hal_smartcard.h:152
This file contains HAL common defines, enumeration, macros and structures definitions.
uint32_t BaudRate
Definition: stm32f4xx_hal_smartcard.h:67
Definition: stm32f4xx_hal_smartcard.h:150
Definition: stm32f4xx_hal_smartcard.h:160
Definition: stm32f4xx_hal_smartcard.h:156
SMARTCARD Init Structure definition.
Definition: stm32f4xx_hal_smartcard.h:65
uint32_t WordLength
Definition: stm32f4xx_hal_smartcard.h:72
Definition: stm32f4xx_hal_smartcard.h:165
Definition: stm32f4xx_hal_smartcard.h:154
uint32_t CLKPolarity
Definition: stm32f4xx_hal_smartcard.h:88
Definition: stm32f4xx_hal_smartcard.h:158
HAL_StatusTypeDef
HAL Status structures definition.
Definition: stm32f4xx_hal_def.h:57
#define __IO
Definition: core_cm0.h:213
Universal Synchronous Asynchronous Receiver Transmitter.
Definition: stm32f401xc.h:518
SMARTCARD handle Structure definition.
Definition: stm32f4xx_hal_smartcard.h:172
uint32_t StopBits
Definition: stm32f4xx_hal_smartcard.h:75
uint32_t CLKLastBit
Definition: stm32f4xx_hal_smartcard.h:94
uint32_t Mode
Definition: stm32f4xx_hal_smartcard.h:85
HAL_LockTypeDef
HAL Lock structures definition.
Definition: stm32f4xx_hal_def.h:68
HAL_SMARTCARD_StateTypeDef
HAL SMARTCARD State structures definition.
Definition: stm32f4xx_hal_smartcard.h:148
DMA handle Structure definition.
Definition: stm32f4xx_hal_dma.h:157
uint32_t CLKPhase
Definition: stm32f4xx_hal_smartcard.h:91
Definition: stm32f4xx_hal_smartcard.h:163
uint32_t GuardTime
Definition: stm32f4xx_hal_smartcard.h:103
uint32_t Parity
Definition: stm32f4xx_hal_smartcard.h:78