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

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Committer:
AnnaBridge
Date:
Thu Nov 08 11:45:42 2018 +0000
Revision:
171:3a7713b1edbc
mbed library. Release version 164

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 171:3a7713b1edbc 1 /**
AnnaBridge 171:3a7713b1edbc 2 ******************************************************************************
AnnaBridge 171:3a7713b1edbc 3 * @file stm32f7xx_hal_uart_ex.h
AnnaBridge 171:3a7713b1edbc 4 * @author MCD Application Team
AnnaBridge 171:3a7713b1edbc 5 * @brief Header file of UART HAL Extension module.
AnnaBridge 171:3a7713b1edbc 6 ******************************************************************************
AnnaBridge 171:3a7713b1edbc 7 * @attention
AnnaBridge 171:3a7713b1edbc 8 *
AnnaBridge 171:3a7713b1edbc 9 * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
AnnaBridge 171:3a7713b1edbc 10 *
AnnaBridge 171:3a7713b1edbc 11 * Redistribution and use in source and binary forms, with or without modification,
AnnaBridge 171:3a7713b1edbc 12 * are permitted provided that the following conditions are met:
AnnaBridge 171:3a7713b1edbc 13 * 1. Redistributions of source code must retain the above copyright notice,
AnnaBridge 171:3a7713b1edbc 14 * this list of conditions and the following disclaimer.
AnnaBridge 171:3a7713b1edbc 15 * 2. Redistributions in binary form must reproduce the above copyright notice,
AnnaBridge 171:3a7713b1edbc 16 * this list of conditions and the following disclaimer in the documentation
AnnaBridge 171:3a7713b1edbc 17 * and/or other materials provided with the distribution.
AnnaBridge 171:3a7713b1edbc 18 * 3. Neither the name of STMicroelectronics nor the names of its contributors
AnnaBridge 171:3a7713b1edbc 19 * may be used to endorse or promote products derived from this software
AnnaBridge 171:3a7713b1edbc 20 * without specific prior written permission.
AnnaBridge 171:3a7713b1edbc 21 *
AnnaBridge 171:3a7713b1edbc 22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AnnaBridge 171:3a7713b1edbc 23 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
AnnaBridge 171:3a7713b1edbc 24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
AnnaBridge 171:3a7713b1edbc 25 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
AnnaBridge 171:3a7713b1edbc 26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
AnnaBridge 171:3a7713b1edbc 27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
AnnaBridge 171:3a7713b1edbc 28 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
AnnaBridge 171:3a7713b1edbc 29 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
AnnaBridge 171:3a7713b1edbc 30 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
AnnaBridge 171:3a7713b1edbc 31 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
AnnaBridge 171:3a7713b1edbc 32 *
AnnaBridge 171:3a7713b1edbc 33 ******************************************************************************
AnnaBridge 171:3a7713b1edbc 34 */
AnnaBridge 171:3a7713b1edbc 35
AnnaBridge 171:3a7713b1edbc 36 /* Define to prevent recursive inclusion -------------------------------------*/
AnnaBridge 171:3a7713b1edbc 37 #ifndef __STM32F7xx_HAL_UART_EX_H
AnnaBridge 171:3a7713b1edbc 38 #define __STM32F7xx_HAL_UART_EX_H
AnnaBridge 171:3a7713b1edbc 39
AnnaBridge 171:3a7713b1edbc 40 #ifdef __cplusplus
AnnaBridge 171:3a7713b1edbc 41 extern "C" {
AnnaBridge 171:3a7713b1edbc 42 #endif
AnnaBridge 171:3a7713b1edbc 43
AnnaBridge 171:3a7713b1edbc 44 /* Includes ------------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 45 #include "stm32f7xx_hal_def.h"
AnnaBridge 171:3a7713b1edbc 46
AnnaBridge 171:3a7713b1edbc 47 /** @addtogroup STM32F7xx_HAL_Driver
AnnaBridge 171:3a7713b1edbc 48 * @{
AnnaBridge 171:3a7713b1edbc 49 */
AnnaBridge 171:3a7713b1edbc 50
AnnaBridge 171:3a7713b1edbc 51 /** @addtogroup UARTEx
AnnaBridge 171:3a7713b1edbc 52 * @{
AnnaBridge 171:3a7713b1edbc 53 */
AnnaBridge 171:3a7713b1edbc 54
AnnaBridge 171:3a7713b1edbc 55 /* Exported types ------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 56 /* Exported constants --------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 57 /** @defgroup UARTEx_Exported_Constants UARTEx Exported Constants
AnnaBridge 171:3a7713b1edbc 58 * @{
AnnaBridge 171:3a7713b1edbc 59 */
AnnaBridge 171:3a7713b1edbc 60
AnnaBridge 171:3a7713b1edbc 61 /** @defgroup UARTEx_Word_Length UARTEx Word Length
AnnaBridge 171:3a7713b1edbc 62 * @{
AnnaBridge 171:3a7713b1edbc 63 */
AnnaBridge 171:3a7713b1edbc 64 #define UART_WORDLENGTH_7B ((uint32_t)USART_CR1_M_1)
AnnaBridge 171:3a7713b1edbc 65 #define UART_WORDLENGTH_8B ((uint32_t)0x0000U)
AnnaBridge 171:3a7713b1edbc 66 #define UART_WORDLENGTH_9B ((uint32_t)USART_CR1_M_0)
AnnaBridge 171:3a7713b1edbc 67 #define IS_UART_WORD_LENGTH(__LENGTH__) (((__LENGTH__) == UART_WORDLENGTH_7B) || \
AnnaBridge 171:3a7713b1edbc 68 ((__LENGTH__) == UART_WORDLENGTH_8B) || \
AnnaBridge 171:3a7713b1edbc 69 ((__LENGTH__) == UART_WORDLENGTH_9B))
AnnaBridge 171:3a7713b1edbc 70 #define IS_LIN_WORD_LENGTH(LENGTH) (((LENGTH) == UART_WORDLENGTH_8B))
AnnaBridge 171:3a7713b1edbc 71 /**
AnnaBridge 171:3a7713b1edbc 72 * @}
AnnaBridge 171:3a7713b1edbc 73 */
AnnaBridge 171:3a7713b1edbc 74
AnnaBridge 171:3a7713b1edbc 75
AnnaBridge 171:3a7713b1edbc 76 /** @defgroup UARTEx_WakeUp_Address_Length UARTEx WakeUp Address Length
AnnaBridge 171:3a7713b1edbc 77 * @{
AnnaBridge 171:3a7713b1edbc 78 */
AnnaBridge 171:3a7713b1edbc 79 #define UART_ADDRESS_DETECT_4B ((uint32_t)0x00000000U)
AnnaBridge 171:3a7713b1edbc 80 #define UART_ADDRESS_DETECT_7B ((uint32_t)USART_CR2_ADDM7)
AnnaBridge 171:3a7713b1edbc 81 #define IS_UART_ADDRESSLENGTH_DETECT(__ADDRESS__) (((__ADDRESS__) == UART_ADDRESS_DETECT_4B) || \
AnnaBridge 171:3a7713b1edbc 82 ((__ADDRESS__) == UART_ADDRESS_DETECT_7B))
AnnaBridge 171:3a7713b1edbc 83 /**
AnnaBridge 171:3a7713b1edbc 84 * @}
AnnaBridge 171:3a7713b1edbc 85 */
AnnaBridge 171:3a7713b1edbc 86
AnnaBridge 171:3a7713b1edbc 87
AnnaBridge 171:3a7713b1edbc 88 /**
AnnaBridge 171:3a7713b1edbc 89 * @}
AnnaBridge 171:3a7713b1edbc 90 */
AnnaBridge 171:3a7713b1edbc 91
AnnaBridge 171:3a7713b1edbc 92 /* Exported macro ------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 93
AnnaBridge 171:3a7713b1edbc 94 /** @defgroup UARTEx_Exported_Macros UARTEx Exported Macros
AnnaBridge 171:3a7713b1edbc 95 * @{
AnnaBridge 171:3a7713b1edbc 96 */
AnnaBridge 171:3a7713b1edbc 97
AnnaBridge 171:3a7713b1edbc 98 /** @brief Reports the UART clock source.
AnnaBridge 171:3a7713b1edbc 99 * @param __HANDLE__ specifies the UART Handle
AnnaBridge 171:3a7713b1edbc 100 * @param __CLOCKSOURCE__ output variable
AnnaBridge 171:3a7713b1edbc 101 * @retval UART clocking source, written in __CLOCKSOURCE__.
AnnaBridge 171:3a7713b1edbc 102 */
AnnaBridge 171:3a7713b1edbc 103 #define UART_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__) \
AnnaBridge 171:3a7713b1edbc 104 do { \
AnnaBridge 171:3a7713b1edbc 105 if((__HANDLE__)->Instance == USART1) \
AnnaBridge 171:3a7713b1edbc 106 { \
AnnaBridge 171:3a7713b1edbc 107 switch(__HAL_RCC_GET_USART1_SOURCE()) \
AnnaBridge 171:3a7713b1edbc 108 { \
AnnaBridge 171:3a7713b1edbc 109 case RCC_USART1CLKSOURCE_PCLK2: \
AnnaBridge 171:3a7713b1edbc 110 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK2; \
AnnaBridge 171:3a7713b1edbc 111 break; \
AnnaBridge 171:3a7713b1edbc 112 case RCC_USART1CLKSOURCE_HSI: \
AnnaBridge 171:3a7713b1edbc 113 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
AnnaBridge 171:3a7713b1edbc 114 break; \
AnnaBridge 171:3a7713b1edbc 115 case RCC_USART1CLKSOURCE_SYSCLK: \
AnnaBridge 171:3a7713b1edbc 116 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \
AnnaBridge 171:3a7713b1edbc 117 break; \
AnnaBridge 171:3a7713b1edbc 118 case RCC_USART1CLKSOURCE_LSE: \
AnnaBridge 171:3a7713b1edbc 119 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
AnnaBridge 171:3a7713b1edbc 120 break; \
AnnaBridge 171:3a7713b1edbc 121 default: \
AnnaBridge 171:3a7713b1edbc 122 break; \
AnnaBridge 171:3a7713b1edbc 123 } \
AnnaBridge 171:3a7713b1edbc 124 } \
AnnaBridge 171:3a7713b1edbc 125 else if((__HANDLE__)->Instance == USART2) \
AnnaBridge 171:3a7713b1edbc 126 { \
AnnaBridge 171:3a7713b1edbc 127 switch(__HAL_RCC_GET_USART2_SOURCE()) \
AnnaBridge 171:3a7713b1edbc 128 { \
AnnaBridge 171:3a7713b1edbc 129 case RCC_USART2CLKSOURCE_PCLK1: \
AnnaBridge 171:3a7713b1edbc 130 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \
AnnaBridge 171:3a7713b1edbc 131 break; \
AnnaBridge 171:3a7713b1edbc 132 case RCC_USART2CLKSOURCE_HSI: \
AnnaBridge 171:3a7713b1edbc 133 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
AnnaBridge 171:3a7713b1edbc 134 break; \
AnnaBridge 171:3a7713b1edbc 135 case RCC_USART2CLKSOURCE_SYSCLK: \
AnnaBridge 171:3a7713b1edbc 136 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \
AnnaBridge 171:3a7713b1edbc 137 break; \
AnnaBridge 171:3a7713b1edbc 138 case RCC_USART2CLKSOURCE_LSE: \
AnnaBridge 171:3a7713b1edbc 139 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
AnnaBridge 171:3a7713b1edbc 140 break; \
AnnaBridge 171:3a7713b1edbc 141 default: \
AnnaBridge 171:3a7713b1edbc 142 break; \
AnnaBridge 171:3a7713b1edbc 143 } \
AnnaBridge 171:3a7713b1edbc 144 } \
AnnaBridge 171:3a7713b1edbc 145 else if((__HANDLE__)->Instance == USART3) \
AnnaBridge 171:3a7713b1edbc 146 { \
AnnaBridge 171:3a7713b1edbc 147 switch(__HAL_RCC_GET_USART3_SOURCE()) \
AnnaBridge 171:3a7713b1edbc 148 { \
AnnaBridge 171:3a7713b1edbc 149 case RCC_USART3CLKSOURCE_PCLK1: \
AnnaBridge 171:3a7713b1edbc 150 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \
AnnaBridge 171:3a7713b1edbc 151 break; \
AnnaBridge 171:3a7713b1edbc 152 case RCC_USART3CLKSOURCE_HSI: \
AnnaBridge 171:3a7713b1edbc 153 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
AnnaBridge 171:3a7713b1edbc 154 break; \
AnnaBridge 171:3a7713b1edbc 155 case RCC_USART3CLKSOURCE_SYSCLK: \
AnnaBridge 171:3a7713b1edbc 156 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \
AnnaBridge 171:3a7713b1edbc 157 break; \
AnnaBridge 171:3a7713b1edbc 158 case RCC_USART3CLKSOURCE_LSE: \
AnnaBridge 171:3a7713b1edbc 159 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
AnnaBridge 171:3a7713b1edbc 160 break; \
AnnaBridge 171:3a7713b1edbc 161 default: \
AnnaBridge 171:3a7713b1edbc 162 break; \
AnnaBridge 171:3a7713b1edbc 163 } \
AnnaBridge 171:3a7713b1edbc 164 } \
AnnaBridge 171:3a7713b1edbc 165 else if((__HANDLE__)->Instance == UART4) \
AnnaBridge 171:3a7713b1edbc 166 { \
AnnaBridge 171:3a7713b1edbc 167 switch(__HAL_RCC_GET_UART4_SOURCE()) \
AnnaBridge 171:3a7713b1edbc 168 { \
AnnaBridge 171:3a7713b1edbc 169 case RCC_UART4CLKSOURCE_PCLK1: \
AnnaBridge 171:3a7713b1edbc 170 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \
AnnaBridge 171:3a7713b1edbc 171 break; \
AnnaBridge 171:3a7713b1edbc 172 case RCC_UART4CLKSOURCE_HSI: \
AnnaBridge 171:3a7713b1edbc 173 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
AnnaBridge 171:3a7713b1edbc 174 break; \
AnnaBridge 171:3a7713b1edbc 175 case RCC_UART4CLKSOURCE_SYSCLK: \
AnnaBridge 171:3a7713b1edbc 176 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \
AnnaBridge 171:3a7713b1edbc 177 break; \
AnnaBridge 171:3a7713b1edbc 178 case RCC_UART4CLKSOURCE_LSE: \
AnnaBridge 171:3a7713b1edbc 179 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
AnnaBridge 171:3a7713b1edbc 180 break; \
AnnaBridge 171:3a7713b1edbc 181 default: \
AnnaBridge 171:3a7713b1edbc 182 break; \
AnnaBridge 171:3a7713b1edbc 183 } \
AnnaBridge 171:3a7713b1edbc 184 } \
AnnaBridge 171:3a7713b1edbc 185 else if ((__HANDLE__)->Instance == UART5) \
AnnaBridge 171:3a7713b1edbc 186 { \
AnnaBridge 171:3a7713b1edbc 187 switch(__HAL_RCC_GET_UART5_SOURCE()) \
AnnaBridge 171:3a7713b1edbc 188 { \
AnnaBridge 171:3a7713b1edbc 189 case RCC_UART5CLKSOURCE_PCLK1: \
AnnaBridge 171:3a7713b1edbc 190 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \
AnnaBridge 171:3a7713b1edbc 191 break; \
AnnaBridge 171:3a7713b1edbc 192 case RCC_UART5CLKSOURCE_HSI: \
AnnaBridge 171:3a7713b1edbc 193 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
AnnaBridge 171:3a7713b1edbc 194 break; \
AnnaBridge 171:3a7713b1edbc 195 case RCC_UART5CLKSOURCE_SYSCLK: \
AnnaBridge 171:3a7713b1edbc 196 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \
AnnaBridge 171:3a7713b1edbc 197 break; \
AnnaBridge 171:3a7713b1edbc 198 case RCC_UART5CLKSOURCE_LSE: \
AnnaBridge 171:3a7713b1edbc 199 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
AnnaBridge 171:3a7713b1edbc 200 break; \
AnnaBridge 171:3a7713b1edbc 201 default: \
AnnaBridge 171:3a7713b1edbc 202 break; \
AnnaBridge 171:3a7713b1edbc 203 } \
AnnaBridge 171:3a7713b1edbc 204 } \
AnnaBridge 171:3a7713b1edbc 205 else if((__HANDLE__)->Instance == USART6) \
AnnaBridge 171:3a7713b1edbc 206 { \
AnnaBridge 171:3a7713b1edbc 207 switch(__HAL_RCC_GET_USART6_SOURCE()) \
AnnaBridge 171:3a7713b1edbc 208 { \
AnnaBridge 171:3a7713b1edbc 209 case RCC_USART6CLKSOURCE_PCLK2: \
AnnaBridge 171:3a7713b1edbc 210 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK2; \
AnnaBridge 171:3a7713b1edbc 211 break; \
AnnaBridge 171:3a7713b1edbc 212 case RCC_USART6CLKSOURCE_HSI: \
AnnaBridge 171:3a7713b1edbc 213 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
AnnaBridge 171:3a7713b1edbc 214 break; \
AnnaBridge 171:3a7713b1edbc 215 case RCC_USART6CLKSOURCE_SYSCLK: \
AnnaBridge 171:3a7713b1edbc 216 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \
AnnaBridge 171:3a7713b1edbc 217 break; \
AnnaBridge 171:3a7713b1edbc 218 case RCC_USART6CLKSOURCE_LSE: \
AnnaBridge 171:3a7713b1edbc 219 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
AnnaBridge 171:3a7713b1edbc 220 break; \
AnnaBridge 171:3a7713b1edbc 221 default: \
AnnaBridge 171:3a7713b1edbc 222 break; \
AnnaBridge 171:3a7713b1edbc 223 } \
AnnaBridge 171:3a7713b1edbc 224 } \
AnnaBridge 171:3a7713b1edbc 225 else if ((__HANDLE__)->Instance == UART7) \
AnnaBridge 171:3a7713b1edbc 226 { \
AnnaBridge 171:3a7713b1edbc 227 switch(__HAL_RCC_GET_UART7_SOURCE()) \
AnnaBridge 171:3a7713b1edbc 228 { \
AnnaBridge 171:3a7713b1edbc 229 case RCC_UART7CLKSOURCE_PCLK1: \
AnnaBridge 171:3a7713b1edbc 230 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \
AnnaBridge 171:3a7713b1edbc 231 break; \
AnnaBridge 171:3a7713b1edbc 232 case RCC_UART7CLKSOURCE_HSI: \
AnnaBridge 171:3a7713b1edbc 233 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
AnnaBridge 171:3a7713b1edbc 234 break; \
AnnaBridge 171:3a7713b1edbc 235 case RCC_UART7CLKSOURCE_SYSCLK: \
AnnaBridge 171:3a7713b1edbc 236 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \
AnnaBridge 171:3a7713b1edbc 237 break; \
AnnaBridge 171:3a7713b1edbc 238 case RCC_UART7CLKSOURCE_LSE: \
AnnaBridge 171:3a7713b1edbc 239 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
AnnaBridge 171:3a7713b1edbc 240 break; \
AnnaBridge 171:3a7713b1edbc 241 default: \
AnnaBridge 171:3a7713b1edbc 242 break; \
AnnaBridge 171:3a7713b1edbc 243 } \
AnnaBridge 171:3a7713b1edbc 244 } \
AnnaBridge 171:3a7713b1edbc 245 else if ((__HANDLE__)->Instance == UART8) \
AnnaBridge 171:3a7713b1edbc 246 { \
AnnaBridge 171:3a7713b1edbc 247 switch(__HAL_RCC_GET_UART8_SOURCE()) \
AnnaBridge 171:3a7713b1edbc 248 { \
AnnaBridge 171:3a7713b1edbc 249 case RCC_UART8CLKSOURCE_PCLK1: \
AnnaBridge 171:3a7713b1edbc 250 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \
AnnaBridge 171:3a7713b1edbc 251 break; \
AnnaBridge 171:3a7713b1edbc 252 case RCC_UART8CLKSOURCE_HSI: \
AnnaBridge 171:3a7713b1edbc 253 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
AnnaBridge 171:3a7713b1edbc 254 break; \
AnnaBridge 171:3a7713b1edbc 255 case RCC_UART8CLKSOURCE_SYSCLK: \
AnnaBridge 171:3a7713b1edbc 256 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \
AnnaBridge 171:3a7713b1edbc 257 break; \
AnnaBridge 171:3a7713b1edbc 258 case RCC_UART8CLKSOURCE_LSE: \
AnnaBridge 171:3a7713b1edbc 259 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
AnnaBridge 171:3a7713b1edbc 260 break; \
AnnaBridge 171:3a7713b1edbc 261 default: \
AnnaBridge 171:3a7713b1edbc 262 break; \
AnnaBridge 171:3a7713b1edbc 263 } \
AnnaBridge 171:3a7713b1edbc 264 } \
AnnaBridge 171:3a7713b1edbc 265 } while(0)
AnnaBridge 171:3a7713b1edbc 266
AnnaBridge 171:3a7713b1edbc 267 /** @brief Reports the UART mask to apply to retrieve the received data
AnnaBridge 171:3a7713b1edbc 268 * according to the word length and to the parity bits activation.
AnnaBridge 171:3a7713b1edbc 269 * If PCE = 1, the parity bit is not included in the data extracted
AnnaBridge 171:3a7713b1edbc 270 * by the reception API().
AnnaBridge 171:3a7713b1edbc 271 * This masking operation is not carried out in the case of
AnnaBridge 171:3a7713b1edbc 272 * DMA transfers.
AnnaBridge 171:3a7713b1edbc 273 * @param __HANDLE__ specifies the UART Handle
AnnaBridge 171:3a7713b1edbc 274 * @retval mask to apply to UART RDR register value.
AnnaBridge 171:3a7713b1edbc 275 */
AnnaBridge 171:3a7713b1edbc 276 #define UART_MASK_COMPUTATION(__HANDLE__) \
AnnaBridge 171:3a7713b1edbc 277 do { \
AnnaBridge 171:3a7713b1edbc 278 if ((__HANDLE__)->Init.WordLength == UART_WORDLENGTH_9B) \
AnnaBridge 171:3a7713b1edbc 279 { \
AnnaBridge 171:3a7713b1edbc 280 if ((__HANDLE__)->Init.Parity == UART_PARITY_NONE) \
AnnaBridge 171:3a7713b1edbc 281 { \
AnnaBridge 171:3a7713b1edbc 282 (__HANDLE__)->Mask = 0x01FF ; \
AnnaBridge 171:3a7713b1edbc 283 } \
AnnaBridge 171:3a7713b1edbc 284 else \
AnnaBridge 171:3a7713b1edbc 285 { \
AnnaBridge 171:3a7713b1edbc 286 (__HANDLE__)->Mask = 0x00FF ; \
AnnaBridge 171:3a7713b1edbc 287 } \
AnnaBridge 171:3a7713b1edbc 288 } \
AnnaBridge 171:3a7713b1edbc 289 else if ((__HANDLE__)->Init.WordLength == UART_WORDLENGTH_8B) \
AnnaBridge 171:3a7713b1edbc 290 { \
AnnaBridge 171:3a7713b1edbc 291 if ((__HANDLE__)->Init.Parity == UART_PARITY_NONE) \
AnnaBridge 171:3a7713b1edbc 292 { \
AnnaBridge 171:3a7713b1edbc 293 (__HANDLE__)->Mask = 0x00FF ; \
AnnaBridge 171:3a7713b1edbc 294 } \
AnnaBridge 171:3a7713b1edbc 295 else \
AnnaBridge 171:3a7713b1edbc 296 { \
AnnaBridge 171:3a7713b1edbc 297 (__HANDLE__)->Mask = 0x007F ; \
AnnaBridge 171:3a7713b1edbc 298 } \
AnnaBridge 171:3a7713b1edbc 299 } \
AnnaBridge 171:3a7713b1edbc 300 else if ((__HANDLE__)->Init.WordLength == UART_WORDLENGTH_7B) \
AnnaBridge 171:3a7713b1edbc 301 { \
AnnaBridge 171:3a7713b1edbc 302 if ((__HANDLE__)->Init.Parity == UART_PARITY_NONE) \
AnnaBridge 171:3a7713b1edbc 303 { \
AnnaBridge 171:3a7713b1edbc 304 (__HANDLE__)->Mask = 0x007F ; \
AnnaBridge 171:3a7713b1edbc 305 } \
AnnaBridge 171:3a7713b1edbc 306 else \
AnnaBridge 171:3a7713b1edbc 307 { \
AnnaBridge 171:3a7713b1edbc 308 (__HANDLE__)->Mask = 0x003F ; \
AnnaBridge 171:3a7713b1edbc 309 } \
AnnaBridge 171:3a7713b1edbc 310 } \
AnnaBridge 171:3a7713b1edbc 311 } while(0)
AnnaBridge 171:3a7713b1edbc 312
AnnaBridge 171:3a7713b1edbc 313 /**
AnnaBridge 171:3a7713b1edbc 314 * @}
AnnaBridge 171:3a7713b1edbc 315 */
AnnaBridge 171:3a7713b1edbc 316
AnnaBridge 171:3a7713b1edbc 317 /* Exported functions --------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 318
AnnaBridge 171:3a7713b1edbc 319 /** @addtogroup UARTEx_Exported_Functions
AnnaBridge 171:3a7713b1edbc 320 * @{
AnnaBridge 171:3a7713b1edbc 321 */
AnnaBridge 171:3a7713b1edbc 322
AnnaBridge 171:3a7713b1edbc 323 /** @addtogroup UARTEx_Exported_Functions_Group1
AnnaBridge 171:3a7713b1edbc 324 * @{
AnnaBridge 171:3a7713b1edbc 325 */
AnnaBridge 171:3a7713b1edbc 326
AnnaBridge 171:3a7713b1edbc 327 /* Initialization and de-initialization functions ****************************/
AnnaBridge 171:3a7713b1edbc 328 HAL_StatusTypeDef HAL_RS485Ex_Init(UART_HandleTypeDef *huart, uint32_t Polarity, uint32_t AssertionTime, uint32_t DeassertionTime);
AnnaBridge 171:3a7713b1edbc 329
AnnaBridge 171:3a7713b1edbc 330 /**
AnnaBridge 171:3a7713b1edbc 331 * @}
AnnaBridge 171:3a7713b1edbc 332 */
AnnaBridge 171:3a7713b1edbc 333
AnnaBridge 171:3a7713b1edbc 334 /**
AnnaBridge 171:3a7713b1edbc 335 * @}
AnnaBridge 171:3a7713b1edbc 336 */
AnnaBridge 171:3a7713b1edbc 337
AnnaBridge 171:3a7713b1edbc 338 /** @addtogroup UARTEx_Exported_Functions_Group3
AnnaBridge 171:3a7713b1edbc 339 * @{
AnnaBridge 171:3a7713b1edbc 340 */
AnnaBridge 171:3a7713b1edbc 341
AnnaBridge 171:3a7713b1edbc 342 /* Peripheral Control functions **********************************************/
AnnaBridge 171:3a7713b1edbc 343 HAL_StatusTypeDef HAL_MultiProcessorEx_AddressLength_Set(UART_HandleTypeDef *huart, uint32_t AddressLength);
AnnaBridge 171:3a7713b1edbc 344
AnnaBridge 171:3a7713b1edbc 345 /**
AnnaBridge 171:3a7713b1edbc 346 * @}
AnnaBridge 171:3a7713b1edbc 347 */
AnnaBridge 171:3a7713b1edbc 348
AnnaBridge 171:3a7713b1edbc 349 /**
AnnaBridge 171:3a7713b1edbc 350 * @}
AnnaBridge 171:3a7713b1edbc 351 */
AnnaBridge 171:3a7713b1edbc 352
AnnaBridge 171:3a7713b1edbc 353 /**
AnnaBridge 171:3a7713b1edbc 354 * @}
AnnaBridge 171:3a7713b1edbc 355 */
AnnaBridge 171:3a7713b1edbc 356
AnnaBridge 171:3a7713b1edbc 357 #ifdef __cplusplus
AnnaBridge 171:3a7713b1edbc 358 }
AnnaBridge 171:3a7713b1edbc 359 #endif
AnnaBridge 171:3a7713b1edbc 360
AnnaBridge 171:3a7713b1edbc 361 #endif /* __STM32F7xx_HAL_UART_EX_H */
AnnaBridge 171:3a7713b1edbc 362
AnnaBridge 171:3a7713b1edbc 363 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/