From 58e6bf752087a3cce47a2d40464740c14a04308e Mon Sep 17 00:00:00 2001 From: Pavel S Date: Fri, 13 May 2022 11:16:15 +0200 Subject: [PATCH] Fix serial low speed baud --- targets/TARGET_STM/serial_api.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/targets/TARGET_STM/serial_api.c b/targets/TARGET_STM/serial_api.c index c805669331e..b7ce63f546e 100644 --- a/targets/TARGET_STM/serial_api.c +++ b/targets/TARGET_STM/serial_api.c @@ -629,8 +629,12 @@ HAL_StatusTypeDef init_uart(serial_t *obj) #if defined(UART_ONE_BIT_SAMPLE_DISABLE) // F0/F3/F7/G0/H7/L0/L4/L5/WB huart->Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; #endif -#if defined(UART_PRESCALER_DIV1) // G0/H7/L4/L5/WB - huart->Init.ClockPrescaler = UART_PRESCALER_DIV1; +#if defined(UART_PRESCALER_DIV1) // G0/G4/H7/L4/L5/U5/WB/WL + if (obj_s->baudrate < 4800) { + huart->Init.ClockPrescaler = UART_PRESCALER_DIV16; + } else { + huart->Init.ClockPrescaler = UART_PRESCALER_DIV1; + } #endif #if defined(UART_ADVFEATURE_NO_INIT) // F0/F3/F7/G0/H7/L0/L4//5/WB huart->AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;