NVIC的中断的分组(嵌套向量中断控制器)
(1)NVIC的基础的知识:对于大多数的单片机而言,中断的优先级都是通过特定的寄存器8位进行配置, 但是8位能够配置256级中断, 根本用不了那么多(用不完出厂的时候为什么还要定义)只仅仅使用高4位,构成16个等级
并将这16个等级分为5个分组来进行使用
对于优先级的分组的使用注意事项:应该在之前有点了解吧。数值越小,则级别越大。
其大致为数值小的抢占优先级能打断数值大的抢占优先级的中断。
当相同抢占优先级同时进行的时候,则看其子优先级的中断。如果有低等级的子优先级在执行的化,高子优先级则不能打断。
(2)常用的NVIC的函数
1.void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority)
HAL_NVIC_SetPriority() 函数主要用来设置哪个中断口,以及相应的抢占和子优先级的配置。
2.void HAL_NVIC_EnableIRQ(IRQn_Type IRQn) 用来设置中断的使能的函数 ,其输入的参数位中断号。注意使用该函数的时候应先调用HAL_INIT()函数。在其函数的内部存在中断的优先级的分组的函数
NVIC_PriorityGroupConfig(),对于
HAL_INIT()函数的复习:其主要的作用为:配置滴答定时器的中断为1ms, 配置中断分级的组号为4,使用HSI(内部高速时钟作为单片机的时钟源,以及开启滴答定时器的中断)