STM NVIC中断优先级

STM NVIC中断优先级

ID:37906745

大小:30.50 KB

页数:5页

时间:2019-06-02

STM NVIC中断优先级_第1页
STM NVIC中断优先级_第2页
STM NVIC中断优先级_第3页
STM NVIC中断优先级_第4页
STM NVIC中断优先级_第5页
资源描述:

《STM NVIC中断优先级》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、STM32中断优先级以及全局允许和禁止优先级可以被分为高低两个位段,分别是抢占优先级和亚优先级Cortex-M3允许具有较少中断源时使用较少的寄存器位指定中断源的优先级,因此STM32把指定中断优先级的寄存器位减少到4位AIRC中PRIGROUP的值规定了设置和确定每个外部中断通道优先级的格式。例如,在上面将0x05写入了AIRC中PRIGROUP,也就规定了当前系统中只能有4个抢先式优先级,相同的抢先式优先级下还可以有4个不同级别的子优先级,他们分别为:位[7:6]                  位[5:4]                 位[3:0]00     

2、   0号抢先优先级  00       0号子优先级   无效01        1号抢先优先级  01       1号子优先级   无效10        2号抢先优先级  10       2号子优先级   无效11        3号抢先优先级  11       3号子优先级   无效在Cortex—M3的优先级分配中,较低的优先级值具有较高的优先级。数值小的优先级高,数值大的优先级低a只能高抢先优先级的中断可以打断低抢先优先级的中断服务,构成中断嵌套。b当2(n)个相同抢先优先级的中断出现,它们之间不能构成中断嵌套,但STM32首先响应子优先级高的中断。c当2

3、(n)个相同抢先优先级和相同子优先级的中断出现,STM32首先响应中断通道所对应的中断向量地址低的那个中断。可以通过调用STM32的固件库中的函数NVIC_PriorityGroupConfig()选择使用哪种优先级分组方式,这个函数的参数有下列5种:NVIC_PriorityGroup_0=>选择第0组NVIC_PriorityGroup_1=>选择第1组NVIC_PriorityGroup_2=>选择第2组NVIC_PriorityGroup_3=>选择第3组NVIC_PriorityGroup_4=>选择第4组第0组:所有4位用于指定响应优先级  (从不嵌套)第1组:

4、最高1位用于指定抢占式优先级,最低3位用于指定响应优先级第2组:最高2位用于指定抢占式优先级,最低2位用于指定响应优先级第3组:最高3位用于指定抢占式优先级,最低1位用于指定响应优先级第4组:所有4位用于指定抢占式优先级(最大的嵌套可能性)(类似于STR710)subpriority 开始的位号:如果从7号开始那么没有pre-emptionpriority,[ b7b6b5b4] 全部为subpriority 如果从 6号开始那么[b7]为 pre-emptionpriority,[b6b5b4] 为subpriority 如果从 3号开始那么[b7b6b5 b4 ]为 p

5、re-emptionpriority, 没有subpriority [pre-emptionpriority]::[subpriority ](STM32共计4位)所以无论如何配置做多只能有16级,数值最小的具有最高的优先级在程序中合理按排中断优先级可以达到具有高抢占式优先级的中断可以在具有低抢占式优先级的中断处理过程中被响应,即中断嵌套,或者说高抢占式优先级的中断可以嵌套低抢占式优先级的中断。要注意的几点是:1)如果指定的抢占式优先级别或响应优先级别超出了选定的优先级分组所限定的范围,将可能得到意想不到的结果;2)抢占式优先级别相同的中断源之间没有嵌套关系;3)如果某个中

6、断源被指定为某个抢占式优先级别,又没有其它中断源处于同一个抢占式优先级别,则可以为这个中断源指定任意有效的响应优先级别。#defineNVIC_PriorityGroup_0        ((uint32_t)0x700)/*!<0bitsforpre-emptionpriority                                                           4bitsforsubpriority*/#defineNVIC_PriorityGroup_1        ((uint32_t)0x600)/*!<1bitsforpre

7、-emptionpriority                                                           3bitsforsubpriority*/#defineNVIC_PriorityGroup_2        ((uint32_t)0x500)/*!<2bitsforpre-emptionpriority                                                           2bitsforsubpriority*/#

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。