STM32F439xx HAL User Manual
Data Structures | Defines | Enumerations | Functions
stm32f4xx_hal_usart.h File Reference

Header file of USART HAL module. More...

#include "stm32f4xx_hal_def.h"

Go to the source code of this file.

Data Structures

struct  USART_InitTypeDef
 USART Init Structure definition. More...
struct  USART_HandleTypeDef
 USART handle Structure definition. More...

Defines

#define HAL_USART_ERROR_NONE   0x00000000U
#define HAL_USART_ERROR_PE   0x00000001U
#define HAL_USART_ERROR_NE   0x00000002U
#define HAL_USART_ERROR_FE   0x00000004U
#define HAL_USART_ERROR_ORE   0x00000008U
#define HAL_USART_ERROR_DMA   0x00000010U
#define USART_WORDLENGTH_8B   0x00000000U
#define USART_WORDLENGTH_9B   ((uint32_t)USART_CR1_M)
#define USART_STOPBITS_1   0x00000000U
#define USART_STOPBITS_0_5   ((uint32_t)USART_CR2_STOP_0)
#define USART_STOPBITS_2   ((uint32_t)USART_CR2_STOP_1)
#define USART_STOPBITS_1_5   ((uint32_t)(USART_CR2_STOP_0 | USART_CR2_STOP_1))
#define USART_PARITY_NONE   0x00000000U
#define USART_PARITY_EVEN   ((uint32_t)USART_CR1_PCE)
#define USART_PARITY_ODD   ((uint32_t)(USART_CR1_PCE | USART_CR1_PS))
#define USART_MODE_RX   ((uint32_t)USART_CR1_RE)
#define USART_MODE_TX   ((uint32_t)USART_CR1_TE)
#define USART_MODE_TX_RX   ((uint32_t)(USART_CR1_TE |USART_CR1_RE))
#define USART_CLOCK_DISABLE   0x00000000U
#define USART_CLOCK_ENABLE   ((uint32_t)USART_CR2_CLKEN)
#define USART_POLARITY_LOW   0x00000000U
#define USART_POLARITY_HIGH   ((uint32_t)USART_CR2_CPOL)
#define USART_PHASE_1EDGE   0x00000000U
#define USART_PHASE_2EDGE   ((uint32_t)USART_CR2_CPHA)
#define USART_LASTBIT_DISABLE   0x00000000U
#define USART_LASTBIT_ENABLE   ((uint32_t)USART_CR2_LBCL)
#define USART_NACK_ENABLE   ((uint32_t)USART_CR3_NACK)
#define USART_NACK_DISABLE   0x00000000U
#define USART_FLAG_TXE   0x00000080U
#define USART_FLAG_TC   0x00000040U
#define USART_FLAG_RXNE   0x00000020U
#define USART_FLAG_IDLE   0x00000010U
#define USART_FLAG_ORE   0x00000008U
#define USART_FLAG_NE   0x00000004U
#define USART_FLAG_FE   0x00000002U
#define USART_FLAG_PE   0x00000001U
#define USART_IT_PE   ((uint32_t)(USART_CR1_REG_INDEX << 28U | USART_CR1_PEIE))
#define USART_IT_TXE   ((uint32_t)(USART_CR1_REG_INDEX << 28U | USART_CR1_TXEIE))
#define USART_IT_TC   ((uint32_t)(USART_CR1_REG_INDEX << 28U | USART_CR1_TCIE))
#define USART_IT_RXNE   ((uint32_t)(USART_CR1_REG_INDEX << 28U | USART_CR1_RXNEIE))
#define USART_IT_IDLE   ((uint32_t)(USART_CR1_REG_INDEX << 28U | USART_CR1_IDLEIE))
#define USART_IT_LBD   ((uint32_t)(USART_CR2_REG_INDEX << 28U | USART_CR2_LBDIE))
#define USART_IT_CTS   ((uint32_t)(USART_CR3_REG_INDEX << 28U | USART_CR3_CTSIE))
#define USART_IT_ERR   ((uint32_t)(USART_CR3_REG_INDEX << 28U | USART_CR3_EIE))
#define __HAL_USART_RESET_HANDLE_STATE(__HANDLE__)   ((__HANDLE__)->State = HAL_USART_STATE_RESET)
 Reset USART handle state.
#define __HAL_USART_GET_FLAG(__HANDLE__, __FLAG__)   (((__HANDLE__)->Instance->SR & (__FLAG__)) == (__FLAG__))
 Checks whether the specified Smartcard flag is set or not.
#define __HAL_USART_CLEAR_FLAG(__HANDLE__, __FLAG__)   ((__HANDLE__)->Instance->SR = ~(__FLAG__))
 Clears the specified Smartcard pending flags.
