o2o网站设计方案,网站域名备案谁来做,WordPress文章相册修改,建立一个网站需要花多少钱文章来源#xff1a;http://blog.sina.com.cn/s/blog_4fed55ce0100j7nd.html一#xff1a;综述STM32 目前支持的中断共为 84 个(16 个内核68 个外部)#xff0c; 16 级可编程中断优先级的设置(仅使用中断优先级设置 8bit 中的高 4 位)和16个抢占优先级(因为抢占优先级最多可…文章来源http://blog.sina.com.cn/s/blog_4fed55ce0100j7nd.html一综述STM32 目前支持的中断共为 84 个(16 个内核68 个外部) 16 级可编程中断优先级的设置(仅使用中断优先级设置 8bit 中的高 4 位)和16个抢占优先级(因为抢占优先级最多可以有四位数)。二优先级判断STM32(Cortex-M3)中有两个优先级的概念——抢占式优先级和响应优先级有人把响应优先级称作亚优先级或副优先级每个中断源都需要被指定这两种优先级。具有高抢占式优先级的中断可以在具有低抢占式优先级的中断处理过程中被响应即中断嵌套或者说高抢占式优先级的中断可以嵌套低抢占式优先级的中断。当两个中断源的抢占式优先级相同时这两个中断将没有嵌套关系当一个中断到来后如果正在处理另一个中断这个后到来的中断就要等到前一个中断处理完之后才能被处理。如果这两个中断同时到达则中断控制器根据他们的响应优先级高低来决定先处理哪一个如果他们的抢占式优先级和响应优先级都相等则根据他们在中断表中的排位顺序决定先处理哪一个。三优先级分组既然每个中断源都需要被指定这两种优先级就需要有相应的寄存器位记录每个中断的优先级在Cortex-M3中定义了8个比特位用于设置中断源的优先级这8个比特位在NVIC应用中断与复位控制寄丛器(AIRCR)的中断优先级分组域中可以有8种分配方式如下所有8位用于指定响应优先级最高1位用于指定抢占式优先级最低7位用于指定响应优先级最高2位用于指定抢占式优先级最低6位用于指定响应优先级最高3位用于指定抢占式优先级最低5位用于指定响应优先级最高4位用于指定抢占式优先级最低4位用于指定响应优先级最高5位用于指定抢占式优先级最低3位用于指定响应优先级最高6位用于指定抢占式优先级最低2位用于指定响应优先级最高7位用于指定抢占式优先级最低1位用于指定响应优先级这就是优先级分组的概念。Cortex-M3允许具有较少中断源时使用较少的寄存器位指定中断源的优先级因此STM32把指定中断优先级的寄存器位减少到4位(AIRCR高四位)这4个寄存器位的分组方式如下第0组所有4位用于指定响应优先级第1组最高1位用于指定抢占式优先级最低3位用于指定响应优先级第2组最高2位用于指定抢占式优先级最低2位用于指定响应优先级第3组最高3位用于指定抢占式优先级最低1位用于指定响应优先级第4组所有4位用于指定抢占式优先级可以通过调用STM32的固件库中的函数NVIC_PriorityGroupConfig()选择使用哪种优先级分组方式这个函数的参数有下列5种NVIC_PriorityGroup_0 选择第0组NVIC_PriorityGroup_1 选择第1组NVIC_PriorityGroup_2 选择第2组NVIC_PriorityGroup_3 选择第3组NVIC_PriorityGroup_4 选择第4组中断优先级分组是为了给抢占式优先级和响应优先级在中断优先级寄丛器的高四位分配各个优先级数字所占的位数。在一个程序中只能设定一次四中断源的优先级接下来就是指定中断源的优先级中断源优先级是在中断优先级寄存器中设置的只能设置及高四位必须根据中断优先级分组中设置好的位数来在该寄存器中设置相应的数值。假如你选择中断优先级分组的第3组最高3位用于指定抢占式优先级最低1位用于指定响应优先级那么抢占式优先级就有000-111共八种数据选择也就是有八个中断嵌套而响应优先级中有0和1两种总共有8*216种优先级。中断源优先级具体的设置了该中断源的优先级别在一个程序中可以设定多个(最多16个)优先级每个中断源只能设定的一个。每写一个关于中断优先级的程序必须包含下列两个函数(1)void NVIC_PriorityGroupConfig(u32 NVIC_PriorityGroup)中断分组设置(2)void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct)中断优先级设置