@@ -87,7 +87,7 @@ typedef enum {
8787#if defined(UART9_BASE )
8888 UART9_INDEX ,
8989#endif
90- #if defined(UART10_BASE )
90+ #if defined(UART10_BASE ) || defined( USART10_BASE )
9191 UART10_INDEX ,
9292#endif
9393#if defined(LPUART1_BASE )
@@ -284,6 +284,15 @@ void uart_init(serial_t *obj, uint32_t baudrate, uint32_t databits, uint32_t par
284284 obj -> irq = UART10_IRQn ;
285285 }
286286#endif
287+ #if defined(USART10_BASE )
288+ else if (obj -> uart == USART10 ) {
289+ __HAL_RCC_USART10_FORCE_RESET ();
290+ __HAL_RCC_USART10_RELEASE_RESET ();
291+ __HAL_RCC_USART10_CLK_ENABLE ();
292+ obj -> index = UART10_INDEX ;
293+ obj -> irq = USART10_IRQn ;
294+ }
295+ #endif
287296
288297#if defined(STM32F091xC ) || defined (STM32F098xx )
289298 /* Enable SYSCFG Clock */
@@ -487,6 +496,13 @@ void uart_deinit(serial_t *obj)
487496 __HAL_RCC_UART10_RELEASE_RESET ();
488497 __HAL_RCC_UART10_CLK_DISABLE ();
489498 break ;
499+ #endif
500+ #if defined(USART10_BASE )
501+ case UART10_INDEX :
502+ __HAL_RCC_USART10_FORCE_RESET ();
503+ __HAL_RCC_USART10_RELEASE_RESET ();
504+ __HAL_RCC_USART10_CLK_DISABLE ();
505+ break ;
490506#endif
491507 }
492508
@@ -1062,6 +1078,19 @@ void UART10_IRQHandler(void)
10621078}
10631079#endif
10641080
1081+ /**
1082+ * @brief USART 10 IRQ handler
1083+ * @param None
1084+ * @retval None
1085+ */
1086+ #if defined(USART10_BASE )
1087+ void USART10_IRQHandler (void )
1088+ {
1089+ HAL_NVIC_ClearPendingIRQ (USART10_IRQn );
1090+ HAL_UART_IRQHandler (uart_handlers [UART10_INDEX ]);
1091+ }
1092+ #endif
1093+
10651094/**
10661095 * @brief HAL UART Call Back
10671096 * @param UART handler
0 commit comments