From dc5ac74dcb35533a9645589edaa7370b254846f9 Mon Sep 17 00:00:00 2001 From: Sorgelig Date: Mon, 25 Oct 2021 20:11:36 +0800 Subject: [PATCH] UART: save modem baud rate, enable 115200 speed for modem mode. --- menu.cpp | 14 ++++++++------ user_io.cpp | 10 +++++----- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/menu.cpp b/menu.cpp index b3716ae..f93a378 100644 --- a/menu.cpp +++ b/menu.cpp @@ -2853,10 +2853,12 @@ void HandleUI(void) int mode = GetUARTMode() | (GetMidiLinkMode() << 8); sprintf(s, "uartmode.%s", user_io_get_core_name()); FileSaveConfig(s, &mode, 4); - uint64_t speeds = GetUARTbaud(3); - speeds = (speeds << 32) | GetUARTbaud(1); + uint32_t speeds[3]; + speeds[0] = GetUARTbaud(1); + speeds[1] = GetUARTbaud(3); + speeds[2] = GetUARTbaud(4); sprintf(s, "uartspeed.%s", user_io_get_core_name()); - FileSaveConfig(s, &speeds, 8); + FileSaveConfig(s, speeds, sizeof(speeds)); menustate = MENU_COMMON1; menusub = 4; } @@ -2950,7 +2952,7 @@ void HandleUI(void) menumask = 0; int mode = GetUARTMode(); const uint32_t *bauds = GetUARTbauds(mode); - for (uint32_t i = 0; i < 12; i++) + for (uint32_t i = 0; i < 13; i++) { if (!bauds[i]) break; menumask |= 1 << i; @@ -2961,7 +2963,7 @@ void HandleUI(void) uint32_t k = 0; while (k < start) OsdWrite(k++); - for (uint32_t i = 0; i < 12; i++) + for (uint32_t i = 0; i < 13; i++) { if (!bauds[i]) break; @@ -2987,7 +2989,7 @@ void HandleUI(void) else if (select) { const uint32_t *bauds = GetUARTbauds(GetUARTMode()); - for (uint32_t i = 0; i < 12; i++) + for (uint32_t i = 0; i < 13; i++) { if (!bauds[i]) break; if (menusub == i) diff --git a/user_io.cpp b/user_io.cpp index 0f66c8c..58a3f10 100644 --- a/user_io.cpp +++ b/user_io.cpp @@ -1259,13 +1259,13 @@ void user_io_init(const char *path, const char *xml) sprintf(mainpath, "uartmode.%s", user_io_get_core_name()); FileLoadConfig(mainpath, &mode, 4); - uint64_t speeds = 0; + uint32_t speeds[3] = {}; sprintf(mainpath, "uartspeed.%s", user_io_get_core_name()); - FileLoadConfig(mainpath, &speeds, 8); + FileLoadConfig(mainpath, speeds, sizeof(speeds)); - ValidateUARTbaud(1, speeds & 0xFFFFFFFF); - ValidateUARTbaud(3, speeds >> 32); - ValidateUARTbaud(4, uart_speeds[0]); + ValidateUARTbaud(1, speeds[0]); + ValidateUARTbaud(3, speeds[1]); + ValidateUARTbaud(4, speeds[2] ? speeds[2] : uart_speeds[0]); printf("UART bauds: %d/%d/%d\n", GetUARTbaud(1), GetUARTbaud(3), GetUARTbaud(4)); }