diff options
| author | Bernard Xiong <[email protected]> | 2020-09-17 07:54:45 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2020-09-17 07:54:45 +0800 |
| commit | 13c27246c8752232c81ccadfc4941797b42ff1af (patch) | |
| tree | e1edf72ff0a0d6dd488e73abe167ff2eca2f9fde | |
| parent | a5ab12c964a160ad344c27d290f1efd362fc5de9 (diff) | |
| parent | ee3d05f5833440caf8c105a6951541916600f21d (diff) | |
Merge pull request #3916 from willianchanlovegithub/Willianchan
[drivers/serial]add a line feed to the carriage return character when…
| -rw-r--r-- | components/drivers/serial/serial.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/components/drivers/serial/serial.c b/components/drivers/serial/serial.c index c442b052b1..2511f18102 100644 --- a/components/drivers/serial/serial.c +++ b/components/drivers/serial/serial.c @@ -22,6 +22,8 @@ * 2017-11-15 JasonJia fix poll rx issue when data is full. * add TCFLSH and FIONREAD support. * 2018-12-08 Ernest Chen add DMA choice + * 2020-09-14 WillianChan add a line feed to the carriage return character + * when using interrupt tx */ #include <rthw.h> @@ -315,6 +317,19 @@ rt_inline int _serial_int_tx(struct rt_serial_device *serial, const rt_uint8_t * while (length) { + /* + * to be polite with serial console add a line feed + * to the carriage return character + */ + if (*data == '\n' && (serial->parent.open_flag & RT_DEVICE_FLAG_STREAM)) + { + if (serial->ops->putc(serial, '\r') == -1) + { + rt_completion_wait(&(tx->completion), RT_WAITING_FOREVER); + continue; + } + } + if (serial->ops->putc(serial, *(char*)data) == -1) { rt_completion_wait(&(tx->completion), RT_WAITING_FOREVER); |
