Keil 5. Код сгенерирован STM32CubeMX. Проблема в прерывании таймера TIM6 по переполнению.
Вход в прерывание "void TIM6_DAC_IRQHandler(void)", происходит с правильным периодом, согласно настройке таймера.
А, вот вызов функции "void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim6)" и попадание в нее, происходит очень быстро, не соответствует периоду таймера. Данная функция, если правильно понял, предназначена для размещения кода по прерыванию от таймера.
Не могу понять почему так происходит. В общем первый раз столкнулся с HAL. Есть мысль все запихнуть в прерывание "void TIM6_DAC_IRQHandler(void)", и бросить мучится с HAL_TIM_PeriodElapsedCallback.
После Reset, попадаем в функцию HAL_TIM_PeriodElapsedCallback, почти мгновенно, следующий раз правильно, потом снова мгновенно, постоянно.