From e22f72293e816c4f49961a64b4c4b3ef5fcce84f Mon Sep 17 00:00:00 2001 From: Sunwancn Date: Wed, 24 Feb 2021 21:11:27 +0800 Subject: [PATCH] =?UTF-8?q?[drv=5Fusart.c]=E4=BF=AE=E5=A4=8Dstm32=E4=B8=B2?= =?UTF-8?q?=E5=8F=A3=E5=BC=80=E5=90=AF=E5=A5=87=E5=81=B6=E6=A0=A1=E9=AA=8C?= =?UTF-8?q?=E6=97=B6=E5=AD=97=E9=95=BF=E8=AE=BE=E7=BD=AE=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bsp/stm32/libraries/HAL_Drivers/drv_usart.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/bsp/stm32/libraries/HAL_Drivers/drv_usart.c b/bsp/stm32/libraries/HAL_Drivers/drv_usart.c index 428efbe539..4b9efbd61f 100644 --- a/bsp/stm32/libraries/HAL_Drivers/drv_usart.c +++ b/bsp/stm32/libraries/HAL_Drivers/drv_usart.c @@ -112,7 +112,10 @@ static rt_err_t stm32_configure(struct rt_serial_device *serial, struct serial_c switch (cfg->data_bits) { case DATA_BITS_8: - uart->handle.Init.WordLength = UART_WORDLENGTH_8B; + if (cfg->parity == PARITY_ODD || cfg->parity == PARITY_EVEN) + uart->handle.Init.WordLength = UART_WORDLENGTH_9B; + else + uart->handle.Init.WordLength = UART_WORDLENGTH_8B; break; case DATA_BITS_9: uart->handle.Init.WordLength = UART_WORDLENGTH_9B;