@@ -292,6 +292,7 @@ bool uart_init(machine_uart_obj_t *uart_obj,
292292 pins_pull [3 ] = MICROPY_HW_UART1_CTS_PULL ;
293293 #endif
294294 __HAL_RCC_USART1_CLK_ENABLE ();
295+ __HAL_RCC_USART1_CLK_SLEEP_ENABLE ();
295296 break ;
296297 #endif
297298
@@ -323,6 +324,7 @@ bool uart_init(machine_uart_obj_t *uart_obj,
323324 pins_pull [3 ] = MICROPY_HW_UART2_CTS_PULL ;
324325 #endif
325326 __HAL_RCC_USART2_CLK_ENABLE ();
327+ __HAL_RCC_USART2_CLK_SLEEP_ENABLE ();
326328 break ;
327329 #endif
328330
@@ -356,6 +358,7 @@ bool uart_init(machine_uart_obj_t *uart_obj,
356358 pins_pull [3 ] = MICROPY_HW_UART3_CTS_PULL ;
357359 #endif
358360 __HAL_RCC_USART3_CLK_ENABLE ();
361+ __HAL_RCC_USART3_CLK_SLEEP_ENABLE ();
359362 break ;
360363 #endif
361364
@@ -366,18 +369,22 @@ bool uart_init(machine_uart_obj_t *uart_obj,
366369 UARTx = USART4 ;
367370 irqn = USART3_8_IRQn ;
368371 __HAL_RCC_USART4_CLK_ENABLE ();
372+ __HAL_RCC_USART4_CLK_SLEEP_ENABLE ();
369373 #elif defined(STM32L0 )
370374 UARTx = USART4 ;
371375 irqn = USART4_5_IRQn ;
372376 __HAL_RCC_USART4_CLK_ENABLE ();
377+ __HAL_RCC_USART4_CLK_SLEEP_ENABLE ();
373378 #elif defined(STM32G0 )
374379 UARTx = USART4 ;
375380 irqn = USART3_4_5_6_LPUART1_IRQn ;
376381 __HAL_RCC_USART4_CLK_ENABLE ();
382+ __HAL_RCC_USART4_CLK_SLEEP_ENABLE ();
377383 #else
378384 UARTx = UART4 ;
379385 irqn = UART4_IRQn ;
380386 __HAL_RCC_UART4_CLK_ENABLE ();
387+ __HAL_RCC_UART4_CLK_SLEEP_ENABLE ();
381388 #endif
382389 pins [0 ] = MICROPY_HW_UART4_TX ;
383390 pins [1 ] = MICROPY_HW_UART4_RX ;
@@ -407,18 +414,22 @@ bool uart_init(machine_uart_obj_t *uart_obj,
407414 UARTx = USART5 ;
408415 irqn = USART3_8_IRQn ;
409416 __HAL_RCC_USART5_CLK_ENABLE ();
417+ __HAL_RCC_USART5_CLK_SLEEP_ENABLE ();
410418 #elif defined(STM32L0 )
411419 UARTx = USART5 ;
412420 irqn = USART4_5_IRQn ;
413421 __HAL_RCC_USART5_CLK_ENABLE ();
422+ __HAL_RCC_USART5_CLK_SLEEP_ENABLE ();
414423 #elif defined(STM32G0 )
415424 UARTx = USART5 ;
416425 irqn = USART3_4_5_6_LPUART1_IRQn ;
417426 __HAL_RCC_USART5_CLK_ENABLE ();
427+ __HAL_RCC_USART5_CLK_SLEEP_ENABLE ();
418428 #else
419429 UARTx = UART5 ;
420430 irqn = UART5_IRQn ;
421431 __HAL_RCC_UART5_CLK_ENABLE ();
432+ __HAL_RCC_UART5_CLK_SLEEP_ENABLE ();
422433 #endif
423434 pins [0 ] = MICROPY_HW_UART5_TX ;
424435 pins [1 ] = MICROPY_HW_UART5_RX ;
@@ -471,6 +482,7 @@ bool uart_init(machine_uart_obj_t *uart_obj,
471482 pins_pull [3 ] = MICROPY_HW_UART6_CTS_PULL ;
472483 #endif
473484 __HAL_RCC_USART6_CLK_ENABLE ();
485+ __HAL_RCC_USART6_CLK_SLEEP_ENABLE ();
474486 break ;
475487 #endif
476488
@@ -481,10 +493,12 @@ bool uart_init(machine_uart_obj_t *uart_obj,
481493 UARTx = USART7 ;
482494 irqn = USART3_8_IRQn ;
483495 __HAL_RCC_USART7_CLK_ENABLE ();
496+ __HAL_RCC_USART7_CLK_SLEEP_ENABLE ();
484497 #else
485498 UARTx = UART7 ;
486499 irqn = UART7_IRQn ;
487500 __HAL_RCC_UART7_CLK_ENABLE ();
501+ __HAL_RCC_UART7_CLK_SLEEP_ENABLE ();
488502 #endif
489503 pins [0 ] = MICROPY_HW_UART7_TX ;
490504 pins [1 ] = MICROPY_HW_UART7_RX ;
@@ -514,10 +528,12 @@ bool uart_init(machine_uart_obj_t *uart_obj,
514528 UARTx = USART8 ;
515529 irqn = USART3_8_IRQn ;
516530 __HAL_RCC_USART8_CLK_ENABLE ();
531+ __HAL_RCC_USART8_CLK_SLEEP_ENABLE ();
517532 #else
518533 UARTx = UART8 ;
519534 irqn = UART8_IRQn ;
520535 __HAL_RCC_UART8_CLK_ENABLE ();
536+ __HAL_RCC_UART8_CLK_SLEEP_ENABLE ();
521537 #endif
522538 pins [0 ] = MICROPY_HW_UART8_TX ;
523539 pins [1 ] = MICROPY_HW_UART8_RX ;
@@ -546,6 +562,7 @@ bool uart_init(machine_uart_obj_t *uart_obj,
546562 UARTx = UART9 ;
547563 irqn = UART9_IRQn ;
548564 __HAL_RCC_UART9_CLK_ENABLE ();
565+ __HAL_RCC_UART9_CLK_SLEEP_ENABLE ();
549566 pins [0 ] = MICROPY_HW_UART9_TX ;
550567 pins [1 ] = MICROPY_HW_UART9_RX ;
551568 #if defined(MICROPY_HW_UART9_RX_PULL )
@@ -561,10 +578,12 @@ bool uart_init(machine_uart_obj_t *uart_obj,
561578 UARTx = UART10 ;
562579 irqn = UART10_IRQn ;
563580 __HAL_RCC_UART10_CLK_ENABLE ();
581+ __HAL_RCC_UART10_CLK_SLEEP_ENABLE ();
564582 #else
565583 UARTx = USART10 ;
566584 irqn = USART10_IRQn ;
567585 __HAL_RCC_USART10_CLK_ENABLE ();
586+ __HAL_RCC_USART10_CLK_SLEEP_ENABLE ();
568587 #endif
569588 pins [0 ] = MICROPY_HW_UART10_TX ;
570589 pins [1 ] = MICROPY_HW_UART10_RX ;
@@ -603,6 +622,7 @@ bool uart_init(machine_uart_obj_t *uart_obj,
603622 pins_pull [3 ] = MICROPY_HW_LPUART1_CTS_PULL ;
604623 #endif
605624 __HAL_RCC_LPUART1_CLK_ENABLE ();
625+ __HAL_RCC_LPUART1_CLK_SLEEP_ENABLE ();
606626 break ;
607627 #endif
608628
@@ -633,6 +653,7 @@ bool uart_init(machine_uart_obj_t *uart_obj,
633653 pins_pull [3 ] = MICROPY_HW_LPUART2_CTS_PULL ;
634654 #endif
635655 __HAL_RCC_LPUART2_CLK_ENABLE ();
656+ __HAL_RCC_LPUART2_CLK_SLEEP_ENABLE ();
636657 break ;
637658 #endif
638659
@@ -770,6 +791,7 @@ void uart_deinit(machine_uart_obj_t *self) {
770791 __HAL_RCC_USART1_FORCE_RESET ();
771792 __HAL_RCC_USART1_RELEASE_RESET ();
772793 __HAL_RCC_USART1_CLK_DISABLE ();
794+ __HAL_RCC_USART1_CLK_SLEEP_DISABLE ();
773795 #if defined(USART2 )
774796 } else if (self -> uart_id == 2 ) {
775797 #if defined(STM32G0 )
@@ -780,6 +802,7 @@ void uart_deinit(machine_uart_obj_t *self) {
780802 __HAL_RCC_USART2_FORCE_RESET ();
781803 __HAL_RCC_USART2_RELEASE_RESET ();
782804 __HAL_RCC_USART2_CLK_DISABLE ();
805+ __HAL_RCC_USART2_CLK_SLEEP_DISABLE ();
783806 #endif
784807 #if defined(USART3 )
785808 } else if (self -> uart_id == 3 ) {
@@ -791,86 +814,99 @@ void uart_deinit(machine_uart_obj_t *self) {
791814 __HAL_RCC_USART3_FORCE_RESET ();
792815 __HAL_RCC_USART3_RELEASE_RESET ();
793816 __HAL_RCC_USART3_CLK_DISABLE ();
817+ __HAL_RCC_USART3_CLK_SLEEP_DISABLE ();
794818 #endif
795819 #if defined(UART4 )
796820 } else if (self -> uart_id == 4 ) {
797821 HAL_NVIC_DisableIRQ (UART4_IRQn );
798822 __HAL_RCC_UART4_FORCE_RESET ();
799823 __HAL_RCC_UART4_RELEASE_RESET ();
800824 __HAL_RCC_UART4_CLK_DISABLE ();
825+ __HAL_RCC_UART4_CLK_SLEEP_DISABLE ();
801826 #endif
802827 #if defined(USART4 )
803828 } else if (self -> uart_id == 4 ) {
804829 __HAL_RCC_USART4_FORCE_RESET ();
805830 __HAL_RCC_USART4_RELEASE_RESET ();
806831 __HAL_RCC_USART4_CLK_DISABLE ();
832+ __HAL_RCC_USART4_CLK_SLEEP_DISABLE ();
807833 #endif
808834 #if defined(UART5 )
809835 } else if (self -> uart_id == 5 ) {
810836 HAL_NVIC_DisableIRQ (UART5_IRQn );
811837 __HAL_RCC_UART5_FORCE_RESET ();
812838 __HAL_RCC_UART5_RELEASE_RESET ();
813839 __HAL_RCC_UART5_CLK_DISABLE ();
840+ __HAL_RCC_UART5_CLK_SLEEP_DISABLE ();
814841 #endif
815842 #if defined(USART5 )
816843 } else if (self -> uart_id == 5 ) {
817844 __HAL_RCC_USART5_FORCE_RESET ();
818845 __HAL_RCC_USART5_RELEASE_RESET ();
819846 __HAL_RCC_USART5_CLK_DISABLE ();
847+ __HAL_RCC_USART5_CLK_SLEEP_DISABLE ();
820848 #endif
821849 #if defined(UART6 )
822850 } else if (self -> uart_id == 6 ) {
823851 HAL_NVIC_DisableIRQ (USART6_IRQn );
824852 __HAL_RCC_USART6_FORCE_RESET ();
825853 __HAL_RCC_USART6_RELEASE_RESET ();
826854 __HAL_RCC_USART6_CLK_DISABLE ();
855+ __HAL_RCC_USART6_CLK_SLEEP_DISABLE ();
827856 #endif
828857 #if defined(UART7 )
829858 } else if (self -> uart_id == 7 ) {
830859 HAL_NVIC_DisableIRQ (UART7_IRQn );
831860 __HAL_RCC_UART7_FORCE_RESET ();
832861 __HAL_RCC_UART7_RELEASE_RESET ();
833862 __HAL_RCC_UART7_CLK_DISABLE ();
863+ __HAL_RCC_UART7_CLK_SLEEP_DISABLE ();
834864 #endif
835865 #if defined(USART7 )
836866 } else if (self -> uart_id == 7 ) {
837867 __HAL_RCC_USART7_FORCE_RESET ();
838868 __HAL_RCC_USART7_RELEASE_RESET ();
839869 __HAL_RCC_USART7_CLK_DISABLE ();
870+ __HAL_RCC_USART7_CLK_SLEEP_DISABLE ();
840871 #endif
841872 #if defined(UART8 )
842873 } else if (self -> uart_id == 8 ) {
843874 HAL_NVIC_DisableIRQ (UART8_IRQn );
844875 __HAL_RCC_UART8_FORCE_RESET ();
845876 __HAL_RCC_UART8_RELEASE_RESET ();
846877 __HAL_RCC_UART8_CLK_DISABLE ();
878+ __HAL_RCC_UART8_CLK_SLEEP_DISABLE ();
847879 #endif
848880 #if defined(USART8 )
849881 } else if (self -> uart_id == 8 ) {
850882 __HAL_RCC_USART8_FORCE_RESET ();
851883 __HAL_RCC_USART8_RELEASE_RESET ();
852884 __HAL_RCC_USART8_CLK_DISABLE ();
885+ __HAL_RCC_USART8_CLK_SLEEP_DISABLE ();
853886 #endif
854887 #if defined(UART9 )
855888 } else if (self -> uart_id == 9 ) {
856889 HAL_NVIC_DisableIRQ (UART9_IRQn );
857890 __HAL_RCC_UART9_FORCE_RESET ();
858891 __HAL_RCC_UART9_RELEASE_RESET ();
859892 __HAL_RCC_UART9_CLK_DISABLE ();
893+ __HAL_RCC_UART9_CLK_SLEEP_DISABLE ();
860894 #endif
861895 #if defined(UART10 )
862896 } else if (self -> uart_id == 10 ) {
863897 HAL_NVIC_DisableIRQ (UART10_IRQn );
864898 __HAL_RCC_UART10_FORCE_RESET ();
865899 __HAL_RCC_UART10_RELEASE_RESET ();
866900 __HAL_RCC_UART10_CLK_DISABLE ();
901+ __HAL_RCC_UART10_CLK_SLEEP_DISABLE ();
867902 #endif
868903 #if defined(USART10 )
869904 } else if (self -> uart_id == 10 ) {
870905 HAL_NVIC_DisableIRQ (USART10_IRQn );
871906 __HAL_RCC_USART10_FORCE_RESET ();
872907 __HAL_RCC_USART10_RELEASE_RESET ();
873908 __HAL_RCC_USART10_CLK_DISABLE ();
909+ __HAL_RCC_USART10_CLK_SLEEP_DISABLE ();
874910 #endif
875911 #if defined(LPUART1 )
876912 } else if (self -> uart_id == PYB_LPUART_1 ) {
@@ -882,6 +918,7 @@ void uart_deinit(machine_uart_obj_t *self) {
882918 __HAL_RCC_LPUART1_FORCE_RESET ();
883919 __HAL_RCC_LPUART1_RELEASE_RESET ();
884920 __HAL_RCC_LPUART1_CLK_DISABLE ();
921+ __HAL_RCC_LPUART1_CLK_SLEEP_DISABLE ();
885922 #endif
886923 #if defined(LPUART2 )
887924 } else if (self -> uart_id == PYB_LPUART_2 ) {
@@ -893,6 +930,7 @@ void uart_deinit(machine_uart_obj_t *self) {
893930 __HAL_RCC_LPUART2_FORCE_RESET ();
894931 __HAL_RCC_LPUART2_RELEASE_RESET ();
895932 __HAL_RCC_LPUART2_CLK_DISABLE ();
933+ __HAL_RCC_LPUART2_CLK_SLEEP_DISABLE ();
896934 #endif
897935 }
898936}
0 commit comments