diff options
-rw-r--r-- | os/hal/ports/STM32/LLD/USARTv2/hal_uart_lld.c | 7 | ||||
-rw-r--r-- | readme.txt | 2 |
2 files changed, 8 insertions, 1 deletions
diff --git a/os/hal/ports/STM32/LLD/USARTv2/hal_uart_lld.c b/os/hal/ports/STM32/LLD/USARTv2/hal_uart_lld.c index 5bf3b6089..54378ff06 100644 --- a/os/hal/ports/STM32/LLD/USARTv2/hal_uart_lld.c +++ b/os/hal/ports/STM32/LLD/USARTv2/hal_uart_lld.c @@ -127,6 +127,11 @@ #define UART8 USART8
#endif
+/* Workaround for more differences in headers.*/
+#if !defined(USART_CR1_M0)
+#define USART_CR1_M0 USART_CR1_M
+#endif
+
/*===========================================================================*/
/* Driver exported variables. */
/*===========================================================================*/
@@ -845,7 +850,7 @@ void uart_lld_start(UARTDriver *uartp) { /* Static DMA setup, the transfer size depends on the USART settings,
it is 16 bits if M=1 and PCE=0 else it is 8 bits.*/
- if ((uartp->config->cr1 & (USART_CR1_M | USART_CR1_PCE)) == USART_CR1_M)
+ if ((uartp->config->cr1 & (USART_CR1_M | USART_CR1_PCE)) == USART_CR1_M0)
uartp->dmamode |= STM32_DMA_CR_PSIZE_HWORD | STM32_DMA_CR_MSIZE_HWORD;
dmaStreamSetPeripheral(uartp->dmarx, &uartp->usart->RDR);
dmaStreamSetPeripheral(uartp->dmatx, &uartp->usart->TDR);
diff --git a/readme.txt b/readme.txt index ace1e6835..06a8e9227 100644 --- a/readme.txt +++ b/readme.txt @@ -88,6 +88,8 @@ *****************************************************************************
*** Next ***
+- HAL: Fixed wrong frame size code in STM32 USARTv2 UART driver (bug #851)
+ (backported to 17.6.1 and 16.1.9).
- NIL: Fixed documentation-related issues (bug #850)(backported to 17.6.1).
- RT: Fixed documentation-related issues (bug #850)(backported to 17.6.1).
- RT: Fixed leftover chcustomer.h file (bug #849)(backported to 17.6.1).
|