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

Header file of IRDA HAL module. More...

#include "stm32l4xx_hal_def.h"
#include "stm32l4xx_hal_irda_ex.h"

Go to the source code of this file.

Data Structures

struct  IRDA_InitTypeDef
 IRDA Init Structure definition. More...
struct  __IRDA_HandleTypeDef
 IRDA handle Structure definition. More...

Defines

#define HAL_IRDA_ERROR_NONE   ((uint32_t)0x00000000U)
#define HAL_IRDA_ERROR_PE   ((uint32_t)0x00000001U)
#define HAL_IRDA_ERROR_NE   ((uint32_t)0x00000002U)
#define HAL_IRDA_ERROR_FE   ((uint32_t)0x00000004U)
#define HAL_IRDA_ERROR_ORE   ((uint32_t)0x00000008U)
#define HAL_IRDA_ERROR_DMA   ((uint32_t)0x00000010U)
#define HAL_IRDA_ERROR_BUSY   ((uint32_t)0x00000020U)
#define HAL_IRDA_ERROR_INVALID_CALLBACK   ((uint32_t)0x00000040U)
#define IRDA_WORDLENGTH_7B   USART_CR1_M1
#define IRDA_WORDLENGTH_8B   0x00000000U
#define IRDA_WORDLENGTH_9B   USART_CR1_M0
#define IRDA_PARITY_NONE   0x00000000U
#define IRDA_PARITY_EVEN   USART_CR1_PCE
#define IRDA_PARITY_ODD   (USART_CR1_PCE | USART_CR1_PS)
#define IRDA_MODE_RX   USART_CR1_RE
#define IRDA_MODE_TX   USART_CR1_TE
#define IRDA_MODE_TX_RX   (USART_CR1_TE |USART_CR1_RE)
#define IRDA_POWERMODE_NORMAL   0x00000000U
#define IRDA_POWERMODE_LOWPOWER   USART_CR3_IRLP
#define IRDA_STATE_DISABLE   0x00000000U
#define IRDA_STATE_ENABLE   USART_CR1_UE
#define IRDA_MODE_DISABLE   0x00000000U
#define IRDA_MODE_ENABLE   USART_CR3_IREN
#define IRDA_ONE_BIT_SAMPLE_DISABLE   0x00000000U
#define IRDA_ONE_BIT_SAMPLE_ENABLE   USART_CR3_ONEBIT
#define IRDA_DMA_TX_DISABLE   0x00000000U
#define IRDA_DMA_TX_ENABLE   USART_CR3_DMAT
#define IRDA_DMA_RX_DISABLE   0x00000000U
#define IRDA_DMA_RX_ENABLE   USART_CR3_DMAR
#define IRDA_AUTOBAUD_REQUEST   USART_RQR_ABRRQ
#define IRDA_RXDATA_FLUSH_REQUEST   USART_RQR_RXFRQ
#define IRDA_TXDATA_FLUSH_REQUEST   USART_RQR_TXFRQ
#define IRDA_FLAG_REACK   USART_ISR_REACK
#define IRDA_FLAG_TEACK   USART_ISR_TEACK
#define IRDA_FLAG_BUSY   USART_ISR_BUSY
#define IRDA_FLAG_ABRF   USART_ISR_ABRF
#define IRDA_FLAG_ABRE   USART_ISR_ABRE
#define IRDA_FLAG_TXE   USART_ISR_TXE
#define IRDA_FLAG_TC   USART_ISR_TC
#define IRDA_FLAG_RXNE   USART_ISR_RXNE
#define IRDA_FLAG_ORE   USART_ISR_ORE
#define IRDA_FLAG_NE   USART_ISR_NE
#define IRDA_FLAG_FE   USART_ISR_FE
#define IRDA_FLAG_PE   USART_ISR_PE
#define IRDA_IT_PE   0x0028U
#define IRDA_IT_TXE   0x0727U
#define IRDA_IT_TC   0x0626U
#define IRDA_IT_RXNE   0x0525U
#define IRDA_IT_IDLE   0x0424U
#define IRDA_IT_ERR   0x0060U
#define IRDA_IT_ORE   0x0300U
#define IRDA_IT_NE   0x0200U
#define IRDA_IT_FE   0x0100U
#define IRDA_CLEAR_PEF   USART_ICR_PECF
#define IRDA_CLEAR_FEF   USART_ICR_FECF
#define IRDA_CLEAR_NEF   USART_ICR_NECF
#define IRDA_CLEAR_OREF   USART_ICR_ORECF
#define IRDA_CLEAR_IDLEF   USART_ICR_IDLECF
#define IRDA_CLEAR_TCF   USART_ICR_TCCF
#define IRDA_IT_MASK   0x001FU
#define __HAL_IRDA_RESET_HANDLE_STATE(__HANDLE__)
 Reset IRDA handle state.
