ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
26 ноября
1091622
misyachniy (08.04.2021 12:37, просмотров: 1813)
Вопрос: приоритеты прерываний STM32F051 

Понадобилось поглубже копнуть

В документации RM0091 Reference manual

NVIC main features 4 programmable priority levels (2 bits of interrupt priority are used)

Понятно что 4 уровня

Глянул Table 36. Vector table, похоже 0-старший, 3-младший.


Присмотрелся к таблице


Вторая колонка - приоритетов несколько десятков ?


В исходниках "core_cm0.h" есть понятная функция, параметры тип прерывания (position таблицы 36) и приоритет

__NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)


Но там же есть какие-то групповые приоритеты

/** \brief Encode Priority 
 \details Encodes the priority for an interrupt with the given priority group, 
 preemptive priority value, and subpriority value. 
 In case of a conflict between priority grouping and available 
 priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. 
 \param [in] PriorityGroup Used priority group. 
 \param [in] PreemptPriority Preemptive priority value (starting from 0). 
 \param [in] SubPriority Subpriority value (starting from 0). 
 \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). */ 

__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t

Достаточно ли мне функции SetPriority() или еще чего нужно подшаманить?