STM32L443xx HAL User Manual
stm32l4xx_hal_irda_ex.h
Go to the documentation of this file.
00001 /**
00002   ******************************************************************************
00003   * @file    stm32l4xx_hal_irda_ex.h
00004   * @author  MCD Application Team
00005   * @brief   Header file of IRDA HAL Extended module.
00006   ******************************************************************************
00007   * @attention
00008   *
00009   * Copyright (c) 2017 STMicroelectronics.
00010   * All rights reserved.
00011   *
00012   * This software is licensed under terms that can be found in the LICENSE file
00013   * in the root directory of this software component.
00014   * If no LICENSE file comes with this software, it is provided AS-IS.
00015   *
00016   ******************************************************************************
00017   */
00018 
00019 /* Define to prevent recursive inclusion -------------------------------------*/
00020 #ifndef STM32L4xx_HAL_IRDA_EX_H
00021 #define STM32L4xx_HAL_IRDA_EX_H
00022 
00023 #ifdef __cplusplus
00024 extern "C" {
00025 #endif
00026 
00027 /* Includes ------------------------------------------------------------------*/
00028 #include "stm32l4xx_hal_def.h"
00029 
00030 /** @addtogroup STM32L4xx_HAL_Driver
00031   * @{
00032   */
00033 
00034 /** @defgroup IRDAEx IRDAEx
00035   * @brief IRDA Extended HAL module driver
00036   * @{
00037   */
00038 
00039 /* Exported types ------------------------------------------------------------*/
00040 /* Exported constants --------------------------------------------------------*/
00041 /** @defgroup IRDAEx_Extended_Exported_Constants IRDAEx Extended Exported Constants
00042   * @{
00043   */
00044 
00045 /** @defgroup IRDAEx_Word_Length IRDAEx Word Length
00046   * @{
00047   */
00048 #define IRDA_WORDLENGTH_7B                  USART_CR1_M1   /*!< 7-bit long frame */
00049 #define IRDA_WORDLENGTH_8B                  0x00000000U    /*!< 8-bit long frame */
00050 #define IRDA_WORDLENGTH_9B                  USART_CR1_M0   /*!< 9-bit long frame */
00051 /**
00052   * @}
00053   */
00054 
00055 /**
00056   * @}
00057   */
00058 
00059 /* Exported macros -----------------------------------------------------------*/
00060 
00061 /* Private macros ------------------------------------------------------------*/
00062 
00063 /** @defgroup IRDAEx_Private_Macros IRDAEx Private Macros
00064   * @{
00065   */
00066 
00067 /** @brief  Report the IRDA clock source.
00068   * @param  __HANDLE__ specifies the IRDA Handle.
00069   * @param  __CLOCKSOURCE__ output variable.
00070   * @retval IRDA clocking source, written in __CLOCKSOURCE__.
00071   */
00072 #if defined (STM32L471xx) || defined (STM32L475xx) || defined (STM32L476xx) || defined (STM32L485xx) || defined (STM32L486xx) \
00073  || defined (STM32L496xx) || defined (STM32L4A6xx) \
00074  || defined (STM32L4P5xx) || defined (STM32L4Q5xx) \
00075  || defined (STM32L4R5xx) || defined (STM32L4R7xx) || defined (STM32L4R9xx) || defined (STM32L4S5xx) || defined (STM32L4S7xx) || defined (STM32L4S9xx)
00076 #define IRDA_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__)       \
00077   do {                                                        \
00078     if((__HANDLE__)->Instance == USART1)                      \
00079     {                                                         \
00080       switch(__HAL_RCC_GET_USART1_SOURCE())                   \
00081       {                                                       \
00082         case RCC_USART1CLKSOURCE_PCLK2:                       \
00083           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK2;         \
00084           break;                                              \
00085         case RCC_USART1CLKSOURCE_HSI:                         \
00086           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI;           \
00087           break;                                              \
00088         case RCC_USART1CLKSOURCE_SYSCLK:                      \
00089           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK;        \
00090           break;                                              \
00091         case RCC_USART1CLKSOURCE_LSE:                         \
00092           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE;           \
00093           break;                                              \
00094         default:                                              \
00095           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED;     \
00096           break;                                              \
00097       }                                                       \
00098     }                                                         \
00099     else if((__HANDLE__)->Instance == USART2)                 \
00100     {                                                         \
00101       switch(__HAL_RCC_GET_USART2_SOURCE())                   \
00102       {                                                       \
00103         case RCC_USART2CLKSOURCE_PCLK1:                       \
00104           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK1;         \
00105           break;                                              \
00106         case RCC_USART2CLKSOURCE_HSI:                         \
00107           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI;           \
00108           break;                                              \
00109         case RCC_USART2CLKSOURCE_SYSCLK:                      \
00110           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK;        \
00111           break;                                              \
00112         case RCC_USART2CLKSOURCE_LSE:                         \
00113           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE;           \
00114           break;                                              \
00115         default:                                              \
00116           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED;     \
00117           break;                                              \
00118       }                                                       \
00119     }                                                         \
00120     else if((__HANDLE__)->Instance == USART3)                 \
00121     {                                                         \
00122       switch(__HAL_RCC_GET_USART3_SOURCE())                   \
00123       {                                                       \
00124         case RCC_USART3CLKSOURCE_PCLK1:                       \
00125           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK1;         \
00126           break;                                              \
00127         case RCC_USART3CLKSOURCE_HSI:                         \
00128           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI;           \
00129           break;                                              \
00130         case RCC_USART3CLKSOURCE_SYSCLK:                      \
00131           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK;        \
00132           break;                                              \
00133         case RCC_USART3CLKSOURCE_LSE:                         \
00134           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE;           \
00135           break;                                              \
00136         default:                                              \
00137           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED;     \
00138           break;                                              \
00139       }                                                       \
00140     }                                                         \
00141     else if((__HANDLE__)->Instance == UART4)                  \
00142     {                                                         \
00143       switch(__HAL_RCC_GET_UART4_SOURCE())                    \
00144       {                                                       \
00145         case RCC_UART4CLKSOURCE_PCLK1:                        \
00146           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK1;         \
00147           break;                                              \
00148         case RCC_UART4CLKSOURCE_HSI:                          \
00149           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI;           \
00150           break;                                              \
00151         case RCC_UART4CLKSOURCE_SYSCLK:                       \
00152           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK;        \
00153           break;                                              \
00154         case RCC_UART4CLKSOURCE_LSE:                          \
00155           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE;           \
00156           break;                                              \
00157         default:                                              \
00158           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED;     \
00159           break;                                              \
00160       }                                                       \
00161     }                                                         \
00162     else if ((__HANDLE__)->Instance == UART5)                 \
00163     {                                                         \
00164       switch(__HAL_RCC_GET_UART5_SOURCE())                    \
00165       {                                                       \
00166         case RCC_UART5CLKSOURCE_PCLK1:                        \
00167           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK1;         \
00168           break;                                              \
00169         case RCC_UART5CLKSOURCE_HSI:                          \
00170           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI;           \
00171           break;                                              \
00172         case RCC_UART5CLKSOURCE_SYSCLK:                       \
00173           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK;        \
00174           break;                                              \
00175         case RCC_UART5CLKSOURCE_LSE:                          \
00176           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE;           \
00177           break;                                              \
00178         default:                                              \
00179           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED;     \
00180           break;                                              \
00181       }                                                       \
00182     }                                                         \
00183     else                                                      \
00184     {                                                         \
00185       (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED;         \
00186     }                                                         \
00187   } while(0)
00188 #elif defined (STM32L412xx) || defined (STM32L422xx) || defined (STM32L431xx) || defined (STM32L433xx) || defined (STM32L443xx)
00189 #define IRDA_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__)       \
00190   do {                                                        \
00191     if((__HANDLE__)->Instance == USART1)                      \
00192     {                                                         \
00193       switch(__HAL_RCC_GET_USART1_SOURCE())                   \
00194       {                                                       \
00195         case RCC_USART1CLKSOURCE_PCLK2:                       \
00196           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK2;         \
00197           break;                                              \
00198         case RCC_USART1CLKSOURCE_HSI:                         \
00199           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI;           \
00200           break;                                              \
00201         case RCC_USART1CLKSOURCE_SYSCLK:                      \
00202           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK;        \
00203           break;                                              \
00204         case RCC_USART1CLKSOURCE_LSE:                         \
00205           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE;           \
00206           break;                                              \
00207         default:                                              \
00208           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED;     \
00209           break;                                              \
00210       }                                                       \
00211     }                                                         \
00212     else if((__HANDLE__)->Instance == USART2)                 \
00213     {                                                         \
00214       switch(__HAL_RCC_GET_USART2_SOURCE())                   \
00215       {                                                       \
00216         case RCC_USART2CLKSOURCE_PCLK1:                       \
00217           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK1;         \
00218           break;                                              \
00219         case RCC_USART2CLKSOURCE_HSI:                         \
00220           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI;           \
00221           break;                                              \
00222         case RCC_USART2CLKSOURCE_SYSCLK:                      \
00223           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK;        \
00224           break;                                              \
00225         case RCC_USART2CLKSOURCE_LSE:                         \
00226           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE;           \
00227           break;                                              \
00228         default:                                              \
00229           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED;     \
00230           break;                                              \
00231       }                                                       \
00232     }                                                         \
00233     else if((__HANDLE__)->Instance == USART3)                 \
00234     {                                                         \
00235       switch(__HAL_RCC_GET_USART3_SOURCE())                   \
00236       {                                                       \
00237         case RCC_USART3CLKSOURCE_PCLK1:                       \
00238           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK1;         \
00239           break;                                              \
00240         case RCC_USART3CLKSOURCE_HSI:                         \
00241           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI;           \
00242           break;                                              \
00243         case RCC_USART3CLKSOURCE_SYSCLK:                      \
00244           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK;        \
00245           break;                                              \
00246         case RCC_USART3CLKSOURCE_LSE:                         \
00247           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE;           \
00248           break;                                              \
00249         default:                                              \
00250           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED;     \
00251           break;                                              \
00252       }                                                       \
00253     }                                                         \
00254     else                                                      \
00255     {                                                         \
00256       (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED;         \
00257     }                                                         \
00258   } while(0)
00259 #elif defined (STM32L432xx) || defined (STM32L442xx)
00260 #define IRDA_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__)       \
00261   do {                                                        \
00262     if((__HANDLE__)->Instance == USART1)                      \
00263     {                                                         \
00264       switch(__HAL_RCC_GET_USART1_SOURCE())                   \
00265       {                                                       \
00266         case RCC_USART1CLKSOURCE_PCLK2:                       \
00267           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK2;         \
00268           break;                                              \
00269         case RCC_USART1CLKSOURCE_HSI:                         \
00270           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI;           \
00271           break;                                              \
00272         case RCC_USART1CLKSOURCE_SYSCLK:                      \
00273           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK;        \
00274           break;                                              \
00275         case RCC_USART1CLKSOURCE_LSE:                         \
00276           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE;           \
00277           break;                                              \
00278         default:                                              \
00279           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED;     \
00280           break;                                              \
00281       }                                                       \
00282     }                                                         \
00283     else if((__HANDLE__)->Instance == USART2)                 \
00284     {                                                         \
00285       switch(__HAL_RCC_GET_USART2_SOURCE())                   \
00286       {                                                       \
00287         case RCC_USART2CLKSOURCE_PCLK1:                       \
00288           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK1;         \
00289           break;                                              \
00290         case RCC_USART2CLKSOURCE_HSI:                         \
00291           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI;           \
00292           break;                                              \
00293         case RCC_USART2CLKSOURCE_SYSCLK:                      \
00294           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK;        \
00295           break;                                              \
00296         case RCC_USART2CLKSOURCE_LSE:                         \
00297           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE;           \
00298           break;                                              \
00299         default:                                              \
00300           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED;     \
00301           break;                                              \
00302       }                                                       \
00303     }                                                         \
00304     else                                                      \
00305     {                                                         \
00306       (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED;         \
00307     }                                                         \
00308   } while(0)
00309 #elif defined (STM32L451xx) || defined (STM32L452xx) || defined (STM32L462xx)
00310 #define IRDA_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__)       \
00311   do {                                                        \
00312     if((__HANDLE__)->Instance == USART1)                      \
00313     {                                                         \
00314       switch(__HAL_RCC_GET_USART1_SOURCE())                   \
00315       {                                                       \
00316         case RCC_USART1CLKSOURCE_PCLK2:                       \
00317           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK2;         \
00318           break;                                              \
00319         case RCC_USART1CLKSOURCE_HSI:                         \
00320           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI;           \
00321           break;                                              \
00322         case RCC_USART1CLKSOURCE_SYSCLK:                      \
00323           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK;        \
00324           break;                                              \
00325         case RCC_USART1CLKSOURCE_LSE:                         \
00326           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE;           \
00327           break;                                              \
00328         default:                                              \
00329           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED;     \
00330           break;                                              \
00331       }                                                       \
00332     }                                                         \
00333     else if((__HANDLE__)->Instance == USART2)                 \
00334     {                                                         \
00335       switch(__HAL_RCC_GET_USART2_SOURCE())                   \
00336       {                                                       \
00337         case RCC_USART2CLKSOURCE_PCLK1:                       \
00338           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK1;         \
00339           break;                                              \
00340         case RCC_USART2CLKSOURCE_HSI:                         \
00341           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI;           \
00342           break;                                              \
00343         case RCC_USART2CLKSOURCE_SYSCLK:                      \
00344           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK;        \
00345           break;                                              \
00346         case RCC_USART2CLKSOURCE_LSE:                         \
00347           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE;           \
00348           break;                                              \
00349         default:                                              \
00350           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED;     \
00351           break;                                              \
00352       }                                                       \
00353     }                                                         \
00354     else if((__HANDLE__)->Instance == USART3)                 \
00355     {                                                         \
00356       switch(__HAL_RCC_GET_USART3_SOURCE())                   \
00357       {                                                       \
00358         case RCC_USART3CLKSOURCE_PCLK1:                       \
00359           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK1;         \
00360           break;                                              \
00361         case RCC_USART3CLKSOURCE_HSI:                         \
00362           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI;           \
00363           break;                                              \
00364         case RCC_USART3CLKSOURCE_SYSCLK:                      \
00365           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK;        \
00366           break;                                              \
00367         case RCC_USART3CLKSOURCE_LSE:                         \
00368           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE;           \
00369           break;                                              \
00370         default:                                              \
00371           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED;     \
00372           break;                                              \
00373       }                                                       \
00374     }                                                         \
00375     else if((__HANDLE__)->Instance == UART4)                  \
00376     {                                                         \
00377       switch(__HAL_RCC_GET_UART4_SOURCE())                    \
00378       {                                                       \
00379         case RCC_UART4CLKSOURCE_PCLK1:                        \
00380           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK1;         \
00381           break;                                              \
00382         case RCC_UART4CLKSOURCE_HSI:                          \
00383           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI;           \
00384           break;                                              \
00385         case RCC_UART4CLKSOURCE_SYSCLK:                       \
00386           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK;        \
00387           break;                                              \
00388         case RCC_UART4CLKSOURCE_LSE:                          \
00389           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE;           \
00390           break;                                              \
00391         default:                                              \
00392           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED;     \
00393           break;                                              \
00394       }                                                       \
00395     }                                                         \
00396     else                                                      \
00397     {                                                         \
00398       (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED;         \
00399     }                                                         \
00400   } while(0)
00401 #endif /* STM32L471xx  ||  STM32L475xx  ||  STM32L476xx  ||  STM32L485xx  ||  STM32L486xx  ||
00402         * STM32L496xx  ||  STM32L4A6xx  ||
00403         * STM32L4P5xx  ||  STM32L4Q5xx  ||
00404         * STM32L4R5xx  ||  STM32L4R7xx  ||  STM32L4R9xx  ||  STM32L4S5xx  ||  STM32L4S7xx  ||  STM32L4S9xx
00405         */
00406 
00407 /** @brief  Compute the mask to apply to retrieve the received data
00408   *         according to the word length and to the parity bits activation.
00409   * @param  __HANDLE__ specifies the IRDA Handle.
00410   * @retval None, the mask to apply to the associated UART RDR register is stored in (__HANDLE__)->Mask field.
00411   */
00412 #define IRDA_MASK_COMPUTATION(__HANDLE__)                             \
00413   do {                                                                \
00414     if ((__HANDLE__)->Init.WordLength == IRDA_WORDLENGTH_9B)          \
00415     {                                                                 \
00416       if ((__HANDLE__)->Init.Parity == IRDA_PARITY_NONE)              \
00417       {                                                               \
00418         (__HANDLE__)->Mask = 0x01FFU ;                                \
00419       }                                                               \
00420       else                                                            \
00421       {                                                               \
00422         (__HANDLE__)->Mask = 0x00FFU ;                                \
00423       }                                                               \
00424     }                                                                 \
00425     else if ((__HANDLE__)->Init.WordLength == IRDA_WORDLENGTH_8B)     \
00426     {                                                                 \
00427       if ((__HANDLE__)->Init.Parity == IRDA_PARITY_NONE)              \
00428       {                                                               \
00429         (__HANDLE__)->Mask = 0x00FFU ;                                \
00430       }                                                               \
00431       else                                                            \
00432       {                                                               \
00433         (__HANDLE__)->Mask = 0x007FU ;                                \
00434       }                                                               \
00435     }                                                                 \
00436     else if ((__HANDLE__)->Init.WordLength == IRDA_WORDLENGTH_7B)     \
00437     {                                                                 \
00438       if ((__HANDLE__)->Init.Parity == IRDA_PARITY_NONE)              \
00439       {                                                               \
00440         (__HANDLE__)->Mask = 0x007FU ;                                \
00441       }                                                               \
00442       else                                                            \
00443       {                                                               \
00444         (__HANDLE__)->Mask = 0x003FU ;                                \
00445       }                                                               \
00446     }                                                                 \
00447     else                                                              \
00448     {                                                                 \
00449       (__HANDLE__)->Mask = 0x0000U;                                   \
00450     }                                                                 \
00451   } while(0U)
00452 
00453 /** @brief Ensure that IRDA frame length is valid.
00454   * @param __LENGTH__ IRDA frame length.
00455   * @retval SET (__LENGTH__ is valid) or RESET (__LENGTH__ is invalid)
00456   */
00457 #define IS_IRDA_WORD_LENGTH(__LENGTH__) (((__LENGTH__) == IRDA_WORDLENGTH_7B) || \
00458                                          ((__LENGTH__) == IRDA_WORDLENGTH_8B) || \
00459                                          ((__LENGTH__) == IRDA_WORDLENGTH_9B))
00460 /**
00461   * @}
00462   */
00463 
00464 /* Exported functions --------------------------------------------------------*/
00465 
00466 /**
00467   * @}
00468   */
00469 
00470 /**
00471   * @}
00472   */
00473 
00474 #ifdef __cplusplus
00475 }
00476 #endif
00477 
00478 #endif /* STM32L4xx_HAL_IRDA_EX_H */
00479