|
|
@@ -101,6 +101,7 @@ static int32_t uart_worker(void *context) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ furi_hal_uart_set_irq_cb(UART_CH, NULL, NULL);
|
|
|
furi_stream_buffer_free(uart->rx_stream);
|
|
|
|
|
|
return 0;
|
|
|
@@ -123,6 +124,12 @@ Evil_PortalUart *evil_portal_uart_init(Evil_PortalApp *app) {
|
|
|
|
|
|
furi_thread_start(uart->rx_thread);
|
|
|
|
|
|
+ if(UART_CH == FuriHalUartIdUSART1) {
|
|
|
+ furi_hal_console_disable();
|
|
|
+ } else if(UART_CH == FuriHalUartIdLPUART1) {
|
|
|
+ furi_hal_uart_init(UART_CH, app->BAUDRATE);
|
|
|
+ }
|
|
|
+
|
|
|
furi_hal_console_disable();
|
|
|
if (app->BAUDRATE == 0) {
|
|
|
app->BAUDRATE = 115200;
|
|
|
@@ -130,6 +137,8 @@ Evil_PortalUart *evil_portal_uart_init(Evil_PortalApp *app) {
|
|
|
furi_hal_uart_set_br(UART_CH, app->BAUDRATE);
|
|
|
furi_hal_uart_set_irq_cb(UART_CH, evil_portal_uart_on_irq_cb, uart);
|
|
|
|
|
|
+ evil_portal_uart_tx((uint8_t*)("XFW#EVILPORTAL=1\n"), strlen("XFW#EVILPORTAL=1\n"));
|
|
|
+
|
|
|
return uart;
|
|
|
}
|
|
|
|
|
|
@@ -140,8 +149,11 @@ void evil_portal_uart_free(Evil_PortalUart *uart) {
|
|
|
furi_thread_join(uart->rx_thread);
|
|
|
furi_thread_free(uart->rx_thread);
|
|
|
|
|
|
- furi_hal_uart_set_irq_cb(UART_CH, NULL, NULL);
|
|
|
- furi_hal_console_enable();
|
|
|
+ if(UART_CH == FuriHalUartIdLPUART1) {
|
|
|
+ furi_hal_uart_deinit(UART_CH);
|
|
|
+ } else {
|
|
|
+ furi_hal_console_enable();
|
|
|
+ }
|
|
|
|
|
|
free(uart);
|
|
|
}
|