STM32F4xx HAL Documentation
Hardware Abstraction Layer for STM32F4 familiy
Loading...
Searching...
No Matches
UART Exported Macros
Collaboration diagram for UART Exported Macros:

Macros

#define __HAL_UART_RESET_HANDLE_STATE(__HANDLE__)
 Reset UART handle gstate & RxState.
 
#define __HAL_UART_FLUSH_DRREGISTER(__HANDLE__)
 Flushes the UART DR register.
 
#define __HAL_UART_GET_FLAG(__HANDLE__, __FLAG__)
 Checks whether the specified UART flag is set or not.
 
#define __HAL_UART_CLEAR_FLAG(__HANDLE__, __FLAG__)
 Clears the specified UART pending flag.
 
#define __HAL_UART_CLEAR_PEFLAG(__HANDLE__)
 Clears the UART PE pending flag.
 
#define __HAL_UART_CLEAR_FEFLAG(__HANDLE__)
 Clears the UART FE pending flag.
 
#define __HAL_UART_CLEAR_NEFLAG(__HANDLE__)
 Clears the UART NE pending flag.
 
#define __HAL_UART_CLEAR_OREFLAG(__HANDLE__)
 Clears the UART ORE pending flag.
 
#define __HAL_UART_CLEAR_IDLEFLAG(__HANDLE__)
 Clears the UART IDLE pending flag.
 
#define __HAL_UART_ENABLE_IT(__HANDLE__, __INTERRUPT__)
 Enable the specified UART interrupt.
 
#define __HAL_UART_DISABLE_IT(__HANDLE__, __INTERRUPT__)
 Disable the specified UART interrupt.
 
#define __HAL_UART_GET_IT_SOURCE(__HANDLE__, __IT__)
 Checks whether the specified UART interrupt source is enabled or not.
 
#define __HAL_UART_HWCONTROL_CTS_ENABLE(__HANDLE__)
 Enable CTS flow control.
 
#define __HAL_UART_HWCONTROL_CTS_DISABLE(__HANDLE__)
 Disable CTS flow control.
 
#define __HAL_UART_HWCONTROL_RTS_ENABLE(__HANDLE__)
 Enable RTS flow control This macro allows to enable RTS hardware flow control for a given UART instance, without need to call HAL_UART_Init() function. As involving direct access to UART registers, usage of this macro should be fully endorsed by user.
 
#define __HAL_UART_HWCONTROL_RTS_DISABLE(__HANDLE__)
 Disable RTS flow control This macro allows to disable RTS hardware flow control for a given UART instance, without need to call HAL_UART_Init() function. As involving direct access to UART registers, usage of this macro should be fully endorsed by user.
 
#define __HAL_UART_ONE_BIT_SAMPLE_ENABLE(__HANDLE__)
 Macro to enable the UART's one bit sample method.
 
#define __HAL_UART_ONE_BIT_SAMPLE_DISABLE(__HANDLE__)
 Macro to disable the UART's one bit sample method.
 
#define __HAL_UART_ENABLE(__HANDLE__)
 Enable UART.
 
#define __HAL_UART_DISABLE(__HANDLE__)
 Disable UART.
 

Detailed Description

Macro Definition Documentation

◆ __HAL_UART_RESET_HANDLE_STATE

#define __HAL_UART_RESET_HANDLE_STATE ( __HANDLE__)

#include <stm32f4xx_hal_uart.h>

Value:
do{ \
(__HANDLE__)->gState = HAL_UART_STATE_RESET; \
(__HANDLE__)->RxState = HAL_UART_STATE_RESET; \
} while(0U)
@ HAL_UART_STATE_RESET

Reset UART handle gstate & RxState.

Parameters
__HANDLE__specifies the UART Handle. UART Handle selects the USARTx or UARTy peripheral (USART,UART availability and x,y values depending on device).
Return values
None

Definition at line 439 of file stm32f4xx_hal_uart.h.

