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:
Wed Feb 20 20:53:29 2019 +0000
Revision:
172:65be27845400
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 172:65be27845400 1 /**
AnnaBridge 172:65be27845400 2 ******************************************************************************
AnnaBridge 172:65be27845400 3 * @file stm32h7xx_hal_irda_ex.h
AnnaBridge 172:65be27845400 4 * @author MCD Application Team
AnnaBridge 172:65be27845400 5 * @brief Header file of IRDA HAL Extended module.
AnnaBridge 172:65be27845400 6 ******************************************************************************
AnnaBridge 172:65be27845400 7 * @attention
AnnaBridge 172:65be27845400 8 *
AnnaBridge 172:65be27845400 9 * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
AnnaBridge 172:65be27845400 10 * All rights reserved.</center></h2>
AnnaBridge 172:65be27845400 11 *
AnnaBridge 172:65be27845400 12 * This software component is licensed by ST under BSD 3-Clause license,
AnnaBridge 172:65be27845400 13 * the "License"; You may not use this file except in compliance with the
AnnaBridge 172:65be27845400 14 * License. You may obtain a copy of the License at:
AnnaBridge 172:65be27845400 15 * opensource.org/licenses/BSD-3-Clause
AnnaBridge 172:65be27845400 16 *
AnnaBridge 172:65be27845400 17 ******************************************************************************
AnnaBridge 172:65be27845400 18 */
AnnaBridge 172:65be27845400 19
AnnaBridge 172:65be27845400 20 /* Define to prevent recursive inclusion -------------------------------------*/
AnnaBridge 172:65be27845400 21 #ifndef STM32H7xx_HAL_IRDA_EX_H
AnnaBridge 172:65be27845400 22 #define STM32H7xx_HAL_IRDA_EX_H
AnnaBridge 172:65be27845400 23
AnnaBridge 172:65be27845400 24 #ifdef __cplusplus
AnnaBridge 172:65be27845400 25 extern "C" {
AnnaBridge 172:65be27845400 26 #endif
AnnaBridge 172:65be27845400 27
AnnaBridge 172:65be27845400 28 /* Includes ------------------------------------------------------------------*/
AnnaBridge 172:65be27845400 29 #include "stm32h7xx_hal_def.h"
AnnaBridge 172:65be27845400 30
AnnaBridge 172:65be27845400 31 /** @addtogroup STM32H7xx_HAL_Driver
AnnaBridge 172:65be27845400 32 * @{
AnnaBridge 172:65be27845400 33 */
AnnaBridge 172:65be27845400 34
AnnaBridge 172:65be27845400 35 /** @defgroup IRDAEx IRDAEx
AnnaBridge 172:65be27845400 36 * @{
AnnaBridge 172:65be27845400 37 */
AnnaBridge 172:65be27845400 38
AnnaBridge 172:65be27845400 39 /* Exported types ------------------------------------------------------------*/
AnnaBridge 172:65be27845400 40 /* Exported constants --------------------------------------------------------*/
AnnaBridge 172:65be27845400 41 /** @defgroup IRDAEx_Extended_Exported_Constants IRDAEx Extended Exported Constants
AnnaBridge 172:65be27845400 42 * @{
AnnaBridge 172:65be27845400 43 */
AnnaBridge 172:65be27845400 44
AnnaBridge 172:65be27845400 45 /** @defgroup IRDAEx_Word_Length IRDAEx Word Length
AnnaBridge 172:65be27845400 46 * @{
AnnaBridge 172:65be27845400 47 */
AnnaBridge 172:65be27845400 48 #define IRDA_WORDLENGTH_7B USART_CR1_M1 /*!< 7-bit long frame */
AnnaBridge 172:65be27845400 49 #define IRDA_WORDLENGTH_8B 0x00000000U /*!< 8-bit long frame */
AnnaBridge 172:65be27845400 50 #define IRDA_WORDLENGTH_9B USART_CR1_M0 /*!< 9-bit long frame */
AnnaBridge 172:65be27845400 51 /**
AnnaBridge 172:65be27845400 52 * @}
AnnaBridge 172:65be27845400 53 */
AnnaBridge 172:65be27845400 54
AnnaBridge 172:65be27845400 55 /**
AnnaBridge 172:65be27845400 56 * @}
AnnaBridge 172:65be27845400 57 */
AnnaBridge 172:65be27845400 58
AnnaBridge 172:65be27845400 59 /* Exported macros -----------------------------------------------------------*/
AnnaBridge 172:65be27845400 60
AnnaBridge 172:65be27845400 61 /* Private macros ------------------------------------------------------------*/
AnnaBridge 172:65be27845400 62
AnnaBridge 172:65be27845400 63 /** @defgroup IRDAEx_Private_Macros IRDAEx Private Macros
AnnaBridge 172:65be27845400 64 * @{
AnnaBridge 172:65be27845400 65 */
AnnaBridge 172:65be27845400 66
AnnaBridge 172:65be27845400 67 /** @brief Report the IRDA clock source.
AnnaBridge 172:65be27845400 68 * @param __HANDLE__ specifies the IRDA Handle.
AnnaBridge 172:65be27845400 69 * @param __CLOCKSOURCE__ output variable.
AnnaBridge 172:65be27845400 70 * @retval IRDA clocking source, written in __CLOCKSOURCE__.
AnnaBridge 172:65be27845400 71 */
AnnaBridge 172:65be27845400 72 #define IRDA_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__) \
AnnaBridge 172:65be27845400 73 do { \
AnnaBridge 172:65be27845400 74 if((__HANDLE__)->Instance == USART1) \
AnnaBridge 172:65be27845400 75 { \
AnnaBridge 172:65be27845400 76 switch(__HAL_RCC_GET_USART1_SOURCE()) \
AnnaBridge 172:65be27845400 77 { \
AnnaBridge 172:65be27845400 78 case RCC_USART1CLKSOURCE_D2PCLK2: \
AnnaBridge 172:65be27845400 79 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_D2PCLK2; \
AnnaBridge 172:65be27845400 80 break; \
AnnaBridge 172:65be27845400 81 case RCC_USART1CLKSOURCE_PLL2: \
AnnaBridge 172:65be27845400 82 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL2Q; \
AnnaBridge 172:65be27845400 83 break; \
AnnaBridge 172:65be27845400 84 case RCC_USART1CLKSOURCE_PLL3: \
AnnaBridge 172:65be27845400 85 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL3Q; \
AnnaBridge 172:65be27845400 86 break; \
AnnaBridge 172:65be27845400 87 case RCC_USART1CLKSOURCE_HSI: \
AnnaBridge 172:65be27845400 88 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
AnnaBridge 172:65be27845400 89 break; \
AnnaBridge 172:65be27845400 90 case RCC_USART1CLKSOURCE_CSI: \
AnnaBridge 172:65be27845400 91 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_CSI; \
AnnaBridge 172:65be27845400 92 break; \
AnnaBridge 172:65be27845400 93 case RCC_USART1CLKSOURCE_LSE: \
AnnaBridge 172:65be27845400 94 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
AnnaBridge 172:65be27845400 95 break; \
AnnaBridge 172:65be27845400 96 default: \
AnnaBridge 172:65be27845400 97 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED; \
AnnaBridge 172:65be27845400 98 break; \
AnnaBridge 172:65be27845400 99 } \
AnnaBridge 172:65be27845400 100 } \
AnnaBridge 172:65be27845400 101 else if((__HANDLE__)->Instance == USART2) \
AnnaBridge 172:65be27845400 102 { \
AnnaBridge 172:65be27845400 103 switch(__HAL_RCC_GET_USART2_SOURCE()) \
AnnaBridge 172:65be27845400 104 { \
AnnaBridge 172:65be27845400 105 case RCC_USART2CLKSOURCE_D2PCLK1: \
AnnaBridge 172:65be27845400 106 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_D2PCLK1; \
AnnaBridge 172:65be27845400 107 break; \
AnnaBridge 172:65be27845400 108 case RCC_USART2CLKSOURCE_PLL2: \
AnnaBridge 172:65be27845400 109 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL2Q; \
AnnaBridge 172:65be27845400 110 break; \
AnnaBridge 172:65be27845400 111 case RCC_USART2CLKSOURCE_PLL3: \
AnnaBridge 172:65be27845400 112 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL3Q; \
AnnaBridge 172:65be27845400 113 break; \
AnnaBridge 172:65be27845400 114 case RCC_USART2CLKSOURCE_HSI: \
AnnaBridge 172:65be27845400 115 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
AnnaBridge 172:65be27845400 116 break; \
AnnaBridge 172:65be27845400 117 case RCC_USART2CLKSOURCE_CSI: \
AnnaBridge 172:65be27845400 118 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_CSI; \
AnnaBridge 172:65be27845400 119 break; \
AnnaBridge 172:65be27845400 120 case RCC_USART2CLKSOURCE_LSE: \
AnnaBridge 172:65be27845400 121 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
AnnaBridge 172:65be27845400 122 break; \
AnnaBridge 172:65be27845400 123 default: \
AnnaBridge 172:65be27845400 124 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED; \
AnnaBridge 172:65be27845400 125 break; \
AnnaBridge 172:65be27845400 126 } \
AnnaBridge 172:65be27845400 127 } \
AnnaBridge 172:65be27845400 128 else if((__HANDLE__)->Instance == USART3) \
AnnaBridge 172:65be27845400 129 { \
AnnaBridge 172:65be27845400 130 switch(__HAL_RCC_GET_USART3_SOURCE()) \
AnnaBridge 172:65be27845400 131 { \
AnnaBridge 172:65be27845400 132 case RCC_USART3CLKSOURCE_D2PCLK1: \
AnnaBridge 172:65be27845400 133 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_D2PCLK1; \
AnnaBridge 172:65be27845400 134 break; \
AnnaBridge 172:65be27845400 135 case RCC_USART3CLKSOURCE_PLL2: \
AnnaBridge 172:65be27845400 136 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL2Q; \
AnnaBridge 172:65be27845400 137 break; \
AnnaBridge 172:65be27845400 138 case RCC_USART3CLKSOURCE_PLL3: \
AnnaBridge 172:65be27845400 139 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL3Q; \
AnnaBridge 172:65be27845400 140 break; \
AnnaBridge 172:65be27845400 141 case RCC_USART3CLKSOURCE_HSI: \
AnnaBridge 172:65be27845400 142 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
AnnaBridge 172:65be27845400 143 break; \
AnnaBridge 172:65be27845400 144 case RCC_USART3CLKSOURCE_CSI: \
AnnaBridge 172:65be27845400 145 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_CSI; \
AnnaBridge 172:65be27845400 146 break; \
AnnaBridge 172:65be27845400 147 case RCC_USART3CLKSOURCE_LSE: \
AnnaBridge 172:65be27845400 148 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
AnnaBridge 172:65be27845400 149 break; \
AnnaBridge 172:65be27845400 150 default: \
AnnaBridge 172:65be27845400 151 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED; \
AnnaBridge 172:65be27845400 152 break; \
AnnaBridge 172:65be27845400 153 } \
AnnaBridge 172:65be27845400 154 } \
AnnaBridge 172:65be27845400 155 else if((__HANDLE__)->Instance == UART4) \
AnnaBridge 172:65be27845400 156 { \
AnnaBridge 172:65be27845400 157 switch(__HAL_RCC_GET_UART4_SOURCE()) \
AnnaBridge 172:65be27845400 158 { \
AnnaBridge 172:65be27845400 159 case RCC_UART4CLKSOURCE_D2PCLK1: \
AnnaBridge 172:65be27845400 160 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_D2PCLK1; \
AnnaBridge 172:65be27845400 161 break; \
AnnaBridge 172:65be27845400 162 case RCC_UART4CLKSOURCE_PLL2: \
AnnaBridge 172:65be27845400 163 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL2Q; \
AnnaBridge 172:65be27845400 164 break; \
AnnaBridge 172:65be27845400 165 case RCC_UART4CLKSOURCE_PLL3: \
AnnaBridge 172:65be27845400 166 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL3Q; \
AnnaBridge 172:65be27845400 167 break; \
AnnaBridge 172:65be27845400 168 case RCC_UART4CLKSOURCE_HSI: \
AnnaBridge 172:65be27845400 169 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
AnnaBridge 172:65be27845400 170 break; \
AnnaBridge 172:65be27845400 171 case RCC_UART4CLKSOURCE_CSI: \
AnnaBridge 172:65be27845400 172 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_CSI; \
AnnaBridge 172:65be27845400 173 break; \
AnnaBridge 172:65be27845400 174 case RCC_UART4CLKSOURCE_LSE: \
AnnaBridge 172:65be27845400 175 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
AnnaBridge 172:65be27845400 176 break; \
AnnaBridge 172:65be27845400 177 default: \
AnnaBridge 172:65be27845400 178 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED; \
AnnaBridge 172:65be27845400 179 break; \
AnnaBridge 172:65be27845400 180 } \
AnnaBridge 172:65be27845400 181 } \
AnnaBridge 172:65be27845400 182 else if ((__HANDLE__)->Instance == UART5) \
AnnaBridge 172:65be27845400 183 { \
AnnaBridge 172:65be27845400 184 switch(__HAL_RCC_GET_UART5_SOURCE()) \
AnnaBridge 172:65be27845400 185 { \
AnnaBridge 172:65be27845400 186 case RCC_UART5CLKSOURCE_D2PCLK1: \
AnnaBridge 172:65be27845400 187 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_D2PCLK1; \
AnnaBridge 172:65be27845400 188 break; \
AnnaBridge 172:65be27845400 189 case RCC_UART5CLKSOURCE_PLL2: \
AnnaBridge 172:65be27845400 190 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL2Q; \
AnnaBridge 172:65be27845400 191 break; \
AnnaBridge 172:65be27845400 192 case RCC_UART5CLKSOURCE_PLL3: \
AnnaBridge 172:65be27845400 193 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL3Q; \
AnnaBridge 172:65be27845400 194 break; \
AnnaBridge 172:65be27845400 195 case RCC_UART5CLKSOURCE_HSI: \
AnnaBridge 172:65be27845400 196 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
AnnaBridge 172:65be27845400 197 break; \
AnnaBridge 172:65be27845400 198 case RCC_UART5CLKSOURCE_CSI: \
AnnaBridge 172:65be27845400 199 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_CSI; \
AnnaBridge 172:65be27845400 200 break; \
AnnaBridge 172:65be27845400 201 case RCC_UART5CLKSOURCE_LSE: \
AnnaBridge 172:65be27845400 202 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
AnnaBridge 172:65be27845400 203 break; \
AnnaBridge 172:65be27845400 204 default: \
AnnaBridge 172:65be27845400 205 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED; \
AnnaBridge 172:65be27845400 206 break; \
AnnaBridge 172:65be27845400 207 } \
AnnaBridge 172:65be27845400 208 } \
AnnaBridge 172:65be27845400 209 else if((__HANDLE__)->Instance == USART6) \
AnnaBridge 172:65be27845400 210 { \
AnnaBridge 172:65be27845400 211 switch(__HAL_RCC_GET_USART6_SOURCE()) \
AnnaBridge 172:65be27845400 212 { \
AnnaBridge 172:65be27845400 213 case RCC_USART6CLKSOURCE_D2PCLK2: \
AnnaBridge 172:65be27845400 214 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_D2PCLK2; \
AnnaBridge 172:65be27845400 215 break; \
AnnaBridge 172:65be27845400 216 case RCC_USART6CLKSOURCE_PLL2: \
AnnaBridge 172:65be27845400 217 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL2Q; \
AnnaBridge 172:65be27845400 218 break; \
AnnaBridge 172:65be27845400 219 case RCC_USART6CLKSOURCE_PLL3: \
AnnaBridge 172:65be27845400 220 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL3Q; \
AnnaBridge 172:65be27845400 221 break; \
AnnaBridge 172:65be27845400 222 case RCC_USART6CLKSOURCE_HSI: \
AnnaBridge 172:65be27845400 223 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
AnnaBridge 172:65be27845400 224 break; \
AnnaBridge 172:65be27845400 225 case RCC_USART6CLKSOURCE_CSI: \
AnnaBridge 172:65be27845400 226 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_CSI; \
AnnaBridge 172:65be27845400 227 break; \
AnnaBridge 172:65be27845400 228 case RCC_USART6CLKSOURCE_LSE: \
AnnaBridge 172:65be27845400 229 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
AnnaBridge 172:65be27845400 230 break; \
AnnaBridge 172:65be27845400 231 default: \
AnnaBridge 172:65be27845400 232 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED; \
AnnaBridge 172:65be27845400 233 break; \
AnnaBridge 172:65be27845400 234 } \
AnnaBridge 172:65be27845400 235 } \
AnnaBridge 172:65be27845400 236 else if((__HANDLE__)->Instance == UART7) \
AnnaBridge 172:65be27845400 237 { \
AnnaBridge 172:65be27845400 238 switch(__HAL_RCC_GET_UART7_SOURCE()) \
AnnaBridge 172:65be27845400 239 { \
AnnaBridge 172:65be27845400 240 case RCC_UART7CLKSOURCE_D2PCLK1: \
AnnaBridge 172:65be27845400 241 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_D2PCLK1; \
AnnaBridge 172:65be27845400 242 break; \
AnnaBridge 172:65be27845400 243 case RCC_UART7CLKSOURCE_PLL2: \
AnnaBridge 172:65be27845400 244 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL2Q; \
AnnaBridge 172:65be27845400 245 break; \
AnnaBridge 172:65be27845400 246 case RCC_UART7CLKSOURCE_PLL3: \
AnnaBridge 172:65be27845400 247 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL3Q; \
AnnaBridge 172:65be27845400 248 break; \
AnnaBridge 172:65be27845400 249 case RCC_UART7CLKSOURCE_HSI: \
AnnaBridge 172:65be27845400 250 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
AnnaBridge 172:65be27845400 251 break; \
AnnaBridge 172:65be27845400 252 case RCC_UART7CLKSOURCE_CSI: \
AnnaBridge 172:65be27845400 253 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_CSI; \
AnnaBridge 172:65be27845400 254 break; \
AnnaBridge 172:65be27845400 255 case RCC_UART7CLKSOURCE_LSE: \
AnnaBridge 172:65be27845400 256 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
AnnaBridge 172:65be27845400 257 break; \
AnnaBridge 172:65be27845400 258 default: \
AnnaBridge 172:65be27845400 259 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED; \
AnnaBridge 172:65be27845400 260 break; \
AnnaBridge 172:65be27845400 261 } \
AnnaBridge 172:65be27845400 262 } \
AnnaBridge 172:65be27845400 263 else if((__HANDLE__)->Instance == UART8) \
AnnaBridge 172:65be27845400 264 { \
AnnaBridge 172:65be27845400 265 switch(__HAL_RCC_GET_UART8_SOURCE()) \
AnnaBridge 172:65be27845400 266 { \
AnnaBridge 172:65be27845400 267 case RCC_UART8CLKSOURCE_D2PCLK1: \
AnnaBridge 172:65be27845400 268 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_D2PCLK1; \
AnnaBridge 172:65be27845400 269 break; \
AnnaBridge 172:65be27845400 270 case RCC_UART8CLKSOURCE_PLL2: \
AnnaBridge 172:65be27845400 271 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL2Q; \
AnnaBridge 172:65be27845400 272 break; \
AnnaBridge 172:65be27845400 273 case RCC_UART8CLKSOURCE_PLL3: \
AnnaBridge 172:65be27845400 274 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL3Q; \
AnnaBridge 172:65be27845400 275 break; \
AnnaBridge 172:65be27845400 276 case RCC_UART8CLKSOURCE_HSI: \
AnnaBridge 172:65be27845400 277 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
AnnaBridge 172:65be27845400 278 break; \
AnnaBridge 172:65be27845400 279 case RCC_UART8CLKSOURCE_CSI: \
AnnaBridge 172:65be27845400 280 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_CSI; \
AnnaBridge 172:65be27845400 281 break; \
AnnaBridge 172:65be27845400 282 case RCC_UART8CLKSOURCE_LSE: \
AnnaBridge 172:65be27845400 283 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
AnnaBridge 172:65be27845400 284 break; \
AnnaBridge 172:65be27845400 285 default: \
AnnaBridge 172:65be27845400 286 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED; \
AnnaBridge 172:65be27845400 287 break; \
AnnaBridge 172:65be27845400 288 } \
AnnaBridge 172:65be27845400 289 } \
AnnaBridge 172:65be27845400 290 else \
AnnaBridge 172:65be27845400 291 { \
AnnaBridge 172:65be27845400 292 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED; \
AnnaBridge 172:65be27845400 293 } \
AnnaBridge 172:65be27845400 294 } while(0U)
AnnaBridge 172:65be27845400 295
AnnaBridge 172:65be27845400 296 /** @brief Compute the mask to apply to retrieve the received data
AnnaBridge 172:65be27845400 297 * according to the word length and to the parity bits activation.
AnnaBridge 172:65be27845400 298 * @param __HANDLE__ specifies the IRDA Handle.
AnnaBridge 172:65be27845400 299 * @retval None, the mask to apply to the associated UART RDR register is stored in (__HANDLE__)->Mask field.
AnnaBridge 172:65be27845400 300 */
AnnaBridge 172:65be27845400 301 #define IRDA_MASK_COMPUTATION(__HANDLE__) \
AnnaBridge 172:65be27845400 302 do { \
AnnaBridge 172:65be27845400 303 if ((__HANDLE__)->Init.WordLength == IRDA_WORDLENGTH_9B) \
AnnaBridge 172:65be27845400 304 { \
AnnaBridge 172:65be27845400 305 if ((__HANDLE__)->Init.Parity == IRDA_PARITY_NONE) \
AnnaBridge 172:65be27845400 306 { \
AnnaBridge 172:65be27845400 307 (__HANDLE__)->Mask = 0x01FFU ; \
AnnaBridge 172:65be27845400 308 } \
AnnaBridge 172:65be27845400 309 else \
AnnaBridge 172:65be27845400 310 { \
AnnaBridge 172:65be27845400 311 (__HANDLE__)->Mask = 0x00FFU ; \
AnnaBridge 172:65be27845400 312 } \
AnnaBridge 172:65be27845400 313 } \
AnnaBridge 172:65be27845400 314 else if ((__HANDLE__)->Init.WordLength == IRDA_WORDLENGTH_8B) \
AnnaBridge 172:65be27845400 315 { \
AnnaBridge 172:65be27845400 316 if ((__HANDLE__)->Init.Parity == IRDA_PARITY_NONE) \
AnnaBridge 172:65be27845400 317 { \
AnnaBridge 172:65be27845400 318 (__HANDLE__)->Mask = 0x00FFU ; \
AnnaBridge 172:65be27845400 319 } \
AnnaBridge 172:65be27845400 320 else \
AnnaBridge 172:65be27845400 321 { \
AnnaBridge 172:65be27845400 322 (__HANDLE__)->Mask = 0x007FU ; \
AnnaBridge 172:65be27845400 323 } \
AnnaBridge 172:65be27845400 324 } \
AnnaBridge 172:65be27845400 325 else if ((__HANDLE__)->Init.WordLength == IRDA_WORDLENGTH_7B) \
AnnaBridge 172:65be27845400 326 { \
AnnaBridge 172:65be27845400 327 if ((__HANDLE__)->Init.Parity == IRDA_PARITY_NONE) \
AnnaBridge 172:65be27845400 328 { \
AnnaBridge 172:65be27845400 329 (__HANDLE__)->Mask = 0x007FU ; \
AnnaBridge 172:65be27845400 330 } \
AnnaBridge 172:65be27845400 331 else \
AnnaBridge 172:65be27845400 332 { \
AnnaBridge 172:65be27845400 333 (__HANDLE__)->Mask = 0x003FU ; \
AnnaBridge 172:65be27845400 334 } \
AnnaBridge 172:65be27845400 335 } \
AnnaBridge 172:65be27845400 336 else \
AnnaBridge 172:65be27845400 337 { \
AnnaBridge 172:65be27845400 338 (__HANDLE__)->Mask = 0x0000U; \
AnnaBridge 172:65be27845400 339 } \
AnnaBridge 172:65be27845400 340 } while(0U)
AnnaBridge 172:65be27845400 341
AnnaBridge 172:65be27845400 342 /** @brief Ensure that IRDA frame length is valid.
AnnaBridge 172:65be27845400 343 * @param __LENGTH__ IRDA frame length.
AnnaBridge 172:65be27845400 344 * @retval SET (__LENGTH__ is valid) or RESET (__LENGTH__ is invalid)
AnnaBridge 172:65be27845400 345 */
AnnaBridge 172:65be27845400 346 #define IS_IRDA_WORD_LENGTH(__LENGTH__) (((__LENGTH__) == IRDA_WORDLENGTH_7B) || \
AnnaBridge 172:65be27845400 347 ((__LENGTH__) == IRDA_WORDLENGTH_8B) || \
AnnaBridge 172:65be27845400 348 ((__LENGTH__) == IRDA_WORDLENGTH_9B))
AnnaBridge 172:65be27845400 349 /**
AnnaBridge 172:65be27845400 350 * @}
AnnaBridge 172:65be27845400 351 */
AnnaBridge 172:65be27845400 352
AnnaBridge 172:65be27845400 353 /* Exported functions --------------------------------------------------------*/
AnnaBridge 172:65be27845400 354
AnnaBridge 172:65be27845400 355 /**
AnnaBridge 172:65be27845400 356 * @}
AnnaBridge 172:65be27845400 357 */
AnnaBridge 172:65be27845400 358
AnnaBridge 172:65be27845400 359 /**
AnnaBridge 172:65be27845400 360 * @}
AnnaBridge 172:65be27845400 361 */
AnnaBridge 172:65be27845400 362
AnnaBridge 172:65be27845400 363 #ifdef __cplusplus
AnnaBridge 172:65be27845400 364 }
AnnaBridge 172:65be27845400 365 #endif
AnnaBridge 172:65be27845400 366
AnnaBridge 172:65be27845400 367 #endif /* STM32H7xx_HAL_IRDA_EX_H */
AnnaBridge 172:65be27845400 368
AnnaBridge 172:65be27845400 369 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/