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:
Thu Oct 09 08:15:07 2014 +0100
Revision:
340:28d1f895c6fe
Synchronized with git revision b5a4c8e80393336b2656fb29ab46d405d3068602

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

HAL: nrf51822 - Few fixes for PWM and Serial

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 340:28d1f895c6fe 1 /**
mbed_official 340:28d1f895c6fe 2 ******************************************************************************
mbed_official 340:28d1f895c6fe 3 * @file stm32f0xx_hal_uart_ex.h
mbed_official 340:28d1f895c6fe 4 * @author MCD Application Team
mbed_official 340:28d1f895c6fe 5 * @version V1.1.0
mbed_official 340:28d1f895c6fe 6 * @date 03-Oct-2014
mbed_official 340:28d1f895c6fe 7 * @brief Header file of UART HAL Extension module.
mbed_official 340:28d1f895c6fe 8 ******************************************************************************
mbed_official 340:28d1f895c6fe 9 * @attention
mbed_official 340:28d1f895c6fe 10 *
mbed_official 340:28d1f895c6fe 11 * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
mbed_official 340:28d1f895c6fe 12 *
mbed_official 340:28d1f895c6fe 13 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 340:28d1f895c6fe 14 * are permitted provided that the following conditions are met:
mbed_official 340:28d1f895c6fe 15 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 340:28d1f895c6fe 16 * this list of conditions and the following disclaimer.
mbed_official 340:28d1f895c6fe 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 340:28d1f895c6fe 18 * this list of conditions and the following disclaimer in the documentation
mbed_official 340:28d1f895c6fe 19 * and/or other materials provided with the distribution.
mbed_official 340:28d1f895c6fe 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 340:28d1f895c6fe 21 * may be used to endorse or promote products derived from this software
mbed_official 340:28d1f895c6fe 22 * without specific prior written permission.
mbed_official 340:28d1f895c6fe 23 *
mbed_official 340:28d1f895c6fe 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 340:28d1f895c6fe 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 340:28d1f895c6fe 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 340:28d1f895c6fe 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 340:28d1f895c6fe 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 340:28d1f895c6fe 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 340:28d1f895c6fe 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 340:28d1f895c6fe 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 340:28d1f895c6fe 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 340:28d1f895c6fe 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 340:28d1f895c6fe 34 *
mbed_official 340:28d1f895c6fe 35 ******************************************************************************
mbed_official 340:28d1f895c6fe 36 */
mbed_official 340:28d1f895c6fe 37
mbed_official 340:28d1f895c6fe 38 /* Define to prevent recursive inclusion -------------------------------------*/
mbed_official 340:28d1f895c6fe 39 #ifndef __STM32F0xx_HAL_UART_EX_H
mbed_official 340:28d1f895c6fe 40 #define __STM32F0xx_HAL_UART_EX_H
mbed_official 340:28d1f895c6fe 41
mbed_official 340:28d1f895c6fe 42 #ifdef __cplusplus
mbed_official 340:28d1f895c6fe 43 extern "C" {
mbed_official 340:28d1f895c6fe 44 #endif
mbed_official 340:28d1f895c6fe 45
mbed_official 340:28d1f895c6fe 46 /* Includes ------------------------------------------------------------------*/
mbed_official 340:28d1f895c6fe 47 #include "stm32f0xx_hal_def.h"
mbed_official 340:28d1f895c6fe 48
mbed_official 340:28d1f895c6fe 49 /** @addtogroup STM32F0xx_HAL_Driver
mbed_official 340:28d1f895c6fe 50 * @{
mbed_official 340:28d1f895c6fe 51 */
mbed_official 340:28d1f895c6fe 52
mbed_official 340:28d1f895c6fe 53 /** @addtogroup UARTEx
mbed_official 340:28d1f895c6fe 54 * @{
mbed_official 340:28d1f895c6fe 55 */
mbed_official 340:28d1f895c6fe 56
mbed_official 340:28d1f895c6fe 57 /* Exported types ------------------------------------------------------------*/
mbed_official 340:28d1f895c6fe 58 /* Exported constants --------------------------------------------------------*/
mbed_official 340:28d1f895c6fe 59 /** @defgroup UARTEx_Exported_Constants UARTEx Exported Constants
mbed_official 340:28d1f895c6fe 60 * @{
mbed_official 340:28d1f895c6fe 61 */
mbed_official 340:28d1f895c6fe 62
mbed_official 340:28d1f895c6fe 63 /** @defgroup UARTEx_Word_Length UARTEx Word Length
mbed_official 340:28d1f895c6fe 64 * @{
mbed_official 340:28d1f895c6fe 65 */
mbed_official 340:28d1f895c6fe 66 #if defined (STM32F042x6) || defined (STM32F048xx) || \
mbed_official 340:28d1f895c6fe 67 defined (STM32F071xB) || defined (STM32F072xB) || defined (STM32F078xx) || \
mbed_official 340:28d1f895c6fe 68 defined (STM32F091xC) || defined (STM32F098xx)
mbed_official 340:28d1f895c6fe 69 #define UART_WORDLENGTH_7B ((uint32_t)USART_CR1_M1)
mbed_official 340:28d1f895c6fe 70 #define UART_WORDLENGTH_8B ((uint32_t)0x00000000)
mbed_official 340:28d1f895c6fe 71 #define UART_WORDLENGTH_9B ((uint32_t)USART_CR1_M0)
mbed_official 340:28d1f895c6fe 72 #define IS_UART_WORD_LENGTH(LENGTH) (((LENGTH) == UART_WORDLENGTH_7B) || \
mbed_official 340:28d1f895c6fe 73 ((LENGTH) == UART_WORDLENGTH_8B) || \
mbed_official 340:28d1f895c6fe 74 ((LENGTH) == UART_WORDLENGTH_9B))
mbed_official 340:28d1f895c6fe 75 #else
mbed_official 340:28d1f895c6fe 76 #define UART_WORDLENGTH_8B ((uint32_t)0x00000000)
mbed_official 340:28d1f895c6fe 77 #define UART_WORDLENGTH_9B ((uint32_t)USART_CR1_M)
mbed_official 340:28d1f895c6fe 78 #define IS_UART_WORD_LENGTH(LENGTH) (((LENGTH) == UART_WORDLENGTH_8B) || \
mbed_official 340:28d1f895c6fe 79 ((LENGTH) == UART_WORDLENGTH_9B))
mbed_official 340:28d1f895c6fe 80 #endif /* defined (STM32F042x6) || defined (STM32F048xx) || \
mbed_official 340:28d1f895c6fe 81 defined (STM32F071xB) || defined (STM32F072xB) || defined (STM32F078xx) || \
mbed_official 340:28d1f895c6fe 82 defined (STM32F091xC) || defined (STM32F098xx) */
mbed_official 340:28d1f895c6fe 83 /**
mbed_official 340:28d1f895c6fe 84 * @}
mbed_official 340:28d1f895c6fe 85 */
mbed_official 340:28d1f895c6fe 86
mbed_official 340:28d1f895c6fe 87 /** @defgroup UARTEx_AutoBaud_Rate_Mode UARTEx Advanced Feature AutoBaud Rate Mode
mbed_official 340:28d1f895c6fe 88 * @{
mbed_official 340:28d1f895c6fe 89 */
mbed_official 340:28d1f895c6fe 90 #if defined (STM32F042x6) || defined (STM32F048xx) || \
mbed_official 340:28d1f895c6fe 91 defined (STM32F071xB) || defined (STM32F072xB) || defined (STM32F078xx) || \
mbed_official 340:28d1f895c6fe 92 defined (STM32F091xC) || defined (STM32F098xx)
mbed_official 340:28d1f895c6fe 93 #define UART_ADVFEATURE_AUTOBAUDRATE_ONSTARTBIT ((uint32_t)0x0000)
mbed_official 340:28d1f895c6fe 94 #define UART_ADVFEATURE_AUTOBAUDRATE_ONFALLINGEDGE ((uint32_t)USART_CR2_ABRMODE_0)
mbed_official 340:28d1f895c6fe 95 #define UART_ADVFEATURE_AUTOBAUDRATE_ON0X7FFRAME ((uint32_t)USART_CR2_ABRMODE_1)
mbed_official 340:28d1f895c6fe 96 #define UART_ADVFEATURE_AUTOBAUDRATE_ON0X55FRAME ((uint32_t)USART_CR2_ABRMODE)
mbed_official 340:28d1f895c6fe 97 #define IS_UART_ADVFEATURE_AUTOBAUDRATEMODE(MODE) (((MODE) == UART_ADVFEATURE_AUTOBAUDRATE_ONSTARTBIT) || \
mbed_official 340:28d1f895c6fe 98 ((MODE) == UART_ADVFEATURE_AUTOBAUDRATE_ONFALLINGEDGE) || \
mbed_official 340:28d1f895c6fe 99 ((MODE) == UART_ADVFEATURE_AUTOBAUDRATE_ON0X7FFRAME) || \
mbed_official 340:28d1f895c6fe 100 ((MODE) == UART_ADVFEATURE_AUTOBAUDRATE_ON0X55FRAME))
mbed_official 340:28d1f895c6fe 101 #else
mbed_official 340:28d1f895c6fe 102 #define UART_ADVFEATURE_AUTOBAUDRATE_ONSTARTBIT ((uint32_t)0x0000)
mbed_official 340:28d1f895c6fe 103 #define UART_ADVFEATURE_AUTOBAUDRATE_ONFALLINGEDGE ((uint32_t)USART_CR2_ABRMODE_0)
mbed_official 340:28d1f895c6fe 104 #define IS_UART_ADVFEATURE_AUTOBAUDRATEMODE(MODE) (((MODE) == UART_ADVFEATURE_AUTOBAUDRATE_ONSTARTBIT) || \
mbed_official 340:28d1f895c6fe 105 ((MODE) == UART_ADVFEATURE_AUTOBAUDRATE_ONFALLINGEDGE))
mbed_official 340:28d1f895c6fe 106 #endif /* defined (STM32F042x6) || defined (STM32F048xx) || \
mbed_official 340:28d1f895c6fe 107 defined (STM32F071xB) || defined (STM32F072xB) || defined (STM32F078xx) || \
mbed_official 340:28d1f895c6fe 108 defined (STM32F091xC) || defined (STM32F098xx) */
mbed_official 340:28d1f895c6fe 109 /**
mbed_official 340:28d1f895c6fe 110 * @}
mbed_official 340:28d1f895c6fe 111 */
mbed_official 340:28d1f895c6fe 112
mbed_official 340:28d1f895c6fe 113
mbed_official 340:28d1f895c6fe 114 #if !defined(STM32F030x6) && !defined(STM32F030x8)
mbed_official 340:28d1f895c6fe 115 /** @defgroup UARTEx_LIN UARTEx Local Interconnection Network mode
mbed_official 340:28d1f895c6fe 116 * @{
mbed_official 340:28d1f895c6fe 117 */
mbed_official 340:28d1f895c6fe 118 #define UART_LIN_DISABLE ((uint32_t)0x00000000)
mbed_official 340:28d1f895c6fe 119 #define UART_LIN_ENABLE ((uint32_t)USART_CR2_LINEN)
mbed_official 340:28d1f895c6fe 120 #define IS_UART_LIN(LIN) (((LIN) == UART_LIN_DISABLE) || \
mbed_official 340:28d1f895c6fe 121 ((LIN) == UART_LIN_ENABLE))
mbed_official 340:28d1f895c6fe 122 /**
mbed_official 340:28d1f895c6fe 123 * @}
mbed_official 340:28d1f895c6fe 124 */
mbed_official 340:28d1f895c6fe 125
mbed_official 340:28d1f895c6fe 126 /** @defgroup UARTEx_LIN_Break_Detection UARTEx LIN Break Detection
mbed_official 340:28d1f895c6fe 127 * @{
mbed_official 340:28d1f895c6fe 128 */
mbed_official 340:28d1f895c6fe 129 #define UART_LINBREAKDETECTLENGTH_10B ((uint32_t)0x00000000)
mbed_official 340:28d1f895c6fe 130 #define UART_LINBREAKDETECTLENGTH_11B ((uint32_t)USART_CR2_LBDL)
mbed_official 340:28d1f895c6fe 131 #define IS_UART_LIN_BREAK_DETECT_LENGTH(LENGTH) (((LENGTH) == UART_LINBREAKDETECTLENGTH_10B) || \
mbed_official 340:28d1f895c6fe 132 ((LENGTH) == UART_LINBREAKDETECTLENGTH_11B))
mbed_official 340:28d1f895c6fe 133 /**
mbed_official 340:28d1f895c6fe 134 * @}
mbed_official 340:28d1f895c6fe 135 */
mbed_official 340:28d1f895c6fe 136 #endif /* !defined(STM32F030x6) && !defined(STM32F030x8) */
mbed_official 340:28d1f895c6fe 137
mbed_official 340:28d1f895c6fe 138 /** @defgroup UART_Flags UARTEx Status Flags
mbed_official 340:28d1f895c6fe 139 * Elements values convention: 0xXXXX
mbed_official 340:28d1f895c6fe 140 * - 0xXXXX : Flag mask in the ISR register
mbed_official 340:28d1f895c6fe 141 * @{
mbed_official 340:28d1f895c6fe 142 */
mbed_official 340:28d1f895c6fe 143 #define UART_FLAG_REACK ((uint32_t)0x00400000)
mbed_official 340:28d1f895c6fe 144 #define UART_FLAG_TEACK ((uint32_t)0x00200000)
mbed_official 340:28d1f895c6fe 145 #if !defined(STM32F030x6) && !defined(STM32F030x8)
mbed_official 340:28d1f895c6fe 146 #define UART_FLAG_WUF ((uint32_t)0x00100000)
mbed_official 340:28d1f895c6fe 147 #endif /* !defined(STM32F030x6) && !defined(STM32F030x8) */
mbed_official 340:28d1f895c6fe 148 #define UART_FLAG_RWU ((uint32_t)0x00080000)
mbed_official 340:28d1f895c6fe 149 #define UART_FLAG_SBKF ((uint32_t)0x00040000
mbed_official 340:28d1f895c6fe 150 #define UART_FLAG_CMF ((uint32_t)0x00020000)
mbed_official 340:28d1f895c6fe 151 #define UART_FLAG_BUSY ((uint32_t)0x00010000)
mbed_official 340:28d1f895c6fe 152 #define UART_FLAG_ABRF ((uint32_t)0x00008000)
mbed_official 340:28d1f895c6fe 153 #define UART_FLAG_ABRE ((uint32_t)0x00004000)
mbed_official 340:28d1f895c6fe 154 #if !defined(STM32F030x6) && !defined(STM32F030x8)
mbed_official 340:28d1f895c6fe 155 #define UART_FLAG_EOBF ((uint32_t)0x00001000)
mbed_official 340:28d1f895c6fe 156 #endif /* !defined(STM32F030x6) && !defined(STM32F030x8) */
mbed_official 340:28d1f895c6fe 157 #define UART_FLAG_RTOF ((uint32_t)0x00000800)
mbed_official 340:28d1f895c6fe 158 #define UART_FLAG_CTS ((uint32_t)0x00000400)
mbed_official 340:28d1f895c6fe 159 #define UART_FLAG_CTSIF ((uint32_t)0x00000200)
mbed_official 340:28d1f895c6fe 160 #if !defined(STM32F030x6) && !defined(STM32F030x8)
mbed_official 340:28d1f895c6fe 161 #define UART_FLAG_LBDF ((uint32_t)0x00000100)
mbed_official 340:28d1f895c6fe 162 #endif /* !defined(STM32F030x6) && !defined(STM32F030x8) */
mbed_official 340:28d1f895c6fe 163 #define UART_FLAG_TXE ((uint32_t)0x00000080)
mbed_official 340:28d1f895c6fe 164 #define UART_FLAG_TC ((uint32_t)0x00000040)
mbed_official 340:28d1f895c6fe 165 #define UART_FLAG_RXNE ((uint32_t)0x00000020)
mbed_official 340:28d1f895c6fe 166 #define UART_FLAG_IDLE ((uint32_t)0x00000010)
mbed_official 340:28d1f895c6fe 167 #define UART_FLAG_ORE ((uint32_t)0x00000008)
mbed_official 340:28d1f895c6fe 168 #define UART_FLAG_NE ((uint32_t)0x00000004)
mbed_official 340:28d1f895c6fe 169 #define UART_FLAG_FE ((uint32_t)0x00000002)
mbed_official 340:28d1f895c6fe 170 #define UART_FLAG_PE ((uint32_t)0x00000001)
mbed_official 340:28d1f895c6fe 171 /**
mbed_official 340:28d1f895c6fe 172 * @}
mbed_official 340:28d1f895c6fe 173 */
mbed_official 340:28d1f895c6fe 174
mbed_official 340:28d1f895c6fe 175 /** @defgroup UART_Interrupt_definition UARTEx Interrupts Definition
mbed_official 340:28d1f895c6fe 176 * Elements values convention: 0000ZZZZ0XXYYYYYb
mbed_official 340:28d1f895c6fe 177 * - YYYYY : Interrupt source position in the XX register (5bits)
mbed_official 340:28d1f895c6fe 178 * - XX : Interrupt source register (2bits)
mbed_official 340:28d1f895c6fe 179 * - 01: CR1 register
mbed_official 340:28d1f895c6fe 180 * - 10: CR2 register
mbed_official 340:28d1f895c6fe 181 * - 11: CR3 register
mbed_official 340:28d1f895c6fe 182 * - ZZZZ : Flag position in the ISR register(4bits)
mbed_official 340:28d1f895c6fe 183 * @{
mbed_official 340:28d1f895c6fe 184 */
mbed_official 340:28d1f895c6fe 185 #define UART_IT_PE ((uint16_t)0x0028)
mbed_official 340:28d1f895c6fe 186 #define UART_IT_TXE ((uint16_t)0x0727)
mbed_official 340:28d1f895c6fe 187 #define UART_IT_TC ((uint16_t)0x0626)
mbed_official 340:28d1f895c6fe 188 #define UART_IT_RXNE ((uint16_t)0x0525)
mbed_official 340:28d1f895c6fe 189 #define UART_IT_IDLE ((uint16_t)0x0424)
mbed_official 340:28d1f895c6fe 190 #if !defined(STM32F030x6) && !defined(STM32F030x8)
mbed_official 340:28d1f895c6fe 191 #define UART_IT_LBD ((uint16_t)0x0846)
mbed_official 340:28d1f895c6fe 192 #endif /* !defined(STM32F030x6) && !defined(STM32F030x8) */
mbed_official 340:28d1f895c6fe 193 #define UART_IT_CTS ((uint16_t)0x096A)
mbed_official 340:28d1f895c6fe 194 #define UART_IT_CM ((uint16_t)0x142E)
mbed_official 340:28d1f895c6fe 195 #if !defined(STM32F030x6) && !defined(STM32F030x8)
mbed_official 340:28d1f895c6fe 196 #define UART_IT_WUF ((uint16_t)0x1476)
mbed_official 340:28d1f895c6fe 197 #endif /* !defined(STM32F030x6) && !defined(STM32F030x8) */
mbed_official 340:28d1f895c6fe 198 /**
mbed_official 340:28d1f895c6fe 199 * @}
mbed_official 340:28d1f895c6fe 200 */
mbed_official 340:28d1f895c6fe 201
mbed_official 340:28d1f895c6fe 202
mbed_official 340:28d1f895c6fe 203 /** @defgroup UART_IT_CLEAR_Flags UARTEx Interruption Clear Flags
mbed_official 340:28d1f895c6fe 204 * @{
mbed_official 340:28d1f895c6fe 205 */
mbed_official 340:28d1f895c6fe 206 #define UART_CLEAR_PEF USART_ICR_PECF /*!< Parity Error Clear Flag */
mbed_official 340:28d1f895c6fe 207 #define UART_CLEAR_FEF USART_ICR_FECF /*!< Framing Error Clear Flag */
mbed_official 340:28d1f895c6fe 208 #define UART_CLEAR_NEF USART_ICR_NCF /*!< Noise detected Clear Flag */
mbed_official 340:28d1f895c6fe 209 #define UART_CLEAR_OREF USART_ICR_ORECF /*!< OverRun Error Clear Flag */
mbed_official 340:28d1f895c6fe 210 #define UART_CLEAR_IDLEF USART_ICR_IDLECF /*!< IDLE line detected Clear Flag */
mbed_official 340:28d1f895c6fe 211 #define UART_CLEAR_TCF USART_ICR_TCCF /*!< Transmission Complete Clear Flag */
mbed_official 340:28d1f895c6fe 212 #if !defined(STM32F030x6) && !defined(STM32F030x8)
mbed_official 340:28d1f895c6fe 213 #define UART_CLEAR_LBDF USART_ICR_LBDCF /*!< LIN Break Detection Clear Flag (not available on F030xx devices)*/
mbed_official 340:28d1f895c6fe 214 #endif /* !defined(STM32F030x6) && !defined(STM32F030x8) */
mbed_official 340:28d1f895c6fe 215 #define UART_CLEAR_CTSF USART_ICR_CTSCF /*!< CTS Interrupt Clear Flag */
mbed_official 340:28d1f895c6fe 216 #define UART_CLEAR_RTOF USART_ICR_RTOCF /*!< Receiver Time Out Clear Flag */
mbed_official 340:28d1f895c6fe 217 #define UART_CLEAR_EOBF USART_ICR_EOBCF /*!< End Of Block Clear Flag */
mbed_official 340:28d1f895c6fe 218 #define UART_CLEAR_CMF USART_ICR_CMCF /*!< Character Match Clear Flag */
mbed_official 340:28d1f895c6fe 219 #if !defined(STM32F030x6) && !defined(STM32F030x8)
mbed_official 340:28d1f895c6fe 220 #define UART_CLEAR_WUF USART_ICR_WUCF /*!< Wake Up from stop mode Clear Flag */
mbed_official 340:28d1f895c6fe 221 #endif /* !defined(STM32F030x6) && !defined(STM32F030x8) */
mbed_official 340:28d1f895c6fe 222 /**
mbed_official 340:28d1f895c6fe 223 * @}
mbed_official 340:28d1f895c6fe 224 */
mbed_official 340:28d1f895c6fe 225
mbed_official 340:28d1f895c6fe 226 /** @defgroup UART_Request_Parameters UARTEx Request Parameters
mbed_official 340:28d1f895c6fe 227 * @{
mbed_official 340:28d1f895c6fe 228 */
mbed_official 340:28d1f895c6fe 229 #define UART_AUTOBAUD_REQUEST ((uint32_t)USART_RQR_ABRRQ) /*!< Auto-Baud Rate Request */
mbed_official 340:28d1f895c6fe 230 #define UART_SENDBREAK_REQUEST ((uint32_t)USART_RQR_SBKRQ) /*!< Send Break Request */
mbed_official 340:28d1f895c6fe 231 #define UART_MUTE_MODE_REQUEST ((uint32_t)USART_RQR_MMRQ) /*!< Mute Mode Request */
mbed_official 340:28d1f895c6fe 232 #define UART_RXDATA_FLUSH_REQUEST ((uint32_t)USART_RQR_RXFRQ) /*!< Receive Data flush Request */
mbed_official 340:28d1f895c6fe 233 #if !defined(STM32F030x6) && !defined(STM32F030x8)
mbed_official 340:28d1f895c6fe 234 #define UART_TXDATA_FLUSH_REQUEST ((uint32_t)USART_RQR_TXFRQ) /*!< Transmit data flush Request */
mbed_official 340:28d1f895c6fe 235 #define IS_UART_REQUEST_PARAMETER(PARAM) (((PARAM) == UART_AUTOBAUD_REQUEST) || \
mbed_official 340:28d1f895c6fe 236 ((PARAM) == UART_SENDBREAK_REQUEST) || \
mbed_official 340:28d1f895c6fe 237 ((PARAM) == UART_MUTE_MODE_REQUEST) || \
mbed_official 340:28d1f895c6fe 238 ((PARAM) == UART_RXDATA_FLUSH_REQUEST) || \
mbed_official 340:28d1f895c6fe 239 ((PARAM) == UART_TXDATA_FLUSH_REQUEST))
mbed_official 340:28d1f895c6fe 240 #else
mbed_official 340:28d1f895c6fe 241 #define IS_UART_REQUEST_PARAMETER(PARAM) (((PARAM) == UART_AUTOBAUD_REQUEST) || \
mbed_official 340:28d1f895c6fe 242 ((PARAM) == UART_SENDBREAK_REQUEST) || \
mbed_official 340:28d1f895c6fe 243 ((PARAM) == UART_MUTE_MODE_REQUEST) || \
mbed_official 340:28d1f895c6fe 244 ((PARAM) == UART_RXDATA_FLUSH_REQUEST))
mbed_official 340:28d1f895c6fe 245 #endif /* !defined(STM32F030x6) && !defined(STM32F030x8) */
mbed_official 340:28d1f895c6fe 246 /**
mbed_official 340:28d1f895c6fe 247 * @}
mbed_official 340:28d1f895c6fe 248 */
mbed_official 340:28d1f895c6fe 249
mbed_official 340:28d1f895c6fe 250 #if !defined(STM32F030x6) && !defined(STM32F030x8)
mbed_official 340:28d1f895c6fe 251 /** @defgroup UART_Stop_Mode_Enable UARTEx Advanced Feature Stop Mode Enable
mbed_official 340:28d1f895c6fe 252 * @{
mbed_official 340:28d1f895c6fe 253 */
mbed_official 340:28d1f895c6fe 254 #define UART_ADVFEATURE_STOPMODE_DISABLE ((uint32_t)0x00000000)
mbed_official 340:28d1f895c6fe 255 #define UART_ADVFEATURE_STOPMODE_ENABLE ((uint32_t)USART_CR1_UESM)
mbed_official 340:28d1f895c6fe 256 #define IS_UART_ADVFEATURE_STOPMODE(STOPMODE) (((STOPMODE) == UART_ADVFEATURE_STOPMODE_DISABLE) || \
mbed_official 340:28d1f895c6fe 257 ((STOPMODE) == UART_ADVFEATURE_STOPMODE_ENABLE))
mbed_official 340:28d1f895c6fe 258 /**
mbed_official 340:28d1f895c6fe 259 * @}
mbed_official 340:28d1f895c6fe 260 */
mbed_official 340:28d1f895c6fe 261
mbed_official 340:28d1f895c6fe 262 /** @defgroup UART_WakeUp_from_Stop_Selection UART WakeUp From Stop Selection
mbed_official 340:28d1f895c6fe 263 * @{
mbed_official 340:28d1f895c6fe 264 */
mbed_official 340:28d1f895c6fe 265 #define UART_WAKEUP_ON_ADDRESS ((uint32_t)0x0000)
mbed_official 340:28d1f895c6fe 266 #define UART_WAKEUP_ON_STARTBIT ((uint32_t)USART_CR3_WUS_1)
mbed_official 340:28d1f895c6fe 267 #define UART_WAKEUP_ON_READDATA_NONEMPTY ((uint32_t)USART_CR3_WUS)
mbed_official 340:28d1f895c6fe 268 #define IS_UART_WAKEUP_SELECTION(WAKE) (((WAKE) == UART_WAKEUP_ON_ADDRESS) || \
mbed_official 340:28d1f895c6fe 269 ((WAKE) == UART_WAKEUP_ON_STARTBIT) || \
mbed_official 340:28d1f895c6fe 270 ((WAKE) == UART_WAKEUP_ON_READDATA_NONEMPTY))
mbed_official 340:28d1f895c6fe 271 /**
mbed_official 340:28d1f895c6fe 272 * @}
mbed_official 340:28d1f895c6fe 273 */
mbed_official 340:28d1f895c6fe 274 #endif /* !defined(STM32F030x6) && !defined(STM32F030x8) */
mbed_official 340:28d1f895c6fe 275
mbed_official 340:28d1f895c6fe 276 /**
mbed_official 340:28d1f895c6fe 277 * @}
mbed_official 340:28d1f895c6fe 278 */
mbed_official 340:28d1f895c6fe 279
mbed_official 340:28d1f895c6fe 280 /* Exported macro ------------------------------------------------------------*/
mbed_official 340:28d1f895c6fe 281
mbed_official 340:28d1f895c6fe 282 /** @defgroup UARTEx_Exported_Macros UARTEx Exported Macros
mbed_official 340:28d1f895c6fe 283 * @{
mbed_official 340:28d1f895c6fe 284 */
mbed_official 340:28d1f895c6fe 285
mbed_official 340:28d1f895c6fe 286 /** @brief Reports the UART clock source.
mbed_official 340:28d1f895c6fe 287 * @param __HANDLE__: specifies the UART Handle
mbed_official 340:28d1f895c6fe 288 * @param __CLOCKSOURCE__ : output variable
mbed_official 340:28d1f895c6fe 289 * @retval UART clocking source, written in __CLOCKSOURCE__.
mbed_official 340:28d1f895c6fe 290 */
mbed_official 340:28d1f895c6fe 291
mbed_official 340:28d1f895c6fe 292
mbed_official 340:28d1f895c6fe 293 #if defined(STM32F030x6) || defined(STM32F031x6) || defined(STM32F038xx)
mbed_official 340:28d1f895c6fe 294 #define __HAL_UART_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__) \
mbed_official 340:28d1f895c6fe 295 do { \
mbed_official 340:28d1f895c6fe 296 switch(__HAL_RCC_GET_USART1_SOURCE()) \
mbed_official 340:28d1f895c6fe 297 { \
mbed_official 340:28d1f895c6fe 298 case RCC_USART1CLKSOURCE_PCLK1: \
mbed_official 340:28d1f895c6fe 299 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \
mbed_official 340:28d1f895c6fe 300 break; \
mbed_official 340:28d1f895c6fe 301 case RCC_USART1CLKSOURCE_HSI: \
mbed_official 340:28d1f895c6fe 302 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
mbed_official 340:28d1f895c6fe 303 break; \
mbed_official 340:28d1f895c6fe 304 case RCC_USART1CLKSOURCE_SYSCLK: \
mbed_official 340:28d1f895c6fe 305 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \
mbed_official 340:28d1f895c6fe 306 break; \
mbed_official 340:28d1f895c6fe 307 case RCC_USART1CLKSOURCE_LSE: \
mbed_official 340:28d1f895c6fe 308 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
mbed_official 340:28d1f895c6fe 309 break; \
mbed_official 340:28d1f895c6fe 310 default: \
mbed_official 340:28d1f895c6fe 311 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
mbed_official 340:28d1f895c6fe 312 break; \
mbed_official 340:28d1f895c6fe 313 } \
mbed_official 340:28d1f895c6fe 314 } while(0)
mbed_official 340:28d1f895c6fe 315 #elif defined (STM32F030x8) || \
mbed_official 340:28d1f895c6fe 316 defined (STM32F042x6) || defined (STM32F048xx) || \
mbed_official 340:28d1f895c6fe 317 defined (STM32F051x8) || defined (STM32F058xx)
mbed_official 340:28d1f895c6fe 318 #define __HAL_UART_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__) \
mbed_official 340:28d1f895c6fe 319 do { \
mbed_official 340:28d1f895c6fe 320 if((__HANDLE__)->Instance == USART1) \
mbed_official 340:28d1f895c6fe 321 { \
mbed_official 340:28d1f895c6fe 322 switch(__HAL_RCC_GET_USART1_SOURCE()) \
mbed_official 340:28d1f895c6fe 323 { \
mbed_official 340:28d1f895c6fe 324 case RCC_USART1CLKSOURCE_PCLK1: \
mbed_official 340:28d1f895c6fe 325 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \
mbed_official 340:28d1f895c6fe 326 break; \
mbed_official 340:28d1f895c6fe 327 case RCC_USART1CLKSOURCE_HSI: \
mbed_official 340:28d1f895c6fe 328 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
mbed_official 340:28d1f895c6fe 329 break; \
mbed_official 340:28d1f895c6fe 330 case RCC_USART1CLKSOURCE_SYSCLK: \
mbed_official 340:28d1f895c6fe 331 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \
mbed_official 340:28d1f895c6fe 332 break; \
mbed_official 340:28d1f895c6fe 333 case RCC_USART1CLKSOURCE_LSE: \
mbed_official 340:28d1f895c6fe 334 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
mbed_official 340:28d1f895c6fe 335 break; \
mbed_official 340:28d1f895c6fe 336 default: \
mbed_official 340:28d1f895c6fe 337 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
mbed_official 340:28d1f895c6fe 338 break; \
mbed_official 340:28d1f895c6fe 339 } \
mbed_official 340:28d1f895c6fe 340 } \
mbed_official 340:28d1f895c6fe 341 else if((__HANDLE__)->Instance == USART2) \
mbed_official 340:28d1f895c6fe 342 { \
mbed_official 340:28d1f895c6fe 343 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \
mbed_official 340:28d1f895c6fe 344 } \
mbed_official 340:28d1f895c6fe 345 else \
mbed_official 340:28d1f895c6fe 346 { \
mbed_official 340:28d1f895c6fe 347 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
mbed_official 340:28d1f895c6fe 348 } \
mbed_official 340:28d1f895c6fe 349 } while(0)
mbed_official 340:28d1f895c6fe 350 #elif defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx)
mbed_official 340:28d1f895c6fe 351 #define __HAL_UART_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__) \
mbed_official 340:28d1f895c6fe 352 do { \
mbed_official 340:28d1f895c6fe 353 if((__HANDLE__)->Instance == USART1) \
mbed_official 340:28d1f895c6fe 354 { \
mbed_official 340:28d1f895c6fe 355 switch(__HAL_RCC_GET_USART1_SOURCE()) \
mbed_official 340:28d1f895c6fe 356 { \
mbed_official 340:28d1f895c6fe 357 case RCC_USART1CLKSOURCE_PCLK1: \
mbed_official 340:28d1f895c6fe 358 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \
mbed_official 340:28d1f895c6fe 359 break; \
mbed_official 340:28d1f895c6fe 360 case RCC_USART1CLKSOURCE_HSI: \
mbed_official 340:28d1f895c6fe 361 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
mbed_official 340:28d1f895c6fe 362 break; \
mbed_official 340:28d1f895c6fe 363 case RCC_USART1CLKSOURCE_SYSCLK: \
mbed_official 340:28d1f895c6fe 364 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \
mbed_official 340:28d1f895c6fe 365 break; \
mbed_official 340:28d1f895c6fe 366 case RCC_USART1CLKSOURCE_LSE: \
mbed_official 340:28d1f895c6fe 367 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
mbed_official 340:28d1f895c6fe 368 break; \
mbed_official 340:28d1f895c6fe 369 default: \
mbed_official 340:28d1f895c6fe 370 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
mbed_official 340:28d1f895c6fe 371 break; \
mbed_official 340:28d1f895c6fe 372 } \
mbed_official 340:28d1f895c6fe 373 } \
mbed_official 340:28d1f895c6fe 374 else if((__HANDLE__)->Instance == USART2) \
mbed_official 340:28d1f895c6fe 375 { \
mbed_official 340:28d1f895c6fe 376 switch(__HAL_RCC_GET_USART2_SOURCE()) \
mbed_official 340:28d1f895c6fe 377 { \
mbed_official 340:28d1f895c6fe 378 case RCC_USART2CLKSOURCE_PCLK1: \
mbed_official 340:28d1f895c6fe 379 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \
mbed_official 340:28d1f895c6fe 380 break; \
mbed_official 340:28d1f895c6fe 381 case RCC_USART2CLKSOURCE_HSI: \
mbed_official 340:28d1f895c6fe 382 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
mbed_official 340:28d1f895c6fe 383 break; \
mbed_official 340:28d1f895c6fe 384 case RCC_USART2CLKSOURCE_SYSCLK: \
mbed_official 340:28d1f895c6fe 385 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \
mbed_official 340:28d1f895c6fe 386 break; \
mbed_official 340:28d1f895c6fe 387 case RCC_USART2CLKSOURCE_LSE: \
mbed_official 340:28d1f895c6fe 388 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
mbed_official 340:28d1f895c6fe 389 break; \
mbed_official 340:28d1f895c6fe 390 default: \
mbed_official 340:28d1f895c6fe 391 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
mbed_official 340:28d1f895c6fe 392 break; \
mbed_official 340:28d1f895c6fe 393 } \
mbed_official 340:28d1f895c6fe 394 } \
mbed_official 340:28d1f895c6fe 395 else if((__HANDLE__)->Instance == USART3) \
mbed_official 340:28d1f895c6fe 396 { \
mbed_official 340:28d1f895c6fe 397 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \
mbed_official 340:28d1f895c6fe 398 } \
mbed_official 340:28d1f895c6fe 399 else if((__HANDLE__)->Instance == USART4) \
mbed_official 340:28d1f895c6fe 400 { \
mbed_official 340:28d1f895c6fe 401 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \
mbed_official 340:28d1f895c6fe 402 } \
mbed_official 340:28d1f895c6fe 403 else \
mbed_official 340:28d1f895c6fe 404 { \
mbed_official 340:28d1f895c6fe 405 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
mbed_official 340:28d1f895c6fe 406 } \
mbed_official 340:28d1f895c6fe 407 } while(0)
mbed_official 340:28d1f895c6fe 408 #elif defined(STM32F091xC) || defined (STM32F098xx)
mbed_official 340:28d1f895c6fe 409 #define __HAL_UART_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__) \
mbed_official 340:28d1f895c6fe 410 do { \
mbed_official 340:28d1f895c6fe 411 if((__HANDLE__)->Instance == USART1) \
mbed_official 340:28d1f895c6fe 412 { \
mbed_official 340:28d1f895c6fe 413 switch(__HAL_RCC_GET_USART1_SOURCE()) \
mbed_official 340:28d1f895c6fe 414 { \
mbed_official 340:28d1f895c6fe 415 case RCC_USART1CLKSOURCE_PCLK1: \
mbed_official 340:28d1f895c6fe 416 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \
mbed_official 340:28d1f895c6fe 417 break; \
mbed_official 340:28d1f895c6fe 418 case RCC_USART1CLKSOURCE_HSI: \
mbed_official 340:28d1f895c6fe 419 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
mbed_official 340:28d1f895c6fe 420 break; \
mbed_official 340:28d1f895c6fe 421 case RCC_USART1CLKSOURCE_SYSCLK: \
mbed_official 340:28d1f895c6fe 422 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \
mbed_official 340:28d1f895c6fe 423 break; \
mbed_official 340:28d1f895c6fe 424 case RCC_USART1CLKSOURCE_LSE: \
mbed_official 340:28d1f895c6fe 425 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
mbed_official 340:28d1f895c6fe 426 break; \
mbed_official 340:28d1f895c6fe 427 default: \
mbed_official 340:28d1f895c6fe 428 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
mbed_official 340:28d1f895c6fe 429 break; \
mbed_official 340:28d1f895c6fe 430 } \
mbed_official 340:28d1f895c6fe 431 } \
mbed_official 340:28d1f895c6fe 432 else if((__HANDLE__)->Instance == USART2) \
mbed_official 340:28d1f895c6fe 433 { \
mbed_official 340:28d1f895c6fe 434 switch(__HAL_RCC_GET_USART2_SOURCE()) \
mbed_official 340:28d1f895c6fe 435 { \
mbed_official 340:28d1f895c6fe 436 case RCC_USART2CLKSOURCE_PCLK1: \
mbed_official 340:28d1f895c6fe 437 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \
mbed_official 340:28d1f895c6fe 438 break; \
mbed_official 340:28d1f895c6fe 439 case RCC_USART2CLKSOURCE_HSI: \
mbed_official 340:28d1f895c6fe 440 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
mbed_official 340:28d1f895c6fe 441 break; \
mbed_official 340:28d1f895c6fe 442 case RCC_USART2CLKSOURCE_SYSCLK: \
mbed_official 340:28d1f895c6fe 443 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \
mbed_official 340:28d1f895c6fe 444 break; \
mbed_official 340:28d1f895c6fe 445 case RCC_USART2CLKSOURCE_LSE: \
mbed_official 340:28d1f895c6fe 446 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
mbed_official 340:28d1f895c6fe 447 break; \
mbed_official 340:28d1f895c6fe 448 default: \
mbed_official 340:28d1f895c6fe 449 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
mbed_official 340:28d1f895c6fe 450 break; \
mbed_official 340:28d1f895c6fe 451 } \
mbed_official 340:28d1f895c6fe 452 } \
mbed_official 340:28d1f895c6fe 453 else if((__HANDLE__)->Instance == USART3) \
mbed_official 340:28d1f895c6fe 454 { \
mbed_official 340:28d1f895c6fe 455 switch(__HAL_RCC_GET_USART3_SOURCE()) \
mbed_official 340:28d1f895c6fe 456 { \
mbed_official 340:28d1f895c6fe 457 case RCC_USART3CLKSOURCE_PCLK1: \
mbed_official 340:28d1f895c6fe 458 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \
mbed_official 340:28d1f895c6fe 459 break; \
mbed_official 340:28d1f895c6fe 460 case RCC_USART3CLKSOURCE_HSI: \
mbed_official 340:28d1f895c6fe 461 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
mbed_official 340:28d1f895c6fe 462 break; \
mbed_official 340:28d1f895c6fe 463 case RCC_USART3CLKSOURCE_SYSCLK: \
mbed_official 340:28d1f895c6fe 464 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \
mbed_official 340:28d1f895c6fe 465 break; \
mbed_official 340:28d1f895c6fe 466 case RCC_USART3CLKSOURCE_LSE: \
mbed_official 340:28d1f895c6fe 467 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
mbed_official 340:28d1f895c6fe 468 break; \
mbed_official 340:28d1f895c6fe 469 default: \
mbed_official 340:28d1f895c6fe 470 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
mbed_official 340:28d1f895c6fe 471 break; \
mbed_official 340:28d1f895c6fe 472 } \
mbed_official 340:28d1f895c6fe 473 } \
mbed_official 340:28d1f895c6fe 474 else if((__HANDLE__)->Instance == USART4) \
mbed_official 340:28d1f895c6fe 475 { \
mbed_official 340:28d1f895c6fe 476 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \
mbed_official 340:28d1f895c6fe 477 } \
mbed_official 340:28d1f895c6fe 478 else if((__HANDLE__)->Instance == USART5) \
mbed_official 340:28d1f895c6fe 479 { \
mbed_official 340:28d1f895c6fe 480 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \
mbed_official 340:28d1f895c6fe 481 } \
mbed_official 340:28d1f895c6fe 482 else if((__HANDLE__)->Instance == USART6) \
mbed_official 340:28d1f895c6fe 483 { \
mbed_official 340:28d1f895c6fe 484 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \
mbed_official 340:28d1f895c6fe 485 } \
mbed_official 340:28d1f895c6fe 486 else if((__HANDLE__)->Instance == USART7) \
mbed_official 340:28d1f895c6fe 487 { \
mbed_official 340:28d1f895c6fe 488 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \
mbed_official 340:28d1f895c6fe 489 } \
mbed_official 340:28d1f895c6fe 490 else if((__HANDLE__)->Instance == USART8) \
mbed_official 340:28d1f895c6fe 491 { \
mbed_official 340:28d1f895c6fe 492 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \
mbed_official 340:28d1f895c6fe 493 } \
mbed_official 340:28d1f895c6fe 494 else \
mbed_official 340:28d1f895c6fe 495 { \
mbed_official 340:28d1f895c6fe 496 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
mbed_official 340:28d1f895c6fe 497 } \
mbed_official 340:28d1f895c6fe 498 } while(0)
mbed_official 340:28d1f895c6fe 499
mbed_official 340:28d1f895c6fe 500 #endif /* defined(STM32F030x6) || defined(STM32F031x6) || defined(STM32F038xx) */
mbed_official 340:28d1f895c6fe 501
mbed_official 340:28d1f895c6fe 502
mbed_official 340:28d1f895c6fe 503 /** @brief Computes the UART mask to apply to retrieve the received data
mbed_official 340:28d1f895c6fe 504 * according to the word length and to the parity bits activation.
mbed_official 340:28d1f895c6fe 505 * If PCE = 1, the parity bit is not included in the data extracted
mbed_official 340:28d1f895c6fe 506 * by the reception API().
mbed_official 340:28d1f895c6fe 507 * This masking operation is not carried out in the case of
mbed_official 340:28d1f895c6fe 508 * DMA transfers.
mbed_official 340:28d1f895c6fe 509 * @param __HANDLE__: specifies the UART Handle
mbed_official 340:28d1f895c6fe 510 * @retval none
mbed_official 340:28d1f895c6fe 511 */
mbed_official 340:28d1f895c6fe 512 #if defined (STM32F042x6) || defined (STM32F048xx) || \
mbed_official 340:28d1f895c6fe 513 defined (STM32F071xB) || defined (STM32F072xB) || defined (STM32F078xx) || \
mbed_official 340:28d1f895c6fe 514 defined (STM32F091xC) || defined (STM32F098xx)
mbed_official 340:28d1f895c6fe 515 #define __HAL_UART_MASK_COMPUTATION(__HANDLE__) \
mbed_official 340:28d1f895c6fe 516 do { \
mbed_official 340:28d1f895c6fe 517 if ((__HANDLE__)->Init.WordLength == UART_WORDLENGTH_9B) \
mbed_official 340:28d1f895c6fe 518 { \
mbed_official 340:28d1f895c6fe 519 if ((__HANDLE__)->Init.Parity == UART_PARITY_NONE) \
mbed_official 340:28d1f895c6fe 520 { \
mbed_official 340:28d1f895c6fe 521 (__HANDLE__)->Mask = 0x01FF ; \
mbed_official 340:28d1f895c6fe 522 } \
mbed_official 340:28d1f895c6fe 523 else \
mbed_official 340:28d1f895c6fe 524 { \
mbed_official 340:28d1f895c6fe 525 (__HANDLE__)->Mask = 0x00FF ; \
mbed_official 340:28d1f895c6fe 526 } \
mbed_official 340:28d1f895c6fe 527 } \
mbed_official 340:28d1f895c6fe 528 else if ((__HANDLE__)->Init.WordLength == UART_WORDLENGTH_8B) \
mbed_official 340:28d1f895c6fe 529 { \
mbed_official 340:28d1f895c6fe 530 if ((__HANDLE__)->Init.Parity == UART_PARITY_NONE) \
mbed_official 340:28d1f895c6fe 531 { \
mbed_official 340:28d1f895c6fe 532 (__HANDLE__)->Mask = 0x00FF ; \
mbed_official 340:28d1f895c6fe 533 } \
mbed_official 340:28d1f895c6fe 534 else \
mbed_official 340:28d1f895c6fe 535 { \
mbed_official 340:28d1f895c6fe 536 (__HANDLE__)->Mask = 0x007F ; \
mbed_official 340:28d1f895c6fe 537 } \
mbed_official 340:28d1f895c6fe 538 } \
mbed_official 340:28d1f895c6fe 539 else if ((__HANDLE__)->Init.WordLength == UART_WORDLENGTH_7B) \
mbed_official 340:28d1f895c6fe 540 { \
mbed_official 340:28d1f895c6fe 541 if ((__HANDLE__)->Init.Parity == UART_PARITY_NONE) \
mbed_official 340:28d1f895c6fe 542 { \
mbed_official 340:28d1f895c6fe 543 (__HANDLE__)->Mask = 0x007F ; \
mbed_official 340:28d1f895c6fe 544 } \
mbed_official 340:28d1f895c6fe 545 else \
mbed_official 340:28d1f895c6fe 546 { \
mbed_official 340:28d1f895c6fe 547 (__HANDLE__)->Mask = 0x003F ; \
mbed_official 340:28d1f895c6fe 548 } \
mbed_official 340:28d1f895c6fe 549 } \
mbed_official 340:28d1f895c6fe 550 } while(0)
mbed_official 340:28d1f895c6fe 551 #else
mbed_official 340:28d1f895c6fe 552 #define __HAL_UART_MASK_COMPUTATION(__HANDLE__) \
mbed_official 340:28d1f895c6fe 553 do { \
mbed_official 340:28d1f895c6fe 554 if ((__HANDLE__)->Init.WordLength == UART_WORDLENGTH_9B) \
mbed_official 340:28d1f895c6fe 555 { \
mbed_official 340:28d1f895c6fe 556 if ((__HANDLE__)->Init.Parity == UART_PARITY_NONE) \
mbed_official 340:28d1f895c6fe 557 { \
mbed_official 340:28d1f895c6fe 558 (__HANDLE__)->Mask = 0x01FF ; \
mbed_official 340:28d1f895c6fe 559 } \
mbed_official 340:28d1f895c6fe 560 else \
mbed_official 340:28d1f895c6fe 561 { \
mbed_official 340:28d1f895c6fe 562 (__HANDLE__)->Mask = 0x00FF ; \
mbed_official 340:28d1f895c6fe 563 } \
mbed_official 340:28d1f895c6fe 564 } \
mbed_official 340:28d1f895c6fe 565 else if ((__HANDLE__)->Init.WordLength == UART_WORDLENGTH_8B) \
mbed_official 340:28d1f895c6fe 566 { \
mbed_official 340:28d1f895c6fe 567 if ((__HANDLE__)->Init.Parity == UART_PARITY_NONE) \
mbed_official 340:28d1f895c6fe 568 { \
mbed_official 340:28d1f895c6fe 569 (__HANDLE__)->Mask = 0x00FF ; \
mbed_official 340:28d1f895c6fe 570 } \
mbed_official 340:28d1f895c6fe 571 else \
mbed_official 340:28d1f895c6fe 572 { \
mbed_official 340:28d1f895c6fe 573 (__HANDLE__)->Mask = 0x007F ; \
mbed_official 340:28d1f895c6fe 574 } \
mbed_official 340:28d1f895c6fe 575 } \
mbed_official 340:28d1f895c6fe 576 } while(0)
mbed_official 340:28d1f895c6fe 577 #endif /* defined (STM32F042x6) || defined (STM32F048xx) || \
mbed_official 340:28d1f895c6fe 578 defined (STM32F071xB) || defined (STM32F072xB) || defined (STM32F078xx) || \
mbed_official 340:28d1f895c6fe 579 defined (STM32F091xC) || defined (STM32F098xx) */
mbed_official 340:28d1f895c6fe 580 /**
mbed_official 340:28d1f895c6fe 581 * @}
mbed_official 340:28d1f895c6fe 582 */
mbed_official 340:28d1f895c6fe 583
mbed_official 340:28d1f895c6fe 584 /* Exported functions --------------------------------------------------------*/
mbed_official 340:28d1f895c6fe 585 /** @addtogroup UARTEx_Exported_Functions
mbed_official 340:28d1f895c6fe 586 * @{
mbed_official 340:28d1f895c6fe 587 */
mbed_official 340:28d1f895c6fe 588
mbed_official 340:28d1f895c6fe 589 /** @addtogroup UARTEx_Exported_Functions_Group1
mbed_official 340:28d1f895c6fe 590 * @brief Extended Initialization and Configuration Functions
mbed_official 340:28d1f895c6fe 591 * @{
mbed_official 340:28d1f895c6fe 592 */
mbed_official 340:28d1f895c6fe 593 /* Initialization and de-initialization functions ****************************/
mbed_official 340:28d1f895c6fe 594 HAL_StatusTypeDef HAL_RS485Ex_Init(UART_HandleTypeDef *huart, uint32_t UART_DEPolarity, uint32_t UART_DEAssertionTime, uint32_t UART_DEDeassertionTime);
mbed_official 340:28d1f895c6fe 595 HAL_StatusTypeDef HAL_LIN_Init(UART_HandleTypeDef *huart, uint32_t BreakDetectLength);
mbed_official 340:28d1f895c6fe 596 HAL_StatusTypeDef HAL_UARTEx_StopModeWakeUpSourceConfig(UART_HandleTypeDef *huart, UART_WakeUpTypeDef WakeUpSelection);
mbed_official 340:28d1f895c6fe 597 HAL_StatusTypeDef HAL_UARTEx_EnableStopMode(UART_HandleTypeDef *huart);
mbed_official 340:28d1f895c6fe 598 HAL_StatusTypeDef HAL_UARTEx_DisableStopMode(UART_HandleTypeDef *huart);
mbed_official 340:28d1f895c6fe 599 /**
mbed_official 340:28d1f895c6fe 600 * @}
mbed_official 340:28d1f895c6fe 601 */
mbed_official 340:28d1f895c6fe 602
mbed_official 340:28d1f895c6fe 603 /** @addtogroup UARTEx_Exported_Functions_Group2
mbed_official 340:28d1f895c6fe 604 * @brief Extended I/O operation functions
mbed_official 340:28d1f895c6fe 605 * @{
mbed_official 340:28d1f895c6fe 606 */
mbed_official 340:28d1f895c6fe 607
mbed_official 340:28d1f895c6fe 608 /* I/O operation functions ***************************************************/
mbed_official 340:28d1f895c6fe 609 void HAL_UART_IRQHandler(UART_HandleTypeDef *huart);
mbed_official 340:28d1f895c6fe 610 void HAL_UART_WakeupCallback(UART_HandleTypeDef *huart);
mbed_official 340:28d1f895c6fe 611 /**
mbed_official 340:28d1f895c6fe 612 * @}
mbed_official 340:28d1f895c6fe 613 */
mbed_official 340:28d1f895c6fe 614
mbed_official 340:28d1f895c6fe 615 /** @addtogroup UARTEx_Exported_Functions_Group3
mbed_official 340:28d1f895c6fe 616 * @brief Extended Peripheral Control functions
mbed_official 340:28d1f895c6fe 617 * @{
mbed_official 340:28d1f895c6fe 618 */
mbed_official 340:28d1f895c6fe 619
mbed_official 340:28d1f895c6fe 620 /* Peripheral Control functions **********************************************/
mbed_official 340:28d1f895c6fe 621 void UART_AdvFeatureConfig(UART_HandleTypeDef *huart);
mbed_official 340:28d1f895c6fe 622 HAL_StatusTypeDef HAL_MultiProcessorEx_AddressLength_Set(UART_HandleTypeDef *huart, uint32_t AddressLength);
mbed_official 340:28d1f895c6fe 623 HAL_StatusTypeDef HAL_LIN_SendBreak(UART_HandleTypeDef *huart);
mbed_official 340:28d1f895c6fe 624 /**
mbed_official 340:28d1f895c6fe 625 * @}
mbed_official 340:28d1f895c6fe 626 */
mbed_official 340:28d1f895c6fe 627 /* Peripheral State functions ************************************************/
mbed_official 340:28d1f895c6fe 628
mbed_official 340:28d1f895c6fe 629 /**
mbed_official 340:28d1f895c6fe 630 * @}
mbed_official 340:28d1f895c6fe 631 */
mbed_official 340:28d1f895c6fe 632
mbed_official 340:28d1f895c6fe 633
mbed_official 340:28d1f895c6fe 634 /**
mbed_official 340:28d1f895c6fe 635 * @}
mbed_official 340:28d1f895c6fe 636 */
mbed_official 340:28d1f895c6fe 637
mbed_official 340:28d1f895c6fe 638 /**
mbed_official 340:28d1f895c6fe 639 * @}
mbed_official 340:28d1f895c6fe 640 */
mbed_official 340:28d1f895c6fe 641
mbed_official 340:28d1f895c6fe 642 #ifdef __cplusplus
mbed_official 340:28d1f895c6fe 643 }
mbed_official 340:28d1f895c6fe 644 #endif
mbed_official 340:28d1f895c6fe 645
mbed_official 340:28d1f895c6fe 646 #endif /* __STM32F0xx_HAL_UART_EX_H */
mbed_official 340:28d1f895c6fe 647
mbed_official 340:28d1f895c6fe 648 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
mbed_official 340:28d1f895c6fe 649