#define __HAL_USART_CLEAR_PEFLAG(__HANDLE__)
 Clear the USART PE pending flag.
#define __HAL_USART_CLEAR_FEFLAG(__HANDLE__)   __HAL_USART_CLEAR_PEFLAG(__HANDLE__)
 Clear the USART FE pending flag.
#define __HAL_USART_CLEAR_NEFLAG(__HANDLE__)   __HAL_USART_CLEAR_PEFLAG(__HANDLE__)
 Clear the USART NE pending flag.
#define __HAL_USART_CLEAR_OREFLAG(__HANDLE__)   __HAL_USART_CLEAR_PEFLAG(__HANDLE__)
 Clear the UART ORE pending flag.
#define __HAL_USART_CLEAR_IDLEFLAG(__HANDLE__)   __HAL_USART_CLEAR_PEFLAG(__HANDLE__)
 Clear the USART IDLE pending flag.
#define __HAL_USART_ENABLE_IT(__HANDLE__, __INTERRUPT__)
 Enables or disables the specified USART interrupts.
#define __HAL_USART_DISABLE_IT(__HANDLE__, __INTERRUPT__)
#define __HAL_USART_GET_IT_SOURCE(__HANDLE__, __IT__)
 Checks whether the specified USART interrupt has occurred or not.
#define __HAL_USART_ONE_BIT_SAMPLE_ENABLE(__HANDLE__)   ((__HANDLE__)->Instance->CR3|= USART_CR3_ONEBIT)
 Macro to enable the USART's one bit sample method.
#define __HAL_USART_ONE_BIT_SAMPLE_DISABLE(__HANDLE__)   ((__HANDLE__)->Instance->CR3 &= (uint16_t)~((uint16_t)USART_CR3_ONEBIT))
 Macro to disable the USART's one bit sample method.
#define __HAL_USART_ENABLE(__HANDLE__)   ( (__HANDLE__)->Instance->CR1 |= USART_CR1_UE)
 Enable USART.
#define __HAL_USART_DISABLE(__HANDLE__)   ( (__HANDLE__)->Instance->CR1 &= ~USART_CR1_UE)
 Disable USART.
#define USART_IT_MASK
 USART interruptions flag mask.
#define USART_CR1_REG_INDEX   1U
#define USART_CR2_REG_INDEX   2U
#define USART_CR3_REG_INDEX   3U
#define IS_USART_NACK_STATE(NACK)
#define IS_USART_LASTBIT(LASTBIT)
#define IS_USART_PHASE(CPHA)   (((CPHA) == USART_PHASE_1EDGE) || ((CPHA) == USART_PHASE_2EDGE))
#define IS_USART_POLARITY(CPOL)   (((CPOL) == USART_POLARITY_LOW) || ((CPOL) == USART_POLARITY_HIGH))
#define IS_USART_CLOCK(CLOCK)
#define IS_USART_WORD_LENGTH(LENGTH)
#define IS_USART_STOPBITS(STOPBITS)
#define IS_USART_PARITY(PARITY)
#define IS_USART_MODE(MODE)   ((((MODE) & 0xFFF3U) == 0x00U) && ((MODE) != 0x00U))
#define IS_USART_BAUDRATE(BAUDRATE)   ((BAUDRATE) < 10500001U)
#define USART_DIV(_PCLK_, _BAUD_)   (((_PCLK_)*25U)/(2U*(_BAUD_)))
#define USART_DIVMANT(_PCLK_, _BAUD_)   (USART_DIV((_PCLK_), (_BAUD_))/100U)
#define USART_DIVFRAQ(_PCLK_, _BAUD_)   (((USART_DIV((_PCLK_), (_BAUD_)) - (USART_DIVMANT((_PCLK_), (_BAUD_)) * 100U)) * 16U + 50U) / 100U)
#define USART_BRR(_PCLK_, _BAUD_)   ((USART_DIVMANT((_PCLK_), (_BAUD_)) << 4U)|(USART_DIVFRAQ((_PCLK_), (_BAUD_)) & 0x0FU))

Enumerations

enum  HAL_USART_StateTypeDef {
  HAL_USART_STATE_RESET = 0x00U, HAL_USART_STATE_READY = 0x01U, HAL_USART_STATE_BUSY = 0x02U, HAL_USART_STATE_BUSY_TX = 0x12U,
  HAL_USART_STATE_BUSY_RX = 0x22U, HAL_USART_STATE_BUSY_TX_RX = 0x32U, HAL_USART_STATE_TIMEOUT = 0x03U, HAL_USART_STATE_ERROR = 0x04U
}
 HAL State structures definition. More...

