esp-idf-hal
esp-idf-hal copied to clipboard
[Add] UART RS485 mode
RTS for RS485 Half-Duplex Mode manages DE/~RE, tested
in esp-idf-hal/src/uart.rs: fn new_common
...
esp!(unsafe {
uart_driver_install(
UART::port(),
if rx.is_some() {
config.rx_fifo_size as _
} else {
0
},
if tx.is_some() {
config.tx_fifo_size as _
} else {
0
},
config.queue_size as _,
queue.map(|q| q as *mut _).unwrap_or(ptr::null_mut()),
InterruptType::to_native(config.intr_flags) as i32,
)
})?;
esp!(unsafe {uart_set_mode(UART::port(), uart_mode_t_UART_MODE_RS485_HALF_DUPLEX)})?; // add this
// Configure interrupts after installing the driver
// so it won't get overwritten.
let usr_intrs = config.event_config.clone().into();
esp!(unsafe { uart_intr_config(UART::port(), &usr_intrs as *const _) })?;
...