Я считал, что эту задачу решу за полчаса, но чем больше изучаю - тем больше запутываюсь.
Процессор STM32F103
Работаю с UART, SPI и USB
В некоторый момент мне надо запретить прерывания от USB.
Можно решить задачу в лоб - в нужный момент запретить два прерывания
Код
NVIC_DisableIRQ(USB_LP_CAN1_RX0_IRQn);
NVIC_DisableIRQ(USBWakeUp_IRQn);
А потом аналогично разрешить. Но это пОшло.
NVIC позволяет дать каждому прерыванию свой приоритет. Я полагал, что после этого можно, например, маскировать (запрещать) все прерывания ниже определенного приоритета. Но сегодня из документации понял, что приоритет дает только порядок обработки прерываний. А запретить можно или все (__disable_irq()), или одно конкретное прерывание(NVIC_DisableIRQ(irqn)).
Можно ли запрещать прерывания ниже определенного приоритета?
И второе. NVIC_SetPriorityGrouping(). Читаю описание хоть на английском, хоть на русском. Понимаю каждое слово, но не понимаю смысла группирования. Может кто-то свою трактовку одним-двумя предложениями дать?