@@ -68,6 +68,12 @@ typedef enum {
6868#if defined(UART10_BASE ) || defined(USART10_BASE )
6969 UART10_INDEX ,
7070#endif
71+ #if defined(USART11_BASE )
72+ UART11_INDEX ,
73+ #endif
74+ #if defined(UART12_BASE )
75+ UART12_INDEX ,
76+ #endif
7177#if defined(LPUART1_BASE )
7278 LPUART1_INDEX ,
7379#endif
@@ -339,7 +345,24 @@ void uart_init(serial_t *obj, uint32_t baudrate, uint32_t databits, uint32_t par
339345 obj -> irq = USART10_IRQn ;
340346 }
341347#endif
342-
348+ #if defined(USART11_BASE )
349+ else if (obj -> uart == USART11 ) {
350+ __HAL_RCC_USART11_FORCE_RESET ();
351+ __HAL_RCC_USART11_RELEASE_RESET ();
352+ __HAL_RCC_USART11_CLK_ENABLE ();
353+ obj -> index = UART11_INDEX ;
354+ obj -> irq = USART11_IRQn ;
355+ }
356+ #endif
357+ #if defined(UART12_BASE )
358+ else if (obj -> uart == UART12 ) {
359+ __HAL_RCC_UART12_FORCE_RESET ();
360+ __HAL_RCC_UART12_RELEASE_RESET ();
361+ __HAL_RCC_UART12_CLK_ENABLE ();
362+ obj -> index = UART12_INDEX ;
363+ obj -> irq = UART12_IRQn ;
364+ }
365+ #endif
343366 /* Configure UART GPIO pins */
344367#if defined(UART_ADVFEATURE_SWAP_INIT )
345368 uint32_t pin_swap = UART_ADVFEATURE_SWAP_DISABLE ;
@@ -660,6 +683,20 @@ void uart_deinit(serial_t *obj)
660683 __HAL_RCC_USART10_RELEASE_RESET ();
661684 __HAL_RCC_USART10_CLK_DISABLE ();
662685 break ;
686+ #endif
687+ #if defined(USART11_BASE )
688+ case UART11_INDEX :
689+ __HAL_RCC_USART11_FORCE_RESET ();
690+ __HAL_RCC_USART11_RELEASE_RESET ();
691+ __HAL_RCC_USART11_CLK_DISABLE ();
692+ break ;
693+ #endif
694+ #if defined(UART12_BASE )
695+ case UART12_INDEX :
696+ __HAL_RCC_UART12_FORCE_RESET ();
697+ __HAL_RCC_UART12_RELEASE_RESET ();
698+ __HAL_RCC_UART12_CLK_DISABLE ();
699+ break ;
663700#endif
664701 }
665702
@@ -1280,6 +1317,32 @@ void USART10_IRQHandler(void)
12801317}
12811318#endif
12821319
1320+ /**
1321+ * @brief USART 11 IRQ handler
1322+ * @param None
1323+ * @retval None
1324+ */
1325+ #if defined(USART11_BASE )
1326+ void USART11_IRQHandler (void )
1327+ {
1328+ HAL_NVIC_ClearPendingIRQ (USART11_IRQn );
1329+ HAL_UART_IRQHandler (uart_handlers [UART11_INDEX ]);
1330+ }
1331+ #endif
1332+
1333+ /**
1334+ * @brief UART 12 IRQ handler
1335+ * @param None
1336+ * @retval None
1337+ */
1338+ #if defined(UART12_BASE )
1339+ void UART12_IRQHandler (void )
1340+ {
1341+ HAL_NVIC_ClearPendingIRQ (UART12_IRQn );
1342+ HAL_UART_IRQHandler (uart_handlers [UART12_INDEX ]);
1343+ }
1344+ #endif
1345+
12831346/**
12841347 * @brief HAL UART Call Back
12851348 * @param UART handler
0 commit comments