STM32F769IDiscovery  1.00
uDANTE Audio Networking with STM32F7 DISCO board
stm32f7xx_hal_irda_ex.h
Go to the documentation of this file.
1 
38 /* Define to prevent recursive inclusion -------------------------------------*/
39 #ifndef __STM32F7xx_HAL_IRDA_EX_H
40 #define __STM32F7xx_HAL_IRDA_EX_H
41 
42 #ifdef __cplusplus
43  extern "C" {
44 #endif
45 
46 /* Includes ------------------------------------------------------------------*/
47 #include "stm32f7xx_hal_def.h"
48 
57 /* Exported types ------------------------------------------------------------*/
58 /* Exported constants --------------------------------------------------------*/
66 #define IRDA_WORDLENGTH_7B ((uint32_t)USART_CR1_M_1)
67 #define IRDA_WORDLENGTH_8B ((uint32_t)0x00000000U)
68 #define IRDA_WORDLENGTH_9B ((uint32_t)USART_CR1_M_0)
69 
78 /* Exported macro ------------------------------------------------------------*/
79 
80 /* Private macros ------------------------------------------------------------*/
81 
90 #define IRDA_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__) \
91  do { \
92  if((__HANDLE__)->Instance == USART1) \
93  { \
94  switch(__HAL_RCC_GET_USART1_SOURCE()) \
95  { \
96  case RCC_USART1CLKSOURCE_PCLK2: \
97  (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK2; \
98  break; \
99  case RCC_USART1CLKSOURCE_HSI: \
100  (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
101  break; \
102  case RCC_USART1CLKSOURCE_SYSCLK: \
103  (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK; \
104  break; \
105  case RCC_USART1CLKSOURCE_LSE: \
106  (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
107  break; \
108  default: \
109  break; \
110  } \
111  } \
112  else if((__HANDLE__)->Instance == USART2) \
113  { \
114  switch(__HAL_RCC_GET_USART2_SOURCE()) \
115  { \
116  case RCC_USART2CLKSOURCE_PCLK1: \
117  (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK1; \
118  break; \
119  case RCC_USART2CLKSOURCE_HSI: \
120  (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
121  break; \
122  case RCC_USART2CLKSOURCE_SYSCLK: \
123  (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK; \
124  break; \
125  case RCC_USART2CLKSOURCE_LSE: \
126  (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
127  break; \
128  default: \
129  break; \
130  } \
131  } \
132  else if((__HANDLE__)->Instance == USART3) \
133  { \
134  switch(__HAL_RCC_GET_USART3_SOURCE()) \
135  { \
136  case RCC_USART3CLKSOURCE_PCLK1: \
137  (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK1; \
138  break; \
139  case RCC_USART3CLKSOURCE_HSI: \
140  (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
141  break; \
142  case RCC_USART3CLKSOURCE_SYSCLK: \
143  (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK; \
144  break; \
145  case RCC_USART3CLKSOURCE_LSE: \
146  (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
147  break; \
148  default: \
149  break; \
150  } \
151  } \
152  else if((__HANDLE__)->Instance == USART6) \
153  { \
154  switch(__HAL_RCC_GET_USART6_SOURCE()) \
155  { \
156  case RCC_USART6CLKSOURCE_PCLK2: \
157  (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PCLK2; \
158  break; \
159  case RCC_USART6CLKSOURCE_HSI: \
160  (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
161  break; \
162  case RCC_USART6CLKSOURCE_SYSCLK: \
163  (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_SYSCLK; \
164  break; \
165  case RCC_USART6CLKSOURCE_LSE: \
166  (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
167  break; \
168  default: \
169  break; \
170  } \
171  } \
172  } while(0)
173 
179 #define IRDA_MASK_COMPUTATION(__HANDLE__) \
180  do { \
181  if ((__HANDLE__)->Init.WordLength == IRDA_WORDLENGTH_9B) \
182  { \
183  if ((__HANDLE__)->Init.Parity == IRDA_PARITY_NONE) \
184  { \
185  (__HANDLE__)->Mask = 0x01FF ; \
186  } \
187  else \
188  { \
189  (__HANDLE__)->Mask = 0x00FF ; \
190  } \
191  } \
192  else if ((__HANDLE__)->Init.WordLength == IRDA_WORDLENGTH_8B) \
193  { \
194  if ((__HANDLE__)->Init.Parity == IRDA_PARITY_NONE) \
195  { \
196  (__HANDLE__)->Mask = 0x00FF ; \
197  } \
198  else \
199  { \
200  (__HANDLE__)->Mask = 0x007F ; \
201  } \
202  } \
203  else if ((__HANDLE__)->Init.WordLength == IRDA_WORDLENGTH_7B) \
204  { \
205  if ((__HANDLE__)->Init.Parity == IRDA_PARITY_NONE) \
206  { \
207  (__HANDLE__)->Mask = 0x007F ; \
208  } \
209  else \
210  { \
211  (__HANDLE__)->Mask = 0x003F ; \
212  } \
213  } \
214 } while(0)
215 
216 #define IS_IRDA_WORD_LENGTH(LENGTH) (((LENGTH) == IRDA_WORDLENGTH_7B) || \
217  ((LENGTH) == IRDA_WORDLENGTH_8B) || \
218  ((LENGTH) == IRDA_WORDLENGTH_9B))
219 
223 /* Exported functions --------------------------------------------------------*/
224 
233 #ifdef __cplusplus
234 }
235 #endif
236 
237 #endif /* __STM32F7xx_HAL_IRDA_EX_H */
238 
239 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
This file contains HAL common defines, enumeration, macros and structures definitions.