Кроме проверки и сброса флага "стандартного" в обработчике ничего
нет и быть не может. То есть "стандартный" - это ПУСТОЙ обработчик.
Но пустой обработчик никому не нужен, значит прямо за его телом
должен следовать Ваш код. Вы бы открыли тело "стандартного" и
посмотрели что в нем... Ваш код:
void TIM6_DAC_IRQHandler(void)
{
.... тут что-то делаю...
HAL_TIM_IRQHandler( &htim6);
}
Не соответствует правилам организации прерываний в СТМ32. В данном обработчике void TIM6_DAC_IRQHandler(void) сначала проверяется флаг, и ТОЛЬКО если он взведен, этот флаг сбрасывается и исполняется пользовательский код. Иначе невозможно разделить разные источники (DAC и TIM6 в данном случае) в одном обработчике. Это значит, что пользовательский код должен быть ВНУТРИ "стандартного".