STM32: как вызывать Delay на System Tick Timer из обработчика внешнего прерывания?
1. Вызывать задержки изнутри обработчика прерывания — это очень плохо.
2. Функция Delay должна зависнуть. нужно пометить SysTickDelay как volatile.
3. Не помню про EXTI, но возможно, его нужно сбрасывать явно перед выходом.
1. В прерывании EXTI нужно очищать флаг прерывания для возможности повторного срабатывания этого прерывания.
2. SysTickDelay должен иметь тип uint32_t, иначе вы не используете целую половину возможного диапазона.
3. Хорошо что у вас SysTickDelay декрементируется, а то были случаи.
4. Никаких прерываний с дилеями внутри! Делайте асинхронно, с таймерами, спинлоками (это просто переменная-флаг) и т.д.