Как раз в одной Начало функции такое
void TIM8_init(void)
{
LL_TIM_InitTypeDef TIM_InitStruct;
LL_TIM_OC_InitTypeDef TIM_OC_InitStruct;
LL_GPIO_InitTypeDef gpio_initstruct;
Далее идет настройка таймера, периферии его выхода и собственно вывода.
Все структуры временные, поэтому и создаются в стеке, после выхода из функции стек очищается.
По этому я считаю, что нужно подсказывать компилятору.