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 Oct 31 11:00:10 2014 +0000
Revision:
376:cb4d9db17537
Synchronized with git revision 07b49da75eac883fc8916d3d6b6962664b8db29e

Full URL: https://github.com/mbedmicro/mbed/commit/07b49da75eac883fc8916d3d6b6962664b8db29e/

Targets: DISCO_L053C8 - new platform - STM32L0 Discovery board

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