Przeglądaj źródła

Fix UART deinit issues in multiple apps

Also thanks to Willy-JL for finding the issue and fixing part of the apps
MX 1 rok temu
rodzic
commit
35c9b729f1
1 zmienionych plików z 5 dodań i 4 usunięć
  1. 5 4
      uart_terminal_uart.c

+ 5 - 4
uart_terminal_uart.c

@@ -91,12 +91,13 @@ UART_TerminalUart* uart_terminal_uart_init(UART_TerminalApp* app) {
 void uart_terminal_uart_free(UART_TerminalUart* uart) {
     furi_assert(uart);
 
-    furi_thread_flags_set(furi_thread_get_id(uart->rx_thread), WorkerEvtStop);
-    furi_thread_join(uart->rx_thread);
-    furi_thread_free(uart->rx_thread);
-
+    furi_hal_serial_async_rx_stop(uart->serial_handle);
     furi_hal_serial_deinit(uart->serial_handle);
     furi_hal_serial_control_release(uart->serial_handle);
 
+    furi_thread_flags_set(furi_thread_get_id(uart->rx_thread), WorkerEvtStop);
+    furi_thread_join(uart->rx_thread);
+    furi_thread_free(uart->rx_thread);
+    
     free(uart);
 }