Есть прерывание от таймера T7, в любой момент его должно прервать прерывание от rx USART. Настраиваю приоритеты у T7 ставлю низкий например 5, в отладчике это вижу. Настраиваю USART ставлю 0, наивысший приоритет, тоже в отладчике это вижу. Оба прерывания срабатывают, но по логике очевидно что USART не пребивает T7. Довел до абсурда внутри T7 сделал зависон while(1) вижу что контроллер там висит в отладке. Начинаю слать какую нибудь байду по уарту, контроллер в прерывание не заходит. Не понимаю почему так. Ведь по логике вещей достаточно засунуть приоритеты в разные группы так и сделано NVIC_SetPriority(USART2_IRQn, 0), NVIC_SetPriority(TIM7_IRQn, 5);. Почему не работает вложенное прерывание?
|