#define __HAL_IRDA_FLUSH_DRREGISTER(__HANDLE__)
 Flush the IRDA DR register.
#define __HAL_IRDA_CLEAR_FLAG(__HANDLE__, __FLAG__)   ((__HANDLE__)->Instance->ICR = (__FLAG__))
 Clear the specified IRDA pending flag.
#define __HAL_IRDA_CLEAR_PEFLAG(__HANDLE__)   __HAL_IRDA_CLEAR_FLAG((__HANDLE__), IRDA_CLEAR_PEF)
 Clear the IRDA PE pending flag.
#define __HAL_IRDA_CLEAR_FEFLAG(__HANDLE__)   __HAL_IRDA_CLEAR_FLAG((__HANDLE__), IRDA_CLEAR_FEF)
 Clear the IRDA FE pending flag.
#define __HAL_IRDA_CLEAR_NEFLAG(__HANDLE__)   __HAL_IRDA_CLEAR_FLAG((__HANDLE__), IRDA_CLEAR_NEF)
 Clear the IRDA NE pending flag.
#define __HAL_IRDA_CLEAR_OREFLAG(__HANDLE__)   __HAL_IRDA_CLEAR_FLAG((__HANDLE__), IRDA_CLEAR_OREF)
 Clear the IRDA ORE pending flag.
#define __HAL_IRDA_CLEAR_IDLEFLAG(__HANDLE__)   __HAL_IRDA_CLEAR_FLAG((__HANDLE__), IRDA_CLEAR_IDLEF)
 Clear the IRDA IDLE pending flag.
#define __HAL_IRDA_GET_FLAG(__HANDLE__, __FLAG__)   (((__HANDLE__)->Instance->ISR & (__FLAG__)) == (__FLAG__))
 Check whether the specified IRDA flag is set or not.
#define __HAL_IRDA_ENABLE_IT(__HANDLE__, __INTERRUPT__)
 Enable the specified IRDA interrupt.
#define __HAL_IRDA_DISABLE_IT(__HANDLE__, __INTERRUPT__)
 Disable the specified IRDA interrupt.
#define __HAL_IRDA_GET_IT(__HANDLE__, __INTERRUPT__)   ((((__HANDLE__)->Instance->ISR & (0x01U << ((__INTERRUPT__)>> 0x08U))) != RESET) ? SET : RESET)
 Check whether the specified IRDA interrupt has occurred or not.
#define __HAL_IRDA_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__)
 Check whether the specified IRDA interrupt source is enabled or not.
#define __HAL_IRDA_CLEAR_IT(__HANDLE__, __IT_CLEAR__)   ((__HANDLE__)->Instance->ICR = (uint32_t)(__IT_CLEAR__))
 Clear the specified IRDA ISR flag, in setting the proper ICR register flag.
#define __HAL_IRDA_SEND_REQ(__HANDLE__, __REQ__)   ((__HANDLE__)->Instance->RQR |= (uint16_t)(__REQ__))
 Set a specific IRDA request flag.
#define __HAL_IRDA_ONE_BIT_SAMPLE_ENABLE(__HANDLE__)   ((__HANDLE__)->Instance->CR3|= USART_CR3_ONEBIT)
 Enable the IRDA one bit sample method.
#define __HAL_IRDA_ONE_BIT_SAMPLE_DISABLE(__HANDLE__)   ((__HANDLE__)->Instance->CR3 &= (uint32_t)~((uint32_t)USART_CR3_ONEBIT))
 Disable the IRDA one bit sample method.
#define __HAL_IRDA_ENABLE(__HANDLE__)   ((__HANDLE__)->Instance->CR1 |= USART_CR1_UE)
 Enable UART/USART associated to IRDA Handle.
#define __HAL_IRDA_DISABLE(__HANDLE__)   ((__HANDLE__)->Instance->CR1 &= ~USART_CR1_UE)
 Disable UART/USART associated to IRDA Handle.
