UART needs to be disabled before changing setup

This commit is contained in:
fengsi 2023-10-06 15:20:34 +08:00 committed by Xiang Xiao
parent 57bf9d44d2
commit 7248b728bf

View File

@ -1445,6 +1445,10 @@ static void up_set_format(struct uart_dev_s *dev)
regval = up_serialin(priv, STM32_USART_CR1_OFFSET);
#if defined(CONFIG_STM32_STM32G4XXX)
regval &= ~(USART_CR1_UE | USART_CR1_TE | USART_CR1_RE);
up_serialout(priv, STM32_USART_CR1_OFFSET, regval);
#endif
#if defined(CONFIG_STM32_STM32F30XX) || defined(CONFIG_STM32_STM32F33XX)|| \
defined(CONFIG_STM32_STM32F37XX) || defined(CONFIG_STM32_STM32G4XXX)
/* This first implementation is for U[S]ARTs that support oversampling
@ -1623,6 +1627,11 @@ static void up_set_format(struct uart_dev_s *dev)
#endif
up_serialout(priv, STM32_USART_CR3_OFFSET, regval);
#if defined(CONFIG_STM32_STM32G4XXX)
regval = up_serialin(priv, STM32_USART_CR1_OFFSET);
regval |= (USART_CR1_UE | USART_CR1_TE | USART_CR1_RE);
up_serialout(priv, STM32_USART_CR1_OFFSET, regval);
#endif
}
#endif /* CONFIG_SUPPRESS_UART_CONFIG */