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