@@ -585,17 +585,11 @@ uart_t *uartBegin(
585585 uartEnd (uart_nr );
586586 } else {
587587 bool retCode = true;
588- UART_MUTEX_LOCK ();
589588 //User may just want to change some parameters, such as baudrate, data length, parity, stop bits or pins
590589 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 );
598591 }
592+ UART_MUTEX_LOCK ();
599593 uart_word_length_t data_bits = (config & 0xc ) >> 2 ;
600594 uart_parity_t parity = config & 0x3 ;
601595 uart_stop_bits_t stop_bits = (config & 0x30 ) >> 4 ;
@@ -972,10 +966,11 @@ void uartFlushTxOnly(uart_t *uart, bool txOnly) {
972966 UART_MUTEX_UNLOCK ();
973967}
974968
975- void uartSetBaudRate (uart_t * uart , uint32_t baud_rate ) {
969+ bool uartSetBaudRate (uart_t * uart , uint32_t baud_rate ) {
976970 if (uart == NULL ) {
977- return ;
971+ return false ;
978972 }
973+ bool retCode = true;
979974 UART_MUTEX_LOCK ();
980975#if SOC_UART_SUPPORT_XTAL_CLK // ESP32-S3, ESP32-C3, ESP32-C5, ESP32-C6, ESP32-H2 and ESP32-P4
981976 soc_module_clk_t newClkSrc = UART_SCLK_XTAL ;
@@ -993,12 +988,14 @@ void uartSetBaudRate(uart_t *uart, uint32_t baud_rate) {
993988 uart_ll_set_sclk (UART_LL_GET_HW (uart -> num ), newClkSrc );
994989#endif
995990 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 );
997992 uart -> _baudrate = baud_rate ;
998993 } 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 );
1000996 }
1001997 UART_MUTEX_UNLOCK ();
998+ return retCode ;
1002999}
10031000
10041001uint32_t uartGetBaudRate (uart_t * uart ) {
0 commit comments