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:
Wed Jul 01 09:45:11 2015 +0100
Revision:
579:53297373a894
Parent:
489:119543c9f674
Synchronized with git revision d5b4d2ab9c47edb4dc5776e7177b0c2263459081

Full URL: https://github.com/mbedmicro/mbed/commit/d5b4d2ab9c47edb4dc5776e7177b0c2263459081/

Initial version of drivers for SAMR21

Who changed what in which revision?

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