From 4ca8fa21a33e7b769b261a883e5e9f7735f1e758 Mon Sep 17 00:00:00 2001 From: svchao Date: Fri, 17 Dec 2021 18:25:56 +0800 Subject: [PATCH] [drivers] add the serial port data bit length to 9. --- components/drivers/serial/serial.c | 6 ++++++ components/libc/termios/posix_termios.h | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/components/drivers/serial/serial.c b/components/drivers/serial/serial.c index 76298ea153..b7d51bbdd7 100644 --- a/components/drivers/serial/serial.c +++ b/components/drivers/serial/serial.c @@ -25,6 +25,7 @@ * 2020-09-14 WillianChan add a line feed to the carriage return character * when using interrupt tx * 2020-12-14 Meco Man add function of setting window's size(TIOCSWINSZ) + * 2021-12-17 svchao add support for MCU with a data bit length of 9. */ #include @@ -1044,6 +1045,8 @@ static rt_err_t rt_serial_control(struct rt_device *dev, tio->c_cflag = CS7; else if (serial->config.data_bits == DATA_BITS_8) tio->c_cflag = CS8; + else if (serial->config.data_bits == DATA_BITS_9) + tio->c_cflag = CS9; if (serial->config.stop_bits == STOP_BITS_2) tio->c_cflag |= CSTOPB; @@ -1083,6 +1086,9 @@ static rt_err_t rt_serial_control(struct rt_device *dev, case CS7: config.data_bits = DATA_BITS_7; break; + case CS9: + config.data_bits = DATA_BITS_9; + break; default: config.data_bits = DATA_BITS_8; break; diff --git a/components/libc/termios/posix_termios.h b/components/libc/termios/posix_termios.h index 6dc5531955..ac05de0734 100644 --- a/components/libc/termios/posix_termios.h +++ b/components/libc/termios/posix_termios.h @@ -6,6 +6,7 @@ * Change Logs: * Date Author Notes * 2017/08/30 Bernard The first version + * 2021-12-17 svchao add the definition of CS9 */ #ifndef TERMIOS_H__ #define TERMIOS_H__ @@ -133,11 +134,12 @@ struct termios { #define B3500000 0010016 #define B4000000 0010017 -#define CSIZE 0000060 +#define CSIZE 0000070 #define CS5 0000000 #define CS6 0000020 #define CS7 0000040 #define CS8 0000060 +#define CS9 0000010 #define CSTOPB 0000100 #define CREAD 0000200 #define PARENB 0000400 -- Gitee