◆ __HAL_UART_FLUSH_DRREGISTER

#define __HAL_UART_FLUSH_DRREGISTER ( __HANDLE__)

#include <stm32f4xx_hal_uart.h>

Value:
((__HANDLE__)->Instance->DR)

Flushes the UART DR register.

Parameters
__HANDLE__specifies the UART Handle. UART Handle selects the USARTx or UARTy peripheral (USART,UART availability and x,y values depending on device).

Definition at line 450 of file stm32f4xx_hal_uart.h.

◆ __HAL_UART_GET_FLAG

#define __HAL_UART_GET_FLAG ( __HANDLE__,
__FLAG__ )

#include <stm32f4xx_hal_uart.h>

Value:
(((__HANDLE__)->Instance->SR & (__FLAG__)) == (__FLAG__))

Checks whether the specified UART flag is set or not.

Parameters
__HANDLE__specifies the UART Handle. UART Handle selects the USARTx or UARTy peripheral (USART,UART availability and x,y values depending on device).
__FLAG__specifies the flag to check. This parameter can be one of the following values:
  • UART_FLAG_CTS: CTS Change flag (not available for UART4 and UART5)
  • UART_FLAG_LBD: LIN Break detection flag
  • UART_FLAG_TXE: Transmit data register empty flag
  • UART_FLAG_TC: Transmission Complete flag
  • UART_FLAG_RXNE: Receive data register not empty flag
  • UART_FLAG_IDLE: Idle Line detection flag
  • UART_FLAG_ORE: Overrun Error flag
  • UART_FLAG_NE: Noise Error flag
  • UART_FLAG_FE: Framing Error flag
  • UART_FLAG_PE: Parity Error flag
Return values
Thenew state of FLAG (TRUE or FALSE).

Definition at line 470 of file stm32f4xx_hal_uart.h.

Referenced by HAL_UARTEx_ReceiveToIdle(), UART_Receive_IT(), and UART_WaitOnFlagUntilTimeout().

◆ __HAL_UART_CLEAR_FLAG

#define __HAL_UART_CLEAR_FLAG ( __HANDLE__,
__FLAG__ )

#include <stm32f4xx_hal_uart.h>

Value:
((__HANDLE__)->Instance->SR = ~(__FLAG__))

Clears the specified UART pending flag.

Parameters
__HANDLE__specifies the UART Handle. UART Handle selects the USARTx or UARTy peripheral (USART,UART availability and x,y values depending on device).
__FLAG__specifies the flag to check. This parameter can be any combination of the following values:
  • UART_FLAG_CTS: CTS Change flag (not available for UART4 and UART5).
  • UART_FLAG_LBD: LIN Break detection flag.
  • UART_FLAG_TC: Transmission Complete flag.
  • UART_FLAG_RXNE: Receive data register not empty flag.
Note
PE (Parity error), FE (Framing error), NE (Noise error), ORE (Overrun error) and IDLE (Idle line detected) flags are cleared by software sequence: a read operation to USART_SR register followed by a read operation to USART_DR register.
RXNE flag can be also cleared by a read to the USART_DR register.
TC flag can be also cleared by software sequence: a read operation to USART_SR register followed by a write operation to USART_DR register.
TXE flag is cleared only by a write to the USART_DR register.
Return values
None

Definition at line 494 of file stm32f4xx_hal_uart.h.

Referenced by HAL_UART_Transmit_DMA().

◆ __HAL_UART_CLEAR_PEFLAG

#define __HAL_UART_CLEAR_PEFLAG ( __HANDLE__)

#include <stm32f4xx_hal_uart.h>

Value:
do{ \
__IO uint32_t tmpreg = 0x00U; \
tmpreg = (__HANDLE__)->Instance->SR; \
tmpreg = (__HANDLE__)->Instance->DR; \
UNUSED(tmpreg); \
} while(0U)

Clears the UART PE pending flag.

