examples: Fix UART examples to match the template

This commit is contained in:
Roland Dobai
2018-11-01 11:57:24 +01:00
parent 1b7a4758e3
commit 90a4e37acd
5 changed files with 263 additions and 60 deletions

View File

@@ -1,21 +1,65 @@
UART asynchronous example, that uses separate RX and TX tasks
=============================================================
# UART Asynchronous Example with Separate Receive and Transfer Tasks
Starts two FreeRTOS tasks:
- One task for transmitting 'Hello world' via the UART.
- One task for receiving from the UART.
(See the README.md file in the upper level 'examples' directory for more information about examples.)
If you'd like to see your ESP32 receive something, simply short
TXD_PIN and RXD_PIN. By doing this data transmitted on TXD_PIN will
be received on RXD_PIN. See the definitions of TXD_PIN and RXD_PIN
in ./main/uart_async_rxtxtasks_main.c.
This example demonstrates how two asynchronous tasks can use the same UART interface for communication. One can use
this example to develop more complex applications for serial communication.
The output for such configuration will look as follows:
The example starts two FreeRTOS tasks:
1. The first task periodically transmits `Hello world` via the UART.
2. The second task task listens, receives and prints data from the UART.
## How to use example
### Hardware Required
The example can be run on any commonly available ESP32 development board. You will need a USB cable to connect the
development board to a computer, and a simple one-wire cable for shorting two pins of the board.
### Setup the Hardware
The `RXD_PIN` and `TXD_PIN` which are configurable in the code (by default `GPIO4` and `GPIO5`) need to be shorted in
order to receive back the same data which were sent out.
### Configure the project
```
make menuconfig
```
or
```
idf.py menuconfig
```
* Set serial port under Serial Flasher Options.
### Build and Flash
Build the project and flash it to the board, then run monitor tool to view serial output:
```
make -j4 flash monitor
```
or
```
idf.py flash monitor
```
(To exit the serial monitor, type ``Ctrl-]``.)
See the Getting Started Guide for full steps to configure and use ESP-IDF to build projects.
## Example Output
You will receive the following repeating output from the monitoring console:
```
...
I (3261) TX_TASK: Wrote 11 bytes
I (4261) RX_TASK: Read 11 bytes: 'Hello world'
I (4261) RX_TASK: 0x3ffb821c 48 65 6c 6c 6f 20 77 6f 72 6c 64 |Hello world|
...
```
The third line above prints received data in hex format, that comes handy to display non printable data bytes.
## Troubleshooting
If you do not see any output from `RX_TASK` then check if you have the `RXD_PIN` and `TXD_PIN` pins shorted on the board.