@@ -334,7 +334,11 @@ void uart_init(serial_t *obj, uint32_t baudrate, uint32_t databits, uint32_t par
334
334
HAL_UARTEx_DisableStopMode (huart );
335
335
}
336
336
/* 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 ) {
338
342
return ;
339
343
}
340
344
/* Trying to change LPUART clock source */
@@ -350,7 +354,11 @@ void uart_init(serial_t *obj, uint32_t baudrate, uint32_t databits, uint32_t par
350
354
__HAL_RCC_LPUART2_CONFIG (RCC_LPUART2CLKSOURCE_LSE );
351
355
}
352
356
#endif
353
- if (HAL_UART_Init (huart ) == HAL_OK ) {
357
+ if (uart_rx == NP ) {
358
+ if (HAL_HalfDuplex_Init (huart ) == HAL_OK ) {
359
+ return ;
360
+ }
361
+ } else if (HAL_UART_Init (huart ) == HAL_OK ) {
354
362
return ;
355
363
}
356
364
}
@@ -363,7 +371,11 @@ void uart_init(serial_t *obj, uint32_t baudrate, uint32_t databits, uint32_t par
363
371
__HAL_RCC_LPUART2_CONFIG (RCC_LPUART2CLKSOURCE_HSI );
364
372
}
365
373
#endif
366
- if (HAL_UART_Init (huart ) == HAL_OK ) {
374
+ if (uart_rx == NP ) {
375
+ if (HAL_HalfDuplex_Init (huart ) == HAL_OK ) {
376
+ return ;
377
+ }
378
+ } else if (HAL_UART_Init (huart ) == HAL_OK ) {
367
379
return ;
368
380
}
369
381
}
@@ -376,7 +388,11 @@ void uart_init(serial_t *obj, uint32_t baudrate, uint32_t databits, uint32_t par
376
388
__HAL_RCC_LPUART2_CONFIG (RCC_LPUART2CLKSOURCE_PCLK1 );
377
389
}
378
390
#endif
379
- if (HAL_UART_Init (huart ) == HAL_OK ) {
391
+ if (uart_rx == NP ) {
392
+ if (HAL_HalfDuplex_Init (huart ) == HAL_OK ) {
393
+ return ;
394
+ }
395
+ } else if (HAL_UART_Init (huart ) == HAL_OK ) {
380
396
return ;
381
397
}
382
398
if (obj -> uart == LPUART1 ) {
0 commit comments