@@ -585,17 +585,11 @@ uart_t *uartBegin(
585
585
uartEnd (uart_nr );
586
586
} else {
587
587
bool retCode = true;
588
- UART_MUTEX_LOCK ();
589
588
//User may just want to change some parameters, such as baudrate, data length, parity, stop bits or pins
590
589
if (uart -> _baudrate != baudrate ) {
591
- if (ESP_OK != uart_set_baudrate (uart_nr , baudrate )) {
592
- log_e ("UART%d changing baudrate failed." , uart_nr );
593
- retCode = false;
594
- } else {
595
- log_v ("UART%d changed baudrate to %d" , uart_nr , baudrate );
596
- uart -> _baudrate = baudrate ;
597
- }
590
+ retCode = uartSetBaudRate (uart , baudrate );
598
591
}
592
+ UART_MUTEX_LOCK ();
599
593
uart_word_length_t data_bits = (config & 0xc ) >> 2 ;
600
594
uart_parity_t parity = config & 0x3 ;
601
595
uart_stop_bits_t stop_bits = (config & 0x30 ) >> 4 ;
@@ -972,10 +966,11 @@ void uartFlushTxOnly(uart_t *uart, bool txOnly) {
972
966
UART_MUTEX_UNLOCK ();
973
967
}
974
968
975
- void uartSetBaudRate (uart_t * uart , uint32_t baud_rate ) {
969
+ bool uartSetBaudRate (uart_t * uart , uint32_t baud_rate ) {
976
970
if (uart == NULL ) {
977
- return ;
971
+ return false ;
978
972
}
973
+ bool retCode = true;
979
974
UART_MUTEX_LOCK ();
980
975
#if SOC_UART_SUPPORT_XTAL_CLK // ESP32-S3, ESP32-C3, ESP32-C5, ESP32-C6, ESP32-H2 and ESP32-P4
981
976
soc_module_clk_t newClkSrc = UART_SCLK_XTAL ;
@@ -993,12 +988,14 @@ void uartSetBaudRate(uart_t *uart, uint32_t baud_rate) {
993
988
uart_ll_set_sclk (UART_LL_GET_HW (uart -> num ), newClkSrc );
994
989
#endif
995
990
if (uart_set_baudrate (uart -> num , baud_rate ) == ESP_OK ) {
996
- log_v ("Setting UART%d baud rate to %d ." , uart -> num , baud_rate );
991
+ log_v ("Setting UART%d baud rate to %ld ." , uart -> num , baud_rate );
997
992
uart -> _baudrate = baud_rate ;
998
993
} else {
999
- log_e ("Setting UART%d baud rate to %d has failed." , uart -> num , baud_rate );
994
+ retCode = false;
995
+ log_e ("Setting UART%d baud rate to %ld has failed." , uart -> num , baud_rate );
1000
996
}
1001
997
UART_MUTEX_UNLOCK ();
998
+ return retCode ;
1002
999
}
1003
1000
1004
1001
uint32_t uartGetBaudRate (uart_t * uart ) {
0 commit comments