feat(uart): Change baudrate by first ime recv content
This commit is contained in:
parent
2c4f61007f
commit
08d5a81383
25
README.md
25
README.md
|
@ -66,8 +66,6 @@ There is built-in ipv4 only mDNS server. You can access the device using `dap.lo
|
||||||
|----------------|--------|
|
|----------------|--------|
|
||||||
| SWCLK | GPIO14 |
|
| SWCLK | GPIO14 |
|
||||||
| SWDIO | GPIO13 |
|
| SWDIO | GPIO13 |
|
||||||
| LED\_CONNECTED | GPIO2 |
|
|
||||||
| LED\_RUNNING | GPIO15 |
|
|
||||||
| TVCC | 3V3 |
|
| TVCC | 3V3 |
|
||||||
| GND | GND |
|
| GND | GND |
|
||||||
|
|
||||||
|
@ -83,11 +81,18 @@ There is built-in ipv4 only mDNS server. You can access the device using `dap.lo
|
||||||
| TDO | GPIO16 |
|
| TDO | GPIO16 |
|
||||||
| nTRST \(optional\) | GPIO0\* |
|
| nTRST \(optional\) | GPIO0\* |
|
||||||
| nRESET | GPIO5 |
|
| nRESET | GPIO5 |
|
||||||
| LED\_CONNECTED | GPIO2 |
|
|
||||||
| LED\_RUNNING | GPIO15 |
|
|
||||||
| TVCC | 3V3 |
|
| TVCC | 3V3 |
|
||||||
| GND | GND |
|
| GND | GND |
|
||||||
|
|
||||||
|
--------------
|
||||||
|
|
||||||
|
| Other | |
|
||||||
|
|--------------------|---------------|
|
||||||
|
| LED\_WIFI_STATUS | GPIO15 |
|
||||||
|
| Tx | GPIO2 |
|
||||||
|
| Rx | GPIO3 (U0RXD) |
|
||||||
|
|
||||||
|
> Rx and Tx is used for uart bridge, not enabled by default.
|
||||||
|
|
||||||
----
|
----
|
||||||
|
|
||||||
|
@ -252,6 +257,18 @@ The flash size of the board can be checked with the esptool.py tool:
|
||||||
esptool.py -p (PORT) flash_id
|
esptool.py -p (PORT) flash_id
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Uart TCP Bridge
|
||||||
|
|
||||||
|
This feature provides a bridge between TCP and Uart:
|
||||||
|
```
|
||||||
|
Send data -> TCP -> Uart TX -> external devices
|
||||||
|
|
||||||
|
Recv data <- TCP <- Uart Rx <- external devices
|
||||||
|
```
|
||||||
|
|
||||||
|
For performance reasons, this feature is not enabled by default. You can can modify [wifi_configuration.h](main/wifi_configuration.h) to turn it on.
|
||||||
|
|
||||||
|
|
||||||
----
|
----
|
||||||
|
|
||||||
## Develop
|
## Develop
|
||||||
|
|
|
@ -74,6 +74,7 @@ static uint8_t uart_read_buffer[UART_BUF_SIZE];
|
||||||
// use lwip buffer to write back
|
// use lwip buffer to write back
|
||||||
static struct netconn *uart_netconn = NULL;
|
static struct netconn *uart_netconn = NULL;
|
||||||
static bool is_conn_valid = false; // lock free
|
static bool is_conn_valid = false; // lock free
|
||||||
|
static bool is_first_time_recv = false;
|
||||||
|
|
||||||
void uart_bridge_close() {
|
void uart_bridge_close() {
|
||||||
netconn_events events;
|
netconn_events events;
|
||||||
|
@ -215,6 +216,7 @@ void uart_bridge_task() {
|
||||||
|
|
||||||
uart_netconn = nc_in;
|
uart_netconn = nc_in;
|
||||||
is_conn_valid = true;
|
is_conn_valid = true;
|
||||||
|
is_first_time_recv = true;
|
||||||
} else if (events.nc->state != NETCONN_LISTEN) {
|
} else if (events.nc->state != NETCONN_LISTEN) {
|
||||||
// if (events.nc && events.nc->pcb.tcp)
|
// if (events.nc && events.nc->pcb.tcp)
|
||||||
// tcp_nagle_disable(events.nc->pcb.tcp);
|
// tcp_nagle_disable(events.nc->pcb.tcp);
|
||||||
|
@ -233,6 +235,18 @@ void uart_bridge_task() {
|
||||||
do {
|
do {
|
||||||
netbuf_data(netbuf, (void *)&buffer, &len_buf);
|
netbuf_data(netbuf, (void *)&buffer, &len_buf);
|
||||||
// write to uart
|
// write to uart
|
||||||
|
if (is_first_time_recv) { // change bard rate
|
||||||
|
if (len_buf > 2 && buffer[len_buf - 2] == '\r' && buffer[len_buf - 1] == '\n') {
|
||||||
|
buffer[len_buf - 2] = '\0';
|
||||||
|
int baudrate = atoi(buffer);
|
||||||
|
if (baudrate > 0 && baudrate < 2000000) {
|
||||||
|
printf("change bard:%d\r\n", baudrate);
|
||||||
|
uart_set_baudrate(UART_NUM_0, baudrate);
|
||||||
|
uart_set_baudrate(UART_NUM_1, baudrate);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
is_first_time_recv = true;
|
||||||
|
}
|
||||||
uart_write_bytes(UART_NUM_1, (const char *)buffer, len_buf);
|
uart_write_bytes(UART_NUM_1, (const char *)buffer, len_buf);
|
||||||
} while (netbuf_next(netbuf) >= 0);
|
} while (netbuf_next(netbuf) >= 0);
|
||||||
netbuf_delete(netbuf);
|
netbuf_delete(netbuf);
|
||||||
|
|
Loading…
Reference in New Issue