ещё вот тут есть описание пинов
http://esp8266.ru/esp8266-pin-register-strapping/#pins-list
Итак, по пинам имеем следующее
GPIO6 : U1CTS //Function5 (не выведен в ESP-07)
GPIO7 : U1TXD //Function5 (не выведен в ESP-07)
GPIO8 : U1RXD //Function5 (не выведен в ESP-07)
GPIO11 : U1RTS //Function5 (не выведен в ESP-07)
GPIO1 : U0TXD //Function1, (выведен в ESP-07 как TX)
GPIO2 : U0TXD //Function5, (выведен в ESP-07 как GPIO2) after reset, the default is function5 to export U0TXD,
GPIO2 : U1TXD //Function3, (выведен в ESP-07 как GPIO2)
GPIO3 : U0RXD //Function1 (выведен в ESP-07 как RX)
GPIO12 : U0DTR //Function5 (выведен в ESP-07 как GPIO12)
GPIO13 : U0CTS //Function5 (выведен в ESP-07 как GPIO13)
GPIO14 : U0DSR //Function5 (выведен в ESP-07 как GPIO14)
GPIO15 : U0RTS //Function5 (выведен в ESP-07 как GPIO15)
Т.е без постоянного swap доступны только U0TX, U0RX, U1TX т.е. GPIO1, GPIO3, GPIO2
Т.е. пин U1RX никак не доступен одновременно с U0
Как я понимаю, после, изменения двух бит
[HASHTAG]#define[/HASHTAG] PERI_IO_UART0_PIN_SWAP (BIT(2)) // swap uart0 pins (u0rxd <-> u0cts), (u0txd <-> u0rts)
[HASHTAG]#define[/HASHTAG] PERI_IO_UART_PORT_SWAP (BIT(0)) // swap two uart
получим
GPIO13 : U1RXD //Function5 (выведен в ESP-07 как GPIO13)
GPIO15 : U1TXD //Function5 (выведен в ESP-07 как GPIO15)
GPIO1 : U1RTS
GPIO3 : U1CTS
Непонятно что будет происходить если и на GPIO1,GPIO3 и GPIO13,GPIO15 будет два активных потока, будут потери байт при swap?
наверное правильнее использовать
не
[HASHTAG]#define[/HASHTAG] PERI_IO_UART0_PIN_SWAP (BIT(2)) // swap uart0 pins (u0rxd <-> u0cts), (u0txd <-> u0rts)
а
[HASHTAG]#define[/HASHTAG] PERI_IO_UART1_PIN_SWAP (BIT(3)) // swap uart1 pins (u1rxd <-> u1cts), (u1txd <-> u1rts)
плюс
[HASHTAG]#define[/HASHTAG] PERI_IO_UART_PORT_SWAP (BIT(0)) // swap two uart