diff --git a/src/machine/machine_atsamd21.go b/src/machine/machine_atsamd21.go index b46dcef94..5768d8f04 100644 --- a/src/machine/machine_atsamd21.go +++ b/src/machine/machine_atsamd21.go @@ -621,6 +621,9 @@ func (uart *UART) Configure(config UARTConfig) error { //sercom->USART.CTRLB.reg |= SERCOM_USART_CTRLB_TXEN | SERCOM_USART_CTRLB_RXEN ; uart.Bus.CTRLB.SetBits(sam.SERCOM_USART_CTRLB_TXEN | sam.SERCOM_USART_CTRLB_RXEN) + // Configure RX/TX inversion + uart.setInversion(config) + // Enable USART1 port. // sercom->USART.CTRLA.bit.ENABLE = 0x1u; uart.Bus.CTRLA.SetBits(sam.SERCOM_USART_CTRLA_ENABLE) diff --git a/src/machine/machine_atsamd51.go b/src/machine/machine_atsamd51.go index 158be4911..1c7ea0411 100644 --- a/src/machine/machine_atsamd51.go +++ b/src/machine/machine_atsamd51.go @@ -1102,6 +1102,9 @@ func (uart *UART) Configure(config UARTConfig) error { //sercom->USART.CTRLB.reg |= SERCOM_USART_CTRLB_TXEN | SERCOM_USART_CTRLB_RXEN ; uart.Bus.CTRLB.SetBits(sam.SERCOM_USART_INT_CTRLB_TXEN | sam.SERCOM_USART_INT_CTRLB_RXEN) + // Configure RX/TX inversion + uart.setInversion(config) + // Enable USART1 port. // sercom->USART.CTRLA.bit.ENABLE = 0x1u; uart.Bus.CTRLA.SetBits(sam.SERCOM_USART_INT_CTRLA_ENABLE) diff --git a/src/machine/machine_esp32.go b/src/machine/machine_esp32.go index 3f715e6de..060a3b0ba 100644 --- a/src/machine/machine_esp32.go +++ b/src/machine/machine_esp32.go @@ -332,10 +332,20 @@ func (uart *UART) Configure(config UARTConfig) { if config.RX != NoPin { config.RX.configure(PinConfig{Mode: PinInputPullup}, uart.TXRXSignal) + if config.InvertRX { + inFunc(uart.TXRXSignal).Set(esp.GPIO_FUNC_IN_SEL_CFG_SEL | uint32(config.RX)<