STM32的中断优先级NVIC
1、CM3内核支持256个中断,包含了16个内核中断和240个外部中断,并且具有256级可编程中断。
2、STM32并没有使用CM3内核的全部东西,而是只用了它的一部分。
3、STM32有84个中断,包括了16个内核中断和68个可屏蔽中断,具有16级可编程的中断优先级。
4、STM32F103系列上面,又只有60个可屏蔽中断(在107系列才有68个)
5、中断管理方法:首先,对STM32中断进行分组,组0~4,同时,对每个中断设置一个抢占优先级和一个响应优先级值。
分组配置是在寄存器SCB->AIRCR中配置:
抢占优先级&响应优先级区别
1、高优先级的抢占优先级是可以打断正在进行的低优先级中断
2、抢占优先级相同的中断,高响应优先级不可以打断低响应优先级的中断
3、抢占优先级相同的中断,当两个中断同时发生的情况下,哪个响应优先级高,哪个先执行。
4、如果两个中断的抢占优先级和响应优先级都是一样的话,则看哪个中断先发生就先执行
举例:
假定设置中断优先级组为2;然后设置中断3(RTC中断)的抢占优先级为2,响应优先级为1;中断6(外部中断0)的抢占优先级为3,响应优先级为0;中断7(外部中断1)的抢占优先级2,响应优先级为0。
这3个中断顺序:中断7>中断3>中断6
特别说明:
一般情况下,系统代码执行过程中,只设置一次中断优先级分组,比如分组2,设置好分组之后一般不会再改变分组,随意改变分组会导致中断管理混乱,程序出现意想不到的结果。
①中断优先级分组函数:
在stm32f1xx_hal_cortex.c中
void NVIC_SetPriorityGrouping(uint 32_t NVIC_PriorityGroup);
HAL_NVIC_SetPriorityGrouping(NVIC_PriorityGroup_2);中断优先级分组2.
2位抢占优先级,2位响应优先级
stm32f1xx_hal.c文件中
HAL_Init();//HAL库初始化
作用:对中断优先级分组,FLASH以及硬件层进行初始化
main开头调用HAL_Init();
②在stm32f1xx_hal_cortex.c中定义了中断优先级设置函数
1、void HAL_NVIC_SetPriority(IRQn_TypeI RQn,uint 32_t PreemptPriority,uint 32_t SubPriority);
用来设置单个优先级的抢占优先级和响应优先级(USART1_IRQn,3,0);3的二进制数11
2、void HAL_NVIC_EnableIRQ(IRQn_Type IRQn);
用来使能某个中断通道(USART_IRQn)
3、void HAL_NVIC_DisableIRQ(IRQn_Type IRQn);
用来清除某个使能,也就是中断失能。
STM32的中断优先级NVIC相关推荐
- STM32中断优先级NVIC配置说明
STM32中断优先级NVIC配置说明 NVIC中断优先级分组列表 优先级分组 抢占优先级 响应优先级 高4bit分配情况 NVIC_PriorityGroup_0 取值:0 取值:0~15 0bit抢 ...
- STM32中断优先级NVIC
参考正点原子视频 为什么STM32需要中断 就拿你去饭馆吃饭为例. 使用中断就是饭做好了,服务员会为你端上来,然后你开始吃饭.端上来之前你爱干啥就干啥. 不使用中断,你需要一次一次去问服务员饭做好了没 ...
- stm32中断优先级_关于STM32 (Cortex-M3) 中NVIC的分析(转)
一.STM32 (Cortex-M3) 中的优先级概念 STM32(Cortex-M3)中有两个优先级的概念:抢占式优先级和响应优先级,也把响应优先级称作"亚优先级"或" ...
- 【STM32】中断优先级管理
00. 目录 文章目录 00. 目录 01. 概述 02. 结构体声明 03. 中断分组 04. 相关类型 05. 相关函数 06. 附录 07. 声明 01. 概述 CM4 内核支持 256 个中断 ...
- STM32F4中断优先级NVIC管理
一.NVIC中断优先级分组 STM32F4XX/STM32F41XX 共有92个中断,包括10个内核中断和82个可屏蔽中断,具有16级可编程的中断优先级,常用的为82个可屏蔽中断. 10个内核中断 部 ...
- STM32的中断优先级详解
中断优先级设置步骤: 系统运行后先设置中断优先级分组.在主函数调用函数: void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup); 整个系 ...
- STM32中的NVIC
NVIC(Nested vectoredinterrupt controller)嵌套向量中断控制器: 中断管理办法: 对STM32中断进行分组,组0-4,对每一个中断设置一个抢占优先级和响应优先级. ...
- STM32笔记之 NVIC(嵌套向量中断控制器)
写在前面: 本文章旨在总结备份.方便以后查询,由于是个人总结,如有不对,欢迎指正:另外,内容大部分来自网络.书籍.和各类手册,如若侵权请告知,马上删帖致歉. 目录 一.NVIC简单解释 二.抢占优先级 ...
- STM32中断:NVIC与EXTI
STM32中断非常强大,每个外设都可以产生中断.异常就是中断,中断就是异常,请不要刻意钻牛角尖较劲. 1.异常类型 F103在内核水平上搭载了一个异常响应系统,支持为数众多的系统异常和外部中断.其中系 ...
最新文章
- 理解JavaScript的原始类型
- html中加入好看的行号,仅使用CSS在pre上创建行号
- mysql将一个字符转换成多个字符_将分隔的字符串转换为mysql中的多个值
- 内容拾遗之字符串与数据结构
- Linux下设置和查看环境变量
- 解决:Unexpected token (START_OBJECT), expected START_ARRAY: need JSON Array to contain As.WRAPPER_ARRA
- SQL从入门到入魔之select简单查询
- etcd-java使用
- OPPO以技术推动产品 获专利数首次挺近前十
- 工具:帆软FineBI使用指南
- finereport java无符合资料_Java报表工具FineReport常见的数据集报错错误代码和解释...
- k3c官改刷openwrt_斐讯K3刷OpenWrt(Lede)
- Spring常用注解(绝对经典)
- svn下载项目到指定文件夹,以及更新提交
- qt远程调试ARM板
- 从奥卡姆剃刀定律再看决策树
- Reflection probes
- Diamond安装步骤
- 【礼物】的定义不同所造成的诡异反差感
- html5 元宵节送祝福,[元宵节祝福语简短5]元宵节祝福语简短