Цитата(Allregia @ Oct 23 2012, 18:46)

Или можно просто после всех инициализаций, которые у меня есть сейчас, написать:
Код
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
NVIC_SetPriority(SPI2_IRQn, 1); // SPI priority=1
NVIC_SetPriority(EXTI15_10_IRQn, 2); // SW interrupt priority=2
NVIC_SetPriority(USART3_IRQn_IRQn, 3); // UART=3
NVIC_SetPriority(SysTick_IRQn, 4); // SysTick priority=4
Можно так и написать.
Странно что приоритеты не от 0 задаёте (0 - умолчание), а от 1.
Нужно вызвать NVIC_PriorityGroupConfig с соответствующим параметром (например 0 - отмена групп).
Цитата(Allregia @ Oct 23 2012, 23:18)

Т.е. если я хочу чтобы прерывание с более высоким приоритетом прерывало прерывание с более низким, они обязательно долдны быть в разных группах?
А если они из одной группы, и выполняется прерывание с бОльшим номером подгруппы (т.е. менее приоритетное), то прерывание той-же группы с меньшим номером (по идее более приоритетное) его не прервет?
Прерывания одного приритета друг друга не могут прервать. исполняемое прерывание может быть прервано только более приоритетным.
Цитата(Allregia @ Oct 23 2012, 23:18)

Т.е. если в момент выполнения высокоприоритетного прерывания возникает другое, менее приоритетное, то оно подождет и будет выполнено после
Подождёт.