在配置优先级的时候, 要注意一个很重要的问题, 中断种类的数量
NVIC 只可以配置 16 种 中断向量的优先级, 也就是说, 抢占优先级和响应优先 级的数量由一个 4 位的数字来决定,
把这个 4 位数字的 位 数 分配成抢占优先级 部分和响应优先级部分有 5 组分配方式:
第 0 组: 所有 4 位用来配置抢占优先级, 即 NVIC 配置的 24 =16 种 中断向量都是只有抢占属性, 没有响应属性
第 1 组: 最高 1 位用来配置抢占优先级, 低 3 位用来配置响应优先级表 示有 21=2 种级别的抢占优先级 (0 级, 1 级), 有 23=8 种响应优先级, 即在 16 种中断向量之中, 有 8 种中断, 其抢占优先级都为 0 级, 而它们的响应优先级 分别为 0~7, 其余 8 种中断向量的抢占优先级则都为 1 级, 响应优先级别分别 为 0~7
第 2 组: 2 位用来配置抢占优先级, 2 位用来配置响应优先级即 22=4 种 抢占优先级, 22=4 种响应优先级
第 3 组: 高 3 位用来配置抢占优先级, 最低 1 位用来配置响应优先级即 有 8 种抢占优先级, 2 种响应 2 优先级
第 4 组: 所有 4 位用来配置响应优先级即 16 种中断向量具有都不相同的 响应优先级
要配置这些优先级组, 可以采用库函数
NVIC_Priorit yGroupConfig () , 可输入的参数为 NVIC_PriorityGroup_0 ~ NVIC_PriorityGroup_ 4
来源: http://www.bubuko.com/infodetail-2529061.html