Functions

HAL_StatusTypeDef HAL_USART_Init (USART_HandleTypeDef *husart)
 Initializes the USART mode according to the specified parameters in the USART_InitTypeDef and create the associated handle.
HAL_StatusTypeDef HAL_USART_DeInit (USART_HandleTypeDef *husart)
 DeInitializes the USART peripheral.
__weak void HAL_USART_MspInit (USART_HandleTypeDef *husart)
 USART MSP Init.
__weak void HAL_USART_MspDeInit (USART_HandleTypeDef *husart)
 USART MSP DeInit.
HAL_StatusTypeDef HAL_USART_Transmit (USART_HandleTypeDef *husart, uint8_t *pTxData, uint16_t Size, uint32_t Timeout)
 Simplex Send an amount of data in blocking mode.
HAL_StatusTypeDef HAL_USART_Receive (USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size, uint32_t Timeout)
 Full-Duplex Receive an amount of data in blocking mode.
HAL_StatusTypeDef HAL_USART_TransmitReceive (USART_HandleTypeDef *husart, uint8_t *pTxData, uint8_t *pRxData, uint16_t Size, uint32_t Timeout)
 Full-Duplex Send receive an amount of data in full-duplex mode (blocking mode).
HAL_StatusTypeDef HAL_USART_Transmit_IT (USART_HandleTypeDef *husart, uint8_t *pTxData, uint16_t Size)
 Simplex Send an amount of data in non-blocking mode.
HAL_StatusTypeDef HAL_USART_Receive_IT (USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size)
 Simplex Receive an amount of data in non-blocking mode.
HAL_StatusTypeDef HAL_USART_TransmitReceive_IT (USART_HandleTypeDef *husart, uint8_t *pTxData, uint8_t *pRxData, uint16_t Size)
 Full-Duplex Send receive an amount of data in full-duplex mode (non-blocking).
HAL_StatusTypeDef HAL_USART_Transmit_DMA (USART_HandleTypeDef *husart, uint8_t *pTxData, uint16_t Size)
 Simplex Send an amount of data in non-blocking mode.
HAL_StatusTypeDef HAL_USART_Receive_DMA (USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size)
 Full-Duplex Receive an amount of data in non-blocking mode.
HAL_StatusTypeDef HAL_USART_TransmitReceive_DMA (USART_HandleTypeDef *husart, uint8_t *pTxData, uint8_t *pRxData, uint16_t Size)
 Full-Duplex Transmit Receive an amount of data in non-blocking mode.
HAL_StatusTypeDef HAL_USART_DMAPause (USART_HandleTypeDef *husart)
 Pauses the DMA Transfer.
HAL_StatusTypeDef HAL_USART_DMAResume (USART_HandleTypeDef *husart)
 Resumes the DMA Transfer.
HAL_StatusTypeDef HAL_USART_DMAStop (USART_HandleTypeDef *husart)
 Stops the DMA Transfer.
HAL_StatusTypeDef HAL_USART_Abort (USART_HandleTypeDef *husart)
 Abort ongoing transfer (blocking mode).
HAL_StatusTypeDef HAL_USART_Abort_IT (USART_HandleTypeDef *husart)
 Abort ongoing transfer (Interrupt mode).
void HAL_USART_IRQHandler (USART_HandleTypeDef *husart)
 This function handles USART interrupt request.
__weak void HAL_USART_TxCpltCallback (USART_HandleTypeDef *husart)
 Tx Transfer completed callbacks.
__weak void HAL_USART_TxHalfCpltCallback (USART_HandleTypeDef *husart)
 Tx Half Transfer completed callbacks.
__weak void HAL_USART_RxCpltCallback (USART_HandleTypeDef *husart)
 Rx Transfer completed callbacks.
__weak void HAL_USART_RxHalfCpltCallback (USART_HandleTypeDef *husart)
 Rx Half Transfer completed callbacks.
__weak void HAL_USART_TxRxCpltCallback (USART_HandleTypeDef *husart)
 Tx/Rx Transfers completed callback for the non-blocking process.
__weak void HAL_USART_ErrorCallback (USART_HandleTypeDef *husart)
 USART error callbacks.
__weak void HAL_USART_AbortCpltCallback (USART_HandleTypeDef *husart)
 USART Abort Complete callback.
HAL_USART_StateTypeDef HAL_USART_GetState (USART_HandleTypeDef *husart)
 Returns the USART state.
uint32_t HAL_USART_GetError (USART_HandleTypeDef *husart)
 Return the USART error code.

Detailed Description

Header file of USART 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 stm32f4xx_hal_usart.h.