summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSunwancn <[email protected]>2021-02-24 21:11:27 +0800
committerSunwancn <[email protected]>2021-02-24 21:11:27 +0800
commite22f72293e816c4f49961a64b4c4b3ef5fcce84f (patch)
tree103dbdf8b4fa80cc9f08e9edebb9850b915d5c60
parent2cbb9c53884a2837e9f78b5e92afa8671cb93438 (diff)
[drv_usart.c]修复stm32串口开启奇偶校验时字长设置错误
-rw-r--r--bsp/stm32/libraries/HAL_Drivers/drv_usart.c5
1 files changed, 4 insertions, 1 deletions
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;