Parameters
__HANDLE__specifies the UART Handle. UART Handle selects the USARTx or UARTy peripheral (USART,UART availability and x,y values depending on device).
Return values
None

Definition at line 502 of file stm32f4xx_hal_uart.h.

◆ __HAL_UART_CLEAR_FEFLAG

#define __HAL_UART_CLEAR_FEFLAG ( __HANDLE__)

#include <stm32f4xx_hal_uart.h>

Value:
#define __HAL_UART_CLEAR_PEFLAG(__HANDLE__)
Clears the UART PE pending flag.

Clears the UART FE pending flag.

Parameters
__HANDLE__specifies the UART Handle. UART Handle selects the USARTx or UARTy peripheral (USART,UART availability and x,y values depending on device).
Return values
None

Definition at line 516 of file stm32f4xx_hal_uart.h.

◆ __HAL_UART_CLEAR_NEFLAG

#define __HAL_UART_CLEAR_NEFLAG ( __HANDLE__)

#include <stm32f4xx_hal_uart.h>

Value:

Clears the UART NE pending flag.

Parameters
__HANDLE__specifies the UART Handle. UART Handle selects the USARTx or UARTy peripheral (USART,UART availability and x,y values depending on device).
Return values
None

Definition at line 524 of file stm32f4xx_hal_uart.h.

◆ __HAL_UART_CLEAR_OREFLAG

#define __HAL_UART_CLEAR_OREFLAG ( __HANDLE__)

#include <stm32f4xx_hal_uart.h>

Value:

Clears the UART ORE pending flag.

Parameters
__HANDLE__specifies the UART Handle. UART Handle selects the USARTx or UARTy peripheral (USART,UART availability and x,y values depending on device).
Return values
None

Definition at line 532 of file stm32f4xx_hal_uart.h.

Referenced by HAL_UART_DMAResume(), UART_Start_Receive_DMA(), and UART_WaitOnFlagUntilTimeout().

◆ __HAL_UART_CLEAR_IDLEFLAG

#define __HAL_UART_CLEAR_IDLEFLAG ( __HANDLE__)

#include <stm32f4xx_hal_uart.h>

Value:

Clears the UART IDLE pending flag.

Parameters
__HANDLE__specifies the UART Handle. UART Handle selects the USARTx or UARTy peripheral (USART,UART availability and x,y values depending on device).
Return values
None

Definition at line 540 of file stm32f4xx_hal_uart.h.

Referenced by HAL_UART_IRQHandler(), HAL_UARTEx_ReceiveToIdle(), HAL_UARTEx_ReceiveToIdle_DMA(), HAL_UARTEx_ReceiveToIdle_IT(), and UART_Receive_IT().

◆ __HAL_UART_ENABLE_IT

#define __HAL_UART_ENABLE_IT ( __HANDLE__,
__INTERRUPT__ )

#include <stm32f4xx_hal_uart.h>

Value:
((((__INTERRUPT__) >> 28U) == UART_CR1_REG_INDEX)? ((__HANDLE__)->Instance->CR1 |= ((__INTERRUPT__) & UART_IT_MASK)): \
(((__INTERRUPT__) >> 28U) == UART_CR2_REG_INDEX)? ((__HANDLE__)->Instance->CR2 |= ((__INTERRUPT__) & UART_IT_MASK)): \
((__HANDLE__)->Instance->CR3 |= ((__INTERRUPT__) & UART_IT_MASK)))
#define UART_CR2_REG_INDEX
#define UART_CR1_REG_INDEX
#define UART_IT_MASK
UART interruptions flag mask.

Enable the specified UART interrupt.

