summaryrefslogtreecommitdiff
path: root/components/drivers
diff options
context:
space:
mode:
authorgeniusgogo <[email protected]>2024-05-08 10:32:05 +0800
committerMeco Man <[email protected]>2024-05-09 00:35:46 -0400
commit79b3d5ec1e47dbee3595d4bfe78ec496512354ba (patch)
tree1187c67fa4e4a2ebd04c8e9dd06209153d9d758e /components/drivers
parentf770f543a6a0833049551fd4c010d48ca8bcf6ec (diff)
fix_serial_baudrate_set
Diffstat (limited to 'components/drivers')
-rw-r--r--components/drivers/serial/serial.c5
-rw-r--r--components/drivers/serial/serial_tty.c1
2 files changed, 2 insertions, 4 deletions
diff --git a/components/drivers/serial/serial.c b/components/drivers/serial/serial.c
index 1e8763368d..f2e19aa760 100644
--- a/components/drivers/serial/serial.c
+++ b/components/drivers/serial/serial.c
@@ -1148,8 +1148,6 @@ static rt_err_t rt_serial_control(struct rt_device *dev,
{
_termios_to_termio(tio, args);
}
-
- tio->__c_ispeed = tio->__c_ospeed = cfgetospeed(tio);
}
break;
case TCSETAW:
@@ -1176,8 +1174,7 @@ static rt_err_t rt_serial_control(struct rt_device *dev,
if (tio == RT_NULL) return -RT_EINVAL;
config = serial->config;
- tio->__c_ispeed = tio->__c_ospeed = cfgetospeed(tio);
- baudrate = _get_baudrate(tio->__c_ispeed);
+ baudrate = _get_baudrate(cfgetospeed(tio));
config.baud_rate = baudrate;
switch (tio->c_cflag & CSIZE)
diff --git a/components/drivers/serial/serial_tty.c b/components/drivers/serial/serial_tty.c
index d8479aad22..98e7ee652d 100644
--- a/components/drivers/serial/serial_tty.c
+++ b/components/drivers/serial/serial_tty.c
@@ -296,6 +296,7 @@ static int serial_tty_param(struct lwp_tty *tp, struct termios *t)
RT_ASSERT(softc);
serial = softc->parent;
+ cfsetispeed(t, t->__c_ispeed);
return rt_device_control(&(serial->parent), TCSETS, t);
}