From b1ca0406a539d9e54c9e2da27e87897fe14f4301 Mon Sep 17 00:00:00 2001 From: MDLZCOOL Date: Sat, 13 Dec 2025 23:40:53 +0800 Subject: fix(usbh_ch34x): program baudrate registers after divisor calculation --- class/serial/usbh_ch34x.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/class/serial/usbh_ch34x.c b/class/serial/usbh_ch34x.c index 2bc3df10..4e31a1af 100644 --- a/class/serial/usbh_ch34x.c +++ b/class/serial/usbh_ch34x.c @@ -240,15 +240,14 @@ static int usbh_ch34x_set_line_coding(struct usbh_serial *serial, struct cdc_lin reg_value |= CH341_L_SB; } - reg_value |= 0xC0; + usbh_ch34x_get_baudrate_div(line_coding->dwDTERate, &factor, &divisor); + reg_value |= 0xC0; value |= 0x9c; value |= reg_value << 8; index |= 0x80 | divisor; index |= (uint16_t)factor << 8; - usbh_ch34x_get_baudrate_div(line_coding->dwDTERate, &factor, &divisor); - return usbh_ch34x_control_out(serial, CH34X_SERIAL_INIT, value, index); } -- cgit v1.3.1