NVIC中断优先级管理.ppt

NVIC中断优先级管理.ppt

ID:48082765

大小:990.00 KB

页数:20页

时间:2020-01-12

NVIC中断优先级管理.ppt_第1页
NVIC中断优先级管理.ppt_第2页
NVIC中断优先级管理.ppt_第3页
NVIC中断优先级管理.ppt_第4页
NVIC中断优先级管理.ppt_第5页
资源描述:

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

1、STM32NVIC中断优先级管理目录NVIC中断优先级分组1NVIC中断优先级设置2NVIC总结3.NVIC中断优先级分组CM4内核支持256个中断,其中包含了16个内核中断和240个外部中断,并且具有256级的可编程中断设置。STM32F4并没有使用CM4内核的全部东西,而是只用了它的一部分。-STM32F40xx/STM32F41xx总共有92个中断。-STM32F42xx/STM32F43xx则总共有96个中断STM32F40xx/STM32F41xx的92个中断里面,包括10个内核中断和82个可屏蔽中断,具有16级可编程

2、的中断优先级,而我们常用的就是这82个可屏蔽中断。NVIC中断优先级分组……STM32F405xx/STM32F407XX向量表10个内核中断82个可屏蔽中断几十个中断,怎么管理?NVIC中断优先级分组中断管理方法:首先,对STM32中断进行分组,组0~4。同时,对每个中断设置一个抢占优先级和一个响应优先级值。分组配置是在寄存器SCB->AIRCR中配置:组AIRCR[10:8]IPbit[7:4]分配情况分配结果01110:40位抢占优先级,4位响应优先级11101:31位抢占优先级,3位响应优先级21012:22位抢占优先级

3、,2位响应优先级31003:13位抢占优先级,1位响应优先级40114:04位抢占优先级,0位响应优先级NVIC中断优先级分组抢占优先级&响应优先级区别:高优先级的抢占优先级是可以打断正在进行的低抢占优先级中断的。抢占优先级相同的中断,高响应优先级不可以打断低响应优先级的中断。抢占优先级相同的中断,当两个中断同时发生的情况下,哪个响应优先级高,哪个先执行。如果两个中断的抢占优先级和响应优先级都是一样的话,则看哪个中断先发生就先执行;1.NVIC中断优先级分组NVIC中断优先级分组举例:假定设置中断优先级组为2,然后设置中断3(R

4、TC中断)的抢占优先级为2,响应优先级为1。中断6(外部中断0)的抢占优先级为3,响应优先级为0。中断7(外部中断1)的抢占优先级为2,响应优先级为0。那么这3个中断的优先级顺序为:中断7>中断3>中断6。1.NVIC中断优先级分组NVIC中断优先级分组特别说明:一般情况下,系统代码执行过程中,只设置一次中断优先级分组,比如分组2,设置好分组之后一般不会再改变分组。随意改变分组会导致中断管理混乱,程序出现意想不到的执行结果。1.NVIC中断优先级分组NVIC中断优先级分组中断优先级分组函数:voidNVIC_PriorityGr

5、oupConfig(uint32_tNVIC_PriorityGroup);voidNVIC_PriorityGroupConfig(uint32_tNVIC_PriorityGroup){assert_param(IS_NVIC_PRIORITY_GROUP(NVIC_PriorityGroup));SCB->AIRCR=AIRCR_VECTKEY_MASK

6、NVIC_PriorityGroup;}NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);1.NVIC中断优先级分组NVIC中

7、断优先级分组分组设置好之后,怎么设置单个中断的抢占优先级和响应优先级?NVIC中断优先级分组中断优先级设置中断设置相关寄存器__IOuint8_tIP[240];//中断优先级控制的寄存器组__IOuint32_tISER[8];//中断使能寄存器组__IOuint32_tICER[8];//中断失能寄存器组__IOuint32_tISPR[8];//中断挂起寄存器组__IOuint32_tICPR[8];//中断解挂寄存器组__IOuint32_tIABR[8];//中断激活标志位寄存器组MDK中NVIC寄存器结构体typed

8、efstruct{__IOuint32_tISER[8];uint32_tRESERVED0[24];__IOuint32_tICER[8];uint32_tRSERVED1[24];__IOuint32_tISPR[8];uint32_tRESERVED2[24];__IOuint32_tICPR[8];uint32_tRESERVED3[24];__IOuint32_tIABR[8];uint32_tRESERVED4[56];__IOuint8_tIP[240];uint32_tRESERVED5[644];__Ouint

9、32_tSTIR;}NVIC_Type;中断优先级设置对于每个中断怎么设置优先级?中断优先级控制的寄存器组:IP[240]全称是:InterruptPriorityRegisters240个8位寄存器,每个中断使用一个寄存器来确定优先级。STM32F40x系列一

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

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

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