Parameters
__HANDLE__specifies the UART Handle. UART Handle selects the USARTx or UARTy peripheral (USART,UART availability and x,y values depending on device).
__INTERRUPT__specifies the UART interrupt source to enable. This parameter can be one of the following values:
  • UART_IT_CTS: CTS change interrupt
  • UART_IT_LBD: LIN Break detection interrupt
  • UART_IT_TXE: Transmit Data Register empty interrupt
  • UART_IT_TC: Transmission complete interrupt
  • UART_IT_RXNE: Receive Data register not empty interrupt
  • UART_IT_IDLE: Idle line detection interrupt
  • UART_IT_PE: Parity Error interrupt
  • UART_IT_ERR: Error interrupt(Frame error, noise error, overrun error)
Return values
None

Definition at line 558 of file stm32f4xx_hal_uart.h.

Referenced by HAL_UART_Transmit_IT(), UART_Start_Receive_IT(), and UART_Transmit_IT().

◆ __HAL_UART_DISABLE_IT

#define __HAL_UART_DISABLE_IT ( __HANDLE__,
__INTERRUPT__ )

#include <stm32f4xx_hal_uart.h>

Value:
((((__INTERRUPT__) >> 28U) == UART_CR1_REG_INDEX)? ((__HANDLE__)->Instance->CR1 &= ~((__INTERRUPT__) & UART_IT_MASK)): \
(((__INTERRUPT__) >> 28U) == UART_CR2_REG_INDEX)? ((__HANDLE__)->Instance->CR2 &= ~((__INTERRUPT__) & UART_IT_MASK)): \
((__HANDLE__)->Instance->CR3 &= ~ ((__INTERRUPT__) & UART_IT_MASK)))

Disable the specified UART interrupt.

Parameters
__HANDLE__specifies the UART Handle. UART Handle selects the USARTx or UARTy peripheral (USART,UART availability and x,y values depending on device).
__INTERRUPT__specifies the UART interrupt source to disable. This parameter can be one of the following values:
  • UART_IT_CTS: CTS change interrupt
  • UART_IT_LBD: LIN Break detection interrupt
  • UART_IT_TXE: Transmit Data Register empty interrupt
  • UART_IT_TC: Transmission complete interrupt
  • UART_IT_RXNE: Receive Data register not empty interrupt
  • UART_IT_IDLE: Idle line detection interrupt
  • UART_IT_PE: Parity Error interrupt
  • UART_IT_ERR: Error interrupt(Frame error, noise error, overrun error)
Return values
None

Definition at line 578 of file stm32f4xx_hal_uart.h.

Referenced by UART_EndTransmit_IT(), UART_Receive_IT(), and UART_Transmit_IT().

◆ __HAL_UART_GET_IT_SOURCE

#define __HAL_UART_GET_IT_SOURCE ( __HANDLE__,
__IT__ )

#include <stm32f4xx_hal_uart.h>

Value:
(((((__IT__) >> 28U) == UART_CR1_REG_INDEX)? (__HANDLE__)->Instance->CR1:(((((uint32_t)(__IT__)) >> 28U) == UART_CR2_REG_INDEX)? \
(__HANDLE__)->Instance->CR2 : (__HANDLE__)->Instance->CR3)) & (((uint32_t)(__IT__)) & UART_IT_MASK))

Checks whether the specified UART interrupt source is enabled or not.

Parameters
__HANDLE__specifies the UART Handle. UART Handle selects the USARTx or UARTy peripheral (USART,UART availability and x,y values depending on device).
__IT__specifies the UART interrupt source to check. This parameter can be one of the following values:
  • UART_IT_CTS: CTS change interrupt (not available for UART4 and UART5)
  • UART_IT_LBD: LIN Break detection interrupt
  • UART_IT_TXE: Transmit Data Register empty interrupt
  • UART_IT_TC: Transmission complete interrupt
  • UART_IT_RXNE: Receive Data register not empty interrupt
  • UART_IT_IDLE: Idle line detection interrupt
  • UART_IT_ERR: Error interrupt
Return values
Thenew state of IT (TRUE or FALSE).

Definition at line 597 of file stm32f4xx_hal_uart.h.

