Цитата(Sidoroff @ Sep 16 2014, 14:04)

Последовал первому совету: использовал обычный таймер. Все работает, прерывания не теряет.
Т.к. у обычных прерываний есть pending-бит в NVIC. Типа, отложенные прерывания - идеально для вас.
Цитата(Sidoroff @ Sep 16 2014, 14:04)

TIM2->SR &= ~TIM_SR_UIF; // без этого виснет, содрал просто
Лучше так:
Код
TIM2->SR = ~TIM_SR_UIF;
Почему? Много раз обсуждалось тут: чтобы сбросить только UIF.