diff --git a/os/hal/ports/NUMICRO/LLD/SERIALv1/hal_serial_lld.c b/os/hal/ports/NUMICRO/LLD/SERIALv1/hal_serial_lld.c index bed98025..f3086c30 100644 --- a/os/hal/ports/NUMICRO/LLD/SERIALv1/hal_serial_lld.c +++ b/os/hal/ports/NUMICRO/LLD/SERIALv1/hal_serial_lld.c @@ -306,6 +306,9 @@ OSAL_IRQ_HANDLER(NUC123_UART1_HANDLER) */ void sd_lld_init(void) { +#if NUC123_SERIAL_USE_UART0 || NUC123_SERIAL_USE_UART1 + CLK->CLKSEL1 = (CLK->CLKSEL1 & ~(CLK_CLKSEL1_UART_S_Msk)) | NUC123_SERIAL_CLKSRC; +#endif #if NUC123_SERIAL_USE_UART0 sdObjectInit(&SD0, NULL, notify0); @@ -350,7 +353,6 @@ void sd_lld_start(SerialDriver* sdp, const SerialConfig* config) #if NUC123_SERIAL_USE_UART0 if (&SD0 == sdp) { CLK->APBCLK |= CLK_APBCLK_UART0_EN_Msk; - CLK->CLKSEL1 = (CLK->CLKSEL1 & ~(CLK_CLKSEL1_UART_S_Msk)) | NUC123_SERIAL_CLKSRC; nvicEnableVector(NUC123_UART0_NUMBER, NUC123_SERIAL_UART0_IRQ_PRIORITY); SYS->IPRSTC2 |= SYS_IPRSTC2_UART0_RST_Msk; SYS->IPRSTC2 &= ~(SYS_IPRSTC2_UART0_RST_Msk);