◆ __HAL_UART_HWCONTROL_CTS_ENABLE

#define __HAL_UART_HWCONTROL_CTS_ENABLE ( __HANDLE__)

#include <stm32f4xx_hal_uart.h>

Value:
do{ \
ATOMIC_SET_BIT((__HANDLE__)->Instance->CR3, USART_CR3_CTSE); \
(__HANDLE__)->Init.HwFlowCtl |= USART_CR3_CTSE; \
} while(0U)

Enable CTS flow control.

Note
This macro allows to enable CTS hardware flow control for a given UART instance, without need to call HAL_UART_Init() function. As involving direct access to UART registers, usage of this macro should be fully endorsed by user.
As macro is expected to be used for modifying CTS Hw flow control feature activation, without need for USART instance Deinit/Init, following conditions for macro call should be fulfilled :
  • UART instance should have already been initialised (through call of HAL_UART_Init() )
  • macro could only be called when corresponding UART instance is disabled (i.e HAL_UART_DISABLE(__HANDLE)) and should be followed by an Enable macro (i.e HAL_UART_ENABLE(__HANDLE)).
Parameters
__HANDLE__specifies the UART Handle. The Handle Instance can be any USARTx (supporting the HW Flow control feature). It is used to select the USART peripheral (USART availability and x value depending on device).
Return values
None

Definition at line 614 of file stm32f4xx_hal_uart.h.

◆ __HAL_UART_HWCONTROL_CTS_DISABLE

#define __HAL_UART_HWCONTROL_CTS_DISABLE ( __HANDLE__)

#include <stm32f4xx_hal_uart.h>

Value:
do{ \
ATOMIC_CLEAR_BIT((__HANDLE__)->Instance->CR3, USART_CR3_CTSE); \
(__HANDLE__)->Init.HwFlowCtl &= ~(USART_CR3_CTSE); \
} while(0U)

Disable CTS flow control.

Note
This macro allows to disable CTS hardware flow control for a given UART instance, without need to call HAL_UART_Init() function. As involving direct access to UART registers, usage of this macro should be fully endorsed by user.
As macro is expected to be used for modifying CTS Hw flow control feature activation, without need for USART instance Deinit/Init, following conditions for macro call should be fulfilled :
  • UART instance should have already been initialised (through call of HAL_UART_Init() )
  • macro could only be called when corresponding UART instance is disabled (i.e HAL_UART_DISABLE(__HANDLE)) and should be followed by an Enable macro (i.e HAL_UART_ENABLE(__HANDLE)).
Parameters
__HANDLE__specifies the UART Handle. The Handle Instance can be any USARTx (supporting the HW Flow control feature). It is used to select the USART peripheral (USART availability and x value depending on device).
Return values
None

Definition at line 634 of file stm32f4xx_hal_uart.h.

◆ __HAL_UART_HWCONTROL_RTS_ENABLE

#define __HAL_UART_HWCONTROL_RTS_ENABLE ( __HANDLE__)

#include <stm32f4xx_hal_uart.h>

Value:
do{ \
ATOMIC_SET_BIT((__HANDLE__)->Instance->CR3, USART_CR3_RTSE); \
(__HANDLE__)->Init.HwFlowCtl |= USART_CR3_RTSE; \
} while(0U)

Enable RTS flow control This macro allows to enable RTS hardware flow control for a given UART instance, without need to call HAL_UART_Init() function. As involving direct access to UART registers, usage of this macro should be fully endorsed by user.

Note
As macro is expected to be used for modifying RTS Hw flow control feature activation, without need for USART instance Deinit/Init, following conditions for macro call should be fulfilled :
  • UART instance should have already been initialised (through call of HAL_UART_Init() )
  • macro could only be called when corresponding UART instance is disabled (i.e HAL_UART_DISABLE(__HANDLE)) and should be followed by an Enable macro (i.e HAL_UART_ENABLE(__HANDLE)).
