А у этого STM32 аналоговый компаратор есть? А то чёт как-то сложно всё, таймер, задний фронт, запуск АЦП... Я правильно понял, что нужно просто срабатывание от перегрузки по току, так? У меня в поделках на AVR используется обычный компаратор (внутренняя опрора 1,1В), ну или прерывание PCINT, если аварийный сигнал с шунта больше 2,5В. Идея очень проста:
Программная обработка ещё проще. Прерывание даже регистр флагов не сохраняет, просто сбрасывает выход и всё. Быстродействие - доли микросек. В основной программе, если окажется, что выход сброшен, значит, было срабатывание защиты от К.З.
//--------------------------------------------------------------------------
// прерывание компаратора на срабатывание по перегрузке ключа
__interrupt void irqANA_COMP (void)
{
PODR_OFF; // выключить нижний ключ
}