HSE_STARTUP_TIMEOUT - константа используется HAL
file <stm32xxxx_hal_rcc.c>
/* Wait till HSE is ready */
#define HSE_STARTUP_TIMEOUT ((uint32_t)100) /*!< Time out for HSE start up, in ms */
#define HSE_TIMEOUT_VALUE HSE_STARTUP_TIMEOUT
while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET)
{
if((HAL_GetTick() - tickstart ) > HSE_TIMEOUT_VALUE)
{
return HAL_TIMEOUT;
}
}
Так как кубом из религиозных соображений почти не пользуюсь, ищи что-то похожее на код выше. Они ставят таймаут при старте. Если HSE не запустится, будет хотя бы возможность связаться с устройством и опросить его. LL проектов под рукой нет.
Ещё один момент. LSE для RTC запускается очень долго, на f4 по даташиту от 1 до 5 секунд и требует задержки перед началом запуска!