mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

This library was superseded by mbed-dev - https://os.mbed.com/users/mbed_official/code/mbed-dev/.

Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.

If you are looking for a stable and tested release, please import one of the official mbed library releases:

Import librarymbed

The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Committer:
mbed_official
Date:
Fri Aug 14 13:15:17 2015 +0100
Revision:
610:813dcc80987e
Synchronized with git revision 6d84db41c6833e0b9b024741eb0616a5f62d5599

Full URL: https://github.com/mbedmicro/mbed/commit/6d84db41c6833e0b9b024741eb0616a5f62d5599/

DISCO_F746NG - Improvements

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 610:813dcc80987e 1 /**
mbed_official 610:813dcc80987e 2 ******************************************************************************
mbed_official 610:813dcc80987e 3 * @file stm32l4xx_hal_uart.h
mbed_official 610:813dcc80987e 4 * @author MCD Application Team
mbed_official 610:813dcc80987e 5 * @version V1.0.0
mbed_official 610:813dcc80987e 6 * @date 26-June-2015
mbed_official 610:813dcc80987e 7 * @brief Header file of UART HAL module.
mbed_official 610:813dcc80987e 8 ******************************************************************************
mbed_official 610:813dcc80987e 9 * @attention
mbed_official 610:813dcc80987e 10 *
mbed_official 610:813dcc80987e 11 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
mbed_official 610:813dcc80987e 12 *
mbed_official 610:813dcc80987e 13 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 610:813dcc80987e 14 * are permitted provided that the following conditions are met:
mbed_official 610:813dcc80987e 15 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 610:813dcc80987e 16 * this list of conditions and the following disclaimer.
mbed_official 610:813dcc80987e 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 610:813dcc80987e 18 * this list of conditions and the following disclaimer in the documentation
mbed_official 610:813dcc80987e 19 * and/or other materials provided with the distribution.
mbed_official 610:813dcc80987e 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 610:813dcc80987e 21 * may be used to endorse or promote products derived from this software
mbed_official 610:813dcc80987e 22 * without specific prior written permission.
mbed_official 610:813dcc80987e 23 *
mbed_official 610:813dcc80987e 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 610:813dcc80987e 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 610:813dcc80987e 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 610:813dcc80987e 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 610:813dcc80987e 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 610:813dcc80987e 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 610:813dcc80987e 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 610:813dcc80987e 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 610:813dcc80987e 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 610:813dcc80987e 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 610:813dcc80987e 34 *
mbed_official 610:813dcc80987e 35 ******************************************************************************
mbed_official 610:813dcc80987e 36 */
mbed_official 610:813dcc80987e 37
mbed_official 610:813dcc80987e 38 /* Define to prevent recursive inclusion -------------------------------------*/
mbed_official 610:813dcc80987e 39 #ifndef __STM32L4xx_HAL_UART_H
mbed_official 610:813dcc80987e 40 #define __STM32L4xx_HAL_UART_H
mbed_official 610:813dcc80987e 41
mbed_official 610:813dcc80987e 42 #ifdef __cplusplus
mbed_official 610:813dcc80987e 43 extern "C" {
mbed_official 610:813dcc80987e 44 #endif
mbed_official 610:813dcc80987e 45
mbed_official 610:813dcc80987e 46 /* Includes ------------------------------------------------------------------*/
mbed_official 610:813dcc80987e 47 #include "stm32l4xx_hal_def.h"
mbed_official 610:813dcc80987e 48
mbed_official 610:813dcc80987e 49 /** @addtogroup STM32L4xx_HAL_Driver
mbed_official 610:813dcc80987e 50 * @{
mbed_official 610:813dcc80987e 51 */
mbed_official 610:813dcc80987e 52
mbed_official 610:813dcc80987e 53 /** @addtogroup UART
mbed_official 610:813dcc80987e 54 * @{
mbed_official 610:813dcc80987e 55 */
mbed_official 610:813dcc80987e 56
mbed_official 610:813dcc80987e 57 /* Exported types ------------------------------------------------------------*/
mbed_official 610:813dcc80987e 58 /** @defgroup UART_Exported_Types UART Exported Types
mbed_official 610:813dcc80987e 59 * @{
mbed_official 610:813dcc80987e 60 */
mbed_official 610:813dcc80987e 61
mbed_official 610:813dcc80987e 62 /**
mbed_official 610:813dcc80987e 63 * @brief UART Init Structure definition
mbed_official 610:813dcc80987e 64 */
mbed_official 610:813dcc80987e 65 typedef struct
mbed_official 610:813dcc80987e 66 {
mbed_official 610:813dcc80987e 67 uint32_t BaudRate; /*!< This member configures the UART communication baud rate.
mbed_official 610:813dcc80987e 68 The baud rate register is computed using the following formula:
mbed_official 610:813dcc80987e 69 - If oversampling is 16 or in LIN mode,
mbed_official 610:813dcc80987e 70 Baud Rate Register = ((PCLKx) / ((huart->Init.BaudRate)))
mbed_official 610:813dcc80987e 71 - If oversampling is 8,
mbed_official 610:813dcc80987e 72 - - Baud Rate Register[15:4] = ((2 * PCLKx) / ((huart->Init.BaudRate)))[15:4]
mbed_official 610:813dcc80987e 73 - - Baud Rate Register[3] = 0
mbed_official 610:813dcc80987e 74 - - Baud Rate Register[2:0] = (((2 * PCLKx) / ((huart->Init.BaudRate)))[3:0]) >> 1 */
mbed_official 610:813dcc80987e 75
mbed_official 610:813dcc80987e 76 uint32_t WordLength; /*!< Specifies the number of data bits transmitted or received in a frame.
mbed_official 610:813dcc80987e 77 This parameter can be a value of @ref UARTEx_Word_Length. */
mbed_official 610:813dcc80987e 78
mbed_official 610:813dcc80987e 79 uint32_t StopBits; /*!< Specifies the number of stop bits transmitted.
mbed_official 610:813dcc80987e 80 This parameter can be a value of @ref UART_Stop_Bits. */
mbed_official 610:813dcc80987e 81
mbed_official 610:813dcc80987e 82 uint32_t Parity; /*!< Specifies the parity mode.
mbed_official 610:813dcc80987e 83 This parameter can be a value of @ref UART_Parity
mbed_official 610:813dcc80987e 84 @note When parity is enabled, the computed parity is inserted
mbed_official 610:813dcc80987e 85 at the MSB position of the transmitted data (9th bit when
mbed_official 610:813dcc80987e 86 the word length is set to 9 data bits; 8th bit when the
mbed_official 610:813dcc80987e 87 word length is set to 8 data bits). */
mbed_official 610:813dcc80987e 88
mbed_official 610:813dcc80987e 89 uint32_t Mode; /*!< Specifies whether the Receive or Transmit mode is enabled or disabled.
mbed_official 610:813dcc80987e 90 This parameter can be a value of @ref UART_Mode. */
mbed_official 610:813dcc80987e 91
mbed_official 610:813dcc80987e 92 uint32_t HwFlowCtl; /*!< Specifies whether the hardware flow control mode is enabled
mbed_official 610:813dcc80987e 93 or disabled.
mbed_official 610:813dcc80987e 94 This parameter can be a value of @ref UART_Hardware_Flow_Control. */
mbed_official 610:813dcc80987e 95
mbed_official 610:813dcc80987e 96 uint32_t OverSampling; /*!< Specifies whether the Over sampling 8 is enabled or disabled, to achieve higher speed (up to f_PCLK/8).
mbed_official 610:813dcc80987e 97 This parameter can be a value of @ref UART_Over_Sampling. */
mbed_official 610:813dcc80987e 98
mbed_official 610:813dcc80987e 99 uint32_t OneBitSampling; /*!< Specifies whether a single sample or three samples' majority vote is selected.
mbed_official 610:813dcc80987e 100 Selecting the single sample method increases the receiver tolerance to clock
mbed_official 610:813dcc80987e 101 deviations. This parameter can be a value of @ref UART_OneBit_Sampling. */
mbed_official 610:813dcc80987e 102 }UART_InitTypeDef;
mbed_official 610:813dcc80987e 103
mbed_official 610:813dcc80987e 104 /**
mbed_official 610:813dcc80987e 105 * @brief UART Advanced Features initalization structure definition
mbed_official 610:813dcc80987e 106 */
mbed_official 610:813dcc80987e 107 typedef struct
mbed_official 610:813dcc80987e 108 {
mbed_official 610:813dcc80987e 109 uint32_t AdvFeatureInit; /*!< Specifies which advanced UART features is initialized. Several
mbed_official 610:813dcc80987e 110 Advanced Features may be initialized at the same time .
mbed_official 610:813dcc80987e 111 This parameter can be a value of @ref UART_Advanced_Features_Initialization_Type. */
mbed_official 610:813dcc80987e 112
mbed_official 610:813dcc80987e 113 uint32_t TxPinLevelInvert; /*!< Specifies whether the TX pin active level is inverted.
mbed_official 610:813dcc80987e 114 This parameter can be a value of @ref UART_Tx_Inv. */
mbed_official 610:813dcc80987e 115
mbed_official 610:813dcc80987e 116 uint32_t RxPinLevelInvert; /*!< Specifies whether the RX pin active level is inverted.
mbed_official 610:813dcc80987e 117 This parameter can be a value of @ref UART_Rx_Inv. */
mbed_official 610:813dcc80987e 118
mbed_official 610:813dcc80987e 119 uint32_t DataInvert; /*!< Specifies whether data are inverted (positive/direct logic
mbed_official 610:813dcc80987e 120 vs negative/inverted logic).
mbed_official 610:813dcc80987e 121 This parameter can be a value of @ref UART_Data_Inv. */
mbed_official 610:813dcc80987e 122
mbed_official 610:813dcc80987e 123 uint32_t Swap; /*!< Specifies whether TX and RX pins are swapped.
mbed_official 610:813dcc80987e 124 This parameter can be a value of @ref UART_Rx_Tx_Swap. */
mbed_official 610:813dcc80987e 125
mbed_official 610:813dcc80987e 126 uint32_t OverrunDisable; /*!< Specifies whether the reception overrun detection is disabled.
mbed_official 610:813dcc80987e 127 This parameter can be a value of @ref UART_Overrun_Disable. */
mbed_official 610:813dcc80987e 128
mbed_official 610:813dcc80987e 129 uint32_t DMADisableonRxError; /*!< Specifies whether the DMA is disabled in case of reception error.
mbed_official 610:813dcc80987e 130 This parameter can be a value of @ref UART_DMA_Disable_on_Rx_Error. */
mbed_official 610:813dcc80987e 131
mbed_official 610:813dcc80987e 132 uint32_t AutoBaudRateEnable; /*!< Specifies whether auto Baud rate detection is enabled.
mbed_official 610:813dcc80987e 133 This parameter can be a value of @ref UART_AutoBaudRate_Enable */
mbed_official 610:813dcc80987e 134
mbed_official 610:813dcc80987e 135 uint32_t AutoBaudRateMode; /*!< If auto Baud rate detection is enabled, specifies how the rate
mbed_official 610:813dcc80987e 136 detection is carried out.
mbed_official 610:813dcc80987e 137 This parameter can be a value of @ref UART_AutoBaud_Rate_Mode. */
mbed_official 610:813dcc80987e 138
mbed_official 610:813dcc80987e 139 uint32_t MSBFirst; /*!< Specifies whether MSB is sent first on UART line.
mbed_official 610:813dcc80987e 140 This parameter can be a value of @ref UART_MSB_First. */
mbed_official 610:813dcc80987e 141 } UART_AdvFeatureInitTypeDef;
mbed_official 610:813dcc80987e 142
mbed_official 610:813dcc80987e 143
mbed_official 610:813dcc80987e 144
mbed_official 610:813dcc80987e 145 /**
mbed_official 610:813dcc80987e 146 * @brief HAL UART State structures definition
mbed_official 610:813dcc80987e 147 */
mbed_official 610:813dcc80987e 148 typedef enum
mbed_official 610:813dcc80987e 149 {
mbed_official 610:813dcc80987e 150 HAL_UART_STATE_RESET = 0x00, /*!< Peripheral is not initialized */
mbed_official 610:813dcc80987e 151 HAL_UART_STATE_READY = 0x01, /*!< Peripheral Initialized and ready for use */
mbed_official 610:813dcc80987e 152 HAL_UART_STATE_BUSY = 0x02, /*!< an internal process is ongoing */
mbed_official 610:813dcc80987e 153 HAL_UART_STATE_BUSY_TX = 0x12, /*!< Data Transmission process is ongoing */
mbed_official 610:813dcc80987e 154 HAL_UART_STATE_BUSY_RX = 0x22, /*!< Data Reception process is ongoing */
mbed_official 610:813dcc80987e 155 HAL_UART_STATE_BUSY_TX_RX = 0x32, /*!< Data Transmission and Reception process is ongoing */
mbed_official 610:813dcc80987e 156 HAL_UART_STATE_TIMEOUT = 0x03, /*!< Timeout state */
mbed_official 610:813dcc80987e 157 HAL_UART_STATE_ERROR = 0x04 /*!< Error */
mbed_official 610:813dcc80987e 158 }HAL_UART_StateTypeDef;
mbed_official 610:813dcc80987e 159
mbed_official 610:813dcc80987e 160 /**
mbed_official 610:813dcc80987e 161 * @brief HAL UART Error Code structure definition
mbed_official 610:813dcc80987e 162 */
mbed_official 610:813dcc80987e 163 typedef enum
mbed_official 610:813dcc80987e 164 {
mbed_official 610:813dcc80987e 165 HAL_UART_ERROR_NONE = 0x00, /*!< No error */
mbed_official 610:813dcc80987e 166 HAL_UART_ERROR_PE = 0x01, /*!< Parity error */
mbed_official 610:813dcc80987e 167 HAL_UART_ERROR_NE = 0x02, /*!< Noise error */
mbed_official 610:813dcc80987e 168 HAL_UART_ERROR_FE = 0x04, /*!< frame error */
mbed_official 610:813dcc80987e 169 HAL_UART_ERROR_ORE = 0x08, /*!< Overrun error */
mbed_official 610:813dcc80987e 170 HAL_UART_ERROR_DMA = 0x10 /*!< DMA transfer error */
mbed_official 610:813dcc80987e 171 }HAL_UART_ErrorTypeDef;
mbed_official 610:813dcc80987e 172
mbed_official 610:813dcc80987e 173 /**
mbed_official 610:813dcc80987e 174 * @brief UART clock sources definition
mbed_official 610:813dcc80987e 175 */
mbed_official 610:813dcc80987e 176 typedef enum
mbed_official 610:813dcc80987e 177 {
mbed_official 610:813dcc80987e 178 UART_CLOCKSOURCE_PCLK1 = 0x00, /*!< PCLK1 clock source */
mbed_official 610:813dcc80987e 179 UART_CLOCKSOURCE_PCLK2 = 0x01, /*!< PCLK2 clock source */
mbed_official 610:813dcc80987e 180 UART_CLOCKSOURCE_HSI = 0x02, /*!< HSI clock source */
mbed_official 610:813dcc80987e 181 UART_CLOCKSOURCE_SYSCLK = 0x04, /*!< SYSCLK clock source */
mbed_official 610:813dcc80987e 182 UART_CLOCKSOURCE_LSE = 0x08, /*!< LSE clock source */
mbed_official 610:813dcc80987e 183 UART_CLOCKSOURCE_UNDEFINED = 0x10 /*!< Undefined clock source */
mbed_official 610:813dcc80987e 184 }UART_ClockSourceTypeDef;
mbed_official 610:813dcc80987e 185
mbed_official 610:813dcc80987e 186 /**
mbed_official 610:813dcc80987e 187 * @brief UART handle Structure definition
mbed_official 610:813dcc80987e 188 */
mbed_official 610:813dcc80987e 189 typedef struct
mbed_official 610:813dcc80987e 190 {
mbed_official 610:813dcc80987e 191 USART_TypeDef *Instance; /*!< UART registers base address */
mbed_official 610:813dcc80987e 192
mbed_official 610:813dcc80987e 193 UART_InitTypeDef Init; /*!< UART communication parameters */
mbed_official 610:813dcc80987e 194
mbed_official 610:813dcc80987e 195 UART_AdvFeatureInitTypeDef AdvancedInit; /*!< UART Advanced Features initialization parameters */
mbed_official 610:813dcc80987e 196
mbed_official 610:813dcc80987e 197 uint8_t *pTxBuffPtr; /*!< Pointer to UART Tx transfer Buffer */
mbed_official 610:813dcc80987e 198
mbed_official 610:813dcc80987e 199 uint16_t TxXferSize; /*!< UART Tx Transfer size */
mbed_official 610:813dcc80987e 200
mbed_official 610:813dcc80987e 201 uint16_t TxXferCount; /*!< UART Tx Transfer Counter */
mbed_official 610:813dcc80987e 202
mbed_official 610:813dcc80987e 203 uint8_t *pRxBuffPtr; /*!< Pointer to UART Rx transfer Buffer */
mbed_official 610:813dcc80987e 204
mbed_official 610:813dcc80987e 205 uint16_t RxXferSize; /*!< UART Rx Transfer size */
mbed_official 610:813dcc80987e 206
mbed_official 610:813dcc80987e 207 uint16_t RxXferCount; /*!< UART Rx Transfer Counter */
mbed_official 610:813dcc80987e 208
mbed_official 610:813dcc80987e 209 uint16_t Mask; /*!< UART Rx RDR register mask */
mbed_official 610:813dcc80987e 210
mbed_official 610:813dcc80987e 211 DMA_HandleTypeDef *hdmatx; /*!< UART Tx DMA Handle parameters */
mbed_official 610:813dcc80987e 212
mbed_official 610:813dcc80987e 213 DMA_HandleTypeDef *hdmarx; /*!< UART Rx DMA Handle parameters */
mbed_official 610:813dcc80987e 214
mbed_official 610:813dcc80987e 215 HAL_LockTypeDef Lock; /*!< Locking object */
mbed_official 610:813dcc80987e 216
mbed_official 610:813dcc80987e 217 __IO HAL_UART_StateTypeDef State; /*!< UART communication state */
mbed_official 610:813dcc80987e 218
mbed_official 610:813dcc80987e 219 __IO uint32_t ErrorCode; /*!< UART Error code */
mbed_official 610:813dcc80987e 220
mbed_official 610:813dcc80987e 221 }UART_HandleTypeDef;
mbed_official 610:813dcc80987e 222
mbed_official 610:813dcc80987e 223 /**
mbed_official 610:813dcc80987e 224 * @}
mbed_official 610:813dcc80987e 225 */
mbed_official 610:813dcc80987e 226
mbed_official 610:813dcc80987e 227 /* Exported constants --------------------------------------------------------*/
mbed_official 610:813dcc80987e 228 /** @defgroup UART_Exported_Constants UART Exported Constants
mbed_official 610:813dcc80987e 229 * @{
mbed_official 610:813dcc80987e 230 */
mbed_official 610:813dcc80987e 231
mbed_official 610:813dcc80987e 232 /** @defgroup UART_Stop_Bits UART Number of Stop Bits
mbed_official 610:813dcc80987e 233 * @{
mbed_official 610:813dcc80987e 234 */
mbed_official 610:813dcc80987e 235 #define UART_STOPBITS_1 ((uint32_t)0x00000000) /*!< UART frame with 1 stop bit */
mbed_official 610:813dcc80987e 236 #define UART_STOPBITS_1_5 ((uint32_t)(USART_CR2_STOP_0 | USART_CR2_STOP_1)) /*!< UART frame with 1.5 stop bits */
mbed_official 610:813dcc80987e 237 #define UART_STOPBITS_2 ((uint32_t)USART_CR2_STOP_1) /*!< UART frame with 2 stop bits */
mbed_official 610:813dcc80987e 238 /**
mbed_official 610:813dcc80987e 239 * @}
mbed_official 610:813dcc80987e 240 */
mbed_official 610:813dcc80987e 241
mbed_official 610:813dcc80987e 242 /** @defgroup UART_Parity UART Parity
mbed_official 610:813dcc80987e 243 * @{
mbed_official 610:813dcc80987e 244 */
mbed_official 610:813dcc80987e 245 #define UART_PARITY_NONE ((uint32_t)0x00000000) /*!< No parity */
mbed_official 610:813dcc80987e 246 #define UART_PARITY_EVEN ((uint32_t)USART_CR1_PCE) /*!< Even parity */
mbed_official 610:813dcc80987e 247 #define UART_PARITY_ODD ((uint32_t)(USART_CR1_PCE | USART_CR1_PS)) /*!< Odd parity */
mbed_official 610:813dcc80987e 248 /**
mbed_official 610:813dcc80987e 249 * @}
mbed_official 610:813dcc80987e 250 */
mbed_official 610:813dcc80987e 251
mbed_official 610:813dcc80987e 252 /** @defgroup UART_Hardware_Flow_Control UART Hardware Flow Control
mbed_official 610:813dcc80987e 253 * @{
mbed_official 610:813dcc80987e 254 */
mbed_official 610:813dcc80987e 255 #define UART_HWCONTROL_NONE ((uint32_t)0x00000000) /*!< No hardware control */
mbed_official 610:813dcc80987e 256 #define UART_HWCONTROL_RTS ((uint32_t)USART_CR3_RTSE) /*!< Request To Send */
mbed_official 610:813dcc80987e 257 #define UART_HWCONTROL_CTS ((uint32_t)USART_CR3_CTSE) /*!< Clear To Send */
mbed_official 610:813dcc80987e 258 #define UART_HWCONTROL_RTS_CTS ((uint32_t)(USART_CR3_RTSE | USART_CR3_CTSE)) /*!< Request and Clear To Send */
mbed_official 610:813dcc80987e 259 /**
mbed_official 610:813dcc80987e 260 * @}
mbed_official 610:813dcc80987e 261 */
mbed_official 610:813dcc80987e 262
mbed_official 610:813dcc80987e 263 /** @defgroup UART_Mode UART Transfer Mode
mbed_official 610:813dcc80987e 264 * @{
mbed_official 610:813dcc80987e 265 */
mbed_official 610:813dcc80987e 266 #define UART_MODE_RX ((uint32_t)USART_CR1_RE) /*!< RX mode */
mbed_official 610:813dcc80987e 267 #define UART_MODE_TX ((uint32_t)USART_CR1_TE) /*!< TX mode */
mbed_official 610:813dcc80987e 268 #define UART_MODE_TX_RX ((uint32_t)(USART_CR1_TE |USART_CR1_RE)) /*!< RX and TX mode */
mbed_official 610:813dcc80987e 269 /**
mbed_official 610:813dcc80987e 270 * @}
mbed_official 610:813dcc80987e 271 */
mbed_official 610:813dcc80987e 272
mbed_official 610:813dcc80987e 273 /** @defgroup UART_State UART State
mbed_official 610:813dcc80987e 274 * @{
mbed_official 610:813dcc80987e 275 */
mbed_official 610:813dcc80987e 276 #define UART_STATE_DISABLE ((uint32_t)0x00000000) /*!< UART disabled */
mbed_official 610:813dcc80987e 277 #define UART_STATE_ENABLE ((uint32_t)USART_CR1_UE) /*!< UART enabled */
mbed_official 610:813dcc80987e 278 /**
mbed_official 610:813dcc80987e 279 * @}
mbed_official 610:813dcc80987e 280 */
mbed_official 610:813dcc80987e 281
mbed_official 610:813dcc80987e 282 /** @defgroup UART_Over_Sampling UART Over Sampling
mbed_official 610:813dcc80987e 283 * @{
mbed_official 610:813dcc80987e 284 */
mbed_official 610:813dcc80987e 285 #define UART_OVERSAMPLING_16 ((uint32_t)0x00000000) /*!< Oversampling by 16 */
mbed_official 610:813dcc80987e 286 #define UART_OVERSAMPLING_8 ((uint32_t)USART_CR1_OVER8) /*!< Oversampling by 8 */
mbed_official 610:813dcc80987e 287 /**
mbed_official 610:813dcc80987e 288 * @}
mbed_official 610:813dcc80987e 289 */
mbed_official 610:813dcc80987e 290
mbed_official 610:813dcc80987e 291 /** @defgroup UART_OneBit_Sampling UART One Bit Sampling Method
mbed_official 610:813dcc80987e 292 * @{
mbed_official 610:813dcc80987e 293 */
mbed_official 610:813dcc80987e 294 #define UART_ONE_BIT_SAMPLE_DISABLE ((uint32_t)0x00000000) /*!< One-bit sampling disable */
mbed_official 610:813dcc80987e 295 #define UART_ONE_BIT_SAMPLE_ENABLE ((uint32_t)USART_CR3_ONEBIT) /*!< One-bit sampling enable */
mbed_official 610:813dcc80987e 296 /**
mbed_official 610:813dcc80987e 297 * @}
mbed_official 610:813dcc80987e 298 */
mbed_official 610:813dcc80987e 299
mbed_official 610:813dcc80987e 300 /** @defgroup UART_AutoBaud_Rate_Mode UART Advanced Feature AutoBaud Rate Mode
mbed_official 610:813dcc80987e 301 * @{
mbed_official 610:813dcc80987e 302 */
mbed_official 610:813dcc80987e 303 #define UART_ADVFEATURE_AUTOBAUDRATE_ONSTARTBIT ((uint32_t)0x0000) /*!< Auto Baud rate detection on start bit */
mbed_official 610:813dcc80987e 304 #define UART_ADVFEATURE_AUTOBAUDRATE_ONFALLINGEDGE ((uint32_t)USART_CR2_ABRMODE_0) /*!< Auto Baud rate detection on falling edge */
mbed_official 610:813dcc80987e 305 #define UART_ADVFEATURE_AUTOBAUDRATE_ON0X7FFRAME ((uint32_t)USART_CR2_ABRMODE_1) /*!< Auto Baud rate detection on 0x7F frame detection */
mbed_official 610:813dcc80987e 306 #define UART_ADVFEATURE_AUTOBAUDRATE_ON0X55FRAME ((uint32_t)USART_CR2_ABRMODE) /*!< Auto Baud rate detection on 0x55 frame detection */
mbed_official 610:813dcc80987e 307 /**
mbed_official 610:813dcc80987e 308 * @}
mbed_official 610:813dcc80987e 309 */
mbed_official 610:813dcc80987e 310
mbed_official 610:813dcc80987e 311 /** @defgroup UART_Receiver_TimeOut UART Receiver TimeOut
mbed_official 610:813dcc80987e 312 * @{
mbed_official 610:813dcc80987e 313 */
mbed_official 610:813dcc80987e 314 #define UART_RECEIVER_TIMEOUT_DISABLE ((uint32_t)0x00000000) /*!< UART receiver timeout disable */
mbed_official 610:813dcc80987e 315 #define UART_RECEIVER_TIMEOUT_ENABLE ((uint32_t)USART_CR2_RTOEN) /*!< UART receiver timeout enable */
mbed_official 610:813dcc80987e 316 /**
mbed_official 610:813dcc80987e 317 * @}
mbed_official 610:813dcc80987e 318 */
mbed_official 610:813dcc80987e 319
mbed_official 610:813dcc80987e 320 /** @defgroup UART_LIN UART Local Interconnection Network mode
mbed_official 610:813dcc80987e 321 * @{
mbed_official 610:813dcc80987e 322 */
mbed_official 610:813dcc80987e 323 #define UART_LIN_DISABLE ((uint32_t)0x00000000) /*!< Local Interconnect Network disable */
mbed_official 610:813dcc80987e 324 #define UART_LIN_ENABLE ((uint32_t)USART_CR2_LINEN) /*!< Local Interconnect Network enable */
mbed_official 610:813dcc80987e 325 /**
mbed_official 610:813dcc80987e 326 * @}
mbed_official 610:813dcc80987e 327 */
mbed_official 610:813dcc80987e 328
mbed_official 610:813dcc80987e 329 /** @defgroup UART_LIN_Break_Detection UART LIN Break Detection
mbed_official 610:813dcc80987e 330 * @{
mbed_official 610:813dcc80987e 331 */
mbed_official 610:813dcc80987e 332 #define UART_LINBREAKDETECTLENGTH_10B ((uint32_t)0x00000000) /*!< LIN 10-bit break detection length */
mbed_official 610:813dcc80987e 333 #define UART_LINBREAKDETECTLENGTH_11B ((uint32_t)USART_CR2_LBDL) /*!< LIN 11-bit break detection length */
mbed_official 610:813dcc80987e 334 /**
mbed_official 610:813dcc80987e 335 * @}
mbed_official 610:813dcc80987e 336 */
mbed_official 610:813dcc80987e 337
mbed_official 610:813dcc80987e 338 /** @defgroup UART_DMA_Tx UART DMA Tx
mbed_official 610:813dcc80987e 339 * @{
mbed_official 610:813dcc80987e 340 */
mbed_official 610:813dcc80987e 341 #define UART_DMA_TX_DISABLE ((uint32_t)0x00000000) /*!< UART DMA TX disabled */
mbed_official 610:813dcc80987e 342 #define UART_DMA_TX_ENABLE ((uint32_t)USART_CR3_DMAT) /*!< UART DMA TX enabled */
mbed_official 610:813dcc80987e 343 /**
mbed_official 610:813dcc80987e 344 * @}
mbed_official 610:813dcc80987e 345 */
mbed_official 610:813dcc80987e 346
mbed_official 610:813dcc80987e 347 /** @defgroup UART_DMA_Rx UART DMA Rx
mbed_official 610:813dcc80987e 348 * @{
mbed_official 610:813dcc80987e 349 */
mbed_official 610:813dcc80987e 350 #define UART_DMA_RX_DISABLE ((uint32_t)0x0000) /*!< UART DMA RX disabled */
mbed_official 610:813dcc80987e 351 #define UART_DMA_RX_ENABLE ((uint32_t)USART_CR3_DMAR) /*!< UART DMA RX enabled */
mbed_official 610:813dcc80987e 352 /**
mbed_official 610:813dcc80987e 353 * @}
mbed_official 610:813dcc80987e 354 */
mbed_official 610:813dcc80987e 355
mbed_official 610:813dcc80987e 356 /** @defgroup UART_Half_Duplex_Selection UART Half Duplex Selection
mbed_official 610:813dcc80987e 357 * @{
mbed_official 610:813dcc80987e 358 */
mbed_official 610:813dcc80987e 359 #define UART_HALF_DUPLEX_DISABLE ((uint32_t)0x0000) /*!< UART half-duplex disabled */
mbed_official 610:813dcc80987e 360 #define UART_HALF_DUPLEX_ENABLE ((uint32_t)USART_CR3_HDSEL) /*!< UART half-duplex enabled */
mbed_official 610:813dcc80987e 361 /**
mbed_official 610:813dcc80987e 362 * @}
mbed_official 610:813dcc80987e 363 */
mbed_official 610:813dcc80987e 364
mbed_official 610:813dcc80987e 365 /** @defgroup UART_WakeUp_Methods UART WakeUp Methods
mbed_official 610:813dcc80987e 366 * @{
mbed_official 610:813dcc80987e 367 */
mbed_official 610:813dcc80987e 368 #define UART_WAKEUPMETHOD_IDLELINE ((uint32_t)0x00000000) /*!< UART wake-up on idle line */
mbed_official 610:813dcc80987e 369 #define UART_WAKEUPMETHOD_ADDRESSMARK ((uint32_t)USART_CR1_WAKE) /*!< UART wake-up on address mark */
mbed_official 610:813dcc80987e 370 /**
mbed_official 610:813dcc80987e 371 * @}
mbed_official 610:813dcc80987e 372 */
mbed_official 610:813dcc80987e 373
mbed_official 610:813dcc80987e 374 /** @defgroup UART_Request_Parameters UART Request Parameters
mbed_official 610:813dcc80987e 375 * @{
mbed_official 610:813dcc80987e 376 */
mbed_official 610:813dcc80987e 377 #define UART_AUTOBAUD_REQUEST ((uint32_t)USART_RQR_ABRRQ) /*!< Auto-Baud Rate Request */
mbed_official 610:813dcc80987e 378 #define UART_SENDBREAK_REQUEST ((uint32_t)USART_RQR_SBKRQ) /*!< Send Break Request */
mbed_official 610:813dcc80987e 379 #define UART_MUTE_MODE_REQUEST ((uint32_t)USART_RQR_MMRQ) /*!< Mute Mode Request */
mbed_official 610:813dcc80987e 380 #define UART_RXDATA_FLUSH_REQUEST ((uint32_t)USART_RQR_RXFRQ) /*!< Receive Data flush Request */
mbed_official 610:813dcc80987e 381 #define UART_TXDATA_FLUSH_REQUEST ((uint32_t)USART_RQR_TXFRQ) /*!< Transmit data flush Request */
mbed_official 610:813dcc80987e 382 /**
mbed_official 610:813dcc80987e 383 * @}
mbed_official 610:813dcc80987e 384 */
mbed_official 610:813dcc80987e 385
mbed_official 610:813dcc80987e 386 /** @defgroup UART_Advanced_Features_Initialization_Type UART Advanced Feature Initialization Type
mbed_official 610:813dcc80987e 387 * @{
mbed_official 610:813dcc80987e 388 */
mbed_official 610:813dcc80987e 389 #define UART_ADVFEATURE_NO_INIT ((uint32_t)0x00000000) /*!< No advanced feature initialization */
mbed_official 610:813dcc80987e 390 #define UART_ADVFEATURE_TXINVERT_INIT ((uint32_t)0x00000001) /*!< TX pin active level inversion */
mbed_official 610:813dcc80987e 391 #define UART_ADVFEATURE_RXINVERT_INIT ((uint32_t)0x00000002) /*!< RX pin active level inversion */
mbed_official 610:813dcc80987e 392 #define UART_ADVFEATURE_DATAINVERT_INIT ((uint32_t)0x00000004) /*!< Binary data inversion */
mbed_official 610:813dcc80987e 393 #define UART_ADVFEATURE_SWAP_INIT ((uint32_t)0x00000008) /*!< TX/RX pins swap */
mbed_official 610:813dcc80987e 394 #define UART_ADVFEATURE_RXOVERRUNDISABLE_INIT ((uint32_t)0x00000010) /*!< RX overrun disable */
mbed_official 610:813dcc80987e 395 #define UART_ADVFEATURE_DMADISABLEONERROR_INIT ((uint32_t)0x00000020) /*!< DMA disable on Reception Error */
mbed_official 610:813dcc80987e 396 #define UART_ADVFEATURE_AUTOBAUDRATE_INIT ((uint32_t)0x00000040) /*!< Auto Baud rate detection initialization */
mbed_official 610:813dcc80987e 397 #define UART_ADVFEATURE_MSBFIRST_INIT ((uint32_t)0x00000080) /*!< Most significant bit sent/received first */
mbed_official 610:813dcc80987e 398 /**
mbed_official 610:813dcc80987e 399 * @}
mbed_official 610:813dcc80987e 400 */
mbed_official 610:813dcc80987e 401
mbed_official 610:813dcc80987e 402 /** @defgroup UART_Tx_Inv UART Advanced Feature TX Pin Active Level Inversion
mbed_official 610:813dcc80987e 403 * @{
mbed_official 610:813dcc80987e 404 */
mbed_official 610:813dcc80987e 405 #define UART_ADVFEATURE_TXINV_DISABLE ((uint32_t)0x00000000) /*!< TX pin active level inversion disable */
mbed_official 610:813dcc80987e 406 #define UART_ADVFEATURE_TXINV_ENABLE ((uint32_t)USART_CR2_TXINV) /*!< TX pin active level inversion enable */
mbed_official 610:813dcc80987e 407 /**
mbed_official 610:813dcc80987e 408 * @}
mbed_official 610:813dcc80987e 409 */
mbed_official 610:813dcc80987e 410
mbed_official 610:813dcc80987e 411 /** @defgroup UART_Rx_Inv UART Advanced Feature RX Pin Active Level Inversion
mbed_official 610:813dcc80987e 412 * @{
mbed_official 610:813dcc80987e 413 */
mbed_official 610:813dcc80987e 414 #define UART_ADVFEATURE_RXINV_DISABLE ((uint32_t)0x00000000) /*!< RX pin active level inversion disable */
mbed_official 610:813dcc80987e 415 #define UART_ADVFEATURE_RXINV_ENABLE ((uint32_t)USART_CR2_RXINV) /*!< RX pin active level inversion enable */
mbed_official 610:813dcc80987e 416 /**
mbed_official 610:813dcc80987e 417 * @}
mbed_official 610:813dcc80987e 418 */
mbed_official 610:813dcc80987e 419
mbed_official 610:813dcc80987e 420 /** @defgroup UART_Data_Inv UART Advanced Feature Binary Data Inversion
mbed_official 610:813dcc80987e 421 * @{
mbed_official 610:813dcc80987e 422 */
mbed_official 610:813dcc80987e 423 #define UART_ADVFEATURE_DATAINV_DISABLE ((uint32_t)0x00000000) /*!< Binary data inversion disable */
mbed_official 610:813dcc80987e 424 #define UART_ADVFEATURE_DATAINV_ENABLE ((uint32_t)USART_CR2_DATAINV) /*!< Binary data inversion enable */
mbed_official 610:813dcc80987e 425 /**
mbed_official 610:813dcc80987e 426 * @}
mbed_official 610:813dcc80987e 427 */
mbed_official 610:813dcc80987e 428
mbed_official 610:813dcc80987e 429 /** @defgroup UART_Rx_Tx_Swap UART Advanced Feature RX TX Pins Swap
mbed_official 610:813dcc80987e 430 * @{
mbed_official 610:813dcc80987e 431 */
mbed_official 610:813dcc80987e 432 #define UART_ADVFEATURE_SWAP_DISABLE ((uint32_t)0x00000000) /*!< TX/RX pins swap disable */
mbed_official 610:813dcc80987e 433 #define UART_ADVFEATURE_SWAP_ENABLE ((uint32_t)USART_CR2_SWAP) /*!< TX/RX pins swap enable */
mbed_official 610:813dcc80987e 434 /**
mbed_official 610:813dcc80987e 435 * @}
mbed_official 610:813dcc80987e 436 */
mbed_official 610:813dcc80987e 437
mbed_official 610:813dcc80987e 438 /** @defgroup UART_Overrun_Disable UART Advanced Feature Overrun Disable
mbed_official 610:813dcc80987e 439 * @{
mbed_official 610:813dcc80987e 440 */
mbed_official 610:813dcc80987e 441 #define UART_ADVFEATURE_OVERRUN_ENABLE ((uint32_t)0x00000000) /*!< RX overrun enable */
mbed_official 610:813dcc80987e 442 #define UART_ADVFEATURE_OVERRUN_DISABLE ((uint32_t)USART_CR3_OVRDIS) /*!< RX overrun disable */
mbed_official 610:813dcc80987e 443 /**
mbed_official 610:813dcc80987e 444 * @}
mbed_official 610:813dcc80987e 445 */
mbed_official 610:813dcc80987e 446
mbed_official 610:813dcc80987e 447 /** @defgroup UART_AutoBaudRate_Enable UART Advanced Feature Auto BaudRate Enable
mbed_official 610:813dcc80987e 448 * @{
mbed_official 610:813dcc80987e 449 */
mbed_official 610:813dcc80987e 450 #define UART_ADVFEATURE_AUTOBAUDRATE_DISABLE ((uint32_t)0x00000000) /*!< RX Auto Baud rate detection enable */
mbed_official 610:813dcc80987e 451 #define UART_ADVFEATURE_AUTOBAUDRATE_ENABLE ((uint32_t)USART_CR2_ABREN) /*!< RX Auto Baud rate detection disable */
mbed_official 610:813dcc80987e 452 /**
mbed_official 610:813dcc80987e 453 * @}
mbed_official 610:813dcc80987e 454 */
mbed_official 610:813dcc80987e 455
mbed_official 610:813dcc80987e 456 /** @defgroup UART_DMA_Disable_on_Rx_Error UART Advanced Feature DMA Disable On Rx Error
mbed_official 610:813dcc80987e 457 * @{
mbed_official 610:813dcc80987e 458 */
mbed_official 610:813dcc80987e 459 #define UART_ADVFEATURE_DMA_ENABLEONRXERROR ((uint32_t)0x00000000) /*!< DMA enable on Reception Error */
mbed_official 610:813dcc80987e 460 #define UART_ADVFEATURE_DMA_DISABLEONRXERROR ((uint32_t)USART_CR3_DDRE) /*!< DMA disable on Reception Error */
mbed_official 610:813dcc80987e 461 /**
mbed_official 610:813dcc80987e 462 * @}
mbed_official 610:813dcc80987e 463 */
mbed_official 610:813dcc80987e 464
mbed_official 610:813dcc80987e 465 /** @defgroup UART_MSB_First UART Advanced Feature MSB First
mbed_official 610:813dcc80987e 466 * @{
mbed_official 610:813dcc80987e 467 */
mbed_official 610:813dcc80987e 468 #define UART_ADVFEATURE_MSBFIRST_DISABLE ((uint32_t)0x00000000) /*!< Most significant bit sent/received first disable */
mbed_official 610:813dcc80987e 469 #define UART_ADVFEATURE_MSBFIRST_ENABLE ((uint32_t)USART_CR2_MSBFIRST) /*!< Most significant bit sent/received first enable */
mbed_official 610:813dcc80987e 470 /**
mbed_official 610:813dcc80987e 471 * @}
mbed_official 610:813dcc80987e 472 */
mbed_official 610:813dcc80987e 473
mbed_official 610:813dcc80987e 474 /** @defgroup UART_Stop_Mode_Enable UART Advanced Feature Stop Mode Enable
mbed_official 610:813dcc80987e 475 * @{
mbed_official 610:813dcc80987e 476 */
mbed_official 610:813dcc80987e 477 #define UART_ADVFEATURE_STOPMODE_DISABLE ((uint32_t)0x00000000) /*!< UART stop mode disable */
mbed_official 610:813dcc80987e 478 #define UART_ADVFEATURE_STOPMODE_ENABLE ((uint32_t)USART_CR1_UESM) /*!< UART stop mode enable */
mbed_official 610:813dcc80987e 479 /**
mbed_official 610:813dcc80987e 480 * @}
mbed_official 610:813dcc80987e 481 */
mbed_official 610:813dcc80987e 482
mbed_official 610:813dcc80987e 483 /** @defgroup UART_Mute_Mode UART Advanced Feature Mute Mode Enable
mbed_official 610:813dcc80987e 484 * @{
mbed_official 610:813dcc80987e 485 */
mbed_official 610:813dcc80987e 486 #define UART_ADVFEATURE_MUTEMODE_DISABLE ((uint32_t)0x00000000) /*!< UART mute mode disable */
mbed_official 610:813dcc80987e 487 #define UART_ADVFEATURE_MUTEMODE_ENABLE ((uint32_t)USART_CR1_MME) /*!< UART mute mode enable */
mbed_official 610:813dcc80987e 488 /**
mbed_official 610:813dcc80987e 489 * @}
mbed_official 610:813dcc80987e 490 */
mbed_official 610:813dcc80987e 491
mbed_official 610:813dcc80987e 492 /** @defgroup UART_CR2_ADDRESS_LSB_POS UART Address-matching LSB Position In CR2 Register
mbed_official 610:813dcc80987e 493 * @{
mbed_official 610:813dcc80987e 494 */
mbed_official 610:813dcc80987e 495 #define UART_CR2_ADDRESS_LSB_POS ((uint32_t) 24) /*!< UART address-matching LSB position in CR2 register */
mbed_official 610:813dcc80987e 496 /**
mbed_official 610:813dcc80987e 497 * @}
mbed_official 610:813dcc80987e 498 */
mbed_official 610:813dcc80987e 499
mbed_official 610:813dcc80987e 500 /** @defgroup UART_WakeUp_from_Stop_Selection UART WakeUp From Stop Selection
mbed_official 610:813dcc80987e 501 * @{
mbed_official 610:813dcc80987e 502 */
mbed_official 610:813dcc80987e 503 #define UART_WAKEUP_ON_ADDRESS ((uint32_t)0x00000000) /*!< UART wake-up on address */
mbed_official 610:813dcc80987e 504 #define UART_WAKEUP_ON_STARTBIT ((uint32_t)USART_CR3_WUS_1) /*!< UART wake-up on start bit */
mbed_official 610:813dcc80987e 505 #define UART_WAKEUP_ON_READDATA_NONEMPTY ((uint32_t)USART_CR3_WUS) /*!< UART wake-up on receive data register not empty */
mbed_official 610:813dcc80987e 506 /**
mbed_official 610:813dcc80987e 507 * @}
mbed_official 610:813dcc80987e 508 */
mbed_official 610:813dcc80987e 509
mbed_official 610:813dcc80987e 510 /** @defgroup UART_DriverEnable_Polarity UART DriverEnable Polarity
mbed_official 610:813dcc80987e 511 * @{
mbed_official 610:813dcc80987e 512 */
mbed_official 610:813dcc80987e 513 #define UART_DE_POLARITY_HIGH ((uint32_t)0x00000000) /*!< Driver enable signal is active high */
mbed_official 610:813dcc80987e 514 #define UART_DE_POLARITY_LOW ((uint32_t)USART_CR3_DEP) /*!< Driver enable signal is active low */
mbed_official 610:813dcc80987e 515 /**
mbed_official 610:813dcc80987e 516 * @}
mbed_official 610:813dcc80987e 517 */
mbed_official 610:813dcc80987e 518
mbed_official 610:813dcc80987e 519 /** @defgroup UART_CR1_DEAT_ADDRESS_LSB_POS UART Driver Enable Assertion Time LSB Position In CR1 Register
mbed_official 610:813dcc80987e 520 * @{
mbed_official 610:813dcc80987e 521 */
mbed_official 610:813dcc80987e 522 #define UART_CR1_DEAT_ADDRESS_LSB_POS ((uint32_t) 21) /*!< UART Driver Enable assertion time LSB position in CR1 register */
mbed_official 610:813dcc80987e 523 /**
mbed_official 610:813dcc80987e 524 * @}
mbed_official 610:813dcc80987e 525 */
mbed_official 610:813dcc80987e 526
mbed_official 610:813dcc80987e 527 /** @defgroup UART_CR1_DEDT_ADDRESS_LSB_POS UART Driver Enable DeAssertion Time LSB Position In CR1 Register
mbed_official 610:813dcc80987e 528 * @{
mbed_official 610:813dcc80987e 529 */
mbed_official 610:813dcc80987e 530 #define UART_CR1_DEDT_ADDRESS_LSB_POS ((uint32_t) 16) /*!< UART Driver Enable de-assertion time LSB position in CR1 register */
mbed_official 610:813dcc80987e 531 /**
mbed_official 610:813dcc80987e 532 * @}
mbed_official 610:813dcc80987e 533 */
mbed_official 610:813dcc80987e 534
mbed_official 610:813dcc80987e 535 /** @defgroup UART_Interruption_Mask UART Interruptions Flag Mask
mbed_official 610:813dcc80987e 536 * @{
mbed_official 610:813dcc80987e 537 */
mbed_official 610:813dcc80987e 538 #define UART_IT_MASK ((uint32_t)0x001F) /*!< UART interruptions flags mask */
mbed_official 610:813dcc80987e 539 /**
mbed_official 610:813dcc80987e 540 * @}
mbed_official 610:813dcc80987e 541 */
mbed_official 610:813dcc80987e 542
mbed_official 610:813dcc80987e 543 /** @defgroup UART_TimeOut_Value UART polling-based communications time-out value
mbed_official 610:813dcc80987e 544 * @{
mbed_official 610:813dcc80987e 545 */
mbed_official 610:813dcc80987e 546 #define HAL_UART_TIMEOUT_VALUE 0x1FFFFFF /*!< UART polling-based communications time-out value */
mbed_official 610:813dcc80987e 547 /**
mbed_official 610:813dcc80987e 548 * @}
mbed_official 610:813dcc80987e 549 */
mbed_official 610:813dcc80987e 550
mbed_official 610:813dcc80987e 551 /** @defgroup UART_Flags UART Status Flags
mbed_official 610:813dcc80987e 552 * Elements values convention: 0xXXXX
mbed_official 610:813dcc80987e 553 * - 0xXXXX : Flag mask in the ISR register
mbed_official 610:813dcc80987e 554 * @{
mbed_official 610:813dcc80987e 555 */
mbed_official 610:813dcc80987e 556 #define UART_FLAG_REACK ((uint32_t)0x00400000) /*!< UART receive enable acknowledge flag */
mbed_official 610:813dcc80987e 557 #define UART_FLAG_TEACK ((uint32_t)0x00200000) /*!< UART transmit enable acknowledge flag */
mbed_official 610:813dcc80987e 558 #define UART_FLAG_WUF ((uint32_t)0x00100000) /*!< UART wake-up from stop mode flag */
mbed_official 610:813dcc80987e 559 #define UART_FLAG_RWU ((uint32_t)0x00080000) /*!< UART receiver wake-up from mute mode flag */
mbed_official 610:813dcc80987e 560 #define UART_FLAG_SBKF ((uint32_t)0x00040000) /*!< UART send break flag */
mbed_official 610:813dcc80987e 561 #define UART_FLAG_CMF ((uint32_t)0x00020000) /*!< UART character match flag */
mbed_official 610:813dcc80987e 562 #define UART_FLAG_BUSY ((uint32_t)0x00010000) /*!< UART busy flag */
mbed_official 610:813dcc80987e 563 #define UART_FLAG_ABRF ((uint32_t)0x00008000) /*!< UART auto Baud rate flag */
mbed_official 610:813dcc80987e 564 #define UART_FLAG_ABRE ((uint32_t)0x00004000) /*!< UART uto Baud rate error */
mbed_official 610:813dcc80987e 565 #define UART_FLAG_EOBF ((uint32_t)0x00001000) /*!< UART end of block flag */
mbed_official 610:813dcc80987e 566 #define UART_FLAG_RTOF ((uint32_t)0x00000800) /*!< UART receiver timeout flag */
mbed_official 610:813dcc80987e 567 #define UART_FLAG_CTS ((uint32_t)0x00000400) /*!< UART clear to send flag */
mbed_official 610:813dcc80987e 568 #define UART_FLAG_CTSIF ((uint32_t)0x00000200) /*!< UART clear to send interrupt flag */
mbed_official 610:813dcc80987e 569 #define UART_FLAG_LBDF ((uint32_t)0x00000100) /*!< UART LIN break detection flag */
mbed_official 610:813dcc80987e 570 #define UART_FLAG_TXE ((uint32_t)0x00000080) /*!< UART transmit data register empty */
mbed_official 610:813dcc80987e 571 #define UART_FLAG_TC ((uint32_t)0x00000040) /*!< UART transmission complete */
mbed_official 610:813dcc80987e 572 #define UART_FLAG_RXNE ((uint32_t)0x00000020) /*!< UART read data register not empty */
mbed_official 610:813dcc80987e 573 #define UART_FLAG_IDLE ((uint32_t)0x00000010) /*!< UART idle flag */
mbed_official 610:813dcc80987e 574 #define UART_FLAG_ORE ((uint32_t)0x00000008) /*!< UART overrun error */
mbed_official 610:813dcc80987e 575 #define UART_FLAG_NE ((uint32_t)0x00000004) /*!< UART noise error */
mbed_official 610:813dcc80987e 576 #define UART_FLAG_FE ((uint32_t)0x00000002) /*!< UART frame error */
mbed_official 610:813dcc80987e 577 #define UART_FLAG_PE ((uint32_t)0x00000001) /*!< UART parity error */
mbed_official 610:813dcc80987e 578 /**
mbed_official 610:813dcc80987e 579 * @}
mbed_official 610:813dcc80987e 580 */
mbed_official 610:813dcc80987e 581
mbed_official 610:813dcc80987e 582 /** @defgroup UART_Interrupt_definition UART Interrupts Definition
mbed_official 610:813dcc80987e 583 * Elements values convention: 000ZZZZZ0XXYYYYYb
mbed_official 610:813dcc80987e 584 * - YYYYY : Interrupt source position in the XX register (5bits)
mbed_official 610:813dcc80987e 585 * - XX : Interrupt source register (2bits)
mbed_official 610:813dcc80987e 586 * - 01: CR1 register
mbed_official 610:813dcc80987e 587 * - 10: CR2 register
mbed_official 610:813dcc80987e 588 * - 11: CR3 register
mbed_official 610:813dcc80987e 589 * - ZZZZZ : Flag position in the ISR register(5bits)
mbed_official 610:813dcc80987e 590 * @{
mbed_official 610:813dcc80987e 591 */
mbed_official 610:813dcc80987e 592 #define UART_IT_PE ((uint32_t)0x0028) /*!< UART parity error interruption */
mbed_official 610:813dcc80987e 593 #define UART_IT_TXE ((uint32_t)0x0727) /*!< UART transmit data register empty interruption */
mbed_official 610:813dcc80987e 594 #define UART_IT_TC ((uint32_t)0x0626) /*!< UART transmission complete interruption */
mbed_official 610:813dcc80987e 595 #define UART_IT_RXNE ((uint32_t)0x0525) /*!< UART read data register not empty interruption */
mbed_official 610:813dcc80987e 596 #define UART_IT_IDLE ((uint32_t)0x0424) /*!< UART idle interruption */
mbed_official 610:813dcc80987e 597 #define UART_IT_LBD ((uint32_t)0x0846) /*!< UART LIN break detection interruption */
mbed_official 610:813dcc80987e 598 #define UART_IT_CTS ((uint32_t)0x096A) /*!< UART CTS interruption */
mbed_official 610:813dcc80987e 599 #define UART_IT_CM ((uint32_t)0x112E) /*!< UART character match interruption */
mbed_official 610:813dcc80987e 600 #define UART_IT_WUF ((uint32_t)0x1476) /*!< UART wake-up from stop mode interruption */
mbed_official 610:813dcc80987e 601
mbed_official 610:813dcc80987e 602 /* Elements values convention: 000000000XXYYYYYb
mbed_official 610:813dcc80987e 603 - YYYYY : Interrupt source position in the XX register (5bits)
mbed_official 610:813dcc80987e 604 - XX : Interrupt source register (2bits)
mbed_official 610:813dcc80987e 605 - 01: CR1 register
mbed_official 610:813dcc80987e 606 - 10: CR2 register
mbed_official 610:813dcc80987e 607 - 11: CR3 register */
mbed_official 610:813dcc80987e 608 #define UART_IT_ERR ((uint32_t)0x0060) /*!< UART error interruption */
mbed_official 610:813dcc80987e 609
mbed_official 610:813dcc80987e 610 /* Elements values convention: 0000ZZZZ00000000b
mbed_official 610:813dcc80987e 611 - ZZZZ : Flag position in the ISR register(4bits) */
mbed_official 610:813dcc80987e 612 #define UART_IT_ORE ((uint32_t)0x0300) /*!< UART overrun error interruption */
mbed_official 610:813dcc80987e 613 #define UART_IT_NE ((uint32_t)0x0200) /*!< UART noise error interruption */
mbed_official 610:813dcc80987e 614 #define UART_IT_FE ((uint32_t)0x0100) /*!< UART frame error interruption */
mbed_official 610:813dcc80987e 615 /**
mbed_official 610:813dcc80987e 616 * @}
mbed_official 610:813dcc80987e 617 */
mbed_official 610:813dcc80987e 618
mbed_official 610:813dcc80987e 619 /** @defgroup UART_IT_CLEAR_Flags UART Interruption Clear Flags
mbed_official 610:813dcc80987e 620 * @{
mbed_official 610:813dcc80987e 621 */
mbed_official 610:813dcc80987e 622 #define UART_CLEAR_PEF USART_ICR_PECF /*!< Parity Error Clear Flag */
mbed_official 610:813dcc80987e 623 #define UART_CLEAR_FEF USART_ICR_FECF /*!< Framing Error Clear Flag */
mbed_official 610:813dcc80987e 624 #define UART_CLEAR_NEF USART_ICR_NCF /*!< Noise detected Clear Flag */
mbed_official 610:813dcc80987e 625 #define UART_CLEAR_OREF USART_ICR_ORECF /*!< OverRun Error Clear Flag */
mbed_official 610:813dcc80987e 626 #define UART_CLEAR_IDLEF USART_ICR_IDLECF /*!< IDLE line detected Clear Flag */
mbed_official 610:813dcc80987e 627 #define UART_CLEAR_TCF USART_ICR_TCCF /*!< Transmission Complete Clear Flag */
mbed_official 610:813dcc80987e 628 #define UART_CLEAR_LBDF USART_ICR_LBDCF /*!< LIN Break Detection Clear Flag */
mbed_official 610:813dcc80987e 629 #define UART_CLEAR_CTSF USART_ICR_CTSCF /*!< CTS Interrupt Clear Flag */
mbed_official 610:813dcc80987e 630 #define UART_CLEAR_RTOF USART_ICR_RTOCF /*!< Receiver Time Out Clear Flag */
mbed_official 610:813dcc80987e 631 #define UART_CLEAR_EOBF USART_ICR_EOBCF /*!< End Of Block Clear Flag */
mbed_official 610:813dcc80987e 632 #define UART_CLEAR_CMF USART_ICR_CMCF /*!< Character Match Clear Flag */
mbed_official 610:813dcc80987e 633 #define UART_CLEAR_WUF USART_ICR_WUCF /*!< Wake Up from stop mode Clear Flag */
mbed_official 610:813dcc80987e 634 /**
mbed_official 610:813dcc80987e 635 * @}
mbed_official 610:813dcc80987e 636 */
mbed_official 610:813dcc80987e 637
mbed_official 610:813dcc80987e 638
mbed_official 610:813dcc80987e 639 /**
mbed_official 610:813dcc80987e 640 * @}
mbed_official 610:813dcc80987e 641 */
mbed_official 610:813dcc80987e 642
mbed_official 610:813dcc80987e 643 /* Exported macros -----------------------------------------------------------*/
mbed_official 610:813dcc80987e 644 /** @defgroup UART_Exported_Macros UART Exported Macros
mbed_official 610:813dcc80987e 645 * @{
mbed_official 610:813dcc80987e 646 */
mbed_official 610:813dcc80987e 647
mbed_official 610:813dcc80987e 648 /** @brief Reset UART handle state.
mbed_official 610:813dcc80987e 649 * @param __HANDLE__: UART handle.
mbed_official 610:813dcc80987e 650 * @retval None
mbed_official 610:813dcc80987e 651 */
mbed_official 610:813dcc80987e 652 #define __HAL_UART_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_UART_STATE_RESET)
mbed_official 610:813dcc80987e 653
mbed_official 610:813dcc80987e 654 /** @brief Flush the UART Data registers.
mbed_official 610:813dcc80987e 655 * @param __HANDLE__: specifies the UART Handle.
mbed_official 610:813dcc80987e 656 * @retval None
mbed_official 610:813dcc80987e 657 */
mbed_official 610:813dcc80987e 658 #define __HAL_UART_FLUSH_DRREGISTER(__HANDLE__) \
mbed_official 610:813dcc80987e 659 do{ \
mbed_official 610:813dcc80987e 660 SET_BIT((__HANDLE__)->Instance->RQR, UART_RXDATA_FLUSH_REQUEST); \
mbed_official 610:813dcc80987e 661 SET_BIT((__HANDLE__)->Instance->RQR, UART_TXDATA_FLUSH_REQUEST); \
mbed_official 610:813dcc80987e 662 } while(0)
mbed_official 610:813dcc80987e 663
mbed_official 610:813dcc80987e 664 /** @brief Clear the specified UART pending flag.
mbed_official 610:813dcc80987e 665 * @param __HANDLE__: specifies the UART Handle.
mbed_official 610:813dcc80987e 666 * @param __FLAG__: specifies the flag to check.
mbed_official 610:813dcc80987e 667 * This parameter can be any combination of the following values:
mbed_official 610:813dcc80987e 668 * @arg UART_CLEAR_PEF, Parity Error Clear Flag
mbed_official 610:813dcc80987e 669 * @arg UART_CLEAR_FEF, Framing Error Clear Flag
mbed_official 610:813dcc80987e 670 * @arg UART_CLEAR_NEF, Noise detected Clear Flag
mbed_official 610:813dcc80987e 671 * @arg UART_CLEAR_OREF, OverRun Error Clear Flag
mbed_official 610:813dcc80987e 672 * @arg UART_CLEAR_IDLEF, IDLE line detected Clear Flag
mbed_official 610:813dcc80987e 673 * @arg UART_CLEAR_TCF, Transmission Complete Clear Flag
mbed_official 610:813dcc80987e 674 * @arg UART_CLEAR_LBDF, LIN Break Detection Clear Flag
mbed_official 610:813dcc80987e 675 * @arg UART_CLEAR_CTSF, CTS Interrupt Clear Flag
mbed_official 610:813dcc80987e 676 * @arg UART_CLEAR_RTOF, Receiver Time Out Clear Flag
mbed_official 610:813dcc80987e 677 * @arg UART_CLEAR_EOBF, End Of Block Clear Flag
mbed_official 610:813dcc80987e 678 * @arg UART_CLEAR_CMF, Character Match Clear Flag
mbed_official 610:813dcc80987e 679 * @arg UART_CLEAR_WUF, Wake Up from stop mode Clear Flag
mbed_official 610:813dcc80987e 680 * @retval None
mbed_official 610:813dcc80987e 681 */
mbed_official 610:813dcc80987e 682 #define __HAL_UART_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ICR = (__FLAG__))
mbed_official 610:813dcc80987e 683
mbed_official 610:813dcc80987e 684 /** @brief Clear the UART PE pending flag.
mbed_official 610:813dcc80987e 685 * @param __HANDLE__: specifies the UART Handle.
mbed_official 610:813dcc80987e 686 * @retval None
mbed_official 610:813dcc80987e 687 */
mbed_official 610:813dcc80987e 688 #define __HAL_UART_CLEAR_PEFLAG(__HANDLE__) __HAL_UART_CLEAR_FLAG((__HANDLE__), UART_CLEAR_PEF)
mbed_official 610:813dcc80987e 689
mbed_official 610:813dcc80987e 690 /** @brief Clear the UART FE pending flag.
mbed_official 610:813dcc80987e 691 * @param __HANDLE__: specifies the UART Handle.
mbed_official 610:813dcc80987e 692 * @retval None
mbed_official 610:813dcc80987e 693 */
mbed_official 610:813dcc80987e 694 #define __HAL_UART_CLEAR_FEFLAG(__HANDLE__) __HAL_UART_CLEAR_FLAG((__HANDLE__), UART_CLEAR_FEF)
mbed_official 610:813dcc80987e 695
mbed_official 610:813dcc80987e 696 /** @brief Clear the UART NE pending flag.
mbed_official 610:813dcc80987e 697 * @param __HANDLE__: specifies the UART Handle.
mbed_official 610:813dcc80987e 698 * @retval None
mbed_official 610:813dcc80987e 699 */
mbed_official 610:813dcc80987e 700 #define __HAL_UART_CLEAR_NEFLAG(__HANDLE__) __HAL_UART_CLEAR_FLAG((__HANDLE__), UART_CLEAR_NEF)
mbed_official 610:813dcc80987e 701
mbed_official 610:813dcc80987e 702 /** @brief Clear the UART ORE pending flag.
mbed_official 610:813dcc80987e 703 * @param __HANDLE__: specifies the UART Handle.
mbed_official 610:813dcc80987e 704 * @retval None
mbed_official 610:813dcc80987e 705 */
mbed_official 610:813dcc80987e 706 #define __HAL_UART_CLEAR_OREFLAG(__HANDLE__) __HAL_UART_CLEAR_FLAG((__HANDLE__), UART_CLEAR_OREF)
mbed_official 610:813dcc80987e 707
mbed_official 610:813dcc80987e 708 /** @brief Clear the UART IDLE pending flag.
mbed_official 610:813dcc80987e 709 * @param __HANDLE__: specifies the UART Handle.
mbed_official 610:813dcc80987e 710 * @retval None
mbed_official 610:813dcc80987e 711 */
mbed_official 610:813dcc80987e 712 #define __HAL_UART_CLEAR_IDLEFLAG(__HANDLE__) __HAL_UART_CLEAR_FLAG((__HANDLE__), UART_CLEAR_IDLEF)
mbed_official 610:813dcc80987e 713
mbed_official 610:813dcc80987e 714 /** @brief Check whether the specified UART flag is set or not.
mbed_official 610:813dcc80987e 715 * @param __HANDLE__: specifies the UART Handle.
mbed_official 610:813dcc80987e 716 * @param __FLAG__: specifies the flag to check.
mbed_official 610:813dcc80987e 717 * This parameter can be one of the following values:
mbed_official 610:813dcc80987e 718 * @arg UART_FLAG_REACK: Receive enable acknowledge flag
mbed_official 610:813dcc80987e 719 * @arg UART_FLAG_TEACK: Transmit enable acknowledge flag
mbed_official 610:813dcc80987e 720 * @arg UART_FLAG_WUF: Wake up from stop mode flag
mbed_official 610:813dcc80987e 721 * @arg UART_FLAG_RWU: Receiver wake up flag (if the UART in mute mode)
mbed_official 610:813dcc80987e 722 * @arg UART_FLAG_SBKF: Send Break flag
mbed_official 610:813dcc80987e 723 * @arg UART_FLAG_CMF: Character match flag
mbed_official 610:813dcc80987e 724 * @arg UART_FLAG_BUSY: Busy flag
mbed_official 610:813dcc80987e 725 * @arg UART_FLAG_ABRF: Auto Baud rate detection flag
mbed_official 610:813dcc80987e 726 * @arg UART_FLAG_ABRE: Auto Baud rate detection error flag
mbed_official 610:813dcc80987e 727 * @arg UART_FLAG_EOBF: End of block flag
mbed_official 610:813dcc80987e 728 * @arg UART_FLAG_RTOF: Receiver timeout flag
mbed_official 610:813dcc80987e 729 * @arg UART_FLAG_CTS: CTS Change flag
mbed_official 610:813dcc80987e 730 * @arg UART_FLAG_LBD: LIN Break detection flag
mbed_official 610:813dcc80987e 731 * @arg UART_FLAG_TXE: Transmit data register empty flag
mbed_official 610:813dcc80987e 732 * @arg UART_FLAG_TC: Transmission Complete flag
mbed_official 610:813dcc80987e 733 * @arg UART_FLAG_RXNE: Receive data register not empty flag
mbed_official 610:813dcc80987e 734 * @arg UART_FLAG_IDLE: Idle Line detection flag
mbed_official 610:813dcc80987e 735 * @arg UART_FLAG_ORE: OverRun Error flag
mbed_official 610:813dcc80987e 736 * @arg UART_FLAG_NE: Noise Error flag
mbed_official 610:813dcc80987e 737 * @arg UART_FLAG_FE: Framing Error flag
mbed_official 610:813dcc80987e 738 * @arg UART_FLAG_PE: Parity Error flag
mbed_official 610:813dcc80987e 739 * @retval The new state of __FLAG__ (TRUE or FALSE).
mbed_official 610:813dcc80987e 740 */
mbed_official 610:813dcc80987e 741 #define __HAL_UART_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->ISR & (__FLAG__)) == (__FLAG__))
mbed_official 610:813dcc80987e 742
mbed_official 610:813dcc80987e 743 /** @brief Enable the specified UART interrupt.
mbed_official 610:813dcc80987e 744 * @param __HANDLE__: specifies the UART Handle.
mbed_official 610:813dcc80987e 745 * @param __INTERRUPT__: specifies the UART interrupt source to enable.
mbed_official 610:813dcc80987e 746 * This parameter can be one of the following values:
mbed_official 610:813dcc80987e 747 * @arg UART_IT_WUF: Wakeup from stop mode interrupt
mbed_official 610:813dcc80987e 748 * @arg UART_IT_CM: Character match interrupt
mbed_official 610:813dcc80987e 749 * @arg UART_IT_CTS: CTS change interrupt
mbed_official 610:813dcc80987e 750 * @arg UART_IT_LBD: LIN Break detection interrupt
mbed_official 610:813dcc80987e 751 * @arg UART_IT_TXE: Transmit Data Register empty interrupt
mbed_official 610:813dcc80987e 752 * @arg UART_IT_TC: Transmission complete interrupt
mbed_official 610:813dcc80987e 753 * @arg UART_IT_RXNE: Receive Data register not empty interrupt
mbed_official 610:813dcc80987e 754 * @arg UART_IT_IDLE: Idle line detection interrupt
mbed_official 610:813dcc80987e 755 * @arg UART_IT_PE: Parity Error interrupt
mbed_official 610:813dcc80987e 756 * @arg UART_IT_ERR: Error interrupt (Frame error, noise error, overrun error)
mbed_official 610:813dcc80987e 757 * @retval None
mbed_official 610:813dcc80987e 758 */
mbed_official 610:813dcc80987e 759 #define __HAL_UART_ENABLE_IT(__HANDLE__, __INTERRUPT__) (((((uint8_t)(__INTERRUPT__)) >> 5U) == 1)? ((__HANDLE__)->Instance->CR1 |= (1U << ((__INTERRUPT__) & UART_IT_MASK))): \
mbed_official 610:813dcc80987e 760 ((((uint8_t)(__INTERRUPT__)) >> 5U) == 2)? ((__HANDLE__)->Instance->CR2 |= (1U << ((__INTERRUPT__) & UART_IT_MASK))): \
mbed_official 610:813dcc80987e 761 ((__HANDLE__)->Instance->CR3 |= (1U << ((__INTERRUPT__) & UART_IT_MASK))))
mbed_official 610:813dcc80987e 762
mbed_official 610:813dcc80987e 763
mbed_official 610:813dcc80987e 764 /** @brief Disable the specified UART interrupt.
mbed_official 610:813dcc80987e 765 * @param __HANDLE__: specifies the UART Handle.
mbed_official 610:813dcc80987e 766 * @param __INTERRUPT__: specifies the UART interrupt source to disable.
mbed_official 610:813dcc80987e 767 * This parameter can be one of the following values:
mbed_official 610:813dcc80987e 768 * @arg UART_IT_WUF: Wakeup from stop mode interrupt
mbed_official 610:813dcc80987e 769 * @arg UART_IT_CM: Character match interrupt
mbed_official 610:813dcc80987e 770 * @arg UART_IT_CTS: CTS change interrupt
mbed_official 610:813dcc80987e 771 * @arg UART_IT_LBD: LIN Break detection interrupt
mbed_official 610:813dcc80987e 772 * @arg UART_IT_TXE: Transmit Data Register empty interrupt
mbed_official 610:813dcc80987e 773 * @arg UART_IT_TC: Transmission complete interrupt
mbed_official 610:813dcc80987e 774 * @arg UART_IT_RXNE: Receive Data register not empty interrupt
mbed_official 610:813dcc80987e 775 * @arg UART_IT_IDLE: Idle line detection interrupt
mbed_official 610:813dcc80987e 776 * @arg UART_IT_PE: Parity Error interrupt
mbed_official 610:813dcc80987e 777 * @arg UART_IT_ERR: Error interrupt (Frame error, noise error, overrun error)
mbed_official 610:813dcc80987e 778 * @retval None
mbed_official 610:813dcc80987e 779 */
mbed_official 610:813dcc80987e 780 #define __HAL_UART_DISABLE_IT(__HANDLE__, __INTERRUPT__) (((((uint8_t)(__INTERRUPT__)) >> 5U) == 1)? ((__HANDLE__)->Instance->CR1 &= ~ (1U << ((__INTERRUPT__) & UART_IT_MASK))): \
mbed_official 610:813dcc80987e 781 ((((uint8_t)(__INTERRUPT__)) >> 5U) == 2)? ((__HANDLE__)->Instance->CR2 &= ~ (1U << ((__INTERRUPT__) & UART_IT_MASK))): \
mbed_official 610:813dcc80987e 782 ((__HANDLE__)->Instance->CR3 &= ~ (1U << ((__INTERRUPT__) & UART_IT_MASK))))
mbed_official 610:813dcc80987e 783
mbed_official 610:813dcc80987e 784 /** @brief Check whether the specified UART interrupt has occurred or not.
mbed_official 610:813dcc80987e 785 * @param __HANDLE__: specifies the UART Handle.
mbed_official 610:813dcc80987e 786 * @param __IT__: specifies the UART interrupt to check.
mbed_official 610:813dcc80987e 787 * This parameter can be one of the following values:
mbed_official 610:813dcc80987e 788 * @arg UART_IT_WUF: Wakeup from stop mode interrupt
mbed_official 610:813dcc80987e 789 * @arg UART_IT_CM: Character match interrupt
mbed_official 610:813dcc80987e 790 * @arg UART_IT_CTS: CTS change interrupt
mbed_official 610:813dcc80987e 791 * @arg UART_IT_LBD: LIN Break detection interrupt
mbed_official 610:813dcc80987e 792 * @arg UART_IT_TXE: Transmit Data Register empty interrupt
mbed_official 610:813dcc80987e 793 * @arg UART_IT_TC: Transmission complete interrupt
mbed_official 610:813dcc80987e 794 * @arg UART_IT_RXNE: Receive Data register not empty interrupt
mbed_official 610:813dcc80987e 795 * @arg UART_IT_IDLE: Idle line detection interrupt
mbed_official 610:813dcc80987e 796 * @arg UART_IT_ORE: OverRun Error interrupt
mbed_official 610:813dcc80987e 797 * @arg UART_IT_NE: Noise Error interrupt
mbed_official 610:813dcc80987e 798 * @arg UART_IT_FE: Framing Error interrupt
mbed_official 610:813dcc80987e 799 * @arg UART_IT_PE: Parity Error interrupt
mbed_official 610:813dcc80987e 800 * @retval The new state of __IT__ (TRUE or FALSE).
mbed_official 610:813dcc80987e 801 */
mbed_official 610:813dcc80987e 802 #define __HAL_UART_GET_IT(__HANDLE__, __IT__) ((__HANDLE__)->Instance->ISR & ((uint32_t)1 << ((__IT__)>> 0x08)))
mbed_official 610:813dcc80987e 803
mbed_official 610:813dcc80987e 804 /** @brief Check whether the specified UART interrupt source is enabled or not.
mbed_official 610:813dcc80987e 805 * @param __HANDLE__: specifies the UART Handle.
mbed_official 610:813dcc80987e 806 * @param __IT__: specifies the UART interrupt source to check.
mbed_official 610:813dcc80987e 807 * This parameter can be one of the following values:
mbed_official 610:813dcc80987e 808 * @arg UART_IT_WUF: Wakeup from stop mode interrupt
mbed_official 610:813dcc80987e 809 * @arg UART_IT_CM: Character match interrupt
mbed_official 610:813dcc80987e 810 * @arg UART_IT_CTS: CTS change interrupt
mbed_official 610:813dcc80987e 811 * @arg UART_IT_LBD: LIN Break detection interrupt
mbed_official 610:813dcc80987e 812 * @arg UART_IT_TXE: Transmit Data Register empty interrupt
mbed_official 610:813dcc80987e 813 * @arg UART_IT_TC: Transmission complete interrupt
mbed_official 610:813dcc80987e 814 * @arg UART_IT_RXNE: Receive Data register not empty interrupt
mbed_official 610:813dcc80987e 815 * @arg UART_IT_IDLE: Idle line detection interrupt
mbed_official 610:813dcc80987e 816 * @arg UART_IT_ORE: OverRun Error interrupt
mbed_official 610:813dcc80987e 817 * @arg UART_IT_NE: Noise Error interrupt
mbed_official 610:813dcc80987e 818 * @arg UART_IT_FE: Framing Error interrupt
mbed_official 610:813dcc80987e 819 * @arg UART_IT_PE: Parity Error interrupt
mbed_official 610:813dcc80987e 820 * @retval The new state of __IT__ (TRUE or FALSE).
mbed_official 610:813dcc80987e 821 */
mbed_official 610:813dcc80987e 822 #define __HAL_UART_GET_IT_SOURCE(__HANDLE__, __IT__) ((((((uint8_t)(__IT__)) >> 5U) == 1)? (__HANDLE__)->Instance->CR1:(((((uint8_t)(__IT__)) >> 5U) == 2)? \
mbed_official 610:813dcc80987e 823 (__HANDLE__)->Instance->CR2 : (__HANDLE__)->Instance->CR3)) & ((uint32_t)1 << (((uint16_t)(__IT__)) & UART_IT_MASK)))
mbed_official 610:813dcc80987e 824
mbed_official 610:813dcc80987e 825 /** @brief Clear the specified UART ISR flag, in setting the proper ICR register flag.
mbed_official 610:813dcc80987e 826 * @param __HANDLE__: specifies the UART Handle.
mbed_official 610:813dcc80987e 827 * @param __IT_CLEAR__: specifies the interrupt clear register flag that needs to be set
mbed_official 610:813dcc80987e 828 * to clear the corresponding interrupt
mbed_official 610:813dcc80987e 829 * This parameter can be one of the following values:
mbed_official 610:813dcc80987e 830 * @arg UART_CLEAR_PEF: Parity Error Clear Flag
mbed_official 610:813dcc80987e 831 * @arg UART_CLEAR_FEF: Framing Error Clear Flag
mbed_official 610:813dcc80987e 832 * @arg UART_CLEAR_NEF: Noise detected Clear Flag
mbed_official 610:813dcc80987e 833 * @arg UART_CLEAR_OREF: OverRun Error Clear Flag
mbed_official 610:813dcc80987e 834 * @arg UART_CLEAR_IDLEF: IDLE line detected Clear Flag
mbed_official 610:813dcc80987e 835 * @arg UART_CLEAR_TCF: Transmission Complete Clear Flag
mbed_official 610:813dcc80987e 836 * @arg UART_CLEAR_LBDF: LIN Break Detection Clear Flag
mbed_official 610:813dcc80987e 837 * @arg UART_CLEAR_CTSF: CTS Interrupt Clear Flag
mbed_official 610:813dcc80987e 838 * @arg UART_CLEAR_RTOF: Receiver Time Out Clear Flag
mbed_official 610:813dcc80987e 839 * @arg UART_CLEAR_EOBF: End Of Block Clear Flag
mbed_official 610:813dcc80987e 840 * @arg UART_CLEAR_CMF: Character Match Clear Flag
mbed_official 610:813dcc80987e 841 * @arg UART_CLEAR_WUF: Wake Up from stop mode Clear Flag
mbed_official 610:813dcc80987e 842 * @retval None
mbed_official 610:813dcc80987e 843 */
mbed_official 610:813dcc80987e 844 #define __HAL_UART_CLEAR_IT(__HANDLE__, __IT_CLEAR__) ((__HANDLE__)->Instance->ICR = (uint32_t)(__IT_CLEAR__))
mbed_official 610:813dcc80987e 845
mbed_official 610:813dcc80987e 846 /** @brief Set a specific UART request flag.
mbed_official 610:813dcc80987e 847 * @param __HANDLE__: specifies the UART Handle.
mbed_official 610:813dcc80987e 848 * @param __REQ__: specifies the request flag to set
mbed_official 610:813dcc80987e 849 * This parameter can be one of the following values:
mbed_official 610:813dcc80987e 850 * @arg UART_AUTOBAUD_REQUEST: Auto-Baud Rate Request
mbed_official 610:813dcc80987e 851 * @arg UART_SENDBREAK_REQUEST: Send Break Request
mbed_official 610:813dcc80987e 852 * @arg UART_MUTE_MODE_REQUEST: Mute Mode Request
mbed_official 610:813dcc80987e 853 * @arg UART_RXDATA_FLUSH_REQUEST: Receive Data flush Request
mbed_official 610:813dcc80987e 854 * @arg UART_TXDATA_FLUSH_REQUEST: Transmit data flush Request
mbed_official 610:813dcc80987e 855 * @retval None
mbed_official 610:813dcc80987e 856 */
mbed_official 610:813dcc80987e 857 #define __HAL_UART_SEND_REQ(__HANDLE__, __REQ__) ((__HANDLE__)->Instance->RQR |= (uint32_t)(__REQ__))
mbed_official 610:813dcc80987e 858
mbed_official 610:813dcc80987e 859 /** @brief Enable the UART one bit sample method.
mbed_official 610:813dcc80987e 860 * @param __HANDLE__: specifies the UART Handle.
mbed_official 610:813dcc80987e 861 * @retval None
mbed_official 610:813dcc80987e 862 */
mbed_official 610:813dcc80987e 863 #define __HAL_UART_ONE_BIT_SAMPLE_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR3|= USART_CR3_ONEBIT)
mbed_official 610:813dcc80987e 864
mbed_official 610:813dcc80987e 865 /** @brief Disable the UART one bit sample method.
mbed_official 610:813dcc80987e 866 * @param __HANDLE__: specifies the UART Handle.
mbed_official 610:813dcc80987e 867 * @retval None
mbed_official 610:813dcc80987e 868 */
mbed_official 610:813dcc80987e 869 #define __HAL_UART_ONE_BIT_SAMPLE_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR3 &= (uint32_t)~((uint32_t)USART_CR3_ONEBIT))
mbed_official 610:813dcc80987e 870
mbed_official 610:813dcc80987e 871 /** @brief Enable UART.
mbed_official 610:813dcc80987e 872 * @param __HANDLE__: specifies the UART Handle.
mbed_official 610:813dcc80987e 873 * @retval None
mbed_official 610:813dcc80987e 874 */
mbed_official 610:813dcc80987e 875 #define __HAL_UART_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1 |= USART_CR1_UE)
mbed_official 610:813dcc80987e 876
mbed_official 610:813dcc80987e 877 /** @brief Disable UART.
mbed_official 610:813dcc80987e 878 * @param __HANDLE__: specifies the UART Handle.
mbed_official 610:813dcc80987e 879 * @retval None
mbed_official 610:813dcc80987e 880 */
mbed_official 610:813dcc80987e 881 #define __HAL_UART_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1 &= ~USART_CR1_UE)
mbed_official 610:813dcc80987e 882
mbed_official 610:813dcc80987e 883 /** @brief Enable CTS flow control.
mbed_official 610:813dcc80987e 884 * @note This macro allows to enable CTS hardware flow control for a given UART instance,
mbed_official 610:813dcc80987e 885 * without need to call HAL_UART_Init() function.
mbed_official 610:813dcc80987e 886 * As involving direct access to UART registers, usage of this macro should be fully endorsed by user.
mbed_official 610:813dcc80987e 887 * @note As macro is expected to be used for modifying CTS Hw flow control feature activation, without need
mbed_official 610:813dcc80987e 888 * for USART instance Deinit/Init, following conditions for macro call should be fulfilled :
mbed_official 610:813dcc80987e 889 * - UART instance should have already been initialised (through call of HAL_UART_Init() )
mbed_official 610:813dcc80987e 890 * - macro could only be called when corresponding UART instance is disabled (i.e. __HAL_UART_DISABLE(__HANDLE__))
mbed_official 610:813dcc80987e 891 * and should be followed by an Enable macro (i.e. __HAL_UART_ENABLE(__HANDLE__)).
mbed_official 610:813dcc80987e 892 * @param __HANDLE__: specifies the UART Handle.
mbed_official 610:813dcc80987e 893 * @retval None
mbed_official 610:813dcc80987e 894 */
mbed_official 610:813dcc80987e 895 #define __HAL_UART_HWCONTROL_CTS_ENABLE(__HANDLE__) \
mbed_official 610:813dcc80987e 896 do{ \
mbed_official 610:813dcc80987e 897 SET_BIT((__HANDLE__)->Instance->CR3, USART_CR3_CTSE); \
mbed_official 610:813dcc80987e 898 (__HANDLE__)->Init.HwFlowCtl |= USART_CR3_CTSE; \
mbed_official 610:813dcc80987e 899 } while(0)
mbed_official 610:813dcc80987e 900
mbed_official 610:813dcc80987e 901 /** @brief Disable CTS flow control.
mbed_official 610:813dcc80987e 902 * @note This macro allows to disable CTS hardware flow control for a given UART instance,
mbed_official 610:813dcc80987e 903 * without need to call HAL_UART_Init() function.
mbed_official 610:813dcc80987e 904 * As involving direct access to UART registers, usage of this macro should be fully endorsed by user.
mbed_official 610:813dcc80987e 905 * @note As macro is expected to be used for modifying CTS Hw flow control feature activation, without need
mbed_official 610:813dcc80987e 906 * for USART instance Deinit/Init, following conditions for macro call should be fulfilled :
mbed_official 610:813dcc80987e 907 * - UART instance should have already been initialised (through call of HAL_UART_Init() )
mbed_official 610:813dcc80987e 908 * - macro could only be called when corresponding UART instance is disabled (i.e. __HAL_UART_DISABLE(__HANDLE__))
mbed_official 610:813dcc80987e 909 * and should be followed by an Enable macro (i.e. __HAL_UART_ENABLE(__HANDLE__)).
mbed_official 610:813dcc80987e 910 * @param __HANDLE__: specifies the UART Handle.
mbed_official 610:813dcc80987e 911 * @retval None
mbed_official 610:813dcc80987e 912 */
mbed_official 610:813dcc80987e 913 #define __HAL_UART_HWCONTROL_CTS_DISABLE(__HANDLE__) \
mbed_official 610:813dcc80987e 914 do{ \
mbed_official 610:813dcc80987e 915 CLEAR_BIT((__HANDLE__)->Instance->CR3, USART_CR3_CTSE); \
mbed_official 610:813dcc80987e 916 (__HANDLE__)->Init.HwFlowCtl &= ~(USART_CR3_CTSE); \
mbed_official 610:813dcc80987e 917 } while(0)
mbed_official 610:813dcc80987e 918
mbed_official 610:813dcc80987e 919 /** @brief Enable RTS flow control.
mbed_official 610:813dcc80987e 920 * @note This macro allows to enable RTS hardware flow control for a given UART instance,
mbed_official 610:813dcc80987e 921 * without need to call HAL_UART_Init() function.
mbed_official 610:813dcc80987e 922 * As involving direct access to UART registers, usage of this macro should be fully endorsed by user.
mbed_official 610:813dcc80987e 923 * @note As macro is expected to be used for modifying RTS Hw flow control feature activation, without need
mbed_official 610:813dcc80987e 924 * for USART instance Deinit/Init, following conditions for macro call should be fulfilled :
mbed_official 610:813dcc80987e 925 * - UART instance should have already been initialised (through call of HAL_UART_Init() )
mbed_official 610:813dcc80987e 926 * - macro could only be called when corresponding UART instance is disabled (i.e. __HAL_UART_DISABLE(__HANDLE__))
mbed_official 610:813dcc80987e 927 * and should be followed by an Enable macro (i.e. __HAL_UART_ENABLE(__HANDLE__)).
mbed_official 610:813dcc80987e 928 * @param __HANDLE__: specifies the UART Handle.
mbed_official 610:813dcc80987e 929 * @retval None
mbed_official 610:813dcc80987e 930 */
mbed_official 610:813dcc80987e 931 #define __HAL_UART_HWCONTROL_RTS_ENABLE(__HANDLE__) \
mbed_official 610:813dcc80987e 932 do{ \
mbed_official 610:813dcc80987e 933 SET_BIT((__HANDLE__)->Instance->CR3, USART_CR3_RTSE); \
mbed_official 610:813dcc80987e 934 (__HANDLE__)->Init.HwFlowCtl |= USART_CR3_RTSE; \
mbed_official 610:813dcc80987e 935 } while(0)
mbed_official 610:813dcc80987e 936
mbed_official 610:813dcc80987e 937 /** @brief Disable RTS flow control.
mbed_official 610:813dcc80987e 938 * @note This macro allows to disable RTS hardware flow control for a given UART instance,
mbed_official 610:813dcc80987e 939 * without need to call HAL_UART_Init() function.
mbed_official 610:813dcc80987e 940 * As involving direct access to UART registers, usage of this macro should be fully endorsed by user.
mbed_official 610:813dcc80987e 941 * @note As macro is expected to be used for modifying RTS Hw flow control feature activation, without need
mbed_official 610:813dcc80987e 942 * for USART instance Deinit/Init, following conditions for macro call should be fulfilled :
mbed_official 610:813dcc80987e 943 * - UART instance should have already been initialised (through call of HAL_UART_Init() )
mbed_official 610:813dcc80987e 944 * - macro could only be called when corresponding UART instance is disabled (i.e. __HAL_UART_DISABLE(__HANDLE__))
mbed_official 610:813dcc80987e 945 * and should be followed by an Enable macro (i.e. __HAL_UART_ENABLE(__HANDLE__)).
mbed_official 610:813dcc80987e 946 * @param __HANDLE__: specifies the UART Handle.
mbed_official 610:813dcc80987e 947 * @retval None
mbed_official 610:813dcc80987e 948 */
mbed_official 610:813dcc80987e 949 #define __HAL_UART_HWCONTROL_RTS_DISABLE(__HANDLE__) \
mbed_official 610:813dcc80987e 950 do{ \
mbed_official 610:813dcc80987e 951 CLEAR_BIT((__HANDLE__)->Instance->CR3, USART_CR3_RTSE);\
mbed_official 610:813dcc80987e 952 (__HANDLE__)->Init.HwFlowCtl &= ~(USART_CR3_RTSE); \
mbed_official 610:813dcc80987e 953 } while(0)
mbed_official 610:813dcc80987e 954
mbed_official 610:813dcc80987e 955 /**
mbed_official 610:813dcc80987e 956 * @}
mbed_official 610:813dcc80987e 957 */
mbed_official 610:813dcc80987e 958
mbed_official 610:813dcc80987e 959 /* Private macros --------------------------------------------------------*/
mbed_official 610:813dcc80987e 960 /** @defgroup UART_Private_Macros UART Private Macros
mbed_official 610:813dcc80987e 961 * @{
mbed_official 610:813dcc80987e 962 */
mbed_official 610:813dcc80987e 963 /** @brief BRR division operation to set BRR register with LPUART.
mbed_official 610:813dcc80987e 964 * @param __PCLK__: LPUART clock.
mbed_official 610:813dcc80987e 965 * @param __BAUD__: Baud rate set by the user.
mbed_official 610:813dcc80987e 966 * @retval Division result
mbed_official 610:813dcc80987e 967 */
mbed_official 610:813dcc80987e 968 #define UART_DIV_LPUART(__PCLK__, __BAUD__) (((uint64_t)(__PCLK__)*256)/((__BAUD__)))
mbed_official 610:813dcc80987e 969
mbed_official 610:813dcc80987e 970 /** @brief BRR division operation to set BRR register in 8-bit oversampling mode.
mbed_official 610:813dcc80987e 971 * @param __PCLK__: UART clock.
mbed_official 610:813dcc80987e 972 * @param __BAUD__: Baud rate set by the user.
mbed_official 610:813dcc80987e 973 * @retval Division result
mbed_official 610:813dcc80987e 974 */
mbed_official 610:813dcc80987e 975 #define UART_DIV_SAMPLING8(__PCLK__, __BAUD__) (((__PCLK__)*2)/((__BAUD__)))
mbed_official 610:813dcc80987e 976
mbed_official 610:813dcc80987e 977 /** @brief BRR division operation to set BRR register in 16-bit oversampling mode.
mbed_official 610:813dcc80987e 978 * @param __PCLK__: UART clock.
mbed_official 610:813dcc80987e 979 * @param __BAUD__: Baud rate set by the user.
mbed_official 610:813dcc80987e 980 * @retval Division result
mbed_official 610:813dcc80987e 981 */
mbed_official 610:813dcc80987e 982 #define UART_DIV_SAMPLING16(__PCLK__, __BAUD__) (((__PCLK__))/((__BAUD__)))
mbed_official 610:813dcc80987e 983
mbed_official 610:813dcc80987e 984 /** @brief Check whether or not UART instance is Low Power UART.
mbed_official 610:813dcc80987e 985 * @param __HANDLE__: specifies the UART Handle.
mbed_official 610:813dcc80987e 986 * @retval SET (instance is LPUART) or RESET (instance isn't LPUART)
mbed_official 610:813dcc80987e 987 */
mbed_official 610:813dcc80987e 988 #define UART_INSTANCE_LOWPOWER(__HANDLE__) (((__HANDLE__)->Instance == LPUART1) ? SET : RESET )
mbed_official 610:813dcc80987e 989
mbed_official 610:813dcc80987e 990 /** @brief Check UART Baud rate.
mbed_official 610:813dcc80987e 991 * @param __BAUDRATE__: Baudrate specified by the user.
mbed_official 610:813dcc80987e 992 * The maximum Baud Rate is derived from the maximum clock on L4 (i.e. 80 MHz)
mbed_official 610:813dcc80987e 993 * divided by the smallest oversampling used on the USART (i.e. 8)
mbed_official 610:813dcc80987e 994 * @retval SET (__BAUDRATE__ is valid) or RESET (__BAUDRATE__ is invalid)
mbed_official 610:813dcc80987e 995 */
mbed_official 610:813dcc80987e 996 #define IS_UART_BAUDRATE(__BAUDRATE__) ((__BAUDRATE__) < 10000001)
mbed_official 610:813dcc80987e 997
mbed_official 610:813dcc80987e 998 /** @brief Check UART assertion time.
mbed_official 610:813dcc80987e 999 * @param __TIME__: 5-bit value assertion time.
mbed_official 610:813dcc80987e 1000 * @retval Test result (TRUE or FALSE).
mbed_official 610:813dcc80987e 1001 */
mbed_official 610:813dcc80987e 1002 #define IS_UART_ASSERTIONTIME(__TIME__) ((__TIME__) <= 0x1F)
mbed_official 610:813dcc80987e 1003
mbed_official 610:813dcc80987e 1004 /** @brief Check UART deassertion time.
mbed_official 610:813dcc80987e 1005 * @param __TIME__: 5-bit value deassertion time.
mbed_official 610:813dcc80987e 1006 * @retval Test result (TRUE or FALSE).
mbed_official 610:813dcc80987e 1007 */
mbed_official 610:813dcc80987e 1008 #define IS_UART_DEASSERTIONTIME(__TIME__) ((__TIME__) <= 0x1F)
mbed_official 610:813dcc80987e 1009
mbed_official 610:813dcc80987e 1010 /**
mbed_official 610:813dcc80987e 1011 * @brief Ensure that UART frame number of stop bits is valid.
mbed_official 610:813dcc80987e 1012 * @param __STOPBITS__: UART frame number of stop bits.
mbed_official 610:813dcc80987e 1013 * @retval SET (__STOPBITS__ is valid) or RESET (__STOPBITS__ is invalid)
mbed_official 610:813dcc80987e 1014 */
mbed_official 610:813dcc80987e 1015 #define IS_UART_STOPBITS(__STOPBITS__) (((__STOPBITS__) == UART_STOPBITS_1) || \
mbed_official 610:813dcc80987e 1016 ((__STOPBITS__) == UART_STOPBITS_2) || \
mbed_official 610:813dcc80987e 1017 ((__STOPBITS__) == UART_STOPBITS_1_5))
mbed_official 610:813dcc80987e 1018
mbed_official 610:813dcc80987e 1019 /**
mbed_official 610:813dcc80987e 1020 * @brief Ensure that UART frame parity is valid.
mbed_official 610:813dcc80987e 1021 * @param __PARITY__: UART frame parity.
mbed_official 610:813dcc80987e 1022 * @retval SET (__PARITY__ is valid) or RESET (__PARITY__ is invalid)
mbed_official 610:813dcc80987e 1023 */
mbed_official 610:813dcc80987e 1024 #define IS_UART_PARITY(__PARITY__) (((__PARITY__) == UART_PARITY_NONE) || \
mbed_official 610:813dcc80987e 1025 ((__PARITY__) == UART_PARITY_EVEN) || \
mbed_official 610:813dcc80987e 1026 ((__PARITY__) == UART_PARITY_ODD))
mbed_official 610:813dcc80987e 1027
mbed_official 610:813dcc80987e 1028 /**
mbed_official 610:813dcc80987e 1029 * @brief Ensure that UART hardware flow control is valid.
mbed_official 610:813dcc80987e 1030 * @param __CONTROL__: UART hardware flow control.
mbed_official 610:813dcc80987e 1031 * @retval SET (__CONTROL__ is valid) or RESET (__CONTROL__ is invalid)
mbed_official 610:813dcc80987e 1032 */
mbed_official 610:813dcc80987e 1033 #define IS_UART_HARDWARE_FLOW_CONTROL(__CONTROL__)\
mbed_official 610:813dcc80987e 1034 (((__CONTROL__) == UART_HWCONTROL_NONE) || \
mbed_official 610:813dcc80987e 1035 ((__CONTROL__) == UART_HWCONTROL_RTS) || \
mbed_official 610:813dcc80987e 1036 ((__CONTROL__) == UART_HWCONTROL_CTS) || \
mbed_official 610:813dcc80987e 1037 ((__CONTROL__) == UART_HWCONTROL_RTS_CTS))
mbed_official 610:813dcc80987e 1038
mbed_official 610:813dcc80987e 1039 /**
mbed_official 610:813dcc80987e 1040 * @brief Ensure that UART communication mode is valid.
mbed_official 610:813dcc80987e 1041 * @param __MODE__: UART communication mode.
mbed_official 610:813dcc80987e 1042 * @retval SET (__MODE__ is valid) or RESET (__MODE__ is invalid)
mbed_official 610:813dcc80987e 1043 */
mbed_official 610:813dcc80987e 1044 #define IS_UART_MODE(__MODE__) ((((__MODE__) & (~((uint32_t)(UART_MODE_TX_RX)))) == (uint32_t)0x00) && ((__MODE__) != (uint32_t)0x00))
mbed_official 610:813dcc80987e 1045
mbed_official 610:813dcc80987e 1046 /**
mbed_official 610:813dcc80987e 1047 * @brief Ensure that UART state is valid.
mbed_official 610:813dcc80987e 1048 * @param __STATE__: UART state.
mbed_official 610:813dcc80987e 1049 * @retval SET (__STATE__ is valid) or RESET (__STATE__ is invalid)
mbed_official 610:813dcc80987e 1050 */
mbed_official 610:813dcc80987e 1051 #define IS_UART_STATE(__STATE__) (((__STATE__) == UART_STATE_DISABLE) || \
mbed_official 610:813dcc80987e 1052 ((__STATE__) == UART_STATE_ENABLE))
mbed_official 610:813dcc80987e 1053
mbed_official 610:813dcc80987e 1054 /**
mbed_official 610:813dcc80987e 1055 * @brief Ensure that UART oversampling is valid.
mbed_official 610:813dcc80987e 1056 * @param __SAMPLING__: UART oversampling.
mbed_official 610:813dcc80987e 1057 * @retval SET (__SAMPLING__ is valid) or RESET (__SAMPLING__ is invalid)
mbed_official 610:813dcc80987e 1058 */
mbed_official 610:813dcc80987e 1059 #define IS_UART_OVERSAMPLING(__SAMPLING__) (((__SAMPLING__) == UART_OVERSAMPLING_16) || \
mbed_official 610:813dcc80987e 1060 ((__SAMPLING__) == UART_OVERSAMPLING_8))
mbed_official 610:813dcc80987e 1061
mbed_official 610:813dcc80987e 1062 /**
mbed_official 610:813dcc80987e 1063 * @brief Ensure that UART frame sampling is valid.
mbed_official 610:813dcc80987e 1064 * @param __ONEBIT__: UART frame sampling.
mbed_official 610:813dcc80987e 1065 * @retval SET (__ONEBIT__ is valid) or RESET (__ONEBIT__ is invalid)
mbed_official 610:813dcc80987e 1066 */
mbed_official 610:813dcc80987e 1067 #define IS_UART_ONE_BIT_SAMPLE(__ONEBIT__) (((__ONEBIT__) == UART_ONE_BIT_SAMPLE_DISABLE) || \
mbed_official 610:813dcc80987e 1068 ((__ONEBIT__) == UART_ONE_BIT_SAMPLE_ENABLE))
mbed_official 610:813dcc80987e 1069
mbed_official 610:813dcc80987e 1070 /**
mbed_official 610:813dcc80987e 1071 * @brief Ensure that UART auto Baud rate detection mode is valid.
mbed_official 610:813dcc80987e 1072 * @param __MODE__: UART auto Baud rate detection mode.
mbed_official 610:813dcc80987e 1073 * @retval SET (__MODE__ is valid) or RESET (__MODE__ is invalid)
mbed_official 610:813dcc80987e 1074 */
mbed_official 610:813dcc80987e 1075 #define IS_UART_ADVFEATURE_AUTOBAUDRATEMODE(__MODE__) (((__MODE__) == UART_ADVFEATURE_AUTOBAUDRATE_ONSTARTBIT) || \
mbed_official 610:813dcc80987e 1076 ((__MODE__) == UART_ADVFEATURE_AUTOBAUDRATE_ONFALLINGEDGE) || \
mbed_official 610:813dcc80987e 1077 ((__MODE__) == UART_ADVFEATURE_AUTOBAUDRATE_ON0X7FFRAME) || \
mbed_official 610:813dcc80987e 1078 ((__MODE__) == UART_ADVFEATURE_AUTOBAUDRATE_ON0X55FRAME))
mbed_official 610:813dcc80987e 1079
mbed_official 610:813dcc80987e 1080 /**
mbed_official 610:813dcc80987e 1081 * @brief Ensure that UART receiver timeout setting is valid.
mbed_official 610:813dcc80987e 1082 * @param __TIMEOUT__: UART receiver timeout setting.
mbed_official 610:813dcc80987e 1083 * @retval SET (__TIMEOUT__ is valid) or RESET (__TIMEOUT__ is invalid)
mbed_official 610:813dcc80987e 1084 */
mbed_official 610:813dcc80987e 1085 #define IS_UART_RECEIVER_TIMEOUT(__TIMEOUT__) (((__TIMEOUT__) == UART_RECEIVER_TIMEOUT_DISABLE) || \
mbed_official 610:813dcc80987e 1086 ((__TIMEOUT__) == UART_RECEIVER_TIMEOUT_ENABLE))
mbed_official 610:813dcc80987e 1087
mbed_official 610:813dcc80987e 1088 /**
mbed_official 610:813dcc80987e 1089 * @brief Ensure that UART LIN state is valid.
mbed_official 610:813dcc80987e 1090 * @param __LIN__: UART LIN state.
mbed_official 610:813dcc80987e 1091 * @retval SET (__LIN__ is valid) or RESET (__LIN__ is invalid)
mbed_official 610:813dcc80987e 1092 */
mbed_official 610:813dcc80987e 1093 #define IS_UART_LIN(__LIN__) (((__LIN__) == UART_LIN_DISABLE) || \
mbed_official 610:813dcc80987e 1094 ((__LIN__) == UART_LIN_ENABLE))
mbed_official 610:813dcc80987e 1095
mbed_official 610:813dcc80987e 1096 /**
mbed_official 610:813dcc80987e 1097 * @brief Ensure that UART LIN break detection length is valid.
mbed_official 610:813dcc80987e 1098 * @param __LENGTH__: UART LIN break detection length.
mbed_official 610:813dcc80987e 1099 * @retval SET (__LENGTH__ is valid) or RESET (__LENGTH__ is invalid)
mbed_official 610:813dcc80987e 1100 */
mbed_official 610:813dcc80987e 1101 #define IS_UART_LIN_BREAK_DETECT_LENGTH(__LENGTH__) (((__LENGTH__) == UART_LINBREAKDETECTLENGTH_10B) || \
mbed_official 610:813dcc80987e 1102 ((__LENGTH__) == UART_LINBREAKDETECTLENGTH_11B))
mbed_official 610:813dcc80987e 1103
mbed_official 610:813dcc80987e 1104 /**
mbed_official 610:813dcc80987e 1105 * @brief Ensure that UART DMA TX state is valid.
mbed_official 610:813dcc80987e 1106 * @param __DMATX__: UART DMA TX state.
mbed_official 610:813dcc80987e 1107 * @retval SET (__DMATX__ is valid) or RESET (__DMATX__ is invalid)
mbed_official 610:813dcc80987e 1108 */
mbed_official 610:813dcc80987e 1109 #define IS_UART_DMA_TX(__DMATX__) (((__DMATX__) == UART_DMA_TX_DISABLE) || \
mbed_official 610:813dcc80987e 1110 ((__DMATX__) == UART_DMA_TX_ENABLE))
mbed_official 610:813dcc80987e 1111
mbed_official 610:813dcc80987e 1112 /**
mbed_official 610:813dcc80987e 1113 * @brief Ensure that UART DMA RX state is valid.
mbed_official 610:813dcc80987e 1114 * @param __DMARX__: UART DMA RX state.
mbed_official 610:813dcc80987e 1115 * @retval SET (__DMARX__ is valid) or RESET (__DMARX__ is invalid)
mbed_official 610:813dcc80987e 1116 */
mbed_official 610:813dcc80987e 1117 #define IS_UART_DMA_RX(__DMARX__) (((__DMARX__) == UART_DMA_RX_DISABLE) || \
mbed_official 610:813dcc80987e 1118 ((__DMARX__) == UART_DMA_RX_ENABLE))
mbed_official 610:813dcc80987e 1119
mbed_official 610:813dcc80987e 1120 /**
mbed_official 610:813dcc80987e 1121 * @brief Ensure that UART half-duplex state is valid.
mbed_official 610:813dcc80987e 1122 * @param __HDSEL__: UART half-duplex state.
mbed_official 610:813dcc80987e 1123 * @retval SET (__HDSEL__ is valid) or RESET (__HDSEL__ is invalid)
mbed_official 610:813dcc80987e 1124 */
mbed_official 610:813dcc80987e 1125 #define IS_UART_HALF_DUPLEX(__HDSEL__) (((__HDSEL__) == UART_HALF_DUPLEX_DISABLE) || \
mbed_official 610:813dcc80987e 1126 ((__HDSEL__) == UART_HALF_DUPLEX_ENABLE))
mbed_official 610:813dcc80987e 1127
mbed_official 610:813dcc80987e 1128 /**
mbed_official 610:813dcc80987e 1129 * @brief Ensure that UART wake-up method is valid.
mbed_official 610:813dcc80987e 1130 * @param __WAKEUP__: UART wake-up method .
mbed_official 610:813dcc80987e 1131 * @retval SET (__WAKEUP__ is valid) or RESET (__WAKEUP__ is invalid)
mbed_official 610:813dcc80987e 1132 */
mbed_official 610:813dcc80987e 1133 #define IS_UART_WAKEUPMETHOD(__WAKEUP__) (((__WAKEUP__) == UART_WAKEUPMETHOD_IDLELINE) || \
mbed_official 610:813dcc80987e 1134 ((__WAKEUP__) == UART_WAKEUPMETHOD_ADDRESSMARK))
mbed_official 610:813dcc80987e 1135
mbed_official 610:813dcc80987e 1136 /**
mbed_official 610:813dcc80987e 1137 * @brief Ensure that UART request parameter is valid.
mbed_official 610:813dcc80987e 1138 * @param __PARAM__: UART request parameter.
mbed_official 610:813dcc80987e 1139 * @retval SET (__PARAM__ is valid) or RESET (__PARAM__ is invalid)
mbed_official 610:813dcc80987e 1140 */
mbed_official 610:813dcc80987e 1141 #define IS_UART_REQUEST_PARAMETER(__PARAM__) (((__PARAM__) == UART_AUTOBAUD_REQUEST) || \
mbed_official 610:813dcc80987e 1142 ((__PARAM__) == UART_SENDBREAK_REQUEST) || \
mbed_official 610:813dcc80987e 1143 ((__PARAM__) == UART_MUTE_MODE_REQUEST) || \
mbed_official 610:813dcc80987e 1144 ((__PARAM__) == UART_RXDATA_FLUSH_REQUEST) || \
mbed_official 610:813dcc80987e 1145 ((__PARAM__) == UART_TXDATA_FLUSH_REQUEST))
mbed_official 610:813dcc80987e 1146
mbed_official 610:813dcc80987e 1147 /**
mbed_official 610:813dcc80987e 1148 * @brief Ensure that UART advanced features initialization is valid.
mbed_official 610:813dcc80987e 1149 * @param __INIT__: UART advanced features initialization.
mbed_official 610:813dcc80987e 1150 * @retval SET (__INIT__ is valid) or RESET (__INIT__ is invalid)
mbed_official 610:813dcc80987e 1151 */
mbed_official 610:813dcc80987e 1152 #define IS_UART_ADVFEATURE_INIT(__INIT__) ((__INIT__) <= (UART_ADVFEATURE_NO_INIT | \
mbed_official 610:813dcc80987e 1153 UART_ADVFEATURE_TXINVERT_INIT | \
mbed_official 610:813dcc80987e 1154 UART_ADVFEATURE_RXINVERT_INIT | \
mbed_official 610:813dcc80987e 1155 UART_ADVFEATURE_DATAINVERT_INIT | \
mbed_official 610:813dcc80987e 1156 UART_ADVFEATURE_SWAP_INIT | \
mbed_official 610:813dcc80987e 1157 UART_ADVFEATURE_RXOVERRUNDISABLE_INIT | \
mbed_official 610:813dcc80987e 1158 UART_ADVFEATURE_DMADISABLEONERROR_INIT | \
mbed_official 610:813dcc80987e 1159 UART_ADVFEATURE_AUTOBAUDRATE_INIT | \
mbed_official 610:813dcc80987e 1160 UART_ADVFEATURE_MSBFIRST_INIT))
mbed_official 610:813dcc80987e 1161
mbed_official 610:813dcc80987e 1162 /**
mbed_official 610:813dcc80987e 1163 * @brief Ensure that UART frame TX inversion setting is valid.
mbed_official 610:813dcc80987e 1164 * @param __TXINV__: UART frame TX inversion setting.
mbed_official 610:813dcc80987e 1165 * @retval SET (__TXINV__ is valid) or RESET (__TXINV__ is invalid)
mbed_official 610:813dcc80987e 1166 */
mbed_official 610:813dcc80987e 1167 #define IS_UART_ADVFEATURE_TXINV(__TXINV__) (((__TXINV__) == UART_ADVFEATURE_TXINV_DISABLE) || \
mbed_official 610:813dcc80987e 1168 ((__TXINV__) == UART_ADVFEATURE_TXINV_ENABLE))
mbed_official 610:813dcc80987e 1169
mbed_official 610:813dcc80987e 1170 /**
mbed_official 610:813dcc80987e 1171 * @brief Ensure that UART frame RX inversion setting is valid.
mbed_official 610:813dcc80987e 1172 * @param __RXINV__: UART frame RX inversion setting.
mbed_official 610:813dcc80987e 1173 * @retval SET (__RXINV__ is valid) or RESET (__RXINV__ is invalid)
mbed_official 610:813dcc80987e 1174 */
mbed_official 610:813dcc80987e 1175 #define IS_UART_ADVFEATURE_RXINV(__RXINV__) (((__RXINV__) == UART_ADVFEATURE_RXINV_DISABLE) || \
mbed_official 610:813dcc80987e 1176 ((__RXINV__) == UART_ADVFEATURE_RXINV_ENABLE))
mbed_official 610:813dcc80987e 1177
mbed_official 610:813dcc80987e 1178 /**
mbed_official 610:813dcc80987e 1179 * @brief Ensure that UART frame data inversion setting is valid.
mbed_official 610:813dcc80987e 1180 * @param __DATAINV__: UART frame data inversion setting.
mbed_official 610:813dcc80987e 1181 * @retval SET (__DATAINV__ is valid) or RESET (__DATAINV__ is invalid)
mbed_official 610:813dcc80987e 1182 */
mbed_official 610:813dcc80987e 1183 #define IS_UART_ADVFEATURE_DATAINV(__DATAINV__) (((__DATAINV__) == UART_ADVFEATURE_DATAINV_DISABLE) || \
mbed_official 610:813dcc80987e 1184 ((__DATAINV__) == UART_ADVFEATURE_DATAINV_ENABLE))
mbed_official 610:813dcc80987e 1185
mbed_official 610:813dcc80987e 1186 /**
mbed_official 610:813dcc80987e 1187 * @brief Ensure that UART frame RX/TX pins swap setting is valid.
mbed_official 610:813dcc80987e 1188 * @param __SWAP__: UART frame RX/TX pins swap setting.
mbed_official 610:813dcc80987e 1189 * @retval SET (__SWAP__ is valid) or RESET (__SWAP__ is invalid)
mbed_official 610:813dcc80987e 1190 */
mbed_official 610:813dcc80987e 1191 #define IS_UART_ADVFEATURE_SWAP(__SWAP__) (((__SWAP__) == UART_ADVFEATURE_SWAP_DISABLE) || \
mbed_official 610:813dcc80987e 1192 ((__SWAP__) == UART_ADVFEATURE_SWAP_ENABLE))
mbed_official 610:813dcc80987e 1193
mbed_official 610:813dcc80987e 1194 /**
mbed_official 610:813dcc80987e 1195 * @brief Ensure that UART frame overrun setting is valid.
mbed_official 610:813dcc80987e 1196 * @param __OVERRUN__: UART frame overrun setting.
mbed_official 610:813dcc80987e 1197 * @retval SET (__OVERRUN__ is valid) or RESET (__OVERRUN__ is invalid)
mbed_official 610:813dcc80987e 1198 */
mbed_official 610:813dcc80987e 1199 #define IS_UART_OVERRUN(__OVERRUN__) (((__OVERRUN__) == UART_ADVFEATURE_OVERRUN_ENABLE) || \
mbed_official 610:813dcc80987e 1200 ((__OVERRUN__) == UART_ADVFEATURE_OVERRUN_DISABLE))
mbed_official 610:813dcc80987e 1201
mbed_official 610:813dcc80987e 1202 /**
mbed_official 610:813dcc80987e 1203 * @brief Ensure that UART auto Baud rate state is valid.
mbed_official 610:813dcc80987e 1204 * @param __AUTOBAUDRATE__: UART auto Baud rate state.
mbed_official 610:813dcc80987e 1205 * @retval SET (__AUTOBAUDRATE__ is valid) or RESET (__AUTOBAUDRATE__ is invalid)
mbed_official 610:813dcc80987e 1206 */
mbed_official 610:813dcc80987e 1207 #define IS_UART_ADVFEATURE_AUTOBAUDRATE(__AUTOBAUDRATE__) (((__AUTOBAUDRATE__) == UART_ADVFEATURE_AUTOBAUDRATE_DISABLE) || \
mbed_official 610:813dcc80987e 1208 ((__AUTOBAUDRATE__) == UART_ADVFEATURE_AUTOBAUDRATE_ENABLE))
mbed_official 610:813dcc80987e 1209
mbed_official 610:813dcc80987e 1210 /**
mbed_official 610:813dcc80987e 1211 * @brief Ensure that UART DMA enabling or disabling on error setting is valid.
mbed_official 610:813dcc80987e 1212 * @param __DMA__: UART DMA enabling or disabling on error setting.
mbed_official 610:813dcc80987e 1213 * @retval SET (__DMA__ is valid) or RESET (__DMA__ is invalid)
mbed_official 610:813dcc80987e 1214 */
mbed_official 610:813dcc80987e 1215 #define IS_UART_ADVFEATURE_DMAONRXERROR(__DMA__) (((__DMA__) == UART_ADVFEATURE_DMA_ENABLEONRXERROR) || \
mbed_official 610:813dcc80987e 1216 ((__DMA__) == UART_ADVFEATURE_DMA_DISABLEONRXERROR))
mbed_official 610:813dcc80987e 1217
mbed_official 610:813dcc80987e 1218 /**
mbed_official 610:813dcc80987e 1219 * @brief Ensure that UART frame MSB first setting is valid.
mbed_official 610:813dcc80987e 1220 * @param __MSBFIRST__: UART frame MSB first setting.
mbed_official 610:813dcc80987e 1221 * @retval SET (__MSBFIRST__ is valid) or RESET (__MSBFIRST__ is invalid)
mbed_official 610:813dcc80987e 1222 */
mbed_official 610:813dcc80987e 1223 #define IS_UART_ADVFEATURE_MSBFIRST(__MSBFIRST__) (((__MSBFIRST__) == UART_ADVFEATURE_MSBFIRST_DISABLE) || \
mbed_official 610:813dcc80987e 1224 ((__MSBFIRST__) == UART_ADVFEATURE_MSBFIRST_ENABLE))
mbed_official 610:813dcc80987e 1225
mbed_official 610:813dcc80987e 1226 /**
mbed_official 610:813dcc80987e 1227 * @brief Ensure that UART stop mode state is valid.
mbed_official 610:813dcc80987e 1228 * @param __STOPMODE__: UART stop mode state.
mbed_official 610:813dcc80987e 1229 * @retval SET (__STOPMODE__ is valid) or RESET (__STOPMODE__ is invalid)
mbed_official 610:813dcc80987e 1230 */
mbed_official 610:813dcc80987e 1231 #define IS_UART_ADVFEATURE_STOPMODE(__STOPMODE__) (((__STOPMODE__) == UART_ADVFEATURE_STOPMODE_DISABLE) || \
mbed_official 610:813dcc80987e 1232 ((__STOPMODE__) == UART_ADVFEATURE_STOPMODE_ENABLE))
mbed_official 610:813dcc80987e 1233
mbed_official 610:813dcc80987e 1234 /**
mbed_official 610:813dcc80987e 1235 * @brief Ensure that UART mute mode state is valid.
mbed_official 610:813dcc80987e 1236 * @param __MUTE__: UART mute mode state.
mbed_official 610:813dcc80987e 1237 * @retval SET (__MUTE__ is valid) or RESET (__MUTE__ is invalid)
mbed_official 610:813dcc80987e 1238 */
mbed_official 610:813dcc80987e 1239 #define IS_UART_MUTE_MODE(__MUTE__) (((__MUTE__) == UART_ADVFEATURE_MUTEMODE_DISABLE) || \
mbed_official 610:813dcc80987e 1240 ((__MUTE__) == UART_ADVFEATURE_MUTEMODE_ENABLE))
mbed_official 610:813dcc80987e 1241
mbed_official 610:813dcc80987e 1242 /**
mbed_official 610:813dcc80987e 1243 * @brief Ensure that UART wake-up selection is valid.
mbed_official 610:813dcc80987e 1244 * @param __WAKE__: UART wake-up selection.
mbed_official 610:813dcc80987e 1245 * @retval SET (__WAKE__ is valid) or RESET (__WAKE__ is invalid)
mbed_official 610:813dcc80987e 1246 */
mbed_official 610:813dcc80987e 1247 #define IS_UART_WAKEUP_SELECTION(__WAKE__) (((__WAKE__) == UART_WAKEUP_ON_ADDRESS) || \
mbed_official 610:813dcc80987e 1248 ((__WAKE__) == UART_WAKEUP_ON_STARTBIT) || \
mbed_official 610:813dcc80987e 1249 ((__WAKE__) == UART_WAKEUP_ON_READDATA_NONEMPTY))
mbed_official 610:813dcc80987e 1250
mbed_official 610:813dcc80987e 1251 /**
mbed_official 610:813dcc80987e 1252 * @brief Ensure that UART driver enable polarity is valid.
mbed_official 610:813dcc80987e 1253 * @param __POLARITY__: UART driver enable polarity.
mbed_official 610:813dcc80987e 1254 * @retval SET (__POLARITY__ is valid) or RESET (__POLARITY__ is invalid)
mbed_official 610:813dcc80987e 1255 */
mbed_official 610:813dcc80987e 1256 #define IS_UART_DE_POLARITY(__POLARITY__) (((__POLARITY__) == UART_DE_POLARITY_HIGH) || \
mbed_official 610:813dcc80987e 1257 ((__POLARITY__) == UART_DE_POLARITY_LOW))
mbed_official 610:813dcc80987e 1258
mbed_official 610:813dcc80987e 1259 /**
mbed_official 610:813dcc80987e 1260 * @brief Ensure that LPUART frame number of stop bits is valid.
mbed_official 610:813dcc80987e 1261 * @param __STOPBITS__: LPUART frame number of stop bits.
mbed_official 610:813dcc80987e 1262 * @retval SET (__STOPBITS__ is valid) or RESET (__STOPBITS__ is invalid)
mbed_official 610:813dcc80987e 1263 */
mbed_official 610:813dcc80987e 1264 #define IS_LPUART_STOPBITS(__STOPBITS__) (((__STOPBITS__) == UART_STOPBITS_1) || \
mbed_official 610:813dcc80987e 1265 ((__STOPBITS__) == UART_STOPBITS_2))
mbed_official 610:813dcc80987e 1266
mbed_official 610:813dcc80987e 1267 /**
mbed_official 610:813dcc80987e 1268 * @}
mbed_official 610:813dcc80987e 1269 */
mbed_official 610:813dcc80987e 1270
mbed_official 610:813dcc80987e 1271 /* Include UART HAL Extended module */
mbed_official 610:813dcc80987e 1272 #include "stm32l4xx_hal_uart_ex.h"
mbed_official 610:813dcc80987e 1273
mbed_official 610:813dcc80987e 1274 /* Exported functions --------------------------------------------------------*/
mbed_official 610:813dcc80987e 1275 /** @addtogroup UART_Exported_Functions UART Exported Functions
mbed_official 610:813dcc80987e 1276 * @{
mbed_official 610:813dcc80987e 1277 */
mbed_official 610:813dcc80987e 1278
mbed_official 610:813dcc80987e 1279 /** @addtogroup UART_Exported_Functions_Group1 Initialization and de-initialization functions
mbed_official 610:813dcc80987e 1280 * @{
mbed_official 610:813dcc80987e 1281 */
mbed_official 610:813dcc80987e 1282
mbed_official 610:813dcc80987e 1283 /* Initialization and de-initialization functions ****************************/
mbed_official 610:813dcc80987e 1284 HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart);
mbed_official 610:813dcc80987e 1285 HAL_StatusTypeDef HAL_HalfDuplex_Init(UART_HandleTypeDef *huart);
mbed_official 610:813dcc80987e 1286 HAL_StatusTypeDef HAL_LIN_Init(UART_HandleTypeDef *huart, uint32_t BreakDetectLength);
mbed_official 610:813dcc80987e 1287 HAL_StatusTypeDef HAL_MultiProcessor_Init(UART_HandleTypeDef *huart, uint8_t Address, uint32_t WakeUpMethod);
mbed_official 610:813dcc80987e 1288 HAL_StatusTypeDef HAL_UART_DeInit (UART_HandleTypeDef *huart);
mbed_official 610:813dcc80987e 1289 void HAL_UART_MspInit(UART_HandleTypeDef *huart);
mbed_official 610:813dcc80987e 1290 void HAL_UART_MspDeInit(UART_HandleTypeDef *huart);
mbed_official 610:813dcc80987e 1291
mbed_official 610:813dcc80987e 1292 /**
mbed_official 610:813dcc80987e 1293 * @}
mbed_official 610:813dcc80987e 1294 */
mbed_official 610:813dcc80987e 1295
mbed_official 610:813dcc80987e 1296 /** @addtogroup UART_Exported_Functions_Group2 IO operation functions
mbed_official 610:813dcc80987e 1297 * @{
mbed_official 610:813dcc80987e 1298 */
mbed_official 610:813dcc80987e 1299
mbed_official 610:813dcc80987e 1300 /* IO operation functions *****************************************************/
mbed_official 610:813dcc80987e 1301 HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout);
mbed_official 610:813dcc80987e 1302 HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout);
mbed_official 610:813dcc80987e 1303 HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);
mbed_official 610:813dcc80987e 1304 HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);
mbed_official 610:813dcc80987e 1305 HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);
mbed_official 610:813dcc80987e 1306 HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);
mbed_official 610:813dcc80987e 1307 HAL_StatusTypeDef HAL_UART_DMAPause(UART_HandleTypeDef *huart);
mbed_official 610:813dcc80987e 1308 HAL_StatusTypeDef HAL_UART_DMAResume(UART_HandleTypeDef *huart);
mbed_official 610:813dcc80987e 1309 HAL_StatusTypeDef HAL_UART_DMAStop(UART_HandleTypeDef *huart);
mbed_official 610:813dcc80987e 1310 void HAL_UART_IRQHandler(UART_HandleTypeDef *huart);
mbed_official 610:813dcc80987e 1311 void HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart);
mbed_official 610:813dcc80987e 1312 void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart);
mbed_official 610:813dcc80987e 1313 void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart);
mbed_official 610:813dcc80987e 1314 void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart);
mbed_official 610:813dcc80987e 1315 void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart);
mbed_official 610:813dcc80987e 1316
mbed_official 610:813dcc80987e 1317 /**
mbed_official 610:813dcc80987e 1318 * @}
mbed_official 610:813dcc80987e 1319 */
mbed_official 610:813dcc80987e 1320
mbed_official 610:813dcc80987e 1321 /** @addtogroup UART_Exported_Functions_Group3 Peripheral Control functions
mbed_official 610:813dcc80987e 1322 * @{
mbed_official 610:813dcc80987e 1323 */
mbed_official 610:813dcc80987e 1324
mbed_official 610:813dcc80987e 1325 /* Peripheral Control functions ************************************************/
mbed_official 610:813dcc80987e 1326 HAL_StatusTypeDef HAL_LIN_SendBreak(UART_HandleTypeDef *huart);
mbed_official 610:813dcc80987e 1327 HAL_StatusTypeDef HAL_MultiProcessor_EnableMuteMode(UART_HandleTypeDef *huart);
mbed_official 610:813dcc80987e 1328 HAL_StatusTypeDef HAL_MultiProcessor_DisableMuteMode(UART_HandleTypeDef *huart);
mbed_official 610:813dcc80987e 1329 void HAL_MultiProcessor_EnterMuteMode(UART_HandleTypeDef *huart);
mbed_official 610:813dcc80987e 1330 HAL_StatusTypeDef HAL_HalfDuplex_EnableTransmitter(UART_HandleTypeDef *huart);
mbed_official 610:813dcc80987e 1331 HAL_StatusTypeDef HAL_HalfDuplex_EnableReceiver(UART_HandleTypeDef *huart);
mbed_official 610:813dcc80987e 1332
mbed_official 610:813dcc80987e 1333 /**
mbed_official 610:813dcc80987e 1334 * @}
mbed_official 610:813dcc80987e 1335 */
mbed_official 610:813dcc80987e 1336
mbed_official 610:813dcc80987e 1337 /** @addtogroup UART_Exported_Functions_Group4 Peripheral State and Error functions
mbed_official 610:813dcc80987e 1338 * @{
mbed_official 610:813dcc80987e 1339 */
mbed_official 610:813dcc80987e 1340
mbed_official 610:813dcc80987e 1341 /* Peripheral State and Errors functions **************************************************/
mbed_official 610:813dcc80987e 1342 HAL_UART_StateTypeDef HAL_UART_GetState(UART_HandleTypeDef *huart);
mbed_official 610:813dcc80987e 1343 uint32_t HAL_UART_GetError(UART_HandleTypeDef *huart);
mbed_official 610:813dcc80987e 1344
mbed_official 610:813dcc80987e 1345 /**
mbed_official 610:813dcc80987e 1346 * @}
mbed_official 610:813dcc80987e 1347 */
mbed_official 610:813dcc80987e 1348
mbed_official 610:813dcc80987e 1349 /**
mbed_official 610:813dcc80987e 1350 * @}
mbed_official 610:813dcc80987e 1351 */
mbed_official 610:813dcc80987e 1352
mbed_official 610:813dcc80987e 1353 /* Private functions -----------------------------------------------------------*/
mbed_official 610:813dcc80987e 1354 /** @addtogroup UART_Private_Functions UART Private Functions
mbed_official 610:813dcc80987e 1355 * @{
mbed_official 610:813dcc80987e 1356 */
mbed_official 610:813dcc80987e 1357
mbed_official 610:813dcc80987e 1358 HAL_StatusTypeDef UART_SetConfig(UART_HandleTypeDef *huart);
mbed_official 610:813dcc80987e 1359 HAL_StatusTypeDef UART_CheckIdleState(UART_HandleTypeDef *huart);
mbed_official 610:813dcc80987e 1360 HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, FlagStatus Status, uint32_t Timeout);
mbed_official 610:813dcc80987e 1361 void UART_AdvFeatureConfig(UART_HandleTypeDef *huart);
mbed_official 610:813dcc80987e 1362
mbed_official 610:813dcc80987e 1363 /**
mbed_official 610:813dcc80987e 1364 * @}
mbed_official 610:813dcc80987e 1365 */
mbed_official 610:813dcc80987e 1366
mbed_official 610:813dcc80987e 1367 /**
mbed_official 610:813dcc80987e 1368 * @}
mbed_official 610:813dcc80987e 1369 */
mbed_official 610:813dcc80987e 1370
mbed_official 610:813dcc80987e 1371 /**
mbed_official 610:813dcc80987e 1372 * @}
mbed_official 610:813dcc80987e 1373 */
mbed_official 610:813dcc80987e 1374
mbed_official 610:813dcc80987e 1375 #ifdef __cplusplus
mbed_official 610:813dcc80987e 1376 }
mbed_official 610:813dcc80987e 1377 #endif
mbed_official 610:813dcc80987e 1378
mbed_official 610:813dcc80987e 1379 #endif /* __STM32L4xx_HAL_UART_H */
mbed_official 610:813dcc80987e 1380
mbed_official 610:813dcc80987e 1381 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/