]> granicus.if.org Git - esp-idf/commitdiff
bugfix(uart): fix signal glitch on tx pin
authorWangjialin <wangjialin@espressif.com>
Thu, 20 Jul 2017 06:34:11 +0000 (14:34 +0800)
committerWangjialin <wangjialin@espressif.com>
Thu, 20 Jul 2017 06:34:11 +0000 (14:34 +0800)
gpio_matrix_out function will set output enable for GPIO, seems in gpio_matrix_out there will be a short moment that the chip will output GPIO level.
So we can set GPIO as high before gpio_matrix_out function.

components/driver/uart.c

index 30c3b7e57fcb71d6077abf75995e4b614c1e701c..976efda3d02a65efb1ea2f071e5b49d1e0eee806 100644 (file)
@@ -394,7 +394,7 @@ esp_err_t uart_set_pin(uart_port_t uart_num, int tx_io_num, int rx_io_num, int r
     }
     if(tx_io_num >= 0) {
         PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[tx_io_num], PIN_FUNC_GPIO);
-        gpio_set_direction(tx_io_num, GPIO_MODE_OUTPUT);
+        gpio_set_level(tx_io_num, 1);
         gpio_matrix_out(tx_io_num, tx_sig, 0, 0);
     }