mirror of
https://github.com/arendst/Tasmota.git
synced 2025-07-25 19:56:30 +00:00
Esp32c3 fix wrong baudrate
This commit is contained in:
parent
305519c68c
commit
980720b5a0
@ -984,10 +984,19 @@ String GetSerialConfig(void) {
|
|||||||
return String(config);
|
return String(config);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(ESP32) && CONFIG_IDF_TARGET_ESP32C3
|
||||||
|
// temporary workaround, see https://github.com/espressif/arduino-esp32/issues/5287
|
||||||
|
#include <driver/uart.h>
|
||||||
|
uint32_t GetSerialBaudrate(void) {
|
||||||
|
uint32_t br;
|
||||||
|
uart_get_baudrate(0, &br);
|
||||||
|
return (br / 300) * 300; // Fix ESP32 strange results like 115201
|
||||||
|
}
|
||||||
|
#else
|
||||||
uint32_t GetSerialBaudrate(void) {
|
uint32_t GetSerialBaudrate(void) {
|
||||||
// Serial.printf(">> GetSerialBaudrate baudrate = %d\n", Serial.baudRate());
|
|
||||||
return (Serial.baudRate() / 300) * 300; // Fix ESP32 strange results like 115201
|
return (Serial.baudRate() / 300) * 300; // Fix ESP32 strange results like 115201
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void SetSerialBegin(void) {
|
void SetSerialBegin(void) {
|
||||||
TasmotaGlobal.baudrate = Settings->baudrate * 300;
|
TasmotaGlobal.baudrate = Settings->baudrate * 300;
|
||||||
@ -1019,9 +1028,7 @@ void SetSerialBaudrate(uint32_t baudrate) {
|
|||||||
TasmotaGlobal.baudrate = baudrate;
|
TasmotaGlobal.baudrate = baudrate;
|
||||||
Settings->baudrate = TasmotaGlobal.baudrate / 300;
|
Settings->baudrate = TasmotaGlobal.baudrate / 300;
|
||||||
if (GetSerialBaudrate() != TasmotaGlobal.baudrate) {
|
if (GetSerialBaudrate() != TasmotaGlobal.baudrate) {
|
||||||
#if defined(CONFIG_IDF_TARGET_ESP32C3) && !CONFIG_IDF_TARGET_ESP32C3 // crashes on ESP32C3 - TODO
|
|
||||||
SetSerialBegin();
|
SetSerialBegin();
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user