@@ -775,17 +775,14 @@ uart_swap(uart_t* uart, int tx_pin)
775775 {
776776 pinMode (uart->tx_pin , INPUT);
777777 uart->tx_pin = 15 ;
778+ pinMode (uart->tx_pin , FUNCTION_4);
778779 }
779780 if (uart->rx_enabled ) // RX
780781 {
781782 pinMode (uart->rx_pin , INPUT);
782783 uart->rx_pin = 13 ;
784+ pinMode (uart->rx_pin , FUNCTION_4);
783785 }
784- if (uart->tx_enabled )
785- pinMode (uart->tx_pin , FUNCTION_4); // TX
786-
787- if (uart->rx_enabled )
788- pinMode (uart->rx_pin , FUNCTION_4); // RX
789786
790787 IOSWAP |= (1 << IOSWAPU0);
791788 return true ;
@@ -796,17 +793,14 @@ uart_swap(uart_t* uart, int tx_pin)
796793 {
797794 pinMode (uart->tx_pin , INPUT);
798795 uart->tx_pin = (tx_pin == 2 )?2 :1 ;
796+ pinMode (uart->tx_pin , (tx_pin == 2 )?FUNCTION_4:SPECIAL);
799797 }
800798 if (uart->rx_enabled ) // RX
801799 {
802800 pinMode (uart->rx_pin , INPUT);
803801 uart->rx_pin = 3 ;
802+ pinMode (3 , SPECIAL);
804803 }
805- if (uart->tx_enabled )
806- pinMode (uart->tx_pin , (tx_pin == 2 )?FUNCTION_4:SPECIAL); // TX
807-
808- if (uart->rx_enabled )
809- pinMode (3 , SPECIAL); // RX
810804
811805 IOSWAP &= ~(1 << IOSWAPU0);
812806 return true ;
@@ -832,18 +826,15 @@ uart_set_tx(uart_t* uart, int tx_pin)
832826 case UART0:
833827 if (uart->tx_enabled )
834828 {
835- if (uart->tx_pin == 1 && tx_pin == 2 )
829+ if (uart->tx_pin == tx_pin)
836830 {
837- pinMode (uart->tx_pin , INPUT);
838- uart->tx_pin = 2 ;
839- pinMode (uart->tx_pin , FUNCTION_4);
840831 return true ;
841832 }
842- else if (uart-> tx_pin == 2 && tx_pin ! = 2 )
833+ else if (tx_pin == 1 || tx_pin = = 2 )
843834 {
844835 pinMode (uart->tx_pin , INPUT);
845- uart->tx_pin = 1 ;
846- pinMode (uart->tx_pin , SPECIAL);
836+ uart->tx_pin = tx_pin ;
837+ pinMode (uart->tx_pin , tx_pin == 1 ? SPECIAL : FUNCTION_4 );
847838 return true ;
848839 }
849840 }
0 commit comments