#define IRDA_MASK_COMPUTATION(__HANDLE__)
 Compute the mask to apply to retrieve the received data according to the word length and to the parity bits activation.
#define IS_IRDA_BAUDRATE(__BAUDRATE__)   ((__BAUDRATE__) < 115201)
 Ensure that IRDA Baud rate is less or equal to maximum value.
#define IS_IRDA_PRESCALER(__PRESCALER__)   ((__PRESCALER__) > 0)
 Ensure that IRDA prescaler value is strictly larger than 0.
#define IS_IRDA_WORD_LENGTH(__LENGTH__)
 Ensure that IRDA frame length is valid.
#define IS_IRDA_PARITY(__PARITY__)
 Ensure that IRDA frame parity is valid.
#define IS_IRDA_TX_RX_MODE(__MODE__)   ((((__MODE__) & (~((uint32_t)(IRDA_MODE_TX_RX)))) == 0x00U) && ((__MODE__) != 0x00U))
 Ensure that IRDA communication mode is valid.
#define IS_IRDA_POWERMODE(__MODE__)
 Ensure that IRDA power mode is valid.
#define IS_IRDA_STATE(__STATE__)
 Ensure that IRDA state is valid.
#define IS_IRDA_MODE(__MODE__)
 Ensure that IRDA associated UART/USART mode is valid.
#define IS_IRDA_ONE_BIT_SAMPLE(__ONEBIT__)
 Ensure that IRDA sampling rate is valid.
#define IS_IRDA_DMA_TX(__DMATX__)
 Ensure that IRDA DMA TX mode is valid.
#define IS_IRDA_DMA_RX(__DMARX__)
 Ensure that IRDA DMA RX mode is valid.
#define IS_IRDA_REQUEST_PARAMETER(__PARAM__)
 Ensure that IRDA request is valid.

Typedefs

typedef struct __IRDA_HandleTypeDef IRDA_HandleTypeDef
 IRDA handle Structure definition.
typedef void(* pIRDA_CallbackTypeDef )(IRDA_HandleTypeDef *hirda)
 HAL IRDA Callback pointer definition.

Enumerations

enum  HAL_IRDA_StateTypeDef {
  HAL_IRDA_STATE_RESET = 0x00U, HAL_IRDA_STATE_READY = 0x20U, HAL_IRDA_STATE_BUSY = 0x24U, HAL_IRDA_STATE_BUSY_TX = 0x21U,
  HAL_IRDA_STATE_BUSY_RX = 0x22U, HAL_IRDA_STATE_BUSY_TX_RX = 0x23U, HAL_IRDA_STATE_TIMEOUT = 0xA0U, HAL_IRDA_STATE_ERROR = 0xE0U
}
 HAL IRDA State structures definition. More...
enum  IRDA_ClockSourceTypeDef {
  IRDA_CLOCKSOURCE_PCLK1 = 0x00U, IRDA_CLOCKSOURCE_PCLK2 = 0x01U, IRDA_CLOCKSOURCE_HSI = 0x02U, IRDA_CLOCKSOURCE_SYSCLK = 0x04U,
  IRDA_CLOCKSOURCE_LSE = 0x08U, IRDA_CLOCKSOURCE_UNDEFINED = 0x10U
}
 IRDA clock sources definition. More...
enum  HAL_IRDA_CallbackIDTypeDef {
  HAL_IRDA_TX_HALFCOMPLETE_CB_ID = 0x00U, HAL_IRDA_TX_COMPLETE_CB_ID = 0x01U, HAL_IRDA_RX_HALFCOMPLETE_CB_ID = 0x02U, HAL_IRDA_RX_COMPLETE_CB_ID = 0x03U,
  HAL_IRDA_ERROR_CB_ID = 0x04U, HAL_IRDA_ABORT_COMPLETE_CB_ID = 0x05U, HAL_IRDA_ABORT_TRANSMIT_COMPLETE_CB_ID = 0x06U, HAL_IRDA_ABORT_RECEIVE_COMPLETE_CB_ID = 0x07U,
  HAL_IRDA_MSPINIT_CB_ID = 0x08U, HAL_IRDA_MSPDEINIT_CB_ID = 0x09U
}
 HAL IRDA Callback ID enumeration definition. More...
enum  IRDA_ControlTypeDef {
  IRDA_BAUDRATE = 0x00U, IRDA_PARITY = 0x01U, IRDA_WORDLENGTH = 0x02U, IRDA_MODE = 0x03U,
  IRDA_PRESCALER = 0x04U, IRDA_POWERMODE = 0x05U
}
 IRDA Configuration enumeration values definition. More...

