mbed official / mbed

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

Committer:
AnnaBridge
Date:
Thu Nov 09 11:14:10 2017 +0000
Revision:
157:e7ca05fa8600
Parent:
156:ff21514d8981
Child:
161:aa5281ff4a02
Release 155 of the mbed library.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 156:ff21514d8981 1 /**
AnnaBridge 156:ff21514d8981 2 ******************************************************************************
AnnaBridge 156:ff21514d8981 3 * @file stm32l4xx_hal_irda_ex.h
AnnaBridge 156:ff21514d8981 4 * @author MCD Application Team
AnnaBridge 156:ff21514d8981 5 * @version V1.7.1
AnnaBridge 156:ff21514d8981 6 * @date 21-April-2017
AnnaBridge 156:ff21514d8981 7 * @brief Header file of IRDA HAL Extended module.
AnnaBridge 156:ff21514d8981 8 ******************************************************************************
AnnaBridge 156:ff21514d8981 9 * @attention
AnnaBridge 156:ff21514d8981 10 *
AnnaBridge 156:ff21514d8981 11 * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
AnnaBridge 156:ff21514d8981 12 *
AnnaBridge 156:ff21514d8981 13 * Redistribution and use in source and binary forms, with or without modification,
AnnaBridge 156:ff21514d8981 14 * are permitted provided that the following conditions are met:
AnnaBridge 156:ff21514d8981 15 * 1. Redistributions of source code must retain the above copyright notice,
AnnaBridge 156:ff21514d8981 16 * this list of conditions and the following disclaimer.
AnnaBridge 156:ff21514d8981 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
AnnaBridge 156:ff21514d8981 18 * this list of conditions and the following disclaimer in the documentation
AnnaBridge 156:ff21514d8981 19 * and/or other materials provided with the distribution.
AnnaBridge 156:ff21514d8981 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
AnnaBridge 156:ff21514d8981 21 * may be used to endorse or promote products derived from this software
AnnaBridge 156:ff21514d8981 22 * without specific prior written permission.
AnnaBridge 156:ff21514d8981 23 *
AnnaBridge 156:ff21514d8981 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AnnaBridge 156:ff21514d8981 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
AnnaBridge 156:ff21514d8981 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
AnnaBridge 156:ff21514d8981 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
AnnaBridge 156:ff21514d8981 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
AnnaBridge 156:ff21514d8981 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
AnnaBridge 156:ff21514d8981 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
AnnaBridge 156:ff21514d8981 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
AnnaBridge 156:ff21514d8981 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
AnnaBridge 156:ff21514d8981 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
AnnaBridge 156:ff21514d8981 34 *
AnnaBridge 156:ff21514d8981 35 ******************************************************************************
AnnaBridge 156:ff21514d8981 36 */
AnnaBridge 156:ff21514d8981 37
AnnaBridge 156:ff21514d8981 38 /* Define to prevent recursive inclusion -------------------------------------*/
AnnaBridge 156:ff21514d8981 39 #ifndef __STM32L4xx_HAL_IRDA_EX_H
AnnaBridge 156:ff21514d8981 40 #define __STM32L4xx_HAL_IRDA_EX_H
AnnaBridge 156:ff21514d8981 41
AnnaBridge 156:ff21514d8981 42 #ifdef __cplusplus
AnnaBridge 156:ff21514d8981 43 extern "C" {
AnnaBridge 156:ff21514d8981 44 #endif
AnnaBridge 156:ff21514d8981 45
AnnaBridge 156:ff21514d8981 46 /* Includes ------------------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 47 #include "stm32l4xx_hal_def.h"
AnnaBridge 156:ff21514d8981 48
AnnaBridge 156:ff21514d8981 49 /** @addtogroup STM32L4xx_HAL_Driver
AnnaBridge 156:ff21514d8981 50 * @{
AnnaBridge 156:ff21514d8981 51 */
AnnaBridge 156:ff21514d8981 52
AnnaBridge 156:ff21514d8981 53 /** @addtogroup IRDAEx
AnnaBridge 156:ff21514d8981 54 * @{
AnnaBridge 156:ff21514d8981 55 */
AnnaBridge 156:ff21514d8981 56
AnnaBridge 156:ff21514d8981 57 /* Exported types ------------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 58 /* Exported constants --------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 59 /* Exported macros -----------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 60 /* Exported functions --------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 61
AnnaBridge 156:ff21514d8981 62 /* Private macros ------------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 63
AnnaBridge 156:ff21514d8981 64 /** @defgroup IRDAEx_Private_Macros IRDAEx Private Macros
AnnaBridge 156:ff21514d8981 65 * @{
AnnaBridge 156:ff21514d8981 66 */
AnnaBridge 156:ff21514d8981 67
AnnaBridge 156:ff21514d8981 68 /** @brief Report the IRDA clock source.
AnnaBridge 156:ff21514d8981 69 * @param __HANDLE__: specifies the IRDA Handle.
AnnaBridge 156:ff21514d8981 70 * @param __CLOCKSOURCE__: output variable.
AnnaBridge 156:ff21514d8981 71 * @retval IRDA clocking source, written in __CLOCKSOURCE__.
AnnaBridge 156:ff21514d8981 72 */
AnnaBridge 156:ff21514d8981 73 #if defined (STM32L471xx) || defined (STM32L475xx) || defined (STM32L476xx) || defined (STM32L485xx) || defined (STM32L486xx) || defined (STM32L496xx) || defined (STM32L4A6xx)
AnnaBridge 156:ff21514d8981 74 #define IRDA_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__) \
AnnaBridge 156:ff21514d8981 75 do { \
AnnaBridge 156:ff21514d8981 76 if((__HANDLE__)->Instance == USART1) \
AnnaBridge 156:ff21514d8981 77 { \
AnnaBridge 156:ff21514d8981 78 switch(__HAL_RCC_GET_USART1_SOURCE()) \
AnnaBridge 156:ff21514d8981 79 { \
AnnaBridge 156:ff21514d8981 80 case RCC_USART1CLKSOURCE_PCLK2: \
AnnaBridge 156:ff21514d8981 81 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK2; \
AnnaBridge 156:ff21514d8981 82 break; \
AnnaBridge 156:ff21514d8981 83 case RCC_USART1CLKSOURCE_HSI: \
AnnaBridge 156:ff21514d8981 84 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
AnnaBridge 156:ff21514d8981 85 break; \
AnnaBridge 156:ff21514d8981 86 case RCC_USART1CLKSOURCE_SYSCLK: \
AnnaBridge 156:ff21514d8981 87 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK; \
AnnaBridge 156:ff21514d8981 88 break; \
AnnaBridge 156:ff21514d8981 89 case RCC_USART1CLKSOURCE_LSE: \
AnnaBridge 156:ff21514d8981 90 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
AnnaBridge 156:ff21514d8981 91 break; \
AnnaBridge 156:ff21514d8981 92 default: \
AnnaBridge 156:ff21514d8981 93 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED; \
AnnaBridge 156:ff21514d8981 94 break; \
AnnaBridge 156:ff21514d8981 95 } \
AnnaBridge 156:ff21514d8981 96 } \
AnnaBridge 156:ff21514d8981 97 else if((__HANDLE__)->Instance == USART2) \
AnnaBridge 156:ff21514d8981 98 { \
AnnaBridge 156:ff21514d8981 99 switch(__HAL_RCC_GET_USART2_SOURCE()) \
AnnaBridge 156:ff21514d8981 100 { \
AnnaBridge 156:ff21514d8981 101 case RCC_USART2CLKSOURCE_PCLK1: \
AnnaBridge 156:ff21514d8981 102 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK1; \
AnnaBridge 156:ff21514d8981 103 break; \
AnnaBridge 156:ff21514d8981 104 case RCC_USART2CLKSOURCE_HSI: \
AnnaBridge 156:ff21514d8981 105 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
AnnaBridge 156:ff21514d8981 106 break; \
AnnaBridge 156:ff21514d8981 107 case RCC_USART2CLKSOURCE_SYSCLK: \
AnnaBridge 156:ff21514d8981 108 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK; \
AnnaBridge 156:ff21514d8981 109 break; \
AnnaBridge 156:ff21514d8981 110 case RCC_USART2CLKSOURCE_LSE: \
AnnaBridge 156:ff21514d8981 111 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
AnnaBridge 156:ff21514d8981 112 break; \
AnnaBridge 156:ff21514d8981 113 default: \
AnnaBridge 156:ff21514d8981 114 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED; \
AnnaBridge 156:ff21514d8981 115 break; \
AnnaBridge 156:ff21514d8981 116 } \
AnnaBridge 156:ff21514d8981 117 } \
AnnaBridge 156:ff21514d8981 118 else if((__HANDLE__)->Instance == USART3) \
AnnaBridge 156:ff21514d8981 119 { \
AnnaBridge 156:ff21514d8981 120 switch(__HAL_RCC_GET_USART3_SOURCE()) \
AnnaBridge 156:ff21514d8981 121 { \
AnnaBridge 156:ff21514d8981 122 case RCC_USART3CLKSOURCE_PCLK1: \
AnnaBridge 156:ff21514d8981 123 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK1; \
AnnaBridge 156:ff21514d8981 124 break; \
AnnaBridge 156:ff21514d8981 125 case RCC_USART3CLKSOURCE_HSI: \
AnnaBridge 156:ff21514d8981 126 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
AnnaBridge 156:ff21514d8981 127 break; \
AnnaBridge 156:ff21514d8981 128 case RCC_USART3CLKSOURCE_SYSCLK: \
AnnaBridge 156:ff21514d8981 129 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK; \
AnnaBridge 156:ff21514d8981 130 break; \
AnnaBridge 156:ff21514d8981 131 case RCC_USART3CLKSOURCE_LSE: \
AnnaBridge 156:ff21514d8981 132 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
AnnaBridge 156:ff21514d8981 133 break; \
AnnaBridge 156:ff21514d8981 134 default: \
AnnaBridge 156:ff21514d8981 135 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED; \
AnnaBridge 156:ff21514d8981 136 break; \
AnnaBridge 156:ff21514d8981 137 } \
AnnaBridge 156:ff21514d8981 138 } \
AnnaBridge 156:ff21514d8981 139 else if((__HANDLE__)->Instance == UART4) \
AnnaBridge 156:ff21514d8981 140 { \
AnnaBridge 156:ff21514d8981 141 switch(__HAL_RCC_GET_UART4_SOURCE()) \
AnnaBridge 156:ff21514d8981 142 { \
AnnaBridge 156:ff21514d8981 143 case RCC_UART4CLKSOURCE_PCLK1: \
AnnaBridge 156:ff21514d8981 144 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK1; \
AnnaBridge 156:ff21514d8981 145 break; \
AnnaBridge 156:ff21514d8981 146 case RCC_UART4CLKSOURCE_HSI: \
AnnaBridge 156:ff21514d8981 147 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
AnnaBridge 156:ff21514d8981 148 break; \
AnnaBridge 156:ff21514d8981 149 case RCC_UART4CLKSOURCE_SYSCLK: \
AnnaBridge 156:ff21514d8981 150 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK; \
AnnaBridge 156:ff21514d8981 151 break; \
AnnaBridge 156:ff21514d8981 152 case RCC_UART4CLKSOURCE_LSE: \
AnnaBridge 156:ff21514d8981 153 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
AnnaBridge 156:ff21514d8981 154 break; \
AnnaBridge 156:ff21514d8981 155 default: \
AnnaBridge 156:ff21514d8981 156 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED; \
AnnaBridge 156:ff21514d8981 157 break; \
AnnaBridge 156:ff21514d8981 158 } \
AnnaBridge 156:ff21514d8981 159 } \
AnnaBridge 156:ff21514d8981 160 else if ((__HANDLE__)->Instance == UART5) \
AnnaBridge 156:ff21514d8981 161 { \
AnnaBridge 156:ff21514d8981 162 switch(__HAL_RCC_GET_UART5_SOURCE()) \
AnnaBridge 156:ff21514d8981 163 { \
AnnaBridge 156:ff21514d8981 164 case RCC_UART5CLKSOURCE_PCLK1: \
AnnaBridge 156:ff21514d8981 165 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK1; \
AnnaBridge 156:ff21514d8981 166 break; \
AnnaBridge 156:ff21514d8981 167 case RCC_UART5CLKSOURCE_HSI: \
AnnaBridge 156:ff21514d8981 168 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
AnnaBridge 156:ff21514d8981 169 break; \
AnnaBridge 156:ff21514d8981 170 case RCC_UART5CLKSOURCE_SYSCLK: \
AnnaBridge 156:ff21514d8981 171 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK; \
AnnaBridge 156:ff21514d8981 172 break; \
AnnaBridge 156:ff21514d8981 173 case RCC_UART5CLKSOURCE_LSE: \
AnnaBridge 156:ff21514d8981 174 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
AnnaBridge 156:ff21514d8981 175 break; \
AnnaBridge 156:ff21514d8981 176 default: \
AnnaBridge 156:ff21514d8981 177 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED; \
AnnaBridge 156:ff21514d8981 178 break; \
AnnaBridge 156:ff21514d8981 179 } \
AnnaBridge 156:ff21514d8981 180 } \
AnnaBridge 156:ff21514d8981 181 } while(0)
AnnaBridge 156:ff21514d8981 182 #elif defined (STM32L431xx) || defined (STM32L433xx) || defined (STM32L443xx)
AnnaBridge 156:ff21514d8981 183 #define IRDA_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__) \
AnnaBridge 156:ff21514d8981 184 do { \
AnnaBridge 156:ff21514d8981 185 if((__HANDLE__)->Instance == USART1) \
AnnaBridge 156:ff21514d8981 186 { \
AnnaBridge 156:ff21514d8981 187 switch(__HAL_RCC_GET_USART1_SOURCE()) \
AnnaBridge 156:ff21514d8981 188 { \
AnnaBridge 156:ff21514d8981 189 case RCC_USART1CLKSOURCE_PCLK2: \
AnnaBridge 156:ff21514d8981 190 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK2; \
AnnaBridge 156:ff21514d8981 191 break; \
AnnaBridge 156:ff21514d8981 192 case RCC_USART1CLKSOURCE_HSI: \
AnnaBridge 156:ff21514d8981 193 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
AnnaBridge 156:ff21514d8981 194 break; \
AnnaBridge 156:ff21514d8981 195 case RCC_USART1CLKSOURCE_SYSCLK: \
AnnaBridge 156:ff21514d8981 196 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK; \
AnnaBridge 156:ff21514d8981 197 break; \
AnnaBridge 156:ff21514d8981 198 case RCC_USART1CLKSOURCE_LSE: \
AnnaBridge 156:ff21514d8981 199 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
AnnaBridge 156:ff21514d8981 200 break; \
AnnaBridge 156:ff21514d8981 201 default: \
AnnaBridge 156:ff21514d8981 202 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED; \
AnnaBridge 156:ff21514d8981 203 break; \
AnnaBridge 156:ff21514d8981 204 } \
AnnaBridge 156:ff21514d8981 205 } \
AnnaBridge 156:ff21514d8981 206 else if((__HANDLE__)->Instance == USART2) \
AnnaBridge 156:ff21514d8981 207 { \
AnnaBridge 156:ff21514d8981 208 switch(__HAL_RCC_GET_USART2_SOURCE()) \
AnnaBridge 156:ff21514d8981 209 { \
AnnaBridge 156:ff21514d8981 210 case RCC_USART2CLKSOURCE_PCLK1: \
AnnaBridge 156:ff21514d8981 211 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK1; \
AnnaBridge 156:ff21514d8981 212 break; \
AnnaBridge 156:ff21514d8981 213 case RCC_USART2CLKSOURCE_HSI: \
AnnaBridge 156:ff21514d8981 214 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
AnnaBridge 156:ff21514d8981 215 break; \
AnnaBridge 156:ff21514d8981 216 case RCC_USART2CLKSOURCE_SYSCLK: \
AnnaBridge 156:ff21514d8981 217 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK; \
AnnaBridge 156:ff21514d8981 218 break; \
AnnaBridge 156:ff21514d8981 219 case RCC_USART2CLKSOURCE_LSE: \
AnnaBridge 156:ff21514d8981 220 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
AnnaBridge 156:ff21514d8981 221 break; \
AnnaBridge 156:ff21514d8981 222 default: \
AnnaBridge 156:ff21514d8981 223 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED; \
AnnaBridge 156:ff21514d8981 224 break; \
AnnaBridge 156:ff21514d8981 225 } \
AnnaBridge 156:ff21514d8981 226 } \
AnnaBridge 156:ff21514d8981 227 else if((__HANDLE__)->Instance == USART3) \
AnnaBridge 156:ff21514d8981 228 { \
AnnaBridge 156:ff21514d8981 229 switch(__HAL_RCC_GET_USART3_SOURCE()) \
AnnaBridge 156:ff21514d8981 230 { \
AnnaBridge 156:ff21514d8981 231 case RCC_USART3CLKSOURCE_PCLK1: \
AnnaBridge 156:ff21514d8981 232 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK1; \
AnnaBridge 156:ff21514d8981 233 break; \
AnnaBridge 156:ff21514d8981 234 case RCC_USART3CLKSOURCE_HSI: \
AnnaBridge 156:ff21514d8981 235 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
AnnaBridge 156:ff21514d8981 236 break; \
AnnaBridge 156:ff21514d8981 237 case RCC_USART3CLKSOURCE_SYSCLK: \
AnnaBridge 156:ff21514d8981 238 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK; \
AnnaBridge 156:ff21514d8981 239 break; \
AnnaBridge 156:ff21514d8981 240 case RCC_USART3CLKSOURCE_LSE: \
AnnaBridge 156:ff21514d8981 241 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
AnnaBridge 156:ff21514d8981 242 break; \
AnnaBridge 156:ff21514d8981 243 default: \
AnnaBridge 156:ff21514d8981 244 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED; \
AnnaBridge 156:ff21514d8981 245 break; \
AnnaBridge 156:ff21514d8981 246 } \
AnnaBridge 156:ff21514d8981 247 } \
AnnaBridge 156:ff21514d8981 248 } while(0)
AnnaBridge 156:ff21514d8981 249 #elif defined (STM32L432xx) || defined (STM32L442xx)
AnnaBridge 156:ff21514d8981 250 #define IRDA_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__) \
AnnaBridge 156:ff21514d8981 251 do { \
AnnaBridge 156:ff21514d8981 252 if((__HANDLE__)->Instance == USART1) \
AnnaBridge 156:ff21514d8981 253 { \
AnnaBridge 156:ff21514d8981 254 switch(__HAL_RCC_GET_USART1_SOURCE()) \
AnnaBridge 156:ff21514d8981 255 { \
AnnaBridge 156:ff21514d8981 256 case RCC_USART1CLKSOURCE_PCLK2: \
AnnaBridge 156:ff21514d8981 257 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK2; \
AnnaBridge 156:ff21514d8981 258 break; \
AnnaBridge 156:ff21514d8981 259 case RCC_USART1CLKSOURCE_HSI: \
AnnaBridge 156:ff21514d8981 260 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
AnnaBridge 156:ff21514d8981 261 break; \
AnnaBridge 156:ff21514d8981 262 case RCC_USART1CLKSOURCE_SYSCLK: \
AnnaBridge 156:ff21514d8981 263 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK; \
AnnaBridge 156:ff21514d8981 264 break; \
AnnaBridge 156:ff21514d8981 265 case RCC_USART1CLKSOURCE_LSE: \
AnnaBridge 156:ff21514d8981 266 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
AnnaBridge 156:ff21514d8981 267 break; \
AnnaBridge 156:ff21514d8981 268 default: \
AnnaBridge 156:ff21514d8981 269 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED; \
AnnaBridge 156:ff21514d8981 270 break; \
AnnaBridge 156:ff21514d8981 271 } \
AnnaBridge 156:ff21514d8981 272 } \
AnnaBridge 156:ff21514d8981 273 else if((__HANDLE__)->Instance == USART2) \
AnnaBridge 156:ff21514d8981 274 { \
AnnaBridge 156:ff21514d8981 275 switch(__HAL_RCC_GET_USART2_SOURCE()) \
AnnaBridge 156:ff21514d8981 276 { \
AnnaBridge 156:ff21514d8981 277 case RCC_USART2CLKSOURCE_PCLK1: \
AnnaBridge 156:ff21514d8981 278 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK1; \
AnnaBridge 156:ff21514d8981 279 break; \
AnnaBridge 156:ff21514d8981 280 case RCC_USART2CLKSOURCE_HSI: \
AnnaBridge 156:ff21514d8981 281 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
AnnaBridge 156:ff21514d8981 282 break; \
AnnaBridge 156:ff21514d8981 283 case RCC_USART2CLKSOURCE_SYSCLK: \
AnnaBridge 156:ff21514d8981 284 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK; \
AnnaBridge 156:ff21514d8981 285 break; \
AnnaBridge 156:ff21514d8981 286 case RCC_USART2CLKSOURCE_LSE: \
AnnaBridge 156:ff21514d8981 287 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
AnnaBridge 156:ff21514d8981 288 break; \
AnnaBridge 156:ff21514d8981 289 default: \
AnnaBridge 156:ff21514d8981 290 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED; \
AnnaBridge 156:ff21514d8981 291 break; \
AnnaBridge 156:ff21514d8981 292 } \
AnnaBridge 156:ff21514d8981 293 } \
AnnaBridge 156:ff21514d8981 294 } while(0)
AnnaBridge 156:ff21514d8981 295 #elif defined (STM32L451xx) || defined (STM32L452xx) || defined (STM32L462xx)
AnnaBridge 156:ff21514d8981 296 #define IRDA_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__) \
AnnaBridge 156:ff21514d8981 297 do { \
AnnaBridge 156:ff21514d8981 298 if((__HANDLE__)->Instance == USART1) \
AnnaBridge 156:ff21514d8981 299 { \
AnnaBridge 156:ff21514d8981 300 switch(__HAL_RCC_GET_USART1_SOURCE()) \
AnnaBridge 156:ff21514d8981 301 { \
AnnaBridge 156:ff21514d8981 302 case RCC_USART1CLKSOURCE_PCLK2: \
AnnaBridge 156:ff21514d8981 303 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK2; \
AnnaBridge 156:ff21514d8981 304 break; \
AnnaBridge 156:ff21514d8981 305 case RCC_USART1CLKSOURCE_HSI: \
AnnaBridge 156:ff21514d8981 306 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
AnnaBridge 156:ff21514d8981 307 break; \
AnnaBridge 156:ff21514d8981 308 case RCC_USART1CLKSOURCE_SYSCLK: \
AnnaBridge 156:ff21514d8981 309 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK; \
AnnaBridge 156:ff21514d8981 310 break; \
AnnaBridge 156:ff21514d8981 311 case RCC_USART1CLKSOURCE_LSE: \
AnnaBridge 156:ff21514d8981 312 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
AnnaBridge 156:ff21514d8981 313 break; \
AnnaBridge 156:ff21514d8981 314 default: \
AnnaBridge 156:ff21514d8981 315 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED; \
AnnaBridge 156:ff21514d8981 316 break; \
AnnaBridge 156:ff21514d8981 317 } \
AnnaBridge 156:ff21514d8981 318 } \
AnnaBridge 156:ff21514d8981 319 else if((__HANDLE__)->Instance == USART2) \
AnnaBridge 156:ff21514d8981 320 { \
AnnaBridge 156:ff21514d8981 321 switch(__HAL_RCC_GET_USART2_SOURCE()) \
AnnaBridge 156:ff21514d8981 322 { \
AnnaBridge 156:ff21514d8981 323 case RCC_USART2CLKSOURCE_PCLK1: \
AnnaBridge 156:ff21514d8981 324 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK1; \
AnnaBridge 156:ff21514d8981 325 break; \
AnnaBridge 156:ff21514d8981 326 case RCC_USART2CLKSOURCE_HSI: \
AnnaBridge 156:ff21514d8981 327 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
AnnaBridge 156:ff21514d8981 328 break; \
AnnaBridge 156:ff21514d8981 329 case RCC_USART2CLKSOURCE_SYSCLK: \
AnnaBridge 156:ff21514d8981 330 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK; \
AnnaBridge 156:ff21514d8981 331 break; \
AnnaBridge 156:ff21514d8981 332 case RCC_USART2CLKSOURCE_LSE: \
AnnaBridge 156:ff21514d8981 333 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
AnnaBridge 156:ff21514d8981 334 break; \
AnnaBridge 156:ff21514d8981 335 default: \
AnnaBridge 156:ff21514d8981 336 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED; \
AnnaBridge 156:ff21514d8981 337 break; \
AnnaBridge 156:ff21514d8981 338 } \
AnnaBridge 156:ff21514d8981 339 } \
AnnaBridge 156:ff21514d8981 340 else if((__HANDLE__)->Instance == USART3) \
AnnaBridge 156:ff21514d8981 341 { \
AnnaBridge 156:ff21514d8981 342 switch(__HAL_RCC_GET_USART3_SOURCE()) \
AnnaBridge 156:ff21514d8981 343 { \
AnnaBridge 156:ff21514d8981 344 case RCC_USART3CLKSOURCE_PCLK1: \
AnnaBridge 156:ff21514d8981 345 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK1; \
AnnaBridge 156:ff21514d8981 346 break; \
AnnaBridge 156:ff21514d8981 347 case RCC_USART3CLKSOURCE_HSI: \
AnnaBridge 156:ff21514d8981 348 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
AnnaBridge 156:ff21514d8981 349 break; \
AnnaBridge 156:ff21514d8981 350 case RCC_USART3CLKSOURCE_SYSCLK: \
AnnaBridge 156:ff21514d8981 351 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK; \
AnnaBridge 156:ff21514d8981 352 break; \
AnnaBridge 156:ff21514d8981 353 case RCC_USART3CLKSOURCE_LSE: \
AnnaBridge 156:ff21514d8981 354 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
AnnaBridge 156:ff21514d8981 355 break; \
AnnaBridge 156:ff21514d8981 356 default: \
AnnaBridge 156:ff21514d8981 357 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED; \
AnnaBridge 156:ff21514d8981 358 break; \
AnnaBridge 156:ff21514d8981 359 } \
AnnaBridge 156:ff21514d8981 360 } \
AnnaBridge 156:ff21514d8981 361 else if((__HANDLE__)->Instance == UART4) \
AnnaBridge 156:ff21514d8981 362 { \
AnnaBridge 156:ff21514d8981 363 switch(__HAL_RCC_GET_UART4_SOURCE()) \
AnnaBridge 156:ff21514d8981 364 { \
AnnaBridge 156:ff21514d8981 365 case RCC_UART4CLKSOURCE_PCLK1: \
AnnaBridge 156:ff21514d8981 366 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK1; \
AnnaBridge 156:ff21514d8981 367 break; \
AnnaBridge 156:ff21514d8981 368 case RCC_UART4CLKSOURCE_HSI: \
AnnaBridge 156:ff21514d8981 369 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
AnnaBridge 156:ff21514d8981 370 break; \
AnnaBridge 156:ff21514d8981 371 case RCC_UART4CLKSOURCE_SYSCLK: \
AnnaBridge 156:ff21514d8981 372 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK; \
AnnaBridge 156:ff21514d8981 373 break; \
AnnaBridge 156:ff21514d8981 374 case RCC_UART4CLKSOURCE_LSE: \
AnnaBridge 156:ff21514d8981 375 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
AnnaBridge 156:ff21514d8981 376 break; \
AnnaBridge 156:ff21514d8981 377 default: \
AnnaBridge 156:ff21514d8981 378 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED; \
AnnaBridge 156:ff21514d8981 379 break; \
AnnaBridge 156:ff21514d8981 380 } \
AnnaBridge 156:ff21514d8981 381 } \
AnnaBridge 156:ff21514d8981 382 } while(0)
AnnaBridge 156:ff21514d8981 383 #endif
AnnaBridge 156:ff21514d8981 384
AnnaBridge 156:ff21514d8981 385 /**
AnnaBridge 156:ff21514d8981 386 * @}
AnnaBridge 156:ff21514d8981 387 */
AnnaBridge 156:ff21514d8981 388
AnnaBridge 156:ff21514d8981 389 /* Exported functions --------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 390
AnnaBridge 156:ff21514d8981 391 /**
AnnaBridge 156:ff21514d8981 392 * @}
AnnaBridge 156:ff21514d8981 393 */
AnnaBridge 156:ff21514d8981 394
AnnaBridge 156:ff21514d8981 395 /**
AnnaBridge 156:ff21514d8981 396 * @}
AnnaBridge 156:ff21514d8981 397 */
AnnaBridge 156:ff21514d8981 398
AnnaBridge 156:ff21514d8981 399 #ifdef __cplusplus
AnnaBridge 156:ff21514d8981 400 }
AnnaBridge 156:ff21514d8981 401 #endif
AnnaBridge 156:ff21514d8981 402
AnnaBridge 156:ff21514d8981 403 #endif /* __STM32L4xx_HAL_IRDA_EX_H */
AnnaBridge 156:ff21514d8981 404
AnnaBridge 156:ff21514d8981 405 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/