if((pconfig->hwflowctrl == USART_HardwareFlowControl_CTS_RTS) || (pconfig->hwflowctrl == USART_HardwareFlowControl_RTS))
SET_PERI_REG_MASK(UART_CONF1(uart_no), ((0x78 & UART_RX_FLOW_THRHD) << UART_RX_FLOW_THRHD_S) | UART_RX_FLOW_EN );
1) why the overrun happened when RTS enable?
2) when the RTS fall? the Rx FIFO data all read? or Rx FIFO data less than threshold?
the client follow the RTS/CTS.
ESP8266 SDK: NoOS SDK 1.5.0.
Client: using RTS/CTS handshake, block only the ESP8266 RTS is high.
the RX full threshold is 3/4 FIFO= 96bytes=0x60.
//set rx 3/4 FIFO trigger, 2 byte time out
((0x60 & UART_RXFIFO_FULL_THRHD) << UART_RXFIFO_FULL_THRHD_S) |
(0x02 & UART_RX_TOUT_THRHD) << UART_RX_TOUT_THRHD_S | UART_RX_TOUT_EN );
We have tested it, here is the test result :
The flow control is set to be 110 bytes,
if there are more than 110 (>110) bytes in RX FIFO, RTS is in high-level.
if there are less than 110 (<=110) bytes in RX FIFO, RTS is in low-level.
Thanks for your interest in ESP8266 !
Who is online
Users browsing this forum: No registered users and 7 guests
Newbies Start Here
Are you new to ESP8266?
Unsure what to do?
Dunno where to start?
Start right here!
We also have a RTOS version and a MESH version too!
Complete listing of the official ESP8266 related documentation release by ESPRESSIF!
Must read here!