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相关推荐

  1. STM32中断优先级NVIC配置说明

    STM32中断优先级NVIC配置说明 NVIC中断优先级分组列表 优先级分组 抢占优先级 响应优先级 高4bit分配情况 NVIC_PriorityGroup_0 取值:0 取值:0~15 0bit抢 ...

  2. STM32中断优先级NVIC

    参考正点原子视频 为什么STM32需要中断 就拿你去饭馆吃饭为例. 使用中断就是饭做好了,服务员会为你端上来,然后你开始吃饭.端上来之前你爱干啥就干啥. 不使用中断,你需要一次一次去问服务员饭做好了没 ...

  3. stm32中断优先级_关于STM32 (Cortex-M3) 中NVIC的分析(转)

    一.STM32 (Cortex-M3) 中的优先级概念 STM32(Cortex-M3)中有两个优先级的概念:抢占式优先级和响应优先级,也把响应优先级称作"亚优先级"或" ...

  4. 【STM32】中断优先级管理

    00. 目录 文章目录 00. 目录 01. 概述 02. 结构体声明 03. 中断分组 04. 相关类型 05. 相关函数 06. 附录 07. 声明 01. 概述 CM4 内核支持 256 个中断 ...

  5. STM32F4中断优先级NVIC管理

    一.NVIC中断优先级分组 STM32F4XX/STM32F41XX 共有92个中断,包括10个内核中断和82个可屏蔽中断,具有16级可编程的中断优先级,常用的为82个可屏蔽中断. 10个内核中断 部 ...

  6. STM32的中断优先级详解

    中断优先级设置步骤: 系统运行后先设置中断优先级分组.在主函数调用函数: void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup); 整个系 ...

  7. STM32中的NVIC

    NVIC(Nested vectoredinterrupt controller)嵌套向量中断控制器: 中断管理办法: 对STM32中断进行分组,组0-4,对每一个中断设置一个抢占优先级和响应优先级. ...

  8. STM32笔记之 NVIC(嵌套向量中断控制器)

    写在前面: 本文章旨在总结备份.方便以后查询,由于是个人总结,如有不对,欢迎指正:另外,内容大部分来自网络.书籍.和各类手册,如若侵权请告知,马上删帖致歉. 目录 一.NVIC简单解释 二.抢占优先级 ...

  9. STM32中断:NVIC与EXTI

    STM32中断非常强大,每个外设都可以产生中断.异常就是中断,中断就是异常,请不要刻意钻牛角尖较劲. 1.异常类型 F103在内核水平上搭载了一个异常响应系统,支持为数众多的系统异常和外部中断.其中系 ...

最新文章

  1. 理解JavaScript的原始类型
  2. html中加入好看的行号,仅使用CSS在pre上创建行号
  3. mysql将一个字符转换成多个字符_将分隔的字符串转换为mysql中的多个值
  4. 内容拾遗之字符串与数据结构
  5. Linux下设置和查看环境变量
  6. 解决:Unexpected token (START_OBJECT), expected START_ARRAY: need JSON Array to contain As.WRAPPER_ARRA
  7. SQL从入门到入魔之select简单查询
  8. etcd-java使用
  9. OPPO以技术推动产品 获专利数首次挺近前十
  10. 工具:帆软FineBI使用指南
  11. finereport java无符合资料_Java报表工具FineReport常见的数据集报错错误代码和解释...
  12. k3c官改刷openwrt_斐讯K3刷OpenWrt(Lede)
  13. Spring常用注解(绝对经典)
  14. svn下载项目到指定文件夹,以及更新提交
  15. qt远程调试ARM板
  16. 从奥卡姆剃刀定律再看决策树
  17. Reflection probes
  18. Diamond安装步骤
  19. 【礼物】的定义不同所造成的诡异反差感
  20. html5 元宵节送祝福,[元宵节祝福语简短5]元宵节祝福语简短

热门文章

  1. 大学宿舍采用CCproxy+Proxifier共享网络
  2. 对华为畅玩手机5X进行升级
  3. Spring整合定时任务调度框架Quartz实
  4. Swoft 2.X 中间件
  5. Linux----dos界面 | 图形化界面切换
  6. NXP I.MX芯片资源合集
  7. MacOS环境下安卓apk反编译
  8. 接收一个正整数,判断该数字是否为质数质数(质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数)
  9. Linux下查看即时网速(查看网速)
  10. 使用 PyQT5 来做一个简易版库存管理系统(三)