Fork of the official mbed C/C SDK provides the software platform and libraries to build your applications for RenBED.

Dependents:   1-RenBuggyTimed RenBED_RGB RenBED_RGB_PWM RenBED_RGB

Fork of mbed by mbed official

Committer:
elijahorr
Date:
Thu Apr 14 07:28:54 2016 +0000
Revision:
121:672067c3ada4
Parent:
109:9296ab0bfc11
.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Kojto 109:9296ab0bfc11 1 /**
Kojto 109:9296ab0bfc11 2 ******************************************************************************
Kojto 109:9296ab0bfc11 3 * @file stm32f0xx_hal_usart_ex.h
Kojto 109:9296ab0bfc11 4 * @author MCD Application Team
Kojto 109:9296ab0bfc11 5 * @version V1.3.0
Kojto 109:9296ab0bfc11 6 * @date 26-June-2015
Kojto 109:9296ab0bfc11 7 * @brief Header file of USART HAL Extension module.
Kojto 109:9296ab0bfc11 8 ******************************************************************************
Kojto 109:9296ab0bfc11 9 * @attention
Kojto 109:9296ab0bfc11 10 *
Kojto 109:9296ab0bfc11 11 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
Kojto 109:9296ab0bfc11 12 *
Kojto 109:9296ab0bfc11 13 * Redistribution and use in source and binary forms, with or without modification,
Kojto 109:9296ab0bfc11 14 * are permitted provided that the following conditions are met:
Kojto 109:9296ab0bfc11 15 * 1. Redistributions of source code must retain the above copyright notice,
Kojto 109:9296ab0bfc11 16 * this list of conditions and the following disclaimer.
Kojto 109:9296ab0bfc11 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
Kojto 109:9296ab0bfc11 18 * this list of conditions and the following disclaimer in the documentation
Kojto 109:9296ab0bfc11 19 * and/or other materials provided with the distribution.
Kojto 109:9296ab0bfc11 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
Kojto 109:9296ab0bfc11 21 * may be used to endorse or promote products derived from this software
Kojto 109:9296ab0bfc11 22 * without specific prior written permission.
Kojto 109:9296ab0bfc11 23 *
Kojto 109:9296ab0bfc11 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
Kojto 109:9296ab0bfc11 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
Kojto 109:9296ab0bfc11 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
Kojto 109:9296ab0bfc11 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
Kojto 109:9296ab0bfc11 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
Kojto 109:9296ab0bfc11 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
Kojto 109:9296ab0bfc11 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
Kojto 109:9296ab0bfc11 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
Kojto 109:9296ab0bfc11 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
Kojto 109:9296ab0bfc11 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Kojto 109:9296ab0bfc11 34 *
Kojto 109:9296ab0bfc11 35 ******************************************************************************
Kojto 109:9296ab0bfc11 36 */
Kojto 109:9296ab0bfc11 37
Kojto 109:9296ab0bfc11 38 /* Define to prevent recursive inclusion -------------------------------------*/
Kojto 109:9296ab0bfc11 39 #ifndef __STM32F0xx_HAL_USART_EX_H
Kojto 109:9296ab0bfc11 40 #define __STM32F0xx_HAL_USART_EX_H
Kojto 109:9296ab0bfc11 41
Kojto 109:9296ab0bfc11 42 #ifdef __cplusplus
Kojto 109:9296ab0bfc11 43 extern "C" {
Kojto 109:9296ab0bfc11 44 #endif
Kojto 109:9296ab0bfc11 45
Kojto 109:9296ab0bfc11 46 /* Includes ------------------------------------------------------------------*/
Kojto 109:9296ab0bfc11 47 #include "stm32f0xx_hal_def.h"
Kojto 109:9296ab0bfc11 48
Kojto 109:9296ab0bfc11 49 /** @addtogroup STM32F0xx_HAL_Driver
Kojto 109:9296ab0bfc11 50 * @{
Kojto 109:9296ab0bfc11 51 */
Kojto 109:9296ab0bfc11 52
Kojto 109:9296ab0bfc11 53 /** @defgroup USARTEx USARTEx
Kojto 109:9296ab0bfc11 54 * @{
Kojto 109:9296ab0bfc11 55 */
Kojto 109:9296ab0bfc11 56
Kojto 109:9296ab0bfc11 57 /* Exported types ------------------------------------------------------------*/
Kojto 109:9296ab0bfc11 58 /* Exported constants --------------------------------------------------------*/
Kojto 109:9296ab0bfc11 59 /** @defgroup USARTEx_Exported_Constants USARTEx Exported Constants
Kojto 109:9296ab0bfc11 60 * @{
Kojto 109:9296ab0bfc11 61 */
Kojto 109:9296ab0bfc11 62
Kojto 109:9296ab0bfc11 63 /** @defgroup USARTEx_Word_Length USARTEx Word Length
Kojto 109:9296ab0bfc11 64 * @{
Kojto 109:9296ab0bfc11 65 */
Kojto 109:9296ab0bfc11 66 #if defined (STM32F042x6) || defined (STM32F048xx) || defined (STM32F070x6) || \
Kojto 109:9296ab0bfc11 67 defined (STM32F071xB) || defined (STM32F072xB) || defined (STM32F078xx) || defined (STM32F070xB) || \
Kojto 109:9296ab0bfc11 68 defined (STM32F091xC) || defined (STM32F098xx) || defined (STM32F030xC)
Kojto 109:9296ab0bfc11 69 #define USART_WORDLENGTH_7B ((uint32_t)USART_CR1_M1) /*!< 7-bit long USART frame */
Kojto 109:9296ab0bfc11 70 #define USART_WORDLENGTH_8B ((uint32_t)0x00000000) /*!< 8-bit long USART frame */
Kojto 109:9296ab0bfc11 71 #define USART_WORDLENGTH_9B ((uint32_t)USART_CR1_M0) /*!< 9-bit long USART frame */
Kojto 109:9296ab0bfc11 72 #else
Kojto 109:9296ab0bfc11 73 #define USART_WORDLENGTH_8B ((uint32_t)0x00000000) /*!< 8-bit long USART frame */
Kojto 109:9296ab0bfc11 74 #define USART_WORDLENGTH_9B ((uint32_t)USART_CR1_M) /*!< 9-bit long USART frame */
Kojto 109:9296ab0bfc11 75 #endif /* defined (STM32F042x6) || defined (STM32F048xx) || defined (STM32F070x6) || defined (STM32F070xB) || \
Kojto 109:9296ab0bfc11 76 defined (STM32F071xB) || defined (STM32F072xB) || defined (STM32F078xx) || \
Kojto 109:9296ab0bfc11 77 defined (STM32F091xC) || defined (STM32F098xx) || defined (STM32F030xC) */
Kojto 109:9296ab0bfc11 78 /**
Kojto 109:9296ab0bfc11 79 * @}
Kojto 109:9296ab0bfc11 80 */
Kojto 109:9296ab0bfc11 81
Kojto 109:9296ab0bfc11 82 /** @defgroup USART_Request_Parameters USARTEx Request Parameters
Kojto 109:9296ab0bfc11 83 * @{
Kojto 109:9296ab0bfc11 84 */
Kojto 109:9296ab0bfc11 85 #define USART_RXDATA_FLUSH_REQUEST ((uint32_t)USART_RQR_RXFRQ) /*!< Receive Data flush Request */
Kojto 109:9296ab0bfc11 86 #if !defined(STM32F030x6) && !defined(STM32F030x8) && !defined(STM32F070x6) && !defined(STM32F070xB) && !defined(STM32F030xC)
Kojto 109:9296ab0bfc11 87 #define USART_TXDATA_FLUSH_REQUEST ((uint32_t)USART_RQR_TXFRQ) /*!< Transmit data flush Request */
Kojto 109:9296ab0bfc11 88 #else
Kojto 109:9296ab0bfc11 89 #endif /* !defined(STM32F030x6) && !defined(STM32F030x8) && !defined(STM32F070x6) && !defined(STM32F070xB) && !defined(STM32F030xC) */
Kojto 109:9296ab0bfc11 90 /**
Kojto 109:9296ab0bfc11 91 * @}
Kojto 109:9296ab0bfc11 92 */
Kojto 109:9296ab0bfc11 93
Kojto 109:9296ab0bfc11 94 /** @defgroup USART_Flags USART Flags
Kojto 109:9296ab0bfc11 95 * Elements values convention: 0xXXXX
Kojto 109:9296ab0bfc11 96 * - 0xXXXX : Flag mask in the ISR register
Kojto 109:9296ab0bfc11 97 * @{
Kojto 109:9296ab0bfc11 98 */
Kojto 109:9296ab0bfc11 99 #if !defined(STM32F030x6) && !defined(STM32F030x8) && !defined(STM32F070x6) && !defined(STM32F070xB) && !defined(STM32F030xC)
Kojto 109:9296ab0bfc11 100 #define USART_FLAG_REACK ((uint32_t)0x00400000) /*!< USART receive enable acknowledge flag */
Kojto 109:9296ab0bfc11 101 #endif /* !defined(STM32F030x6) && !defined(STM32F030x8) && !defined(STM32F070x6) && !defined(STM32F070xB) && !defined(STM32F030xC) */
Kojto 109:9296ab0bfc11 102 #define USART_FLAG_TEACK ((uint32_t)0x00200000) /*!< USART transmit enable acknowledge flag */
Kojto 109:9296ab0bfc11 103 #define USART_FLAG_BUSY ((uint32_t)0x00010000) /*!< USART busy flag */
Kojto 109:9296ab0bfc11 104 #define USART_FLAG_CTS ((uint32_t)0x00000400) /*!< USART clear to send flag */
Kojto 109:9296ab0bfc11 105 #define USART_FLAG_CTSIF ((uint32_t)0x00000200) /*!< USART clear to send interrupt flag */
Kojto 109:9296ab0bfc11 106 #define USART_FLAG_TXE ((uint32_t)0x00000080) /*!< USART transmit data register empty */
Kojto 109:9296ab0bfc11 107 #define USART_FLAG_TC ((uint32_t)0x00000040) /*!< USART transmission complete */
Kojto 109:9296ab0bfc11 108 #define USART_FLAG_RXNE ((uint32_t)0x00000020) /*!< USART read data register not empty */
Kojto 109:9296ab0bfc11 109 #define USART_FLAG_IDLE ((uint32_t)0x00000010) /*!< USART idle flag */
Kojto 109:9296ab0bfc11 110 #define USART_FLAG_ORE ((uint32_t)0x00000008) /*!< USART overrun error */
Kojto 109:9296ab0bfc11 111 #define USART_FLAG_NE ((uint32_t)0x00000004) /*!< USART noise error */
Kojto 109:9296ab0bfc11 112 #define USART_FLAG_FE ((uint32_t)0x00000002) /*!< USART frame error */
Kojto 109:9296ab0bfc11 113 #define USART_FLAG_PE ((uint32_t)0x00000001) /*!< USART parity error */
Kojto 109:9296ab0bfc11 114 /**
Kojto 109:9296ab0bfc11 115 * @}
Kojto 109:9296ab0bfc11 116 */
Kojto 109:9296ab0bfc11 117
Kojto 109:9296ab0bfc11 118 /**
Kojto 109:9296ab0bfc11 119 * @}
Kojto 109:9296ab0bfc11 120 */
Kojto 109:9296ab0bfc11 121
Kojto 109:9296ab0bfc11 122 /* Exported macros ------------------------------------------------------------*/
Kojto 109:9296ab0bfc11 123 /** @defgroup USARTEx_Exported_Macros USARTEx Exported Macros
Kojto 109:9296ab0bfc11 124 * @{
Kojto 109:9296ab0bfc11 125 */
Kojto 109:9296ab0bfc11 126
Kojto 109:9296ab0bfc11 127 /** @brief Flush the USART Data registers.
Kojto 109:9296ab0bfc11 128 * @param __HANDLE__: specifies the USART Handle.
Kojto 109:9296ab0bfc11 129 * @retval None
Kojto 109:9296ab0bfc11 130 */
Kojto 109:9296ab0bfc11 131 #if !defined(STM32F030x6) && !defined(STM32F030x8) && !defined(STM32F070x6) && !defined(STM32F070xB) && !defined(STM32F030xC)
Kojto 109:9296ab0bfc11 132 #define __HAL_USART_FLUSH_DRREGISTER(__HANDLE__) \
Kojto 109:9296ab0bfc11 133 do{ \
Kojto 109:9296ab0bfc11 134 SET_BIT((__HANDLE__)->Instance->RQR, USART_RXDATA_FLUSH_REQUEST); \
Kojto 109:9296ab0bfc11 135 SET_BIT((__HANDLE__)->Instance->RQR, USART_TXDATA_FLUSH_REQUEST); \
Kojto 109:9296ab0bfc11 136 } while(0)
Kojto 109:9296ab0bfc11 137 #else
Kojto 109:9296ab0bfc11 138 #define __HAL_USART_FLUSH_DRREGISTER(__HANDLE__) \
Kojto 109:9296ab0bfc11 139 do{ \
Kojto 109:9296ab0bfc11 140 SET_BIT((__HANDLE__)->Instance->RQR, USART_RXDATA_FLUSH_REQUEST); \
Kojto 109:9296ab0bfc11 141 } while(0)
Kojto 109:9296ab0bfc11 142 #endif /* !defined(STM32F030x6) && !defined(STM32F030x8) && !defined(STM32F070x6) && !defined(STM32F070xB) && !defined(STM32F030xC) */
Kojto 109:9296ab0bfc11 143
Kojto 109:9296ab0bfc11 144 /**
Kojto 109:9296ab0bfc11 145 * @}
Kojto 109:9296ab0bfc11 146 */
Kojto 109:9296ab0bfc11 147
Kojto 109:9296ab0bfc11 148 /* Private macros ------------------------------------------------------------*/
Kojto 109:9296ab0bfc11 149 /** @defgroup USARTEx_Private_Macros USARTEx Private Macros
Kojto 109:9296ab0bfc11 150 * @{
Kojto 109:9296ab0bfc11 151 */
Kojto 109:9296ab0bfc11 152
Kojto 109:9296ab0bfc11 153 /** @brief Reports the USART clock source.
Kojto 109:9296ab0bfc11 154 * @param __HANDLE__: specifies the USART Handle
Kojto 109:9296ab0bfc11 155 * @param __CLOCKSOURCE__ : output variable
Kojto 109:9296ab0bfc11 156 * @retval the USART clocking source, written in __CLOCKSOURCE__.
Kojto 109:9296ab0bfc11 157 */
Kojto 109:9296ab0bfc11 158 #if defined(STM32F030x6) || defined(STM32F031x6) || defined(STM32F038xx)
Kojto 109:9296ab0bfc11 159 #define USART_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__) \
Kojto 109:9296ab0bfc11 160 do { \
Kojto 109:9296ab0bfc11 161 switch(__HAL_RCC_GET_USART1_SOURCE()) \
Kojto 109:9296ab0bfc11 162 { \
Kojto 109:9296ab0bfc11 163 case RCC_USART1CLKSOURCE_PCLK1: \
Kojto 109:9296ab0bfc11 164 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_PCLK1; \
Kojto 109:9296ab0bfc11 165 break; \
Kojto 109:9296ab0bfc11 166 case RCC_USART1CLKSOURCE_HSI: \
Kojto 109:9296ab0bfc11 167 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_HSI; \
Kojto 109:9296ab0bfc11 168 break; \
Kojto 109:9296ab0bfc11 169 case RCC_USART1CLKSOURCE_SYSCLK: \
Kojto 109:9296ab0bfc11 170 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_SYSCLK; \
Kojto 109:9296ab0bfc11 171 break; \
Kojto 109:9296ab0bfc11 172 case RCC_USART1CLKSOURCE_LSE: \
Kojto 109:9296ab0bfc11 173 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_LSE; \
Kojto 109:9296ab0bfc11 174 break; \
Kojto 109:9296ab0bfc11 175 default: \
Kojto 109:9296ab0bfc11 176 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_UNDEFINED; \
Kojto 109:9296ab0bfc11 177 break; \
Kojto 109:9296ab0bfc11 178 } \
Kojto 109:9296ab0bfc11 179 } while(0)
Kojto 109:9296ab0bfc11 180 #elif defined (STM32F030x8) || defined (STM32F070x6) || \
Kojto 109:9296ab0bfc11 181 defined (STM32F042x6) || defined (STM32F048xx) || \
Kojto 109:9296ab0bfc11 182 defined (STM32F051x8) || defined (STM32F058xx)
Kojto 109:9296ab0bfc11 183 #define USART_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__) \
Kojto 109:9296ab0bfc11 184 do { \
Kojto 109:9296ab0bfc11 185 if((__HANDLE__)->Instance == USART1) \
Kojto 109:9296ab0bfc11 186 { \
Kojto 109:9296ab0bfc11 187 switch(__HAL_RCC_GET_USART1_SOURCE()) \
Kojto 109:9296ab0bfc11 188 { \
Kojto 109:9296ab0bfc11 189 case RCC_USART1CLKSOURCE_PCLK1: \
Kojto 109:9296ab0bfc11 190 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_PCLK1; \
Kojto 109:9296ab0bfc11 191 break; \
Kojto 109:9296ab0bfc11 192 case RCC_USART1CLKSOURCE_HSI: \
Kojto 109:9296ab0bfc11 193 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_HSI; \
Kojto 109:9296ab0bfc11 194 break; \
Kojto 109:9296ab0bfc11 195 case RCC_USART1CLKSOURCE_SYSCLK: \
Kojto 109:9296ab0bfc11 196 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_SYSCLK; \
Kojto 109:9296ab0bfc11 197 break; \
Kojto 109:9296ab0bfc11 198 case RCC_USART1CLKSOURCE_LSE: \
Kojto 109:9296ab0bfc11 199 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_LSE; \
Kojto 109:9296ab0bfc11 200 break; \
Kojto 109:9296ab0bfc11 201 default: \
Kojto 109:9296ab0bfc11 202 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_UNDEFINED; \
Kojto 109:9296ab0bfc11 203 break; \
Kojto 109:9296ab0bfc11 204 } \
Kojto 109:9296ab0bfc11 205 } \
Kojto 109:9296ab0bfc11 206 else if((__HANDLE__)->Instance == USART2) \
Kojto 109:9296ab0bfc11 207 { \
Kojto 109:9296ab0bfc11 208 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_PCLK1; \
Kojto 109:9296ab0bfc11 209 } \
Kojto 109:9296ab0bfc11 210 else \
Kojto 109:9296ab0bfc11 211 { \
Kojto 109:9296ab0bfc11 212 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_UNDEFINED; \
Kojto 109:9296ab0bfc11 213 } \
Kojto 109:9296ab0bfc11 214 } while(0)
Kojto 109:9296ab0bfc11 215 #elif defined (STM32F070xB)
Kojto 109:9296ab0bfc11 216 #define USART_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__) \
Kojto 109:9296ab0bfc11 217 do { \
Kojto 109:9296ab0bfc11 218 if((__HANDLE__)->Instance == USART1) \
Kojto 109:9296ab0bfc11 219 { \
Kojto 109:9296ab0bfc11 220 switch(__HAL_RCC_GET_USART1_SOURCE()) \
Kojto 109:9296ab0bfc11 221 { \
Kojto 109:9296ab0bfc11 222 case RCC_USART1CLKSOURCE_PCLK1: \
Kojto 109:9296ab0bfc11 223 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_PCLK1; \
Kojto 109:9296ab0bfc11 224 break; \
Kojto 109:9296ab0bfc11 225 case RCC_USART1CLKSOURCE_HSI: \
Kojto 109:9296ab0bfc11 226 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_HSI; \
Kojto 109:9296ab0bfc11 227 break; \
Kojto 109:9296ab0bfc11 228 case RCC_USART1CLKSOURCE_SYSCLK: \
Kojto 109:9296ab0bfc11 229 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_SYSCLK; \
Kojto 109:9296ab0bfc11 230 break; \
Kojto 109:9296ab0bfc11 231 case RCC_USART1CLKSOURCE_LSE: \
Kojto 109:9296ab0bfc11 232 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_LSE; \
Kojto 109:9296ab0bfc11 233 break; \
Kojto 109:9296ab0bfc11 234 default: \
Kojto 109:9296ab0bfc11 235 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_UNDEFINED; \
Kojto 109:9296ab0bfc11 236 break; \
Kojto 109:9296ab0bfc11 237 } \
Kojto 109:9296ab0bfc11 238 } \
Kojto 109:9296ab0bfc11 239 else if((__HANDLE__)->Instance == USART2) \
Kojto 109:9296ab0bfc11 240 { \
Kojto 109:9296ab0bfc11 241 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_PCLK1; \
Kojto 109:9296ab0bfc11 242 } \
Kojto 109:9296ab0bfc11 243 else if((__HANDLE__)->Instance == USART3) \
Kojto 109:9296ab0bfc11 244 { \
Kojto 109:9296ab0bfc11 245 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_PCLK1; \
Kojto 109:9296ab0bfc11 246 } \
Kojto 109:9296ab0bfc11 247 else if((__HANDLE__)->Instance == USART4) \
Kojto 109:9296ab0bfc11 248 { \
Kojto 109:9296ab0bfc11 249 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_PCLK1; \
Kojto 109:9296ab0bfc11 250 } \
Kojto 109:9296ab0bfc11 251 else \
Kojto 109:9296ab0bfc11 252 { \
Kojto 109:9296ab0bfc11 253 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_UNDEFINED; \
Kojto 109:9296ab0bfc11 254 } \
Kojto 109:9296ab0bfc11 255 } while(0)
Kojto 109:9296ab0bfc11 256 #elif defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx)
Kojto 109:9296ab0bfc11 257 #define USART_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__) \
Kojto 109:9296ab0bfc11 258 do { \
Kojto 109:9296ab0bfc11 259 if((__HANDLE__)->Instance == USART1) \
Kojto 109:9296ab0bfc11 260 { \
Kojto 109:9296ab0bfc11 261 switch(__HAL_RCC_GET_USART1_SOURCE()) \
Kojto 109:9296ab0bfc11 262 { \
Kojto 109:9296ab0bfc11 263 case RCC_USART1CLKSOURCE_PCLK1: \
Kojto 109:9296ab0bfc11 264 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_PCLK1; \
Kojto 109:9296ab0bfc11 265 break; \
Kojto 109:9296ab0bfc11 266 case RCC_USART1CLKSOURCE_HSI: \
Kojto 109:9296ab0bfc11 267 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_HSI; \
Kojto 109:9296ab0bfc11 268 break; \
Kojto 109:9296ab0bfc11 269 case RCC_USART1CLKSOURCE_SYSCLK: \
Kojto 109:9296ab0bfc11 270 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_SYSCLK; \
Kojto 109:9296ab0bfc11 271 break; \
Kojto 109:9296ab0bfc11 272 case RCC_USART1CLKSOURCE_LSE: \
Kojto 109:9296ab0bfc11 273 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_LSE; \
Kojto 109:9296ab0bfc11 274 break; \
Kojto 109:9296ab0bfc11 275 default: \
Kojto 109:9296ab0bfc11 276 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_UNDEFINED; \
Kojto 109:9296ab0bfc11 277 break; \
Kojto 109:9296ab0bfc11 278 } \
Kojto 109:9296ab0bfc11 279 } \
Kojto 109:9296ab0bfc11 280 else if((__HANDLE__)->Instance == USART2) \
Kojto 109:9296ab0bfc11 281 { \
Kojto 109:9296ab0bfc11 282 switch(__HAL_RCC_GET_USART2_SOURCE()) \
Kojto 109:9296ab0bfc11 283 { \
Kojto 109:9296ab0bfc11 284 case RCC_USART2CLKSOURCE_PCLK1: \
Kojto 109:9296ab0bfc11 285 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_PCLK1; \
Kojto 109:9296ab0bfc11 286 break; \
Kojto 109:9296ab0bfc11 287 case RCC_USART2CLKSOURCE_HSI: \
Kojto 109:9296ab0bfc11 288 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_HSI; \
Kojto 109:9296ab0bfc11 289 break; \
Kojto 109:9296ab0bfc11 290 case RCC_USART2CLKSOURCE_SYSCLK: \
Kojto 109:9296ab0bfc11 291 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_SYSCLK; \
Kojto 109:9296ab0bfc11 292 break; \
Kojto 109:9296ab0bfc11 293 case RCC_USART2CLKSOURCE_LSE: \
Kojto 109:9296ab0bfc11 294 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_LSE; \
Kojto 109:9296ab0bfc11 295 break; \
Kojto 109:9296ab0bfc11 296 default: \
Kojto 109:9296ab0bfc11 297 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_UNDEFINED; \
Kojto 109:9296ab0bfc11 298 break; \
Kojto 109:9296ab0bfc11 299 } \
Kojto 109:9296ab0bfc11 300 } \
Kojto 109:9296ab0bfc11 301 else if((__HANDLE__)->Instance == USART3) \
Kojto 109:9296ab0bfc11 302 { \
Kojto 109:9296ab0bfc11 303 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_PCLK1; \
Kojto 109:9296ab0bfc11 304 } \
Kojto 109:9296ab0bfc11 305 else if((__HANDLE__)->Instance == USART4) \
Kojto 109:9296ab0bfc11 306 { \
Kojto 109:9296ab0bfc11 307 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_PCLK1; \
Kojto 109:9296ab0bfc11 308 } \
Kojto 109:9296ab0bfc11 309 else \
Kojto 109:9296ab0bfc11 310 { \
Kojto 109:9296ab0bfc11 311 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_UNDEFINED; \
Kojto 109:9296ab0bfc11 312 } \
Kojto 109:9296ab0bfc11 313 } while(0)
Kojto 109:9296ab0bfc11 314 #elif defined(STM32F091xC) || defined (STM32F098xx)
Kojto 109:9296ab0bfc11 315 #define USART_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__) \
Kojto 109:9296ab0bfc11 316 do { \
Kojto 109:9296ab0bfc11 317 if((__HANDLE__)->Instance == USART1) \
Kojto 109:9296ab0bfc11 318 { \
Kojto 109:9296ab0bfc11 319 switch(__HAL_RCC_GET_USART1_SOURCE()) \
Kojto 109:9296ab0bfc11 320 { \
Kojto 109:9296ab0bfc11 321 case RCC_USART1CLKSOURCE_PCLK1: \
Kojto 109:9296ab0bfc11 322 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_PCLK1; \
Kojto 109:9296ab0bfc11 323 break; \
Kojto 109:9296ab0bfc11 324 case RCC_USART1CLKSOURCE_HSI: \
Kojto 109:9296ab0bfc11 325 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_HSI; \
Kojto 109:9296ab0bfc11 326 break; \
Kojto 109:9296ab0bfc11 327 case RCC_USART1CLKSOURCE_SYSCLK: \
Kojto 109:9296ab0bfc11 328 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_SYSCLK; \
Kojto 109:9296ab0bfc11 329 break; \
Kojto 109:9296ab0bfc11 330 case RCC_USART1CLKSOURCE_LSE: \
Kojto 109:9296ab0bfc11 331 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_LSE; \
Kojto 109:9296ab0bfc11 332 break; \
Kojto 109:9296ab0bfc11 333 default: \
Kojto 109:9296ab0bfc11 334 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_UNDEFINED; \
Kojto 109:9296ab0bfc11 335 break; \
Kojto 109:9296ab0bfc11 336 } \
Kojto 109:9296ab0bfc11 337 } \
Kojto 109:9296ab0bfc11 338 else if((__HANDLE__)->Instance == USART2) \
Kojto 109:9296ab0bfc11 339 { \
Kojto 109:9296ab0bfc11 340 switch(__HAL_RCC_GET_USART2_SOURCE()) \
Kojto 109:9296ab0bfc11 341 { \
Kojto 109:9296ab0bfc11 342 case RCC_USART2CLKSOURCE_PCLK1: \
Kojto 109:9296ab0bfc11 343 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_PCLK1; \
Kojto 109:9296ab0bfc11 344 break; \
Kojto 109:9296ab0bfc11 345 case RCC_USART2CLKSOURCE_HSI: \
Kojto 109:9296ab0bfc11 346 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_HSI; \
Kojto 109:9296ab0bfc11 347 break; \
Kojto 109:9296ab0bfc11 348 case RCC_USART2CLKSOURCE_SYSCLK: \
Kojto 109:9296ab0bfc11 349 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_SYSCLK; \
Kojto 109:9296ab0bfc11 350 break; \
Kojto 109:9296ab0bfc11 351 case RCC_USART2CLKSOURCE_LSE: \
Kojto 109:9296ab0bfc11 352 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_LSE; \
Kojto 109:9296ab0bfc11 353 break; \
Kojto 109:9296ab0bfc11 354 default: \
Kojto 109:9296ab0bfc11 355 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_UNDEFINED; \
Kojto 109:9296ab0bfc11 356 break; \
Kojto 109:9296ab0bfc11 357 } \
Kojto 109:9296ab0bfc11 358 } \
Kojto 109:9296ab0bfc11 359 else if((__HANDLE__)->Instance == USART3) \
Kojto 109:9296ab0bfc11 360 { \
Kojto 109:9296ab0bfc11 361 switch(__HAL_RCC_GET_USART3_SOURCE()) \
Kojto 109:9296ab0bfc11 362 { \
Kojto 109:9296ab0bfc11 363 case RCC_USART3CLKSOURCE_PCLK1: \
Kojto 109:9296ab0bfc11 364 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_PCLK1; \
Kojto 109:9296ab0bfc11 365 break; \
Kojto 109:9296ab0bfc11 366 case RCC_USART3CLKSOURCE_HSI: \
Kojto 109:9296ab0bfc11 367 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_HSI; \
Kojto 109:9296ab0bfc11 368 break; \
Kojto 109:9296ab0bfc11 369 case RCC_USART3CLKSOURCE_SYSCLK: \
Kojto 109:9296ab0bfc11 370 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_SYSCLK; \
Kojto 109:9296ab0bfc11 371 break; \
Kojto 109:9296ab0bfc11 372 case RCC_USART3CLKSOURCE_LSE: \
Kojto 109:9296ab0bfc11 373 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_LSE; \
Kojto 109:9296ab0bfc11 374 break; \
Kojto 109:9296ab0bfc11 375 default: \
Kojto 109:9296ab0bfc11 376 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_UNDEFINED; \
Kojto 109:9296ab0bfc11 377 break; \
Kojto 109:9296ab0bfc11 378 } \
Kojto 109:9296ab0bfc11 379 } \
Kojto 109:9296ab0bfc11 380 else if((__HANDLE__)->Instance == USART4) \
Kojto 109:9296ab0bfc11 381 { \
Kojto 109:9296ab0bfc11 382 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_PCLK1; \
Kojto 109:9296ab0bfc11 383 } \
Kojto 109:9296ab0bfc11 384 else if((__HANDLE__)->Instance == USART5) \
Kojto 109:9296ab0bfc11 385 { \
Kojto 109:9296ab0bfc11 386 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_PCLK1; \
Kojto 109:9296ab0bfc11 387 } \
Kojto 109:9296ab0bfc11 388 else if((__HANDLE__)->Instance == USART6) \
Kojto 109:9296ab0bfc11 389 { \
Kojto 109:9296ab0bfc11 390 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_PCLK1; \
Kojto 109:9296ab0bfc11 391 } \
Kojto 109:9296ab0bfc11 392 else if((__HANDLE__)->Instance == USART7) \
Kojto 109:9296ab0bfc11 393 { \
Kojto 109:9296ab0bfc11 394 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_PCLK1; \
Kojto 109:9296ab0bfc11 395 } \
Kojto 109:9296ab0bfc11 396 else if((__HANDLE__)->Instance == USART8) \
Kojto 109:9296ab0bfc11 397 { \
Kojto 109:9296ab0bfc11 398 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_PCLK1; \
Kojto 109:9296ab0bfc11 399 } \
Kojto 109:9296ab0bfc11 400 else \
Kojto 109:9296ab0bfc11 401 { \
Kojto 109:9296ab0bfc11 402 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_UNDEFINED; \
Kojto 109:9296ab0bfc11 403 } \
Kojto 109:9296ab0bfc11 404 } while(0)
Kojto 109:9296ab0bfc11 405 #elif defined(STM32F030xC)
Kojto 109:9296ab0bfc11 406 #define USART_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__) \
Kojto 109:9296ab0bfc11 407 do { \
Kojto 109:9296ab0bfc11 408 if((__HANDLE__)->Instance == USART1) \
Kojto 109:9296ab0bfc11 409 { \
Kojto 109:9296ab0bfc11 410 switch(__HAL_RCC_GET_USART1_SOURCE()) \
Kojto 109:9296ab0bfc11 411 { \
Kojto 109:9296ab0bfc11 412 case RCC_USART1CLKSOURCE_PCLK1: \
Kojto 109:9296ab0bfc11 413 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_PCLK1; \
Kojto 109:9296ab0bfc11 414 break; \
Kojto 109:9296ab0bfc11 415 case RCC_USART1CLKSOURCE_HSI: \
Kojto 109:9296ab0bfc11 416 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_HSI; \
Kojto 109:9296ab0bfc11 417 break; \
Kojto 109:9296ab0bfc11 418 case RCC_USART1CLKSOURCE_SYSCLK: \
Kojto 109:9296ab0bfc11 419 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_SYSCLK; \
Kojto 109:9296ab0bfc11 420 break; \
Kojto 109:9296ab0bfc11 421 case RCC_USART1CLKSOURCE_LSE: \
Kojto 109:9296ab0bfc11 422 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_LSE; \
Kojto 109:9296ab0bfc11 423 break; \
Kojto 109:9296ab0bfc11 424 default: \
Kojto 109:9296ab0bfc11 425 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_UNDEFINED; \
Kojto 109:9296ab0bfc11 426 break; \
Kojto 109:9296ab0bfc11 427 } \
Kojto 109:9296ab0bfc11 428 } \
Kojto 109:9296ab0bfc11 429 else if((__HANDLE__)->Instance == USART2) \
Kojto 109:9296ab0bfc11 430 { \
Kojto 109:9296ab0bfc11 431 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_PCLK1; \
Kojto 109:9296ab0bfc11 432 } \
Kojto 109:9296ab0bfc11 433 else if((__HANDLE__)->Instance == USART3) \
Kojto 109:9296ab0bfc11 434 { \
Kojto 109:9296ab0bfc11 435 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_PCLK1; \
Kojto 109:9296ab0bfc11 436 } \
Kojto 109:9296ab0bfc11 437 else if((__HANDLE__)->Instance == USART4) \
Kojto 109:9296ab0bfc11 438 { \
Kojto 109:9296ab0bfc11 439 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_PCLK1; \
Kojto 109:9296ab0bfc11 440 } \
Kojto 109:9296ab0bfc11 441 else if((__HANDLE__)->Instance == USART5) \
Kojto 109:9296ab0bfc11 442 { \
Kojto 109:9296ab0bfc11 443 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_PCLK1; \
Kojto 109:9296ab0bfc11 444 } \
Kojto 109:9296ab0bfc11 445 else if((__HANDLE__)->Instance == USART6) \
Kojto 109:9296ab0bfc11 446 { \
Kojto 109:9296ab0bfc11 447 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_PCLK1; \
Kojto 109:9296ab0bfc11 448 } \
Kojto 109:9296ab0bfc11 449 else \
Kojto 109:9296ab0bfc11 450 { \
Kojto 109:9296ab0bfc11 451 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_UNDEFINED; \
Kojto 109:9296ab0bfc11 452 } \
Kojto 109:9296ab0bfc11 453 } while(0)
Kojto 109:9296ab0bfc11 454 #endif /* defined(STM32F030x6) || defined(STM32F031x6) || defined(STM32F038xx) */
Kojto 109:9296ab0bfc11 455
Kojto 109:9296ab0bfc11 456
Kojto 109:9296ab0bfc11 457 /** @brief Compute the USART mask to apply to retrieve the received data
Kojto 109:9296ab0bfc11 458 * according to the word length and to the parity bits activation.
Kojto 109:9296ab0bfc11 459 * @note If PCE = 1, the parity bit is not included in the data extracted
Kojto 109:9296ab0bfc11 460 * by the reception API().
Kojto 109:9296ab0bfc11 461 * This masking operation is not carried out in the case of
Kojto 109:9296ab0bfc11 462 * DMA transfers.
Kojto 109:9296ab0bfc11 463 * @param __HANDLE__: specifies the USART Handle.
Kojto 109:9296ab0bfc11 464 * @retval None, the mask to apply to USART RDR register is stored in (__HANDLE__)->Mask field.
Kojto 109:9296ab0bfc11 465 */
Kojto 109:9296ab0bfc11 466 #if defined (STM32F042x6) || defined (STM32F048xx) || defined (STM32F070x6) || \
Kojto 109:9296ab0bfc11 467 defined (STM32F071xB) || defined (STM32F072xB) || defined (STM32F078xx) || defined (STM32F070xB) || \
Kojto 109:9296ab0bfc11 468 defined (STM32F091xC) || defined (STM32F098xx) || defined (STM32F030xC)
Kojto 109:9296ab0bfc11 469 #define USART_MASK_COMPUTATION(__HANDLE__) \
Kojto 109:9296ab0bfc11 470 do { \
Kojto 109:9296ab0bfc11 471 if ((__HANDLE__)->Init.WordLength == USART_WORDLENGTH_9B) \
Kojto 109:9296ab0bfc11 472 { \
Kojto 109:9296ab0bfc11 473 if ((__HANDLE__)->Init.Parity == USART_PARITY_NONE) \
Kojto 109:9296ab0bfc11 474 { \
Kojto 109:9296ab0bfc11 475 (__HANDLE__)->Mask = 0x01FF ; \
Kojto 109:9296ab0bfc11 476 } \
Kojto 109:9296ab0bfc11 477 else \
Kojto 109:9296ab0bfc11 478 { \
Kojto 109:9296ab0bfc11 479 (__HANDLE__)->Mask = 0x00FF ; \
Kojto 109:9296ab0bfc11 480 } \
Kojto 109:9296ab0bfc11 481 } \
Kojto 109:9296ab0bfc11 482 else if ((__HANDLE__)->Init.WordLength == USART_WORDLENGTH_8B) \
Kojto 109:9296ab0bfc11 483 { \
Kojto 109:9296ab0bfc11 484 if ((__HANDLE__)->Init.Parity == USART_PARITY_NONE) \
Kojto 109:9296ab0bfc11 485 { \
Kojto 109:9296ab0bfc11 486 (__HANDLE__)->Mask = 0x00FF ; \
Kojto 109:9296ab0bfc11 487 } \
Kojto 109:9296ab0bfc11 488 else \
Kojto 109:9296ab0bfc11 489 { \
Kojto 109:9296ab0bfc11 490 (__HANDLE__)->Mask = 0x007F ; \
Kojto 109:9296ab0bfc11 491 } \
Kojto 109:9296ab0bfc11 492 } \
Kojto 109:9296ab0bfc11 493 else if ((__HANDLE__)->Init.WordLength == USART_WORDLENGTH_7B) \
Kojto 109:9296ab0bfc11 494 { \
Kojto 109:9296ab0bfc11 495 if ((__HANDLE__)->Init.Parity == USART_PARITY_NONE) \
Kojto 109:9296ab0bfc11 496 { \
Kojto 109:9296ab0bfc11 497 (__HANDLE__)->Mask = 0x007F ; \
Kojto 109:9296ab0bfc11 498 } \
Kojto 109:9296ab0bfc11 499 else \
Kojto 109:9296ab0bfc11 500 { \
Kojto 109:9296ab0bfc11 501 (__HANDLE__)->Mask = 0x003F ; \
Kojto 109:9296ab0bfc11 502 } \
Kojto 109:9296ab0bfc11 503 } \
Kojto 109:9296ab0bfc11 504 } while(0)
Kojto 109:9296ab0bfc11 505 #else
Kojto 109:9296ab0bfc11 506 #define USART_MASK_COMPUTATION(__HANDLE__) \
Kojto 109:9296ab0bfc11 507 do { \
Kojto 109:9296ab0bfc11 508 if ((__HANDLE__)->Init.WordLength == USART_WORDLENGTH_9B) \
Kojto 109:9296ab0bfc11 509 { \
Kojto 109:9296ab0bfc11 510 if ((__HANDLE__)->Init.Parity == USART_PARITY_NONE) \
Kojto 109:9296ab0bfc11 511 { \
Kojto 109:9296ab0bfc11 512 (__HANDLE__)->Mask = 0x01FF ; \
Kojto 109:9296ab0bfc11 513 } \
Kojto 109:9296ab0bfc11 514 else \
Kojto 109:9296ab0bfc11 515 { \
Kojto 109:9296ab0bfc11 516 (__HANDLE__)->Mask = 0x00FF ; \
Kojto 109:9296ab0bfc11 517 } \
Kojto 109:9296ab0bfc11 518 } \
Kojto 109:9296ab0bfc11 519 else if ((__HANDLE__)->Init.WordLength == USART_WORDLENGTH_8B) \
Kojto 109:9296ab0bfc11 520 { \
Kojto 109:9296ab0bfc11 521 if ((__HANDLE__)->Init.Parity == USART_PARITY_NONE) \
Kojto 109:9296ab0bfc11 522 { \
Kojto 109:9296ab0bfc11 523 (__HANDLE__)->Mask = 0x00FF ; \
Kojto 109:9296ab0bfc11 524 } \
Kojto 109:9296ab0bfc11 525 else \
Kojto 109:9296ab0bfc11 526 { \
Kojto 109:9296ab0bfc11 527 (__HANDLE__)->Mask = 0x007F ; \
Kojto 109:9296ab0bfc11 528 } \
Kojto 109:9296ab0bfc11 529 } \
Kojto 109:9296ab0bfc11 530 } while(0)
Kojto 109:9296ab0bfc11 531 #endif /* defined (STM32F042x6) || defined (STM32F048xx) || defined (STM32F070x6) || \
Kojto 109:9296ab0bfc11 532 defined (STM32F071xB) || defined (STM32F072xB) || defined (STM32F078xx) || defined (STM32F070xB) || \
Kojto 109:9296ab0bfc11 533 defined (STM32F091xC) || defined (STM32F098xx) || defined (STM32F030xC) */
Kojto 109:9296ab0bfc11 534
Kojto 109:9296ab0bfc11 535
Kojto 109:9296ab0bfc11 536 /**
Kojto 109:9296ab0bfc11 537 * @brief Ensure that USART frame length is valid.
Kojto 109:9296ab0bfc11 538 * @param __LENGTH__: USART frame length.
Kojto 109:9296ab0bfc11 539 * @retval SET (__LENGTH__ is valid) or RESET (__LENGTH__ is invalid)
Kojto 109:9296ab0bfc11 540 */
Kojto 109:9296ab0bfc11 541 #if defined (STM32F042x6) || defined (STM32F048xx) || defined (STM32F070x6) || \
Kojto 109:9296ab0bfc11 542 defined (STM32F071xB) || defined (STM32F072xB) || defined (STM32F078xx) || defined (STM32F070xB) || \
Kojto 109:9296ab0bfc11 543 defined (STM32F091xC) || defined (STM32F098xx) || defined (STM32F030xC)
Kojto 109:9296ab0bfc11 544 #define IS_USART_WORD_LENGTH(__LENGTH__) (((__LENGTH__) == USART_WORDLENGTH_7B) || \
Kojto 109:9296ab0bfc11 545 ((__LENGTH__) == USART_WORDLENGTH_8B) || \
Kojto 109:9296ab0bfc11 546 ((__LENGTH__) == USART_WORDLENGTH_9B))
Kojto 109:9296ab0bfc11 547 #else
Kojto 109:9296ab0bfc11 548 #define IS_USART_WORD_LENGTH(__LENGTH__) (((__LENGTH__) == USART_WORDLENGTH_8B) || \
Kojto 109:9296ab0bfc11 549 ((__LENGTH__) == USART_WORDLENGTH_9B))
Kojto 109:9296ab0bfc11 550 #endif /* defined (STM32F042x6) || defined (STM32F048xx) || defined (STM32F070x6) || defined (STM32F070xB) || \
Kojto 109:9296ab0bfc11 551 defined (STM32F071xB) || defined (STM32F072xB) || defined (STM32F078xx) || \
Kojto 109:9296ab0bfc11 552 defined (STM32F091xC) || defined (STM32F098xx) || defined (STM32F030xC) */
Kojto 109:9296ab0bfc11 553
Kojto 109:9296ab0bfc11 554 /**
Kojto 109:9296ab0bfc11 555 * @brief Ensure that USART request parameter is valid.
Kojto 109:9296ab0bfc11 556 * @param __PARAM__: USART request parameter.
Kojto 109:9296ab0bfc11 557 * @retval SET (__PARAM__ is valid) or RESET (__PARAM__ is invalid)
Kojto 109:9296ab0bfc11 558 */
Kojto 109:9296ab0bfc11 559 #if !defined(STM32F030x6) && !defined(STM32F030x8) && !defined(STM32F070x6) && !defined(STM32F070xB) && !defined(STM32F030xC)
Kojto 109:9296ab0bfc11 560 #define IS_USART_REQUEST_PARAMETER(__PARAM__) (((__PARAM__) == USART_RXDATA_FLUSH_REQUEST) || \
Kojto 109:9296ab0bfc11 561 ((__PARAM__) == USART_TXDATA_FLUSH_REQUEST))
Kojto 109:9296ab0bfc11 562 #else
Kojto 109:9296ab0bfc11 563 #define IS_USART_REQUEST_PARAMETER(__PARAM__) ((__PARAM__) == USART_RXDATA_FLUSH_REQUEST)
Kojto 109:9296ab0bfc11 564 #endif /* !defined(STM32F030x6) && !defined(STM32F030x8) && !defined(STM32F070x6) && !defined(STM32F070xB) && !defined(STM32F030xC) */
Kojto 109:9296ab0bfc11 565
Kojto 109:9296ab0bfc11 566 /**
Kojto 109:9296ab0bfc11 567 * @}
Kojto 109:9296ab0bfc11 568 */
Kojto 109:9296ab0bfc11 569
Kojto 109:9296ab0bfc11 570 /* Exported functions --------------------------------------------------------*/
Kojto 109:9296ab0bfc11 571
Kojto 109:9296ab0bfc11 572 /**
Kojto 109:9296ab0bfc11 573 * @}
Kojto 109:9296ab0bfc11 574 */
Kojto 109:9296ab0bfc11 575
Kojto 109:9296ab0bfc11 576 /**
Kojto 109:9296ab0bfc11 577 * @}
Kojto 109:9296ab0bfc11 578 */
Kojto 109:9296ab0bfc11 579
Kojto 109:9296ab0bfc11 580 #ifdef __cplusplus
Kojto 109:9296ab0bfc11 581 }
Kojto 109:9296ab0bfc11 582 #endif
Kojto 109:9296ab0bfc11 583
Kojto 109:9296ab0bfc11 584 #endif /* __STM32F0xx_HAL_USART_EX_H */
Kojto 109:9296ab0bfc11 585
Kojto 109:9296ab0bfc11 586 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
Kojto 109:9296ab0bfc11 587