@@ -660,4 +660,105 @@ int8_t get_uart_index(UARTName uart_name)
660
660
return -1 ;
661
661
}
662
662
663
+ /* Function to protect deep sleep while a seral Tx is ongoing on not complete
664
+ * yet. Returns 1 if there is at least 1 serial instance with ongoing ransfer
665
+ * 0 otherwise.
666
+ */
667
+ int serial_IsTxOngoing (void ) {
668
+ int TxOngoing = 0 ;
669
+
670
+ #if defined(USART1_BASE )
671
+ if (LL_USART_IsEnabled (USART1 ) && !LL_USART_IsActiveFlag_TC (USART1 )) {
672
+ TxOngoing |= 1 ;
673
+ }
674
+ #endif
675
+
676
+ #if defined(USART2_BASE )
677
+ if (LL_USART_IsEnabled (USART2 ) && !LL_USART_IsActiveFlag_TC (USART2 )) {
678
+ TxOngoing |= 1 ;
679
+ }
680
+ #endif
681
+
682
+ #if defined(USART3_BASE )
683
+ if (LL_USART_IsEnabled (USART3 ) && !LL_USART_IsActiveFlag_TC (USART3 )) {
684
+ TxOngoing |= 1 ;
685
+ }
686
+ #endif
687
+
688
+ #if defined(UART4_BASE )
689
+ if (LL_USART_IsEnabled (UART4 ) && !LL_USART_IsActiveFlag_TC (UART4 )) {
690
+ TxOngoing |= 1 ;
691
+ }
692
+ #endif
693
+
694
+ #if defined(USART4_BASE )
695
+ if (LL_USART_IsEnabled (USART4 ) && !LL_USART_IsActiveFlag_TC (USART4 )) {
696
+ TxOngoing |= 1 ;
697
+ }
698
+ #endif
699
+
700
+ #if defined(UART5_BASE )
701
+ if (LL_USART_IsEnabled (UART5 ) && !LL_USART_IsActiveFlag_TC (UART5 )) {
702
+ TxOngoing |= 1 ;
703
+ }
704
+ #endif
705
+
706
+ #if defined(USART5_BASE )
707
+ if (LL_USART_IsEnabled (USART5 ) && !LL_USART_IsActiveFlag_TC (USART5 )) {
708
+ TxOngoing |= 1 ;
709
+ }
710
+ #endif
711
+
712
+ #if defined(USART6_BASE )
713
+ if (LL_USART_IsEnabled (USART6 ) && !LL_USART_IsActiveFlag_TC (USART6 )) {
714
+ TxOngoing |= 1 ;
715
+ }
716
+ #endif
717
+
718
+ #if defined(UART7_BASE )
719
+ if (LL_USART_IsEnabled (UART7 ) && !LL_USART_IsActiveFlag_TC (UART7 )) {
720
+ TxOngoing |= 1 ;
721
+ }
722
+ #endif
723
+
724
+ #if defined(USART7_BASE )
725
+ if (LL_USART_IsEnabled (USART7 ) && !LL_USART_IsActiveFlag_TC (USART7 )) {
726
+ TxOngoing |= 1 ;
727
+ }
728
+ #endif
729
+
730
+ #if defined(UART8_BASE )
731
+ if (LL_USART_IsEnabled (UART8 ) && !LL_USART_IsActiveFlag_TC (UART8 )) {
732
+ TxOngoing |= 1 ;
733
+ }
734
+ #endif
735
+
736
+ #if defined(USART8_BASE )
737
+ if (LL_USART_IsEnabled (USART8 ) && !LL_USART_IsActiveFlag_TC (USART8 )) {
738
+ TxOngoing |= 1 ;
739
+ }
740
+ #endif
741
+
742
+ #if defined(UART9_BASE )
743
+ if (LL_USART_IsEnabled (UART9 ) && !LL_USART_IsActiveFlag_TC (UART9 )) {
744
+ TxOngoing |= 1 ;
745
+ }
746
+ #endif
747
+
748
+ #if defined(UART10_BASE )
749
+ if (LL_USART_IsEnabled (UART10 ) && !LL_USART_IsActiveFlag_TC (UART10 )) {
750
+ TxOngoing |= 1 ;
751
+ }
752
+ #endif
753
+
754
+ #if defined(LPUART1_BASE )
755
+ if (LL_USART_IsEnabled (LPUART1 ) && !LL_USART_IsActiveFlag_TC (LPUART1 )) {
756
+ TxOngoing |= 1 ;
757
+ }
758
+ #endif
759
+
760
+ /* If Tx is ongoing, then transfer is */
761
+ return TxOngoing ;
762
+ }
763
+
663
764
#endif /* DEVICE_SERIAL */
0 commit comments