File indexing completed on 2025-05-11 08:23:35
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 #ifndef STM32H7xx_HAL_IRDA_EX_H
0021 #define STM32H7xx_HAL_IRDA_EX_H
0022
0023 #ifdef __cplusplus
0024 extern "C" {
0025 #endif
0026
0027
0028 #include "stm32h7xx_hal_def.h"
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051 #define IRDA_WORDLENGTH_7B USART_CR1_M1
0052 #define IRDA_WORDLENGTH_8B 0x00000000U
0053 #define IRDA_WORDLENGTH_9B USART_CR1_M0
0054
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076 #if defined(UART9) && defined(USART10)
0077 #define IRDA_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__) \
0078 do { \
0079 if((__HANDLE__)->Instance == USART1) \
0080 { \
0081 switch(__HAL_RCC_GET_USART1_SOURCE()) \
0082 { \
0083 case RCC_USART1CLKSOURCE_D2PCLK2: \
0084 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_D2PCLK2; \
0085 break; \
0086 case RCC_USART1CLKSOURCE_PLL2: \
0087 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL2Q; \
0088 break; \
0089 case RCC_USART1CLKSOURCE_PLL3: \
0090 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL3Q; \
0091 break; \
0092 case RCC_USART1CLKSOURCE_HSI: \
0093 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
0094 break; \
0095 case RCC_USART1CLKSOURCE_CSI: \
0096 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_CSI; \
0097 break; \
0098 case RCC_USART1CLKSOURCE_LSE: \
0099 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
0100 break; \
0101 default: \
0102 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED; \
0103 break; \
0104 } \
0105 } \
0106 else if((__HANDLE__)->Instance == USART2) \
0107 { \
0108 switch(__HAL_RCC_GET_USART2_SOURCE()) \
0109 { \
0110 case RCC_USART2CLKSOURCE_D2PCLK1: \
0111 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_D2PCLK1; \
0112 break; \
0113 case RCC_USART2CLKSOURCE_PLL2: \
0114 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL2Q; \
0115 break; \
0116 case RCC_USART2CLKSOURCE_PLL3: \
0117 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL3Q; \
0118 break; \
0119 case RCC_USART2CLKSOURCE_HSI: \
0120 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
0121 break; \
0122 case RCC_USART2CLKSOURCE_CSI: \
0123 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_CSI; \
0124 break; \
0125 case RCC_USART2CLKSOURCE_LSE: \
0126 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
0127 break; \
0128 default: \
0129 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED; \
0130 break; \
0131 } \
0132 } \
0133 else if((__HANDLE__)->Instance == USART3) \
0134 { \
0135 switch(__HAL_RCC_GET_USART3_SOURCE()) \
0136 { \
0137 case RCC_USART3CLKSOURCE_D2PCLK1: \
0138 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_D2PCLK1; \
0139 break; \
0140 case RCC_USART3CLKSOURCE_PLL2: \
0141 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL2Q; \
0142 break; \
0143 case RCC_USART3CLKSOURCE_PLL3: \
0144 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL3Q; \
0145 break; \
0146 case RCC_USART3CLKSOURCE_HSI: \
0147 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
0148 break; \
0149 case RCC_USART3CLKSOURCE_CSI: \
0150 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_CSI; \
0151 break; \
0152 case RCC_USART3CLKSOURCE_LSE: \
0153 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
0154 break; \
0155 default: \
0156 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED; \
0157 break; \
0158 } \
0159 } \
0160 else if((__HANDLE__)->Instance == UART4) \
0161 { \
0162 switch(__HAL_RCC_GET_UART4_SOURCE()) \
0163 { \
0164 case RCC_UART4CLKSOURCE_D2PCLK1: \
0165 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_D2PCLK1; \
0166 break; \
0167 case RCC_UART4CLKSOURCE_PLL2: \
0168 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL2Q; \
0169 break; \
0170 case RCC_UART4CLKSOURCE_PLL3: \
0171 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL3Q; \
0172 break; \
0173 case RCC_UART4CLKSOURCE_HSI: \
0174 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
0175 break; \
0176 case RCC_UART4CLKSOURCE_CSI: \
0177 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_CSI; \
0178 break; \
0179 case RCC_UART4CLKSOURCE_LSE: \
0180 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
0181 break; \
0182 default: \
0183 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED; \
0184 break; \
0185 } \
0186 } \
0187 else if ((__HANDLE__)->Instance == UART5) \
0188 { \
0189 switch(__HAL_RCC_GET_UART5_SOURCE()) \
0190 { \
0191 case RCC_UART5CLKSOURCE_D2PCLK1: \
0192 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_D2PCLK1; \
0193 break; \
0194 case RCC_UART5CLKSOURCE_PLL2: \
0195 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL2Q; \
0196 break; \
0197 case RCC_UART5CLKSOURCE_PLL3: \
0198 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL3Q; \
0199 break; \
0200 case RCC_UART5CLKSOURCE_HSI: \
0201 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
0202 break; \
0203 case RCC_UART5CLKSOURCE_CSI: \
0204 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_CSI; \
0205 break; \
0206 case RCC_UART5CLKSOURCE_LSE: \
0207 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
0208 break; \
0209 default: \
0210 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED; \
0211 break; \
0212 } \
0213 } \
0214 else if((__HANDLE__)->Instance == USART6) \
0215 { \
0216 switch(__HAL_RCC_GET_USART6_SOURCE()) \
0217 { \
0218 case RCC_USART6CLKSOURCE_D2PCLK2: \
0219 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_D2PCLK2; \
0220 break; \
0221 case RCC_USART6CLKSOURCE_PLL2: \
0222 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL2Q; \
0223 break; \
0224 case RCC_USART6CLKSOURCE_PLL3: \
0225 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL3Q; \
0226 break; \
0227 case RCC_USART6CLKSOURCE_HSI: \
0228 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
0229 break; \
0230 case RCC_USART6CLKSOURCE_CSI: \
0231 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_CSI; \
0232 break; \
0233 case RCC_USART6CLKSOURCE_LSE: \
0234 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
0235 break; \
0236 default: \
0237 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED; \
0238 break; \
0239 } \
0240 } \
0241 else if((__HANDLE__)->Instance == UART7) \
0242 { \
0243 switch(__HAL_RCC_GET_UART7_SOURCE()) \
0244 { \
0245 case RCC_UART7CLKSOURCE_D2PCLK1: \
0246 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_D2PCLK1; \
0247 break; \
0248 case RCC_UART7CLKSOURCE_PLL2: \
0249 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL2Q; \
0250 break; \
0251 case RCC_UART7CLKSOURCE_PLL3: \
0252 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL3Q; \
0253 break; \
0254 case RCC_UART7CLKSOURCE_HSI: \
0255 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
0256 break; \
0257 case RCC_UART7CLKSOURCE_CSI: \
0258 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_CSI; \
0259 break; \
0260 case RCC_UART7CLKSOURCE_LSE: \
0261 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
0262 break; \
0263 default: \
0264 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED; \
0265 break; \
0266 } \
0267 } \
0268 else if((__HANDLE__)->Instance == UART8) \
0269 { \
0270 switch(__HAL_RCC_GET_UART8_SOURCE()) \
0271 { \
0272 case RCC_UART8CLKSOURCE_D2PCLK1: \
0273 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_D2PCLK1; \
0274 break; \
0275 case RCC_UART8CLKSOURCE_PLL2: \
0276 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL2Q; \
0277 break; \
0278 case RCC_UART8CLKSOURCE_PLL3: \
0279 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL3Q; \
0280 break; \
0281 case RCC_UART8CLKSOURCE_HSI: \
0282 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
0283 break; \
0284 case RCC_UART8CLKSOURCE_CSI: \
0285 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_CSI; \
0286 break; \
0287 case RCC_UART8CLKSOURCE_LSE: \
0288 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
0289 break; \
0290 default: \
0291 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED; \
0292 break; \
0293 } \
0294 } \
0295 else if((__HANDLE__)->Instance == UART9) \
0296 { \
0297 switch(__HAL_RCC_GET_UART9_SOURCE()) \
0298 { \
0299 case RCC_UART9CLKSOURCE_D2PCLK2: \
0300 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_D2PCLK2; \
0301 break; \
0302 case RCC_UART9CLKSOURCE_PLL2: \
0303 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL2Q; \
0304 break; \
0305 case RCC_UART9CLKSOURCE_PLL3: \
0306 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL3Q; \
0307 break; \
0308 case RCC_UART9CLKSOURCE_HSI: \
0309 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
0310 break; \
0311 case RCC_UART9CLKSOURCE_CSI: \
0312 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_CSI; \
0313 break; \
0314 case RCC_UART9CLKSOURCE_LSE: \
0315 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
0316 break; \
0317 default: \
0318 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED; \
0319 break; \
0320 } \
0321 } \
0322 else if((__HANDLE__)->Instance == USART10) \
0323 { \
0324 switch(__HAL_RCC_GET_USART10_SOURCE()) \
0325 { \
0326 case RCC_USART10CLKSOURCE_D2PCLK2: \
0327 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_D2PCLK2; \
0328 break; \
0329 case RCC_USART10CLKSOURCE_PLL2: \
0330 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL2Q; \
0331 break; \
0332 case RCC_USART10CLKSOURCE_PLL3: \
0333 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL3Q; \
0334 break; \
0335 case RCC_USART10CLKSOURCE_HSI: \
0336 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
0337 break; \
0338 case RCC_USART10CLKSOURCE_CSI: \
0339 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_CSI; \
0340 break; \
0341 case RCC_USART10CLKSOURCE_LSE: \
0342 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
0343 break; \
0344 default: \
0345 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED; \
0346 break; \
0347 } \
0348 } \
0349 else \
0350 { \
0351 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED; \
0352 } \
0353 } while(0U)
0354 #else
0355 #define IRDA_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__) \
0356 do { \
0357 if((__HANDLE__)->Instance == USART1) \
0358 { \
0359 switch(__HAL_RCC_GET_USART1_SOURCE()) \
0360 { \
0361 case RCC_USART1CLKSOURCE_D2PCLK2: \
0362 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_D2PCLK2; \
0363 break; \
0364 case RCC_USART1CLKSOURCE_PLL2: \
0365 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL2Q; \
0366 break; \
0367 case RCC_USART1CLKSOURCE_PLL3: \
0368 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL3Q; \
0369 break; \
0370 case RCC_USART1CLKSOURCE_HSI: \
0371 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
0372 break; \
0373 case RCC_USART1CLKSOURCE_CSI: \
0374 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_CSI; \
0375 break; \
0376 case RCC_USART1CLKSOURCE_LSE: \
0377 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
0378 break; \
0379 default: \
0380 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED; \
0381 break; \
0382 } \
0383 } \
0384 else if((__HANDLE__)->Instance == USART2) \
0385 { \
0386 switch(__HAL_RCC_GET_USART2_SOURCE()) \
0387 { \
0388 case RCC_USART2CLKSOURCE_D2PCLK1: \
0389 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_D2PCLK1; \
0390 break; \
0391 case RCC_USART2CLKSOURCE_PLL2: \
0392 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL2Q; \
0393 break; \
0394 case RCC_USART2CLKSOURCE_PLL3: \
0395 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL3Q; \
0396 break; \
0397 case RCC_USART2CLKSOURCE_HSI: \
0398 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
0399 break; \
0400 case RCC_USART2CLKSOURCE_CSI: \
0401 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_CSI; \
0402 break; \
0403 case RCC_USART2CLKSOURCE_LSE: \
0404 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
0405 break; \
0406 default: \
0407 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED; \
0408 break; \
0409 } \
0410 } \
0411 else if((__HANDLE__)->Instance == USART3) \
0412 { \
0413 switch(__HAL_RCC_GET_USART3_SOURCE()) \
0414 { \
0415 case RCC_USART3CLKSOURCE_D2PCLK1: \
0416 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_D2PCLK1; \
0417 break; \
0418 case RCC_USART3CLKSOURCE_PLL2: \
0419 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL2Q; \
0420 break; \
0421 case RCC_USART3CLKSOURCE_PLL3: \
0422 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL3Q; \
0423 break; \
0424 case RCC_USART3CLKSOURCE_HSI: \
0425 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
0426 break; \
0427 case RCC_USART3CLKSOURCE_CSI: \
0428 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_CSI; \
0429 break; \
0430 case RCC_USART3CLKSOURCE_LSE: \
0431 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
0432 break; \
0433 default: \
0434 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED; \
0435 break; \
0436 } \
0437 } \
0438 else if((__HANDLE__)->Instance == UART4) \
0439 { \
0440 switch(__HAL_RCC_GET_UART4_SOURCE()) \
0441 { \
0442 case RCC_UART4CLKSOURCE_D2PCLK1: \
0443 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_D2PCLK1; \
0444 break; \
0445 case RCC_UART4CLKSOURCE_PLL2: \
0446 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL2Q; \
0447 break; \
0448 case RCC_UART4CLKSOURCE_PLL3: \
0449 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL3Q; \
0450 break; \
0451 case RCC_UART4CLKSOURCE_HSI: \
0452 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
0453 break; \
0454 case RCC_UART4CLKSOURCE_CSI: \
0455 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_CSI; \
0456 break; \
0457 case RCC_UART4CLKSOURCE_LSE: \
0458 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
0459 break; \
0460 default: \
0461 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED; \
0462 break; \
0463 } \
0464 } \
0465 else if ((__HANDLE__)->Instance == UART5) \
0466 { \
0467 switch(__HAL_RCC_GET_UART5_SOURCE()) \
0468 { \
0469 case RCC_UART5CLKSOURCE_D2PCLK1: \
0470 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_D2PCLK1; \
0471 break; \
0472 case RCC_UART5CLKSOURCE_PLL2: \
0473 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL2Q; \
0474 break; \
0475 case RCC_UART5CLKSOURCE_PLL3: \
0476 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL3Q; \
0477 break; \
0478 case RCC_UART5CLKSOURCE_HSI: \
0479 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
0480 break; \
0481 case RCC_UART5CLKSOURCE_CSI: \
0482 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_CSI; \
0483 break; \
0484 case RCC_UART5CLKSOURCE_LSE: \
0485 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
0486 break; \
0487 default: \
0488 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED; \
0489 break; \
0490 } \
0491 } \
0492 else if((__HANDLE__)->Instance == USART6) \
0493 { \
0494 switch(__HAL_RCC_GET_USART6_SOURCE()) \
0495 { \
0496 case RCC_USART6CLKSOURCE_D2PCLK2: \
0497 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_D2PCLK2; \
0498 break; \
0499 case RCC_USART6CLKSOURCE_PLL2: \
0500 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL2Q; \
0501 break; \
0502 case RCC_USART6CLKSOURCE_PLL3: \
0503 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL3Q; \
0504 break; \
0505 case RCC_USART6CLKSOURCE_HSI: \
0506 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
0507 break; \
0508 case RCC_USART6CLKSOURCE_CSI: \
0509 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_CSI; \
0510 break; \
0511 case RCC_USART6CLKSOURCE_LSE: \
0512 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
0513 break; \
0514 default: \
0515 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED; \
0516 break; \
0517 } \
0518 } \
0519 else if((__HANDLE__)->Instance == UART7) \
0520 { \
0521 switch(__HAL_RCC_GET_UART7_SOURCE()) \
0522 { \
0523 case RCC_UART7CLKSOURCE_D2PCLK1: \
0524 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_D2PCLK1; \
0525 break; \
0526 case RCC_UART7CLKSOURCE_PLL2: \
0527 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL2Q; \
0528 break; \
0529 case RCC_UART7CLKSOURCE_PLL3: \
0530 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL3Q; \
0531 break; \
0532 case RCC_UART7CLKSOURCE_HSI: \
0533 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
0534 break; \
0535 case RCC_UART7CLKSOURCE_CSI: \
0536 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_CSI; \
0537 break; \
0538 case RCC_UART7CLKSOURCE_LSE: \
0539 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
0540 break; \
0541 default: \
0542 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED; \
0543 break; \
0544 } \
0545 } \
0546 else if((__HANDLE__)->Instance == UART8) \
0547 { \
0548 switch(__HAL_RCC_GET_UART8_SOURCE()) \
0549 { \
0550 case RCC_UART8CLKSOURCE_D2PCLK1: \
0551 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_D2PCLK1; \
0552 break; \
0553 case RCC_UART8CLKSOURCE_PLL2: \
0554 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL2Q; \
0555 break; \
0556 case RCC_UART8CLKSOURCE_PLL3: \
0557 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_PLL3Q; \
0558 break; \
0559 case RCC_UART8CLKSOURCE_HSI: \
0560 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_HSI; \
0561 break; \
0562 case RCC_UART8CLKSOURCE_CSI: \
0563 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_CSI; \
0564 break; \
0565 case RCC_UART8CLKSOURCE_LSE: \
0566 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_LSE; \
0567 break; \
0568 default: \
0569 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED; \
0570 break; \
0571 } \
0572 } \
0573 else \
0574 { \
0575 (__CLOCKSOURCE__) = IRDA_CLOCKSOURCE_UNDEFINED; \
0576 } \
0577 } while(0U)
0578 #endif
0579
0580
0581
0582
0583
0584
0585 #define IRDA_MASK_COMPUTATION(__HANDLE__) \
0586 do { \
0587 if ((__HANDLE__)->Init.WordLength == IRDA_WORDLENGTH_9B) \
0588 { \
0589 if ((__HANDLE__)->Init.Parity == IRDA_PARITY_NONE) \
0590 { \
0591 (__HANDLE__)->Mask = 0x01FFU ; \
0592 } \
0593 else \
0594 { \
0595 (__HANDLE__)->Mask = 0x00FFU ; \
0596 } \
0597 } \
0598 else if ((__HANDLE__)->Init.WordLength == IRDA_WORDLENGTH_8B) \
0599 { \
0600 if ((__HANDLE__)->Init.Parity == IRDA_PARITY_NONE) \
0601 { \
0602 (__HANDLE__)->Mask = 0x00FFU ; \
0603 } \
0604 else \
0605 { \
0606 (__HANDLE__)->Mask = 0x007FU ; \
0607 } \
0608 } \
0609 else if ((__HANDLE__)->Init.WordLength == IRDA_WORDLENGTH_7B) \
0610 { \
0611 if ((__HANDLE__)->Init.Parity == IRDA_PARITY_NONE) \
0612 { \
0613 (__HANDLE__)->Mask = 0x007FU ; \
0614 } \
0615 else \
0616 { \
0617 (__HANDLE__)->Mask = 0x003FU ; \
0618 } \
0619 } \
0620 else \
0621 { \
0622 (__HANDLE__)->Mask = 0x0000U; \
0623 } \
0624 } while(0U)
0625
0626
0627
0628
0629
0630 #define IS_IRDA_WORD_LENGTH(__LENGTH__) (((__LENGTH__) == IRDA_WORDLENGTH_7B) || \
0631 ((__LENGTH__) == IRDA_WORDLENGTH_8B) || \
0632 ((__LENGTH__) == IRDA_WORDLENGTH_9B))
0633
0634
0635
0636
0637
0638
0639
0640
0641
0642
0643
0644
0645
0646
0647 #ifdef __cplusplus
0648 }
0649 #endif
0650
0651 #endif
0652