TUKS MCU Introductory course / TUKS-COURSE-THERMOMETER

Fork of TUKS-COURSE-TIMER by TUKS MCU Introductory course

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers stm32l4xx_hal_irda_ex.h Source File

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   * @version V1.5.1
00006   * @date    31-May-2016
00007   * @brief   Header file of IRDA HAL Extended module.
00008   ******************************************************************************
00009   * @attention
00010   *
00011   * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
00012   *
00013   * Redistribution and use in source and binary forms, with or without modification,
00014   * are permitted provided that the following conditions are met:
00015   *   1. Redistributions of source code must retain the above copyright notice,
00016   *      this list of conditions and the following disclaimer.
00017   *   2. Redistributions in binary form must reproduce the above copyright notice,
00018   *      this list of conditions and the following disclaimer in the documentation
00019   *      and/or other materials provided with the distribution.
00020   *   3. Neither the name of STMicroelectronics nor the names of its contributors
00021   *      may be used to endorse or promote products derived from this software
00022   *      without specific prior written permission.
00023   *
00024   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00025   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00026   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
00027   * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
00028   * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
00029   * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
00030   * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
00031   * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
00032   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
00033   * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00034   *
00035   ******************************************************************************
00036   */
00037 
00038 /* Define to prevent recursive inclusion -------------------------------------*/
00039 #ifndef __STM32L4xx_HAL_IRDA_EX_H
00040 #define __STM32L4xx_HAL_IRDA_EX_H
00041 
00042 #ifdef __cplusplus
00043  extern "C" {
00044 #endif
00045 
00046 /* Includes ------------------------------------------------------------------*/
00047 #include "stm32l4xx_hal_def.h"
00048 
00049 /** @addtogroup STM32L4xx_HAL_Driver
00050   * @{
00051   */
00052 
00053 /** @addtogroup IRDAEx
00054   * @{
00055   */
00056 
00057 /* Exported types ------------------------------------------------------------*/
00058 /* Exported constants --------------------------------------------------------*/
00059 /* Exported macros -----------------------------------------------------------*/
00060 /* Exported functions --------------------------------------------------------*/
00061 
00062 /* Private macros ------------------------------------------------------------*/
00063 
00064 /** @defgroup IRDAEx_Private_Macros IRDAEx Private Macros
00065   * @{
00066   */
00067 
00068 /** @brief  Report the IRDA clock source.
00069   * @param  __HANDLE__: specifies the IRDA Handle.
00070   * @param  __CLOCKSOURCE__: output variable.
00071   * @retval IRDA clocking source, written in __CLOCKSOURCE__.
00072   */
00073 #if defined (STM32L471xx) || defined (STM32L475xx) || defined (STM32L476xx) || defined (STM32L485xx) || defined (STM32L486xx)  
00074 #define IRDA_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__)       \
00075   do {                                                        \
00076     if((__HANDLE__)->Instance == USART1)                      \
00077     {                                                         \
00078        switch(__HAL_RCC_GET_USART1_SOURCE())                  \
00079        {                                                      \
00080         case RCC_USART1CLKSOURCE_PCLK2:                       \
00081           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK2;         \
00082           break;                                              \
00083         case RCC_USART1CLKSOURCE_HSI:                         \
00084           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI;           \
00085           break;                                              \
00086         case RCC_USART1CLKSOURCE_SYSCLK:                      \
00087           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK;        \
00088           break;                                              \
00089         case RCC_USART1CLKSOURCE_LSE:                         \
00090           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE;           \
00091           break;                                              \
00092         default:                                              \
00093           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED;     \
00094           break;                                              \
00095        }                                                      \
00096     }                                                         \
00097     else if((__HANDLE__)->Instance == USART2)                 \
00098     {                                                         \
00099        switch(__HAL_RCC_GET_USART2_SOURCE())                  \
00100        {                                                      \
00101         case RCC_USART2CLKSOURCE_PCLK1:                       \
00102           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK1;         \
00103           break;                                              \
00104         case RCC_USART2CLKSOURCE_HSI:                         \
00105           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI;           \
00106           break;                                              \
00107         case RCC_USART2CLKSOURCE_SYSCLK:                      \
00108           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK;        \
00109           break;                                              \
00110         case RCC_USART2CLKSOURCE_LSE:                         \
00111           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE;           \
00112           break;                                              \
00113         default:                                              \
00114           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED;     \
00115           break;                                              \
00116        }                                                      \
00117     }                                                         \
00118     else if((__HANDLE__)->Instance == USART3)                 \
00119     {                                                         \
00120        switch(__HAL_RCC_GET_USART3_SOURCE())                  \
00121        {                                                      \
00122         case RCC_USART3CLKSOURCE_PCLK1:                       \
00123           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK1;         \
00124           break;                                              \
00125         case RCC_USART3CLKSOURCE_HSI:                         \
00126           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI;           \
00127           break;                                              \
00128         case RCC_USART3CLKSOURCE_SYSCLK:                      \
00129           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK;        \
00130           break;                                              \
00131         case RCC_USART3CLKSOURCE_LSE:                         \
00132           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE;           \
00133           break;                                              \
00134         default:                                              \
00135           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED;     \
00136           break;                                              \
00137        }                                                      \
00138     }                                                         \
00139     else if((__HANDLE__)->Instance == UART4)                  \
00140     {                                                         \
00141        switch(__HAL_RCC_GET_UART4_SOURCE())                   \
00142        {                                                      \
00143         case RCC_UART4CLKSOURCE_PCLK1:                        \
00144           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK1;         \
00145           break;                                              \
00146         case RCC_UART4CLKSOURCE_HSI:                          \
00147           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI;           \
00148           break;                                              \
00149         case RCC_UART4CLKSOURCE_SYSCLK:                       \
00150           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK;        \
00151           break;                                              \
00152         case RCC_UART4CLKSOURCE_LSE:                          \
00153           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE;           \
00154           break;                                              \
00155         default:                                              \
00156           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED;     \
00157           break;                                              \
00158        }                                                      \
00159     }                                                         \
00160     else if ((__HANDLE__)->Instance == UART5)                 \
00161     {                                                         \
00162        switch(__HAL_RCC_GET_UART5_SOURCE())                   \
00163        {                                                      \
00164         case RCC_UART5CLKSOURCE_PCLK1:                        \
00165           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK1;         \
00166           break;                                              \
00167         case RCC_UART5CLKSOURCE_HSI:                          \
00168           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI;           \
00169           break;                                              \
00170         case RCC_UART5CLKSOURCE_SYSCLK:                       \
00171           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK;        \
00172           break;                                              \
00173         case RCC_UART5CLKSOURCE_LSE:                          \
00174           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE;           \
00175           break;                                              \
00176         default:                                              \
00177           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED;     \
00178           break;                                              \
00179        }                                                      \
00180     }                                                         \
00181   } while(0)
00182 #elif defined (STM32L431xx) || defined (STM32L433xx) || defined (STM32L443xx)
00183 #define IRDA_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__)       \
00184   do {                                                        \
00185     if((__HANDLE__)->Instance == USART1)                      \
00186     {                                                         \
00187        switch(__HAL_RCC_GET_USART1_SOURCE())                  \
00188        {                                                      \
00189         case RCC_USART1CLKSOURCE_PCLK2:                       \
00190           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK2;         \
00191           break;                                              \
00192         case RCC_USART1CLKSOURCE_HSI:                         \
00193           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI;           \
00194           break;                                              \
00195         case RCC_USART1CLKSOURCE_SYSCLK:                      \
00196           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK;        \
00197           break;                                              \
00198         case RCC_USART1CLKSOURCE_LSE:                         \
00199           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE;           \
00200           break;                                              \
00201         default:                                              \
00202           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED;     \
00203           break;                                              \
00204        }                                                      \
00205     }                                                         \
00206     else if((__HANDLE__)->Instance == USART2)                 \
00207     {                                                         \
00208        switch(__HAL_RCC_GET_USART2_SOURCE())                  \
00209        {                                                      \
00210         case RCC_USART2CLKSOURCE_PCLK1:                       \
00211           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK1;         \
00212           break;                                              \
00213         case RCC_USART2CLKSOURCE_HSI:                         \
00214           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI;           \
00215           break;                                              \
00216         case RCC_USART2CLKSOURCE_SYSCLK:                      \
00217           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK;        \
00218           break;                                              \
00219         case RCC_USART2CLKSOURCE_LSE:                         \
00220           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE;           \
00221           break;                                              \
00222         default:                                              \
00223           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED;     \
00224           break;                                              \
00225        }                                                      \
00226     }                                                         \
00227     else if((__HANDLE__)->Instance == USART3)                 \
00228     {                                                         \
00229        switch(__HAL_RCC_GET_USART3_SOURCE())                  \
00230        {                                                      \
00231         case RCC_USART3CLKSOURCE_PCLK1:                       \
00232           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK1;         \
00233           break;                                              \
00234         case RCC_USART3CLKSOURCE_HSI:                         \
00235           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI;           \
00236           break;                                              \
00237         case RCC_USART3CLKSOURCE_SYSCLK:                      \
00238           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK;        \
00239           break;                                              \
00240         case RCC_USART3CLKSOURCE_LSE:                         \
00241           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE;           \
00242           break;                                              \
00243         default:                                              \
00244           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED;     \
00245           break;                                              \
00246        }                                                      \
00247     }                                                         \
00248   } while(0)
00249 #elif defined (STM32L432xx) || defined (STM32L442xx)
00250 #define IRDA_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__)       \
00251   do {                                                        \
00252     if((__HANDLE__)->Instance == USART1)                      \
00253     {                                                         \
00254        switch(__HAL_RCC_GET_USART1_SOURCE())                  \
00255        {                                                      \
00256         case RCC_USART1CLKSOURCE_PCLK2:                       \
00257           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK2;         \
00258           break;                                              \
00259         case RCC_USART1CLKSOURCE_HSI:                         \
00260           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI;           \
00261           break;                                              \
00262         case RCC_USART1CLKSOURCE_SYSCLK:                      \
00263           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK;        \
00264           break;                                              \
00265         case RCC_USART1CLKSOURCE_LSE:                         \
00266           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE;           \
00267           break;                                              \
00268         default:                                              \
00269           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED;     \
00270           break;                                              \
00271        }                                                      \
00272     }                                                         \
00273     else if((__HANDLE__)->Instance == USART2)                 \
00274     {                                                         \
00275        switch(__HAL_RCC_GET_USART2_SOURCE())                  \
00276        {                                                      \
00277         case RCC_USART2CLKSOURCE_PCLK1:                       \
00278           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK1;         \
00279           break;                                              \
00280         case RCC_USART2CLKSOURCE_HSI:                         \
00281           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI;           \
00282           break;                                              \
00283         case RCC_USART2CLKSOURCE_SYSCLK:                      \
00284           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK;        \
00285           break;                                              \
00286         case RCC_USART2CLKSOURCE_LSE:                         \
00287           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE;           \
00288           break;                                              \
00289         default:                                              \
00290           (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED;     \
00291           break;                                              \
00292        }                                                      \
00293     }                                                         \
00294   } while(0)
00295 #endif
00296 
00297 /**
00298   * @}
00299   */
00300 
00301 /* Exported functions --------------------------------------------------------*/
00302 
00303 /**
00304   * @}
00305   */
00306 
00307 /**
00308   * @}
00309   */
00310 
00311 #ifdef __cplusplus
00312 }
00313 #endif
00314 
00315 #endif /* __STM32L4xx_HAL_IRDA_EX_H */
00316 
00317 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/