1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-04-22 21:23:07 +03:00

Add method to use GPIO13 and GPIO15 as UART RX and TX

This commit is contained in:
Ivan Grokhotkov 2015-01-09 02:33:42 +03:00
parent e5e6dbe222
commit 5c362798f9
2 changed files with 20 additions and 0 deletions

View File

@ -193,6 +193,18 @@ void ICACHE_FLASH_ATTR uart0_uninit(uart_t* uart)
os_free(uart); os_free(uart);
} }
#define FUNC_U0CTS 4
#define FUNC_U0RTS 4
void ICACHE_FLASH_ATTR uart0_swap(uart_t* uart)
{
PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTCK_U, FUNC_U0CTS);
PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDO_U, FUNC_U0RTS);
//SWAP PIN : U0TXD<==>U0RTS(MTDO, GPIO15) , U0RXD<==>U0CTS(MTCK, GPIO13)
SET_PERI_REG_MASK(0x3ff00028 , BIT2);
PIN_FUNC_SELECT(PERIPHS_IO_MUX_U0TXD_U, FUNC_GPIO1);
PIN_FUNC_SELECT(PERIPHS_IO_MUX_U0RXD_U, FUNC_GPIO3);
}
void ICACHE_FLASH_ATTR void ICACHE_FLASH_ATTR
uart_ignore_char(char c) uart_ignore_char(char c)
@ -251,6 +263,13 @@ void ICACHE_FLASH_ATTR HardwareSerial::end()
_tx_buffer = 0; _tx_buffer = 0;
} }
void ICACHE_FLASH_ATTR HardwareSerial::swap()
{
uart0_swap(_uart);
pinMode(1, INPUT);
pinMode(3, INPUT);
}
void ICACHE_FLASH_ATTR HardwareSerial::setDebugOutput(bool en) void ICACHE_FLASH_ATTR HardwareSerial::setDebugOutput(bool en)
{ {
uart_set_debug(en); uart_set_debug(en);

View File

@ -69,6 +69,7 @@ public:
void begin(unsigned long baud) { begin(baud, 0); } void begin(unsigned long baud) { begin(baud, 0); }
void begin(unsigned long, uint8_t); void begin(unsigned long, uint8_t);
void end(); void end();
void swap(); //use GPIO13 and GPIO15 as RX and TX
int available(void) override; int available(void) override;
int peek(void) override; int peek(void) override;
int read(void) override; int read(void) override;