20#ifndef STM32H7xx_HAL_UART_EX_H
21#define STM32H7xx_HAL_UART_EX_H
71#define UART_WORDLENGTH_7B USART_CR1_M1
72#define UART_WORDLENGTH_8B 0x00000000U
73#define UART_WORDLENGTH_9B USART_CR1_M0
81#define UART_ADDRESS_DETECT_4B 0x00000000U
82#define UART_ADDRESS_DETECT_7B USART_CR2_ADDM7
91#define UART_FIFOMODE_DISABLE 0x00000000U
92#define UART_FIFOMODE_ENABLE USART_CR1_FIFOEN
101#define UART_TXFIFO_THRESHOLD_1_8 0x00000000U
102#define UART_TXFIFO_THRESHOLD_1_4 USART_CR3_TXFTCFG_0
103#define UART_TXFIFO_THRESHOLD_1_2 USART_CR3_TXFTCFG_1
104#define UART_TXFIFO_THRESHOLD_3_4 (USART_CR3_TXFTCFG_0|USART_CR3_TXFTCFG_1)
105#define UART_TXFIFO_THRESHOLD_7_8 USART_CR3_TXFTCFG_2
106#define UART_TXFIFO_THRESHOLD_8_8 (USART_CR3_TXFTCFG_2|USART_CR3_TXFTCFG_0)
115#define UART_RXFIFO_THRESHOLD_1_8 0x00000000U
116#define UART_RXFIFO_THRESHOLD_1_4 USART_CR3_RXFTCFG_0
117#define UART_RXFIFO_THRESHOLD_1_2 USART_CR3_RXFTCFG_1
118#define UART_RXFIFO_THRESHOLD_3_4 (USART_CR3_RXFTCFG_0|USART_CR3_RXFTCFG_1)
119#define UART_RXFIFO_THRESHOLD_7_8 USART_CR3_RXFTCFG_2
120#define UART_RXFIFO_THRESHOLD_8_8 (USART_CR3_RXFTCFG_2|USART_CR3_RXFTCFG_0)
141 uint32_t DeassertionTime);
202#if defined(UART9) && defined(USART10)
203#define UART_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__) \
205 if((__HANDLE__)->Instance == USART1) \
207 switch(__HAL_RCC_GET_USART1_SOURCE()) \
209 case RCC_USART1CLKSOURCE_D2PCLK2: \
210 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_D2PCLK2; \
212 case RCC_USART1CLKSOURCE_PLL2: \
213 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL2; \
215 case RCC_USART1CLKSOURCE_PLL3: \
216 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL3; \
218 case RCC_USART1CLKSOURCE_HSI: \
219 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
221 case RCC_USART1CLKSOURCE_CSI: \
222 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_CSI; \
224 case RCC_USART1CLKSOURCE_LSE: \
225 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
228 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
232 else if((__HANDLE__)->Instance == USART2) \
234 switch(__HAL_RCC_GET_USART2_SOURCE()) \
236 case RCC_USART2CLKSOURCE_D2PCLK1: \
237 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_D2PCLK1; \
239 case RCC_USART2CLKSOURCE_PLL2: \
240 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL2; \
242 case RCC_USART2CLKSOURCE_PLL3: \
243 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL3; \
245 case RCC_USART2CLKSOURCE_HSI: \
246 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
248 case RCC_USART2CLKSOURCE_CSI: \
249 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_CSI; \
251 case RCC_USART2CLKSOURCE_LSE: \
252 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
255 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
259 else if((__HANDLE__)->Instance == USART3) \
261 switch(__HAL_RCC_GET_USART3_SOURCE()) \
263 case RCC_USART3CLKSOURCE_D2PCLK1: \
264 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_D2PCLK1; \
266 case RCC_USART3CLKSOURCE_PLL2: \
267 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL2; \
269 case RCC_USART3CLKSOURCE_PLL3: \
270 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL3; \
272 case RCC_USART3CLKSOURCE_HSI: \
273 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
275 case RCC_USART3CLKSOURCE_CSI: \
276 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_CSI; \
278 case RCC_USART3CLKSOURCE_LSE: \
279 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
282 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
286 else if((__HANDLE__)->Instance == UART4) \
288 switch(__HAL_RCC_GET_UART4_SOURCE()) \
290 case RCC_UART4CLKSOURCE_D2PCLK1: \
291 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_D2PCLK1; \
293 case RCC_UART4CLKSOURCE_PLL2: \
294 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL2; \
296 case RCC_UART4CLKSOURCE_PLL3: \
297 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL3; \
299 case RCC_UART4CLKSOURCE_HSI: \
300 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
302 case RCC_UART4CLKSOURCE_CSI: \
303 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_CSI; \
305 case RCC_UART4CLKSOURCE_LSE: \
306 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
309 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
313 else if ((__HANDLE__)->Instance == UART5) \
315 switch(__HAL_RCC_GET_UART5_SOURCE()) \
317 case RCC_UART5CLKSOURCE_D2PCLK1: \
318 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_D2PCLK1; \
320 case RCC_UART5CLKSOURCE_PLL2: \
321 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL2; \
323 case RCC_UART5CLKSOURCE_PLL3: \
324 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL3; \
326 case RCC_UART5CLKSOURCE_HSI: \
327 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
329 case RCC_UART5CLKSOURCE_CSI: \
330 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_CSI; \
332 case RCC_UART5CLKSOURCE_LSE: \
333 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
336 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
340 else if((__HANDLE__)->Instance == USART6) \
342 switch(__HAL_RCC_GET_USART6_SOURCE()) \
344 case RCC_USART6CLKSOURCE_D2PCLK2: \
345 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_D2PCLK2; \
347 case RCC_USART6CLKSOURCE_PLL2: \
348 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL2; \
350 case RCC_USART6CLKSOURCE_PLL3: \
351 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL3; \
353 case RCC_USART6CLKSOURCE_HSI: \
354 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
356 case RCC_USART6CLKSOURCE_CSI: \
357 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_CSI; \
359 case RCC_USART6CLKSOURCE_LSE: \
360 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
363 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
367 else if((__HANDLE__)->Instance == UART7) \
369 switch(__HAL_RCC_GET_UART7_SOURCE()) \
371 case RCC_UART7CLKSOURCE_D2PCLK1: \
372 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_D2PCLK1; \
374 case RCC_UART7CLKSOURCE_PLL2: \
375 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL2; \
377 case RCC_UART7CLKSOURCE_PLL3: \
378 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL3; \
380 case RCC_UART7CLKSOURCE_HSI: \
381 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
383 case RCC_UART7CLKSOURCE_CSI: \
384 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_CSI; \
386 case RCC_UART7CLKSOURCE_LSE: \
387 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
390 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
394 else if((__HANDLE__)->Instance == UART8) \
396 switch(__HAL_RCC_GET_UART8_SOURCE()) \
398 case RCC_UART8CLKSOURCE_D2PCLK1: \
399 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_D2PCLK1; \
401 case RCC_UART8CLKSOURCE_PLL2: \
402 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL2; \
404 case RCC_UART8CLKSOURCE_PLL3: \
405 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL3; \
407 case RCC_UART8CLKSOURCE_HSI: \
408 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
410 case RCC_UART8CLKSOURCE_CSI: \
411 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_CSI; \
413 case RCC_UART8CLKSOURCE_LSE: \
414 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
417 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
421 else if((__HANDLE__)->Instance == UART9) \
423 switch(__HAL_RCC_GET_UART9_SOURCE()) \
425 case RCC_UART9CLKSOURCE_D2PCLK2: \
426 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_D2PCLK2; \
428 case RCC_UART9CLKSOURCE_PLL2: \
429 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL2; \
431 case RCC_UART9CLKSOURCE_PLL3: \
432 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL3; \
434 case RCC_UART9CLKSOURCE_HSI: \
435 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
437 case RCC_UART9CLKSOURCE_CSI: \
438 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_CSI; \
440 case RCC_UART9CLKSOURCE_LSE: \
441 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
444 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
448 else if((__HANDLE__)->Instance == USART10) \
450 switch(__HAL_RCC_GET_USART10_SOURCE()) \
452 case RCC_USART10CLKSOURCE_D2PCLK2: \
453 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_D2PCLK2; \
455 case RCC_USART10CLKSOURCE_PLL2: \
456 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL2; \
458 case RCC_USART10CLKSOURCE_PLL3: \
459 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL3; \
461 case RCC_USART10CLKSOURCE_HSI: \
462 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
464 case RCC_USART10CLKSOURCE_CSI: \
465 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_CSI; \
467 case RCC_USART10CLKSOURCE_LSE: \
468 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
471 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
475 else if((__HANDLE__)->Instance == LPUART1) \
477 switch(__HAL_RCC_GET_LPUART1_SOURCE()) \
479 case RCC_LPUART1CLKSOURCE_D3PCLK1: \
480 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_D3PCLK1; \
482 case RCC_LPUART1CLKSOURCE_PLL2: \
483 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL2; \
485 case RCC_LPUART1CLKSOURCE_PLL3: \
486 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL3; \
488 case RCC_LPUART1CLKSOURCE_HSI: \
489 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
491 case RCC_LPUART1CLKSOURCE_CSI: \
492 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_CSI; \
494 case RCC_LPUART1CLKSOURCE_LSE: \
495 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
498 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
504 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
508#define UART_GETCLOCKSOURCE(__HANDLE__,__CLOCKSOURCE__) \
510 if((__HANDLE__)->Instance == USART1) \
512 switch(__HAL_RCC_GET_USART1_SOURCE()) \
514 case RCC_USART1CLKSOURCE_D2PCLK2: \
515 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_D2PCLK2; \
517 case RCC_USART1CLKSOURCE_PLL2: \
518 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL2; \
520 case RCC_USART1CLKSOURCE_PLL3: \
521 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL3; \
523 case RCC_USART1CLKSOURCE_HSI: \
524 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
526 case RCC_USART1CLKSOURCE_CSI: \
527 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_CSI; \
529 case RCC_USART1CLKSOURCE_LSE: \
530 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
533 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
537 else if((__HANDLE__)->Instance == USART2) \
539 switch(__HAL_RCC_GET_USART2_SOURCE()) \
541 case RCC_USART2CLKSOURCE_D2PCLK1: \
542 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_D2PCLK1; \
544 case RCC_USART2CLKSOURCE_PLL2: \
545 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL2; \
547 case RCC_USART2CLKSOURCE_PLL3: \
548 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL3; \
550 case RCC_USART2CLKSOURCE_HSI: \
551 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
553 case RCC_USART2CLKSOURCE_CSI: \
554 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_CSI; \
556 case RCC_USART2CLKSOURCE_LSE: \
557 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
560 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
564 else if((__HANDLE__)->Instance == USART3) \
566 switch(__HAL_RCC_GET_USART3_SOURCE()) \
568 case RCC_USART3CLKSOURCE_D2PCLK1: \
569 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_D2PCLK1; \
571 case RCC_USART3CLKSOURCE_PLL2: \
572 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL2; \
574 case RCC_USART3CLKSOURCE_PLL3: \
575 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL3; \
577 case RCC_USART3CLKSOURCE_HSI: \
578 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
580 case RCC_USART3CLKSOURCE_CSI: \
581 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_CSI; \
583 case RCC_USART3CLKSOURCE_LSE: \
584 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
587 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
591 else if((__HANDLE__)->Instance == UART4) \
593 switch(__HAL_RCC_GET_UART4_SOURCE()) \
595 case RCC_UART4CLKSOURCE_D2PCLK1: \
596 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_D2PCLK1; \
598 case RCC_UART4CLKSOURCE_PLL2: \
599 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL2; \
601 case RCC_UART4CLKSOURCE_PLL3: \
602 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL3; \
604 case RCC_UART4CLKSOURCE_HSI: \
605 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
607 case RCC_UART4CLKSOURCE_CSI: \
608 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_CSI; \
610 case RCC_UART4CLKSOURCE_LSE: \
611 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
614 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
618 else if ((__HANDLE__)->Instance == UART5) \
620 switch(__HAL_RCC_GET_UART5_SOURCE()) \
622 case RCC_UART5CLKSOURCE_D2PCLK1: \
623 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_D2PCLK1; \
625 case RCC_UART5CLKSOURCE_PLL2: \
626 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL2; \
628 case RCC_UART5CLKSOURCE_PLL3: \
629 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL3; \
631 case RCC_UART5CLKSOURCE_HSI: \
632 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
634 case RCC_UART5CLKSOURCE_CSI: \
635 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_CSI; \
637 case RCC_UART5CLKSOURCE_LSE: \
638 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
641 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
645 else if((__HANDLE__)->Instance == USART6) \
647 switch(__HAL_RCC_GET_USART6_SOURCE()) \
649 case RCC_USART6CLKSOURCE_D2PCLK2: \
650 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_D2PCLK2; \
652 case RCC_USART6CLKSOURCE_PLL2: \
653 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL2; \
655 case RCC_USART6CLKSOURCE_PLL3: \
656 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL3; \
658 case RCC_USART6CLKSOURCE_HSI: \
659 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
661 case RCC_USART6CLKSOURCE_CSI: \
662 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_CSI; \
664 case RCC_USART6CLKSOURCE_LSE: \
665 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
668 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
672 else if((__HANDLE__)->Instance == UART7) \
674 switch(__HAL_RCC_GET_UART7_SOURCE()) \
676 case RCC_UART7CLKSOURCE_D2PCLK1: \
677 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_D2PCLK1; \
679 case RCC_UART7CLKSOURCE_PLL2: \
680 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL2; \
682 case RCC_UART7CLKSOURCE_PLL3: \
683 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL3; \
685 case RCC_UART7CLKSOURCE_HSI: \
686 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
688 case RCC_UART7CLKSOURCE_CSI: \
689 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_CSI; \
691 case RCC_UART7CLKSOURCE_LSE: \
692 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
695 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
699 else if((__HANDLE__)->Instance == UART8) \
701 switch(__HAL_RCC_GET_UART8_SOURCE()) \
703 case RCC_UART8CLKSOURCE_D2PCLK1: \
704 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_D2PCLK1; \
706 case RCC_UART8CLKSOURCE_PLL2: \
707 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL2; \
709 case RCC_UART8CLKSOURCE_PLL3: \
710 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL3; \
712 case RCC_UART8CLKSOURCE_HSI: \
713 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
715 case RCC_UART8CLKSOURCE_CSI: \
716 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_CSI; \
718 case RCC_UART8CLKSOURCE_LSE: \
719 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
722 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
726 else if((__HANDLE__)->Instance == LPUART1) \
728 switch(__HAL_RCC_GET_LPUART1_SOURCE()) \
730 case RCC_LPUART1CLKSOURCE_D3PCLK1: \
731 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_D3PCLK1; \
733 case RCC_LPUART1CLKSOURCE_PLL2: \
734 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL2; \
736 case RCC_LPUART1CLKSOURCE_PLL3: \
737 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_PLL3; \
739 case RCC_LPUART1CLKSOURCE_HSI: \
740 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_HSI; \
742 case RCC_LPUART1CLKSOURCE_CSI: \
743 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_CSI; \
745 case RCC_LPUART1CLKSOURCE_LSE: \
746 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_LSE; \
749 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
755 (__CLOCKSOURCE__) = UART_CLOCKSOURCE_UNDEFINED; \
769#define UART_MASK_COMPUTATION(__HANDLE__) \
771 if ((__HANDLE__)->Init.WordLength == UART_WORDLENGTH_9B) \
773 if ((__HANDLE__)->Init.Parity == UART_PARITY_NONE) \
775 (__HANDLE__)->Mask = 0x01FFU ; \
779 (__HANDLE__)->Mask = 0x00FFU ; \
782 else if ((__HANDLE__)->Init.WordLength == UART_WORDLENGTH_8B) \
784 if ((__HANDLE__)->Init.Parity == UART_PARITY_NONE) \
786 (__HANDLE__)->Mask = 0x00FFU ; \
790 (__HANDLE__)->Mask = 0x007FU ; \
793 else if ((__HANDLE__)->Init.WordLength == UART_WORDLENGTH_7B) \
795 if ((__HANDLE__)->Init.Parity == UART_PARITY_NONE) \
797 (__HANDLE__)->Mask = 0x007FU ; \
801 (__HANDLE__)->Mask = 0x003FU ; \
806 (__HANDLE__)->Mask = 0x0000U; \
815#define IS_UART_WORD_LENGTH(__LENGTH__) (((__LENGTH__) == UART_WORDLENGTH_7B) || \
816 ((__LENGTH__) == UART_WORDLENGTH_8B) || \
817 ((__LENGTH__) == UART_WORDLENGTH_9B))
824#define IS_UART_ADDRESSLENGTH_DETECT(__ADDRESS__) (((__ADDRESS__) == UART_ADDRESS_DETECT_4B) || \
825 ((__ADDRESS__) == UART_ADDRESS_DETECT_7B))
832#define IS_UART_TXFIFO_THRESHOLD(__THRESHOLD__) (((__THRESHOLD__) == UART_TXFIFO_THRESHOLD_1_8) || \
833 ((__THRESHOLD__) == UART_TXFIFO_THRESHOLD_1_4) || \
834 ((__THRESHOLD__) == UART_TXFIFO_THRESHOLD_1_2) || \
835 ((__THRESHOLD__) == UART_TXFIFO_THRESHOLD_3_4) || \
836 ((__THRESHOLD__) == UART_TXFIFO_THRESHOLD_7_8) || \
837 ((__THRESHOLD__) == UART_TXFIFO_THRESHOLD_8_8))
844#define IS_UART_RXFIFO_THRESHOLD(__THRESHOLD__) (((__THRESHOLD__) == UART_RXFIFO_THRESHOLD_1_8) || \
845 ((__THRESHOLD__) == UART_RXFIFO_THRESHOLD_1_4) || \
846 ((__THRESHOLD__) == UART_RXFIFO_THRESHOLD_1_2) || \
847 ((__THRESHOLD__) == UART_RXFIFO_THRESHOLD_3_4) || \
848 ((__THRESHOLD__) == UART_RXFIFO_THRESHOLD_7_8) || \
849 ((__THRESHOLD__) == UART_RXFIFO_THRESHOLD_8_8))
HAL_StatusTypeDef HAL_RS485Ex_Init(UART_HandleTypeDef *huart, uint32_t Polarity, uint32_t AssertionTime, uint32_t DeassertionTime)
void HAL_UARTEx_WakeupCallback(UART_HandleTypeDef *huart)
void HAL_UARTEx_TxFifoEmptyCallback(UART_HandleTypeDef *huart)
void HAL_UARTEx_RxFifoFullCallback(UART_HandleTypeDef *huart)
HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint16_t *RxLen, uint32_t Timeout)
HAL_UART_RxEventTypeTypeDef HAL_UARTEx_GetRxEventType(const UART_HandleTypeDef *huart)
HAL_StatusTypeDef HAL_UARTEx_DisableFifoMode(UART_HandleTypeDef *huart)
HAL_StatusTypeDef HAL_UARTEx_EnableFifoMode(UART_HandleTypeDef *huart)
HAL_StatusTypeDef HAL_UARTEx_SetRxFifoThreshold(UART_HandleTypeDef *huart, uint32_t Threshold)
HAL_StatusTypeDef HAL_UARTEx_StopModeWakeUpSourceConfig(UART_HandleTypeDef *huart, UART_WakeUpTypeDef WakeUpSelection)
HAL_StatusTypeDef HAL_MultiProcessorEx_AddressLength_Set(UART_HandleTypeDef *huart, uint32_t AddressLength)
HAL_StatusTypeDef HAL_UARTEx_EnableStopMode(UART_HandleTypeDef *huart)
HAL_StatusTypeDef HAL_UARTEx_SetTxFifoThreshold(UART_HandleTypeDef *huart, uint32_t Threshold)
HAL_StatusTypeDef HAL_UARTEx_DisableStopMode(UART_HandleTypeDef *huart)
HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
struct __UART_HandleTypeDef UART_HandleTypeDef
UART handle Structure definition.
uint32_t HAL_UART_RxEventTypeTypeDef
HAL UART Rx Event type definition.
This file contains HAL common defines, enumeration, macros and structures definitions.
HAL_StatusTypeDef
HAL Status structures definition.
UART wake up from stop mode parameters.
uint8_t Address
UART/USART node address (7-bit long max).
uint32_t WakeUpEvent
Specifies which event will activate the Wakeup from Stop mode flag (WUF).
uint16_t AddressLength
Specifies whether the address is 4 or 7-bit long.