Parameters
__HANDLE__specifies the UART Handle. The Handle Instance can be any USARTx (supporting the HW Flow control feature). It is used to select the USART peripheral (USART availability and x value depending on device).
Return values
None

Definition at line 654 of file stm32f4xx_hal_uart.h.

◆ __HAL_UART_HWCONTROL_RTS_DISABLE

#define __HAL_UART_HWCONTROL_RTS_DISABLE ( __HANDLE__)

#include <stm32f4xx_hal_uart.h>

Value:
do{ \
ATOMIC_CLEAR_BIT((__HANDLE__)->Instance->CR3, USART_CR3_RTSE);\
(__HANDLE__)->Init.HwFlowCtl &= ~(USART_CR3_RTSE); \
} while(0U)

Disable RTS flow control This macro allows to disable RTS hardware flow control for a given UART instance, without need to call HAL_UART_Init() function. As involving direct access to UART registers, usage of this macro should be fully endorsed by user.

Note
As macro is expected to be used for modifying RTS Hw flow control feature activation, without need for USART instance Deinit/Init, following conditions for macro call should be fulfilled :
  • UART instance should have already been initialised (through call of HAL_UART_Init() )
  • macro could only be called when corresponding UART instance is disabled (i.e HAL_UART_DISABLE(__HANDLE)) and should be followed by an Enable macro (i.e HAL_UART_ENABLE(__HANDLE)).
Parameters
__HANDLE__specifies the UART Handle. The Handle Instance can be any USARTx (supporting the HW Flow control feature). It is used to select the USART peripheral (USART availability and x value depending on device).
Return values
None

Definition at line 674 of file stm32f4xx_hal_uart.h.

◆ __HAL_UART_ONE_BIT_SAMPLE_ENABLE

#define __HAL_UART_ONE_BIT_SAMPLE_ENABLE ( __HANDLE__)

#include <stm32f4xx_hal_uart.h>

Value:
((__HANDLE__)->Instance->CR3|= USART_CR3_ONEBIT)

Macro to enable the UART's one bit sample method.

Parameters
__HANDLE__specifies the UART Handle.
Return values
None

Definition at line 684 of file stm32f4xx_hal_uart.h.

◆ __HAL_UART_ONE_BIT_SAMPLE_DISABLE

#define __HAL_UART_ONE_BIT_SAMPLE_DISABLE ( __HANDLE__)

#include <stm32f4xx_hal_uart.h>

Value:
((__HANDLE__)->Instance->CR3\
&= (uint16_t)~((uint16_t)USART_CR3_ONEBIT))

Macro to disable the UART's one bit sample method.

Parameters
__HANDLE__specifies the UART Handle.
Return values
None

Definition at line 690 of file stm32f4xx_hal_uart.h.

◆ __HAL_UART_ENABLE

#define __HAL_UART_ENABLE ( __HANDLE__)

#include <stm32f4xx_hal_uart.h>

Value:
((__HANDLE__)->Instance->CR1 |= USART_CR1_UE)

Enable UART.

Parameters
__HANDLE__specifies the UART Handle.
Return values
None

Definition at line 697 of file stm32f4xx_hal_uart.h.

Referenced by HAL_HalfDuplex_Init(), HAL_LIN_Init(), HAL_MultiProcessor_Init(), and HAL_UART_Init().

◆ __HAL_UART_DISABLE

#define __HAL_UART_DISABLE ( __HANDLE__)

#include <stm32f4xx_hal_uart.h>

Value:
((__HANDLE__)->Instance->CR1 &= ~USART_CR1_UE)

Disable UART.

Parameters
__HANDLE__specifies the UART Handle.
Return values
None

Definition at line 703 of file stm32f4xx_hal_uart.h.

Referenced by HAL_HalfDuplex_Init(), HAL_LIN_Init(), HAL_MultiProcessor_Init(), HAL_UART_DeInit(), and HAL_UART_Init().