Functions

HAL_StatusTypeDef HAL_IRDA_Init (IRDA_HandleTypeDef *hirda)
 Initialize the IRDA mode according to the specified parameters in the IRDA_InitTypeDef and initialize the associated handle.
HAL_StatusTypeDef HAL_IRDA_DeInit (IRDA_HandleTypeDef *hirda)
 DeInitialize the IRDA peripheral.
__weak void HAL_IRDA_MspInit (IRDA_HandleTypeDef *hirda)
 Initialize the IRDA MSP.
__weak void HAL_IRDA_MspDeInit (IRDA_HandleTypeDef *hirda)
 DeInitialize the IRDA MSP.
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.
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_StatusTypeDef HAL_IRDA_Transmit (IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size, uint32_t Timeout)
 Send an amount of data in blocking 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_Transmit_IT (IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size)
 Send an amount of data in interrupt mode.
HAL_StatusTypeDef HAL_IRDA_Receive_IT (IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size)
 Receive an amount of data in interrupt mode.
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_Receive_DMA (IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size)
 Receive an amount of data in DMA mode.
HAL_StatusTypeDef HAL_IRDA_DMAPause (IRDA_HandleTypeDef *hirda)
 Pause the DMA Transfer.
HAL_StatusTypeDef HAL_IRDA_DMAResume (IRDA_HandleTypeDef *hirda)
 Resume the DMA Transfer.
HAL_StatusTypeDef HAL_IRDA_DMAStop (IRDA_HandleTypeDef *hirda)
 Stop the DMA Transfer.
HAL_StatusTypeDef HAL_IRDA_Abort (IRDA_HandleTypeDef *hirda)
 Abort ongoing transfers (blocking mode).
HAL_StatusTypeDef HAL_IRDA_AbortTransmit (IRDA_HandleTypeDef *hirda)
 Abort ongoing Transmit transfer (blocking mode).
HAL_StatusTypeDef HAL_IRDA_AbortReceive (IRDA_HandleTypeDef *hirda)
 Abort ongoing Receive transfer (blocking mode).
HAL_StatusTypeDef HAL_IRDA_Abort_IT (IRDA_HandleTypeDef *hirda)
 Abort ongoing transfers (Interrupt mode).
HAL_StatusTypeDef HAL_IRDA_AbortTransmit_IT (IRDA_HandleTypeDef *hirda)
 Abort ongoing Transmit transfer (Interrupt mode).
HAL_StatusTypeDef HAL_IRDA_AbortReceive_IT (IRDA_HandleTypeDef *hirda)
 Abort ongoing Receive transfer (Interrupt mode).
void HAL_IRDA_IRQHandler (IRDA_HandleTypeDef *hirda)
 Handle IRDA interrupt request.
__weak void HAL_IRDA_TxCpltCallback (IRDA_HandleTypeDef *hirda)
 Tx Transfer completed callback.
__weak void HAL_IRDA_RxCpltCallback (IRDA_HandleTypeDef *hirda)
 Rx Transfer completed callback.
__weak void HAL_IRDA_TxHalfCpltCallback (IRDA_HandleTypeDef *hirda)
 Tx Half Transfer completed callback.
__weak void HAL_IRDA_RxHalfCpltCallback (IRDA_HandleTypeDef *hirda)
 Rx Half Transfer complete callback.
__weak void HAL_IRDA_ErrorCallback (IRDA_HandleTypeDef *hirda)
 IRDA error callback.
__weak void HAL_IRDA_AbortCpltCallback (IRDA_HandleTypeDef *hirda)
 IRDA Abort Complete callback.
__weak void HAL_IRDA_AbortTransmitCpltCallback (IRDA_HandleTypeDef *hirda)
 IRDA Abort Complete callback.
__weak void HAL_IRDA_AbortReceiveCpltCallback (IRDA_HandleTypeDef *hirda)
 IRDA Abort Receive Complete callback.
HAL_IRDA_StateTypeDef HAL_IRDA_GetState (IRDA_HandleTypeDef *hirda)
 Return the IRDA handle state.
uint32_t HAL_IRDA_GetError (IRDA_HandleTypeDef *hirda)
 Return the IRDA handle error code.

Detailed Description

Header file of IRDA 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_irda.h.