21 #ifndef STM32L4xx_HAL_IRDA_H 22 #define STM32L4xx_HAL_IRDA_H 74 #if defined(USART_PRESC_PRESCALER) 138 #if (USE_HAL_IRDA_REGISTER_CALLBACKS == 1) 139 typedef struct __IRDA_HandleTypeDef
175 __IO uint32_t ErrorCode;
177 #if (USE_HAL_IRDA_REGISTER_CALLBACKS == 1) 178 void (* TxHalfCpltCallback)(
struct __IRDA_HandleTypeDef *hirda);
180 void (* TxCpltCallback)(
struct __IRDA_HandleTypeDef *hirda);
182 void (* RxHalfCpltCallback)(
struct __IRDA_HandleTypeDef *hirda);
184 void (* RxCpltCallback)(
struct __IRDA_HandleTypeDef *hirda);
186 void (* ErrorCallback)(
struct __IRDA_HandleTypeDef *hirda);
188 void (* AbortCpltCallback)(
struct __IRDA_HandleTypeDef *hirda);
190 void (* AbortTransmitCpltCallback)(
struct __IRDA_HandleTypeDef *hirda);
192 void (* AbortReceiveCpltCallback)(
struct __IRDA_HandleTypeDef *hirda);
195 void (* MspInitCallback)(
struct __IRDA_HandleTypeDef *hirda);
197 void (* MspDeInitCallback)(
struct __IRDA_HandleTypeDef *hirda);
202 #if (USE_HAL_IRDA_REGISTER_CALLBACKS == 1) 241 #define HAL_IRDA_STATE_RESET 0x00000000U 243 #define HAL_IRDA_STATE_READY 0x00000020U 245 #define HAL_IRDA_STATE_BUSY 0x00000024U 247 #define HAL_IRDA_STATE_BUSY_TX 0x00000021U 249 #define HAL_IRDA_STATE_BUSY_RX 0x00000022U 251 #define HAL_IRDA_STATE_BUSY_TX_RX 0x00000023U 254 #define HAL_IRDA_STATE_TIMEOUT 0x000000A0U 256 #define HAL_IRDA_STATE_ERROR 0x000000E0U 265 #define HAL_IRDA_ERROR_NONE ((uint32_t)0x00000000U) 266 #define HAL_IRDA_ERROR_PE ((uint32_t)0x00000001U) 267 #define HAL_IRDA_ERROR_NE ((uint32_t)0x00000002U) 268 #define HAL_IRDA_ERROR_FE ((uint32_t)0x00000004U) 269 #define HAL_IRDA_ERROR_ORE ((uint32_t)0x00000008U) 270 #define HAL_IRDA_ERROR_DMA ((uint32_t)0x00000010U) 271 #define HAL_IRDA_ERROR_BUSY ((uint32_t)0x00000020U) 272 #if (USE_HAL_IRDA_REGISTER_CALLBACKS == 1) 273 #define HAL_IRDA_ERROR_INVALID_CALLBACK ((uint32_t)0x00000040U) 282 #define IRDA_PARITY_NONE 0x00000000U 283 #define IRDA_PARITY_EVEN USART_CR1_PCE 284 #define IRDA_PARITY_ODD (USART_CR1_PCE | USART_CR1_PS) 292 #define IRDA_MODE_RX USART_CR1_RE 293 #define IRDA_MODE_TX USART_CR1_TE 294 #define IRDA_MODE_TX_RX (USART_CR1_TE |USART_CR1_RE) 302 #define IRDA_POWERMODE_NORMAL 0x00000000U 303 #define IRDA_POWERMODE_LOWPOWER USART_CR3_IRLP 308 #if defined(USART_PRESC_PRESCALER) 312 #define IRDA_PRESCALER_DIV1 0x00000000U 313 #define IRDA_PRESCALER_DIV2 0x00000001U 314 #define IRDA_PRESCALER_DIV4 0x00000002U 315 #define IRDA_PRESCALER_DIV6 0x00000003U 316 #define IRDA_PRESCALER_DIV8 0x00000004U 317 #define IRDA_PRESCALER_DIV10 0x00000005U 318 #define IRDA_PRESCALER_DIV12 0x00000006U 319 #define IRDA_PRESCALER_DIV16 0x00000007U 320 #define IRDA_PRESCALER_DIV32 0x00000008U 321 #define IRDA_PRESCALER_DIV64 0x00000009U 322 #define IRDA_PRESCALER_DIV128 0x0000000AU 323 #define IRDA_PRESCALER_DIV256 0x0000000BU 332 #define IRDA_STATE_DISABLE 0x00000000U 333 #define IRDA_STATE_ENABLE USART_CR1_UE 341 #define IRDA_MODE_DISABLE 0x00000000U 342 #define IRDA_MODE_ENABLE USART_CR3_IREN 350 #define IRDA_ONE_BIT_SAMPLE_DISABLE 0x00000000U 351 #define IRDA_ONE_BIT_SAMPLE_ENABLE USART_CR3_ONEBIT 359 #define IRDA_DMA_TX_DISABLE 0x00000000U 360 #define IRDA_DMA_TX_ENABLE USART_CR3_DMAT 368 #define IRDA_DMA_RX_DISABLE 0x00000000U 369 #define IRDA_DMA_RX_ENABLE USART_CR3_DMAR 377 #define IRDA_AUTOBAUD_REQUEST USART_RQR_ABRRQ 378 #define IRDA_RXDATA_FLUSH_REQUEST USART_RQR_RXFRQ 379 #define IRDA_TXDATA_FLUSH_REQUEST USART_RQR_TXFRQ 389 #define IRDA_FLAG_REACK USART_ISR_REACK 390 #define IRDA_FLAG_TEACK USART_ISR_TEACK 391 #define IRDA_FLAG_BUSY USART_ISR_BUSY 392 #define IRDA_FLAG_ABRF USART_ISR_ABRF 393 #define IRDA_FLAG_ABRE USART_ISR_ABRE 394 #if defined(USART_CR1_FIFOEN) 395 #define IRDA_FLAG_TXE USART_ISR_TXE_TXFNF 397 #define IRDA_FLAG_TXE USART_ISR_TXE 399 #define IRDA_FLAG_TC USART_ISR_TC 400 #if defined(USART_CR1_FIFOEN) 401 #define IRDA_FLAG_RXNE USART_ISR_RXNE_RXFNE 403 #define IRDA_FLAG_RXNE USART_ISR_RXNE 405 #define IRDA_FLAG_ORE USART_ISR_ORE 406 #define IRDA_FLAG_NE USART_ISR_NE 407 #define IRDA_FLAG_FE USART_ISR_FE 408 #define IRDA_FLAG_PE USART_ISR_PE 423 #define IRDA_IT_PE 0x0028U 424 #define IRDA_IT_TXE 0x0727U 425 #define IRDA_IT_TC 0x0626U 426 #define IRDA_IT_RXNE 0x0525U 427 #define IRDA_IT_IDLE 0x0424U 435 #define IRDA_IT_ERR 0x0060U 439 #define IRDA_IT_ORE 0x0300U 440 #define IRDA_IT_NE 0x0200U 441 #define IRDA_IT_FE 0x0100U 449 #define IRDA_CLEAR_PEF USART_ICR_PECF 450 #define IRDA_CLEAR_FEF USART_ICR_FECF 451 #define IRDA_CLEAR_NEF USART_ICR_NECF 452 #define IRDA_CLEAR_OREF USART_ICR_ORECF 453 #define IRDA_CLEAR_IDLEF USART_ICR_IDLECF 454 #define IRDA_CLEAR_TCF USART_ICR_TCCF 462 #define IRDA_IT_MASK 0x001FU 463 #define IRDA_CR_MASK 0x00E0U 464 #define IRDA_CR_POS 5U 465 #define IRDA_ISR_MASK 0x1F00U 466 #define IRDA_ISR_POS 8U 484 #if USE_HAL_IRDA_REGISTER_CALLBACKS == 1 485 #define __HAL_IRDA_RESET_HANDLE_STATE(__HANDLE__) do{ \ 486 (__HANDLE__)->gState = HAL_IRDA_STATE_RESET; \ 487 (__HANDLE__)->RxState = HAL_IRDA_STATE_RESET; \ 488 (__HANDLE__)->MspInitCallback = NULL; \ 489 (__HANDLE__)->MspDeInitCallback = NULL; \ 492 #define __HAL_IRDA_RESET_HANDLE_STATE(__HANDLE__) do{ \ 493 (__HANDLE__)->gState = HAL_IRDA_STATE_RESET; \ 494 (__HANDLE__)->RxState = HAL_IRDA_STATE_RESET; \ 502 #define __HAL_IRDA_FLUSH_DRREGISTER(__HANDLE__) \ 504 SET_BIT((__HANDLE__)->Instance->RQR, IRDA_RXDATA_FLUSH_REQUEST); \ 505 SET_BIT((__HANDLE__)->Instance->RQR, IRDA_TXDATA_FLUSH_REQUEST); \ 520 #define __HAL_IRDA_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ICR = (__FLAG__)) 526 #define __HAL_IRDA_CLEAR_PEFLAG(__HANDLE__) __HAL_IRDA_CLEAR_FLAG((__HANDLE__), IRDA_CLEAR_PEF) 533 #define __HAL_IRDA_CLEAR_FEFLAG(__HANDLE__) __HAL_IRDA_CLEAR_FLAG((__HANDLE__), IRDA_CLEAR_FEF) 539 #define __HAL_IRDA_CLEAR_NEFLAG(__HANDLE__) __HAL_IRDA_CLEAR_FLAG((__HANDLE__), IRDA_CLEAR_NEF) 545 #define __HAL_IRDA_CLEAR_OREFLAG(__HANDLE__) __HAL_IRDA_CLEAR_FLAG((__HANDLE__), IRDA_CLEAR_OREF) 551 #define __HAL_IRDA_CLEAR_IDLEFLAG(__HANDLE__) __HAL_IRDA_CLEAR_FLAG((__HANDLE__), IRDA_CLEAR_IDLEF) 571 #define __HAL_IRDA_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->ISR & (__FLAG__)) == (__FLAG__)) 586 #define __HAL_IRDA_ENABLE_IT(__HANDLE__, __INTERRUPT__) (((((__INTERRUPT__) & IRDA_CR_MASK) >> IRDA_CR_POS) == 1U)? ((__HANDLE__)->Instance->CR1 |= ((uint32_t)1U << ((__INTERRUPT__) & IRDA_IT_MASK))): \ 587 ((((__INTERRUPT__) & IRDA_CR_MASK) >> IRDA_CR_POS) == 2U)? ((__HANDLE__)->Instance->CR2 |= ((uint32_t)1U << ((__INTERRUPT__) & IRDA_IT_MASK))): \ 588 ((__HANDLE__)->Instance->CR3 |= ((uint32_t)1U << ((__INTERRUPT__) & IRDA_IT_MASK)))) 602 #define __HAL_IRDA_DISABLE_IT(__HANDLE__, __INTERRUPT__) (((((__INTERRUPT__) & IRDA_CR_MASK) >> IRDA_CR_POS) == 1U)? ((__HANDLE__)->Instance->CR1 &= ~ ((uint32_t)1U << ((__INTERRUPT__) & IRDA_IT_MASK))): \ 603 ((((__INTERRUPT__) & IRDA_CR_MASK) >> IRDA_CR_POS) == 2U)? ((__HANDLE__)->Instance->CR2 &= ~ ((uint32_t)1U << ((__INTERRUPT__) & IRDA_IT_MASK))): \ 604 ((__HANDLE__)->Instance->CR3 &= ~ ((uint32_t)1U << ((__INTERRUPT__) & IRDA_IT_MASK)))) 621 #define __HAL_IRDA_GET_IT(__HANDLE__, __INTERRUPT__) ((((__HANDLE__)->Instance->ISR\ 622 & (0x01U << (((__INTERRUPT__) & IRDA_ISR_MASK)>> IRDA_ISR_POS))) != 0U) ? SET : RESET) 636 #define __HAL_IRDA_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((((((((__INTERRUPT__) & IRDA_CR_MASK) >> IRDA_CR_POS) == 0x01U)? (__HANDLE__)->Instance->CR1 : \ 637 (((((__INTERRUPT__) & IRDA_CR_MASK) >> IRDA_CR_POS) == 0x02U)? (__HANDLE__)->Instance->CR2 : \ 638 (__HANDLE__)->Instance->CR3)) & ((uint32_t)0x01U << (((uint16_t)(__INTERRUPT__)) & IRDA_IT_MASK))) != 0U) ? SET : RESET) 652 #define __HAL_IRDA_CLEAR_IT(__HANDLE__, __IT_CLEAR__) ((__HANDLE__)->Instance->ICR = (uint32_t)(__IT_CLEAR__)) 664 #define __HAL_IRDA_SEND_REQ(__HANDLE__, __REQ__) ((__HANDLE__)->Instance->RQR |= (uint16_t)(__REQ__)) 670 #define __HAL_IRDA_ONE_BIT_SAMPLE_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR3|= USART_CR3_ONEBIT) 676 #define __HAL_IRDA_ONE_BIT_SAMPLE_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR3\ 677 &= (uint32_t)~((uint32_t)USART_CR3_ONEBIT)) 683 #define __HAL_IRDA_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1 |= USART_CR1_UE) 689 #define __HAL_IRDA_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1 &= ~USART_CR1_UE) 704 #define IS_IRDA_BAUDRATE(__BAUDRATE__) ((__BAUDRATE__) < 115201U) 710 #define IS_IRDA_PRESCALER(__PRESCALER__) ((__PRESCALER__) > 0U) 716 #define IS_IRDA_PARITY(__PARITY__) (((__PARITY__) == IRDA_PARITY_NONE) || \ 717 ((__PARITY__) == IRDA_PARITY_EVEN) || \ 718 ((__PARITY__) == IRDA_PARITY_ODD)) 724 #define IS_IRDA_TX_RX_MODE(__MODE__) ((((__MODE__)\ 725 & (~((uint32_t)(IRDA_MODE_TX_RX)))) == 0x00U) && ((__MODE__) != 0x00U)) 731 #define IS_IRDA_POWERMODE(__MODE__) (((__MODE__) == IRDA_POWERMODE_LOWPOWER) || \ 732 ((__MODE__) == IRDA_POWERMODE_NORMAL)) 734 #if defined(USART_PRESC_PRESCALER) 739 #define IS_IRDA_CLOCKPRESCALER(__CLOCKPRESCALER__) (((__CLOCKPRESCALER__) == IRDA_PRESCALER_DIV1) || \ 740 ((__CLOCKPRESCALER__) == IRDA_PRESCALER_DIV2) || \ 741 ((__CLOCKPRESCALER__) == IRDA_PRESCALER_DIV4) || \ 742 ((__CLOCKPRESCALER__) == IRDA_PRESCALER_DIV6) || \ 743 ((__CLOCKPRESCALER__) == IRDA_PRESCALER_DIV8) || \ 744 ((__CLOCKPRESCALER__) == IRDA_PRESCALER_DIV10) || \ 745 ((__CLOCKPRESCALER__) == IRDA_PRESCALER_DIV12) || \ 746 ((__CLOCKPRESCALER__) == IRDA_PRESCALER_DIV16) || \ 747 ((__CLOCKPRESCALER__) == IRDA_PRESCALER_DIV32) || \ 748 ((__CLOCKPRESCALER__) == IRDA_PRESCALER_DIV64) || \ 749 ((__CLOCKPRESCALER__) == IRDA_PRESCALER_DIV128) || \ 750 ((__CLOCKPRESCALER__) == IRDA_PRESCALER_DIV256)) 757 #define IS_IRDA_STATE(__STATE__) (((__STATE__) == IRDA_STATE_DISABLE) || \ 758 ((__STATE__) == IRDA_STATE_ENABLE)) 764 #define IS_IRDA_MODE(__MODE__) (((__MODE__) == IRDA_MODE_DISABLE) || \ 765 ((__MODE__) == IRDA_MODE_ENABLE)) 771 #define IS_IRDA_ONE_BIT_SAMPLE(__ONEBIT__) (((__ONEBIT__) == IRDA_ONE_BIT_SAMPLE_DISABLE) || \ 772 ((__ONEBIT__) == IRDA_ONE_BIT_SAMPLE_ENABLE)) 778 #define IS_IRDA_DMA_TX(__DMATX__) (((__DMATX__) == IRDA_DMA_TX_DISABLE) || \ 779 ((__DMATX__) == IRDA_DMA_TX_ENABLE)) 785 #define IS_IRDA_DMA_RX(__DMARX__) (((__DMARX__) == IRDA_DMA_RX_DISABLE) || \ 786 ((__DMARX__) == IRDA_DMA_RX_ENABLE)) 792 #define IS_IRDA_REQUEST_PARAMETER(__PARAM__) (((__PARAM__) == IRDA_AUTOBAUD_REQUEST) || \ 793 ((__PARAM__) == IRDA_RXDATA_FLUSH_REQUEST) || \ 794 ((__PARAM__) == IRDA_TXDATA_FLUSH_REQUEST)) 817 #if (USE_HAL_IRDA_REGISTER_CALLBACKS == 1)
HAL_StatusTypeDef HAL_IRDA_Receive_DMA(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size)
Receive an amount of data in DMA mode.
HAL_StatusTypeDef HAL_IRDA_DMAStop(IRDA_HandleTypeDef *hirda)
Stop the DMA Transfer.
void HAL_IRDA_AbortReceiveCpltCallback(IRDA_HandleTypeDef *hirda)
IRDA Abort Receive Complete callback.
__IO uint16_t RxXferCount
DMA handle Structure definition.
HAL_StatusTypeDef HAL_IRDA_AbortTransmit_IT(IRDA_HandleTypeDef *hirda)
Abort ongoing Transmit transfer (Interrupt mode).
DMA_HandleTypeDef * hdmatx
DMA_HandleTypeDef * hdmarx
HAL_StatusTypeDef HAL_IRDA_Transmit(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size, uint32_t Timeout)
Send an amount of data in blocking mode.
void HAL_IRDA_MspInit(IRDA_HandleTypeDef *hirda)
Initialize the IRDA MSP.
HAL_StatusTypeDef HAL_IRDA_DeInit(IRDA_HandleTypeDef *hirda)
DeInitialize the IRDA peripheral.
HAL_StatusTypeDef HAL_IRDA_AbortReceive(IRDA_HandleTypeDef *hirda)
Abort ongoing Receive transfer (blocking mode).
void HAL_IRDA_RxHalfCpltCallback(IRDA_HandleTypeDef *hirda)
Rx Half Transfer complete callback.
This file contains HAL common defines, enumeration, macros and structures definitions.
HAL_StatusTypeDef HAL_IRDA_RegisterCallback(IRDA_HandleTypeDef *hirda, HAL_IRDA_CallbackIDTypeDef CallbackID, pIRDA_CallbackTypeDef pCallback)
Register a User IRDA Callback To be used instead of the weak predefined callback. ...
void HAL_IRDA_ErrorCallback(IRDA_HandleTypeDef *hirda)
IRDA error callback.
uint32_t HAL_IRDA_GetError(IRDA_HandleTypeDef *hirda)
Return the IRDA handle error code.
void HAL_IRDA_MspDeInit(IRDA_HandleTypeDef *hirda)
DeInitialize the IRDA MSP.
void HAL_IRDA_TxCpltCallback(IRDA_HandleTypeDef *hirda)
Tx Transfer completed callback.
void HAL_IRDA_TxHalfCpltCallback(IRDA_HandleTypeDef *hirda)
Tx Half Transfer completed callback.
IRDA Init Structure definition.
HAL_StatusTypeDef HAL_IRDA_DMAPause(IRDA_HandleTypeDef *hirda)
Pause the DMA Transfer.
HAL_StatusTypeDef HAL_IRDA_Abort_IT(IRDA_HandleTypeDef *hirda)
Abort ongoing transfers (Interrupt mode).
IRDA_ClockSourceTypeDef
IRDA clock sources definition.
uint32_t HAL_IRDA_StateTypeDef
HAL IRDA State definition.
Header file of IRDA HAL Extended module.
HAL_StatusTypeDef HAL_IRDA_Transmit_IT(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size)
Send an amount of data in interrupt mode.
void HAL_IRDA_AbortCpltCallback(IRDA_HandleTypeDef *hirda)
IRDA Abort Complete callback.
struct __IRDA_HandleTypeDef else typedef struct endif IRDA_HandleTypeDef
IRDA handle Structure definition.
void(* pIRDA_CallbackTypeDef)(IRDA_HandleTypeDef *hirda)
HAL IRDA Callback pointer definition.
HAL_StatusTypeDef HAL_IRDA_Abort(IRDA_HandleTypeDef *hirda)
Abort ongoing transfers (blocking mode).
void HAL_IRDA_RxCpltCallback(IRDA_HandleTypeDef *hirda)
Rx Transfer completed callback.
HAL_IRDA_StateTypeDef HAL_IRDA_GetState(IRDA_HandleTypeDef *hirda)
Return the IRDA handle state.
HAL_StatusTypeDef HAL_IRDA_DMAResume(IRDA_HandleTypeDef *hirda)
Resume the DMA Transfer.
HAL_LockTypeDef
HAL Lock structures definition.
__IO HAL_IRDA_StateTypeDef gState
void HAL_IRDA_IRQHandler(IRDA_HandleTypeDef *hirda)
Handle IRDA interrupt request.
HAL_StatusTypeDef HAL_IRDA_Receive_IT(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size)
Receive an amount of data in interrupt mode.
ADC handle Structure definition.
__IO uint16_t TxXferCount
HAL_StatusTypeDef HAL_IRDA_AbortTransmit(IRDA_HandleTypeDef *hirda)
Abort ongoing Transmit transfer (blocking mode).
__IO HAL_IRDA_StateTypeDef RxState
HAL_StatusTypeDef HAL_IRDA_Transmit_DMA(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size)
Send an amount of data in DMA mode.
HAL_StatusTypeDef HAL_IRDA_AbortReceive_IT(IRDA_HandleTypeDef *hirda)
Abort ongoing Receive transfer (Interrupt mode).
HAL_StatusTypeDef HAL_IRDA_Receive(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size, uint32_t Timeout)
Receive an amount of data in blocking mode.
HAL_StatusTypeDef HAL_IRDA_UnRegisterCallback(IRDA_HandleTypeDef *hirda, HAL_IRDA_CallbackIDTypeDef CallbackID)
Unregister an IRDA callback IRDA callback is redirected to the weak predefined callback.
HAL_IRDA_CallbackIDTypeDef
HAL IRDA Callback ID enumeration definition.
HAL_StatusTypeDef HAL_IRDA_Init(IRDA_HandleTypeDef *hirda)
Initialize the IRDA mode according to the specified parameters in the IRDA_InitTypeDef and initialize...
void HAL_IRDA_AbortTransmitCpltCallback(IRDA_HandleTypeDef *hirda)
IRDA Abort Complete callback.