mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

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

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

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

Import librarymbed

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

Committer:
mbed_official
Date:
Wed Jul 01 09:45:11 2015 +0100
Revision:
579:53297373a894
Parent:
489:119543c9f674
Synchronized with git revision d5b4d2ab9c47edb4dc5776e7177b0c2263459081

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

Initial version of drivers for SAMR21

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 376:cb4d9db17537 1 /**
mbed_official 376:cb4d9db17537 2 ******************************************************************************
mbed_official 376:cb4d9db17537 3 * @file stm32l0xx_hal_uart_ex.h
mbed_official 376:cb4d9db17537 4 * @author MCD Application Team
mbed_official 489:119543c9f674 5 * @version V1.2.0
mbed_official 489:119543c9f674 6 * @date 06-February-2015
mbed_official 376:cb4d9db17537 7 * @brief Header file of UART HAL Extension module.
mbed_official 376:cb4d9db17537 8 ******************************************************************************
mbed_official 376:cb4d9db17537 9 * @attention
mbed_official 376:cb4d9db17537 10 *
mbed_official 489:119543c9f674 11 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
mbed_official 376:cb4d9db17537 12 *
mbed_official 376:cb4d9db17537 13 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 376:cb4d9db17537 14 * are permitted provided that the following conditions are met:
mbed_official 376:cb4d9db17537 15 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 376:cb4d9db17537 16 * this list of conditions and the following disclaimer.
mbed_official 376:cb4d9db17537 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 376:cb4d9db17537 18 * this list of conditions and the following disclaimer in the documentation
mbed_official 376:cb4d9db17537 19 * and/or other materials provided with the distribution.
mbed_official 376:cb4d9db17537 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 376:cb4d9db17537 21 * may be used to endorse or promote products derived from this software
mbed_official 376:cb4d9db17537 22 * without specific prior written permission.
mbed_official 376:cb4d9db17537 23 *
mbed_official 376:cb4d9db17537 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 376:cb4d9db17537 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 376:cb4d9db17537 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 376:cb4d9db17537 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 376:cb4d9db17537 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 376:cb4d9db17537 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 376:cb4d9db17537 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 376:cb4d9db17537 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 376:cb4d9db17537 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 376:cb4d9db17537 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 376:cb4d9db17537 34 *
mbed_official 376:cb4d9db17537 35 ******************************************************************************
mbed_official 376:cb4d9db17537 36 */
mbed_official 376:cb4d9db17537 37
mbed_official 376:cb4d9db17537 38 /* Define to prevent recursive inclusion -------------------------------------*/
mbed_official 376:cb4d9db17537 39 #ifndef __STM32L0xx_HAL_UART_EX_H
mbed_official 376:cb4d9db17537 40 #define __STM32L0xx_HAL_UART_EX_H
mbed_official 376:cb4d9db17537 41
mbed_official 376:cb4d9db17537 42 #ifdef __cplusplus
mbed_official 376:cb4d9db17537 43 extern "C" {
mbed_official 376:cb4d9db17537 44 #endif
mbed_official 376:cb4d9db17537 45
mbed_official 376:cb4d9db17537 46 /* Includes ------------------------------------------------------------------*/
mbed_official 376:cb4d9db17537 47 #include "stm32l0xx_hal_def.h"
mbed_official 376:cb4d9db17537 48
mbed_official 376:cb4d9db17537 49 /** @addtogroup STM32L0xx_HAL_Driver
mbed_official 376:cb4d9db17537 50 * @{
mbed_official 376:cb4d9db17537 51 */
mbed_official 376:cb4d9db17537 52
mbed_official 489:119543c9f674 53 /** @defgroup UARTEx UARTEx Extended HAL module driver
mbed_official 376:cb4d9db17537 54 * @{
mbed_official 376:cb4d9db17537 55 */
mbed_official 376:cb4d9db17537 56
mbed_official 489:119543c9f674 57 /******************************************************************************/
mbed_official 376:cb4d9db17537 58 /* Exported types ------------------------------------------------------------*/
mbed_official 489:119543c9f674 59 /******************************************************************************/
mbed_official 489:119543c9f674 60
mbed_official 489:119543c9f674 61 /** @defgroup UARTEx_Exported_Types UARTEx Exported Types
mbed_official 489:119543c9f674 62 * @{
mbed_official 489:119543c9f674 63 */
mbed_official 489:119543c9f674 64
mbed_official 489:119543c9f674 65 /** @defgroup UARTEx_Init_Configuration Extended initialization configuration structure
mbed_official 489:119543c9f674 66 * @{
mbed_official 489:119543c9f674 67 */
mbed_official 376:cb4d9db17537 68 /**
mbed_official 376:cb4d9db17537 69 * @brief UART wake up from stop mode parameters
mbed_official 376:cb4d9db17537 70 */
mbed_official 376:cb4d9db17537 71 typedef struct
mbed_official 376:cb4d9db17537 72 {
mbed_official 376:cb4d9db17537 73 uint32_t WakeUpEvent; /*!< Specifies which event will activat the Wakeup from Stop mode flag (WUF).
mbed_official 376:cb4d9db17537 74 This parameter can be a value of @ref UART_WakeUp_from_Stop_Selection.
mbed_official 376:cb4d9db17537 75 If set to UART_WAKEUP_ON_ADDRESS, the two other fields below must
mbed_official 376:cb4d9db17537 76 be filled up. */
mbed_official 376:cb4d9db17537 77
mbed_official 376:cb4d9db17537 78 uint16_t AddressLength; /*!< Specifies whether the address is 4 or 7-bit long.
mbed_official 376:cb4d9db17537 79 This parameter can be a value of @ref UARTEx_WakeUp_Address_Length */
mbed_official 376:cb4d9db17537 80
mbed_official 376:cb4d9db17537 81 uint8_t Address; /*!< UART/USART node address (7-bit long max) */
mbed_official 376:cb4d9db17537 82 } UART_WakeUpTypeDef;
mbed_official 376:cb4d9db17537 83
mbed_official 489:119543c9f674 84 /**
mbed_official 489:119543c9f674 85 * @}
mbed_official 489:119543c9f674 86 */
mbed_official 489:119543c9f674 87 /**
mbed_official 489:119543c9f674 88 * @}
mbed_official 489:119543c9f674 89 */
mbed_official 489:119543c9f674 90
mbed_official 376:cb4d9db17537 91 /* Exported constants --------------------------------------------------------*/
mbed_official 489:119543c9f674 92 /** @defgroup UARTEx_Extended_Exported_Constants UARTEx Exported Constants
mbed_official 376:cb4d9db17537 93 * @{
mbed_official 376:cb4d9db17537 94 */
mbed_official 376:cb4d9db17537 95
mbed_official 489:119543c9f674 96 /** @defgroup UARTEx_Word_Length Word length definition
mbed_official 376:cb4d9db17537 97 * @{
mbed_official 376:cb4d9db17537 98 */
mbed_official 376:cb4d9db17537 99 #define UART_WORDLENGTH_7B ((uint32_t)USART_CR1_M_1)
mbed_official 376:cb4d9db17537 100 #define UART_WORDLENGTH_8B ((uint32_t)0x0000)
mbed_official 376:cb4d9db17537 101 #define UART_WORDLENGTH_9B ((uint32_t)USART_CR1_M_0)
mbed_official 376:cb4d9db17537 102 #define IS_UART_WORD_LENGTH(LENGTH) (((LENGTH) == UART_WORDLENGTH_7B) || \
mbed_official 376:cb4d9db17537 103 ((LENGTH) == UART_WORDLENGTH_8B) || \
mbed_official 376:cb4d9db17537 104 ((LENGTH) == UART_WORDLENGTH_9B))
mbed_official 376:cb4d9db17537 105 /**
mbed_official 376:cb4d9db17537 106 * @}
mbed_official 376:cb4d9db17537 107 */
mbed_official 376:cb4d9db17537 108
mbed_official 489:119543c9f674 109 /** @defgroup UARTEx_AutoBaud_Rate_Mode Auto baud rate mode definition
mbed_official 376:cb4d9db17537 110 * @{
mbed_official 376:cb4d9db17537 111 */
mbed_official 376:cb4d9db17537 112 #define UART_ADVFEATURE_AUTOBAUDRATE_ONSTARTBIT ((uint32_t)0x0000)
mbed_official 376:cb4d9db17537 113 #define UART_ADVFEATURE_AUTOBAUDRATE_ONFALLINGEDGE ((uint32_t)USART_CR2_ABRMODE_0)
mbed_official 376:cb4d9db17537 114 #define UART_ADVFEATURE_AUTOBAUDRATE_ON0X7FFRAME ((uint32_t)USART_CR2_ABRMODE_1)
mbed_official 376:cb4d9db17537 115 #define UART_ADVFEATURE_AUTOBAUDRATE_ON0X55FRAME ((uint32_t)USART_CR2_ABRMODE)
mbed_official 376:cb4d9db17537 116 #define IS_UART_ADVFEATURE_AUTOBAUDRATEMODE(MODE) (((MODE) == UART_ADVFEATURE_AUTOBAUDRATE_ONSTARTBIT) || \
mbed_official 376:cb4d9db17537 117 ((MODE) == UART_ADVFEATURE_AUTOBAUDRATE_ONFALLINGEDGE) || \
mbed_official 376:cb4d9db17537 118 ((MODE) == UART_ADVFEATURE_AUTOBAUDRATE_ON0X7FFRAME) || \
mbed_official 376:cb4d9db17537 119 ((MODE) == UART_ADVFEATURE_AUTOBAUDRATE_ON0X55FRAME))
mbed_official 376:cb4d9db17537 120 /**
mbed_official 376:cb4d9db17537 121 * @}
mbed_official 376:cb4d9db17537 122 */
mbed_official 376:cb4d9db17537 123
mbed_official 489:119543c9f674 124 /** @defgroup UARTEx_WakeUp_Address_Length WakeUp address length definition
mbed_official 376:cb4d9db17537 125 * @{
mbed_official 376:cb4d9db17537 126 */
mbed_official 376:cb4d9db17537 127 #define UART_ADDRESS_DETECT_4B ((uint32_t)0x00000000)
mbed_official 376:cb4d9db17537 128 #define UART_ADDRESS_DETECT_7B ((uint32_t)USART_CR2_ADDM7)
mbed_official 376:cb4d9db17537 129 #define IS_UART_ADDRESSLENGTH_DETECT(ADDRESS) (((ADDRESS) == UART_ADDRESS_DETECT_4B) || \
mbed_official 376:cb4d9db17537 130 ((ADDRESS) == UART_ADDRESS_DETECT_7B))
mbed_official 376:cb4d9db17537 131 /**
mbed_official 376:cb4d9db17537 132 * @}
mbed_official 376:cb4d9db17537 133 */
mbed_official 376:cb4d9db17537 134
mbed_official 376:cb4d9db17537 135
mbed_official 489:119543c9f674 136 /** @defgroup UARTEx_WakeUp_Methods Wakeup methods definition
mbed_official 376:cb4d9db17537 137 * @{
mbed_official 376:cb4d9db17537 138 */
mbed_official 376:cb4d9db17537 139 #define UART_WAKEUPMETHOD_IDLELINE ((uint32_t)0x00000000)
mbed_official 376:cb4d9db17537 140 #define UART_WAKEUPMETHOD_ADDRESSMARK ((uint32_t)USART_CR1_WAKE)
mbed_official 376:cb4d9db17537 141 #define IS_UART_WAKEUPMETHOD(WAKEUP) (((WAKEUP) == UART_WAKEUPMETHOD_IDLELINE) || \
mbed_official 376:cb4d9db17537 142 ((WAKEUP) == UART_WAKEUPMETHOD_ADDRESSMARK))
mbed_official 376:cb4d9db17537 143 /**
mbed_official 376:cb4d9db17537 144 * @}
mbed_official 376:cb4d9db17537 145 */
mbed_official 376:cb4d9db17537 146
mbed_official 376:cb4d9db17537 147 /**
mbed_official 376:cb4d9db17537 148 * @}
mbed_official 376:cb4d9db17537 149 */
mbed_official 376:cb4d9db17537 150
mbed_official 376:cb4d9db17537 151 /* Exported macro ------------------------------------------------------------*/
mbed_official 376:cb4d9db17537 152
mbed_official 489:119543c9f674 153 /** @defgroup UARTEx_Extended_Exported_Macros UARTEx Exported Macros
mbed_official 376:cb4d9db17537 154 * @{
mbed_official 376:cb4d9db17537 155 */
mbed_official 376:cb4d9db17537 156
mbed_official 376:cb4d9db17537 157 /** @brief Reports the UART clock source.
mbed_official 376:cb4d9db17537 158 * @param __HANDLE__: specifies the UART Handle
mbed_official 376:cb4d9db17537 159 * @param __CLOCKSOURCE__ : output variable
mbed_official 376:cb4d9db17537 160 * @retval UART clocking source, written in __CLOCKSOURCE__.
mbed_official 376:cb4d9db17537 161 */
mbed_official 489:119543c9f674 162 #if defined (STM32L031xx) || defined (STM32L041xx)
mbed_official 489:119543c9f674 163 #define UART_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__) \
mbed_official 489:119543c9f674 164 do { \
mbed_official 489:119543c9f674 165 if((__HANDLE__)->Instance == USART2) \
mbed_official 489:119543c9f674 166 { \
mbed_official 489:119543c9f674 167 switch(__HAL_RCC_GET_USART2_SOURCE()) \
mbed_official 489:119543c9f674 168 { \
mbed_official 489:119543c9f674 169 case RCC_USART2CLKSOURCE_PCLK1: \
mbed_official 489:119543c9f674 170 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \
mbed_official 489:119543c9f674 171 break; \
mbed_official 489:119543c9f674 172 case RCC_USART2CLKSOURCE_HSI: \
mbed_official 489:119543c9f674 173 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
mbed_official 489:119543c9f674 174 break; \
mbed_official 489:119543c9f674 175 case RCC_USART2CLKSOURCE_SYSCLK: \
mbed_official 489:119543c9f674 176 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \
mbed_official 489:119543c9f674 177 break; \
mbed_official 489:119543c9f674 178 case RCC_USART2CLKSOURCE_LSE: \
mbed_official 489:119543c9f674 179 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
mbed_official 489:119543c9f674 180 break; \
mbed_official 489:119543c9f674 181 default: \
mbed_official 489:119543c9f674 182 break; \
mbed_official 489:119543c9f674 183 } \
mbed_official 489:119543c9f674 184 } \
mbed_official 489:119543c9f674 185 else if((__HANDLE__)->Instance == LPUART1) \
mbed_official 489:119543c9f674 186 { \
mbed_official 489:119543c9f674 187 switch(__HAL_RCC_GET_LPUART1_SOURCE()) \
mbed_official 489:119543c9f674 188 { \
mbed_official 489:119543c9f674 189 case RCC_LPUART1CLKSOURCE_PCLK1: \
mbed_official 489:119543c9f674 190 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \
mbed_official 489:119543c9f674 191 break; \
mbed_official 489:119543c9f674 192 case RCC_LPUART1CLKSOURCE_HSI: \
mbed_official 489:119543c9f674 193 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
mbed_official 489:119543c9f674 194 break; \
mbed_official 489:119543c9f674 195 case RCC_LPUART1CLKSOURCE_SYSCLK: \
mbed_official 489:119543c9f674 196 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \
mbed_official 489:119543c9f674 197 break; \
mbed_official 489:119543c9f674 198 case RCC_LPUART1CLKSOURCE_LSE: \
mbed_official 489:119543c9f674 199 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
mbed_official 489:119543c9f674 200 break; \
mbed_official 489:119543c9f674 201 default: \
mbed_official 489:119543c9f674 202 break; \
mbed_official 489:119543c9f674 203 } \
mbed_official 489:119543c9f674 204 } \
mbed_official 489:119543c9f674 205 } while(0)
mbed_official 489:119543c9f674 206
mbed_official 489:119543c9f674 207 #else /* (STM32L031xx) || defined (STM32L041xx) */
mbed_official 489:119543c9f674 208
mbed_official 489:119543c9f674 209 #define UART_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__) \
mbed_official 376:cb4d9db17537 210 do { \
mbed_official 376:cb4d9db17537 211 if((__HANDLE__)->Instance == USART1) \
mbed_official 376:cb4d9db17537 212 { \
mbed_official 376:cb4d9db17537 213 switch(__HAL_RCC_GET_USART1_SOURCE()) \
mbed_official 376:cb4d9db17537 214 { \
mbed_official 376:cb4d9db17537 215 case RCC_USART1CLKSOURCE_PCLK2: \
mbed_official 376:cb4d9db17537 216 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK2; \
mbed_official 376:cb4d9db17537 217 break; \
mbed_official 376:cb4d9db17537 218 case RCC_USART1CLKSOURCE_HSI: \
mbed_official 376:cb4d9db17537 219 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
mbed_official 376:cb4d9db17537 220 break; \
mbed_official 376:cb4d9db17537 221 case RCC_USART1CLKSOURCE_SYSCLK: \
mbed_official 376:cb4d9db17537 222 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \
mbed_official 376:cb4d9db17537 223 break; \
mbed_official 376:cb4d9db17537 224 case RCC_USART1CLKSOURCE_LSE: \
mbed_official 376:cb4d9db17537 225 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
mbed_official 376:cb4d9db17537 226 break; \
mbed_official 376:cb4d9db17537 227 default: \
mbed_official 376:cb4d9db17537 228 break; \
mbed_official 376:cb4d9db17537 229 } \
mbed_official 376:cb4d9db17537 230 } \
mbed_official 376:cb4d9db17537 231 else if((__HANDLE__)->Instance == USART2) \
mbed_official 376:cb4d9db17537 232 { \
mbed_official 376:cb4d9db17537 233 switch(__HAL_RCC_GET_USART2_SOURCE()) \
mbed_official 376:cb4d9db17537 234 { \
mbed_official 376:cb4d9db17537 235 case RCC_USART2CLKSOURCE_PCLK1: \
mbed_official 376:cb4d9db17537 236 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \
mbed_official 376:cb4d9db17537 237 break; \
mbed_official 376:cb4d9db17537 238 case RCC_USART2CLKSOURCE_HSI: \
mbed_official 376:cb4d9db17537 239 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
mbed_official 376:cb4d9db17537 240 break; \
mbed_official 376:cb4d9db17537 241 case RCC_USART2CLKSOURCE_SYSCLK: \
mbed_official 376:cb4d9db17537 242 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \
mbed_official 376:cb4d9db17537 243 break; \
mbed_official 376:cb4d9db17537 244 case RCC_USART2CLKSOURCE_LSE: \
mbed_official 376:cb4d9db17537 245 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
mbed_official 376:cb4d9db17537 246 break; \
mbed_official 376:cb4d9db17537 247 default: \
mbed_official 376:cb4d9db17537 248 break; \
mbed_official 376:cb4d9db17537 249 } \
mbed_official 376:cb4d9db17537 250 } \
mbed_official 376:cb4d9db17537 251 else if((__HANDLE__)->Instance == LPUART1) \
mbed_official 376:cb4d9db17537 252 { \
mbed_official 376:cb4d9db17537 253 switch(__HAL_RCC_GET_LPUART1_SOURCE()) \
mbed_official 376:cb4d9db17537 254 { \
mbed_official 376:cb4d9db17537 255 case RCC_LPUART1CLKSOURCE_PCLK1: \
mbed_official 376:cb4d9db17537 256 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PCLK1; \
mbed_official 376:cb4d9db17537 257 break; \
mbed_official 376:cb4d9db17537 258 case RCC_LPUART1CLKSOURCE_HSI: \
mbed_official 376:cb4d9db17537 259 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
mbed_official 376:cb4d9db17537 260 break; \
mbed_official 376:cb4d9db17537 261 case RCC_LPUART1CLKSOURCE_SYSCLK: \
mbed_official 376:cb4d9db17537 262 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_SYSCLK; \
mbed_official 376:cb4d9db17537 263 break; \
mbed_official 376:cb4d9db17537 264 case RCC_LPUART1CLKSOURCE_LSE: \
mbed_official 376:cb4d9db17537 265 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
mbed_official 376:cb4d9db17537 266 break; \
mbed_official 376:cb4d9db17537 267 default: \
mbed_official 376:cb4d9db17537 268 break; \
mbed_official 376:cb4d9db17537 269 } \
mbed_official 376:cb4d9db17537 270 } \
mbed_official 376:cb4d9db17537 271 } while(0)
mbed_official 489:119543c9f674 272 #endif /* (STM32L031xx) || (STM32L041xx) */
mbed_official 376:cb4d9db17537 273
mbed_official 376:cb4d9db17537 274 /** @brief Reports the UART mask to apply to retrieve the received data
mbed_official 376:cb4d9db17537 275 * according to the word length and to the parity bits activation.
mbed_official 376:cb4d9db17537 276 * If PCE = 1, the parity bit is not included in the data extracted
mbed_official 376:cb4d9db17537 277 * by the reception API().
mbed_official 376:cb4d9db17537 278 * This masking operation is not carried out in the case of
mbed_official 376:cb4d9db17537 279 * DMA transfers.
mbed_official 376:cb4d9db17537 280 * @param __HANDLE__: specifies the UART Handle
mbed_official 376:cb4d9db17537 281 * @retval mask to apply to UART RDR register value.
mbed_official 376:cb4d9db17537 282 */
mbed_official 489:119543c9f674 283 #define UART_MASK_COMPUTATION(__HANDLE__) \
mbed_official 376:cb4d9db17537 284 do { \
mbed_official 376:cb4d9db17537 285 if ((__HANDLE__)->Init.WordLength == UART_WORDLENGTH_9B) \
mbed_official 376:cb4d9db17537 286 { \
mbed_official 376:cb4d9db17537 287 if ((__HANDLE__)->Init.Parity == UART_PARITY_NONE) \
mbed_official 376:cb4d9db17537 288 { \
mbed_official 376:cb4d9db17537 289 (__HANDLE__)->Mask = 0x01FF ; \
mbed_official 376:cb4d9db17537 290 } \
mbed_official 376:cb4d9db17537 291 else \
mbed_official 376:cb4d9db17537 292 { \
mbed_official 376:cb4d9db17537 293 (__HANDLE__)->Mask = 0x00FF ; \
mbed_official 376:cb4d9db17537 294 } \
mbed_official 376:cb4d9db17537 295 } \
mbed_official 376:cb4d9db17537 296 else if ((__HANDLE__)->Init.WordLength == UART_WORDLENGTH_8B) \
mbed_official 376:cb4d9db17537 297 { \
mbed_official 376:cb4d9db17537 298 if ((__HANDLE__)->Init.Parity == UART_PARITY_NONE) \
mbed_official 376:cb4d9db17537 299 { \
mbed_official 376:cb4d9db17537 300 (__HANDLE__)->Mask = 0x00FF ; \
mbed_official 376:cb4d9db17537 301 } \
mbed_official 376:cb4d9db17537 302 else \
mbed_official 376:cb4d9db17537 303 { \
mbed_official 376:cb4d9db17537 304 (__HANDLE__)->Mask = 0x007F ; \
mbed_official 376:cb4d9db17537 305 } \
mbed_official 376:cb4d9db17537 306 } \
mbed_official 376:cb4d9db17537 307 else if ((__HANDLE__)->Init.WordLength == UART_WORDLENGTH_7B) \
mbed_official 376:cb4d9db17537 308 { \
mbed_official 376:cb4d9db17537 309 if ((__HANDLE__)->Init.Parity == UART_PARITY_NONE) \
mbed_official 376:cb4d9db17537 310 { \
mbed_official 376:cb4d9db17537 311 (__HANDLE__)->Mask = 0x007F ; \
mbed_official 376:cb4d9db17537 312 } \
mbed_official 376:cb4d9db17537 313 else \
mbed_official 376:cb4d9db17537 314 { \
mbed_official 376:cb4d9db17537 315 (__HANDLE__)->Mask = 0x003F ; \
mbed_official 376:cb4d9db17537 316 } \
mbed_official 376:cb4d9db17537 317 } \
mbed_official 376:cb4d9db17537 318 } while(0)
mbed_official 376:cb4d9db17537 319
mbed_official 376:cb4d9db17537 320 /**
mbed_official 376:cb4d9db17537 321 * @}
mbed_official 376:cb4d9db17537 322 */
mbed_official 376:cb4d9db17537 323
mbed_official 376:cb4d9db17537 324 /* Exported functions --------------------------------------------------------*/
mbed_official 489:119543c9f674 325 /** @defgroup UARTEx_Exported_Functions UARTEx Exported Functions
mbed_official 489:119543c9f674 326 * @{
mbed_official 489:119543c9f674 327 */
mbed_official 489:119543c9f674 328 /* Exported functions --------------------------------------------------------*/
mbed_official 376:cb4d9db17537 329 /* Initialization/de-initialization functions ********************************/
mbed_official 489:119543c9f674 330 /** @defgroup UARTEx_Exported_Functions_Group1 Extended Initialization function
mbed_official 489:119543c9f674 331 * @{
mbed_official 489:119543c9f674 332 */
mbed_official 376:cb4d9db17537 333 HAL_StatusTypeDef HAL_RS485Ex_Init(UART_HandleTypeDef *huart, uint32_t Polarity, uint32_t AssertionTime, uint32_t DeassertionTime);
mbed_official 489:119543c9f674 334 /**
mbed_official 489:119543c9f674 335 * @}
mbed_official 489:119543c9f674 336 */
mbed_official 376:cb4d9db17537 337 /* IO operation functions *****************************************************/
mbed_official 376:cb4d9db17537 338 /* Peripheral Control functions **********************************************/
mbed_official 489:119543c9f674 339 /** @defgroup UARTEx_Exported_Functions_Group2 Peripheral Control functions
mbed_official 489:119543c9f674 340 * @{
mbed_official 489:119543c9f674 341 */
mbed_official 376:cb4d9db17537 342 HAL_StatusTypeDef HAL_UARTEx_StopModeWakeUpSourceConfig(UART_HandleTypeDef *huart, UART_WakeUpTypeDef WakeUpSelection);
mbed_official 376:cb4d9db17537 343 HAL_StatusTypeDef HAL_UARTEx_EnableStopMode(UART_HandleTypeDef *huart);
mbed_official 376:cb4d9db17537 344 HAL_StatusTypeDef HAL_UARTEx_EnableClockStopMode(UART_HandleTypeDef *huart);
mbed_official 376:cb4d9db17537 345 HAL_StatusTypeDef HAL_UARTEx_DisableStopMode(UART_HandleTypeDef *huart);
mbed_official 376:cb4d9db17537 346 HAL_StatusTypeDef HAL_UARTEx_DisableClockStopMode(UART_HandleTypeDef *huart);
mbed_official 376:cb4d9db17537 347 void HAL_UARTEx_WakeupCallback(UART_HandleTypeDef *huart);
mbed_official 376:cb4d9db17537 348
mbed_official 376:cb4d9db17537 349 /* Peripheral State functions ************************************************/
mbed_official 376:cb4d9db17537 350 HAL_StatusTypeDef HAL_MultiProcessorEx_AddressLength_Set(UART_HandleTypeDef *huart, uint32_t AddressLength);
mbed_official 489:119543c9f674 351 /**
mbed_official 489:119543c9f674 352 * @}
mbed_official 489:119543c9f674 353 */
mbed_official 489:119543c9f674 354
mbed_official 489:119543c9f674 355 /**
mbed_official 489:119543c9f674 356 * @}
mbed_official 489:119543c9f674 357 */
mbed_official 489:119543c9f674 358
mbed_official 489:119543c9f674 359 /**
mbed_official 489:119543c9f674 360 * @}
mbed_official 489:119543c9f674 361 */
mbed_official 376:cb4d9db17537 362
mbed_official 376:cb4d9db17537 363 /**
mbed_official 376:cb4d9db17537 364 * @}
mbed_official 376:cb4d9db17537 365 */
mbed_official 376:cb4d9db17537 366
mbed_official 376:cb4d9db17537 367 /**
mbed_official 376:cb4d9db17537 368 * @}
mbed_official 376:cb4d9db17537 369 */
mbed_official 376:cb4d9db17537 370
mbed_official 376:cb4d9db17537 371 #ifdef __cplusplus
mbed_official 376:cb4d9db17537 372 }
mbed_official 376:cb4d9db17537 373 #endif
mbed_official 376:cb4d9db17537 374
mbed_official 376:cb4d9db17537 375 #endif /* __STM32L0xx_HAL_UART_EX_H */
mbed_official 376:cb4d9db17537 376
mbed_official 376:cb4d9db17537 377 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
mbed_official 489:119543c9f674 378