diff --git a/libraries/SrcWrapper/src/stm32/clock.c b/libraries/SrcWrapper/src/stm32/clock.c index 2f6c7c8a1d..543df9583f 100644 --- a/libraries/SrcWrapper/src/stm32/clock.c +++ b/libraries/SrcWrapper/src/stm32/clock.c @@ -129,10 +129,15 @@ void enableClock(sourceClock_t source) } break; case HSE_CLOCK: - __HAL_RCC_HSE_CONFIG(RCC_HSE_ON); +#if defined(RCC_HSE_BYPASS_PWR) && defined(LORAWAN_BOARD_HAS_TCXO) && (LORAWAN_BOARD_HAS_TCXO == 1) + uint32_t HSEState = RCC_HSE_BYPASS_PWR; +#else + uint32_t HSEState = RCC_HSE_ON; +#endif + __HAL_RCC_HSE_CONFIG(HSEState); if (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET) { RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; - RCC_OscInitStruct.HSEState = RCC_HSE_ON; + RCC_OscInitStruct.HSEState = HSEState; } break; default: