From c2477148f07125ff9432dfda59484b482a7251b4 Mon Sep 17 00:00:00 2001 From: Giovanni Di Sirio Date: Sat, 9 Jun 2018 17:26:56 +0000 Subject: Fixed bug introduced by bug #951 fix. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@12084 110e8d01-0319-4d1e-a829-52ad28d1bb01 --- os/hal/ports/STM32/LLD/USARTv1/hal_serial_lld.c | 2 ++ os/hal/ports/STM32/LLD/USARTv1/hal_uart_lld.c | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) (limited to 'os/hal/ports/STM32') diff --git a/os/hal/ports/STM32/LLD/USARTv1/hal_serial_lld.c b/os/hal/ports/STM32/LLD/USARTv1/hal_serial_lld.c index 17d08b7a3..0321e1669 100644 --- a/os/hal/ports/STM32/LLD/USARTv1/hal_serial_lld.c +++ b/os/hal/ports/STM32/LLD/USARTv1/hal_serial_lld.c @@ -115,8 +115,10 @@ static void usart_init(SerialDriver *sdp, const SerialConfig *config) { /* Correcting USARTDIV when oversampling by 8 instead of 16. Fraction is still 4 bits wide, but only lower 3 bits used. Mantissa is doubled, but Fraction is left the same.*/ +#if defined(USART_CR1_OVER8) if (config->cr1 & USART_CR1_OVER8) fck = ((fck & ~7) * 2) | (fck & 7); +#endif u->BRR = fck; /* Note that some bits are enforced.*/ diff --git a/os/hal/ports/STM32/LLD/USARTv1/hal_uart_lld.c b/os/hal/ports/STM32/LLD/USARTv1/hal_uart_lld.c index c10944226..db7ab9250 100644 --- a/os/hal/ports/STM32/LLD/USARTv1/hal_uart_lld.c +++ b/os/hal/ports/STM32/LLD/USARTv1/hal_uart_lld.c @@ -216,8 +216,10 @@ static void usart_start(UARTDriver *uartp) { /* Correcting USARTDIV when oversampling by 8 instead of 16. Fraction is still 4 bits wide, but only lower 3 bits used. Mantissa is doubled, but Fraction is left the same.*/ - if (uartp->config->cr1 & USART_CR1_OVER8) +#if defined(USART_CR1_OVER8) + if (config->cr1 & USART_CR1_OVER8) fck = ((fck & ~7) * 2) | (fck & 7); +#endif u->BRR = fck; /* Resetting eventual pending status flags.*/ -- cgit v1.2.3