Function esp_idf_svc::hal::sys::uart_set_pin
source · pub unsafe extern "C" fn uart_set_pin(
uart_num: u32,
tx_io_num: i32,
rx_io_num: i32,
rts_io_num: i32,
cts_io_num: i32,
) -> i32
Expand description
@brief Assign signals of a UART peripheral to GPIO pins
@note If the GPIO number configured for a UART signal matches one of the
IOMUX signals for that GPIO, the signal will be connected directly
via the IOMUX. Otherwise the GPIO and signal will be connected via
the GPIO Matrix. For example, if on an ESP32 the call
uart_set_pin(0, 1, 3, -1, -1)
is performed, as GPIO1 is UART0’s
default TX pin and GPIO3 is UART0’s default RX pin, both will be
connected to respectively U0TXD and U0RXD through the IOMUX, totally
bypassing the GPIO matrix.
The check is performed on a per-pin basis. Thus, it is possible to have
RX pin binded to a GPIO through the GPIO matrix, whereas TX is binded
to its GPIO through the IOMUX.
@note Internal signal can be output to multiple GPIO pads. Only one GPIO pad can connect with input signal.
@param uart_num UART port number, the max port number is (UART_NUM_MAX -1). @param tx_io_num UART TX pin GPIO number. @param rx_io_num UART RX pin GPIO number. @param rts_io_num UART RTS pin GPIO number. @param cts_io_num UART CTS pin GPIO number.
@return - ESP_OK Success - ESP_FAIL Parameter error