Skip to content

Commit f1643ae

Browse files
committed
fix: core: uart: add missing half duplex init
Signed-off-by: Frederic Pillon <frederic.pillon@st.com>
1 parent fa8bebd commit f1643ae

File tree

1 file changed

+15
-3
lines changed
  • libraries/SrcWrapper/src/stm32

1 file changed

+15
-3
lines changed

libraries/SrcWrapper/src/stm32/uart.c

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -334,7 +334,11 @@ void uart_init(serial_t *obj, uint32_t baudrate, uint32_t databits, uint32_t par
334334
HAL_UARTEx_DisableStopMode(huart);
335335
}
336336
/* Trying default LPUART clock source */
337-
if (HAL_UART_Init(huart) == HAL_OK) {
337+
if (uart_rx == NP) {
338+
if (HAL_HalfDuplex_Init(huart) != HAL_OK) {
339+
return;
340+
}
341+
} else if (HAL_UART_Init(huart) != HAL_OK) {
338342
return;
339343
}
340344
/* Trying to change LPUART clock source */
@@ -363,7 +367,11 @@ void uart_init(serial_t *obj, uint32_t baudrate, uint32_t databits, uint32_t par
363367
__HAL_RCC_LPUART2_CONFIG(RCC_LPUART2CLKSOURCE_HSI);
364368
}
365369
#endif
366-
if (HAL_UART_Init(huart) == HAL_OK) {
370+
if (uart_rx == NP) {
371+
if (HAL_HalfDuplex_Init(huart) != HAL_OK) {
372+
return;
373+
}
374+
} else if (HAL_UART_Init(huart) != HAL_OK) {
367375
return;
368376
}
369377
}
@@ -376,7 +384,11 @@ void uart_init(serial_t *obj, uint32_t baudrate, uint32_t databits, uint32_t par
376384
__HAL_RCC_LPUART2_CONFIG(RCC_LPUART2CLKSOURCE_PCLK1);
377385
}
378386
#endif
379-
if (HAL_UART_Init(huart) == HAL_OK) {
387+
if (uart_rx == NP) {
388+
if (HAL_HalfDuplex_Init(huart) != HAL_OK) {
389+
return;
390+
}
391+
} else if (HAL_UART_Init(huart) != HAL_OK) {
380392
return;
381393
}
382394
if (obj->uart == LPUART1) {

0 commit comments

Comments
 (0)