嵌入式02 STM32 实验11 NVIC和中断总结
一、基础知识
1、cortex-m3支持256个中断,其中包含了16个内核中断,240个外部中断
2、STM32只有84个中断,包括16个内核中断和68个可屏蔽中断
3、STM32F103上只有60个可屏蔽中断(本文重点讲解F103)
4、先占优先级和次占优先级
先占优先级(抢占优先级):抢占优先级不同,会涉及到中断嵌套,抢占优先级高的会优先抢占优先级低的,优先得到执行。抢占优先级相同,不涉及到中断嵌套,响应优先级不同,响应优先级高的先响应。
次占优先级(响应优先级/亚优先级/副优先级):只在同一先占优先级中的中断同时触发时起作用,先占优先级相同,则优先执行响应优先级高的中断,次占优先级不会造成中断嵌套,如果两个优先级都一样,则优先执行中断向量表中编号小的(中断编号越小,优先级越高)。
中断优先级高低判断:优先级数字越小,优先级越高。
5、挂起:当位置中断挂起寄存器的时候,相应的中断将会被挂起,这不是这个中断不执行,而是等待可执行的时候再执行;比如高低级别的中断同时产生,就挂起低级别的中断,等高级别的中断执行完毕,解除并执行低级中断。
二、NVIC(嵌套向量中断控制器)
用于为中断分组,从而分配抢占优先级和响应优先级
***中断优先级参数表***
三、中断程序设计四步
A、使能相应外设时钟,根据对应的中断使能位控制
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //相应的外设时钟使能
B、配置中断优先级分组
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2(2位抢占优先级,2位响应优先级)
C、初始化NVIC_InitTypeDef结构体,根据上方设置的中断优先级分组来配置抢占优先级和相应优先级,并使能相应的通道
NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn; //TIM3中断
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; //先占优先级0级
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //从优先级3级
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //中断使能或取消使能
NVIC_Init(&NVIC_InitStructure); //初始化NVIC寄存器
D、编写中断服务函数,在startup_stm32f10x_hd.s文件中,都有一个根据中断向量表设置的空的中断服务函数,需要我们重新编写,我们拷贝过来根据自己想要实现的内容编写。
最新文章
- H5坦克大战之【画出坦克】
- [译]初识.NET Core &; ASP.NET Core
- hashicorp/consul
- EXT.net DateField format设置
- openfire+strophe
- RHEL7挂载ISO做本地yum
- csrf利用EXP
- sessionFactory
- 自适应游标共享技术01(Adaptive Cursor Sharing)
- linux内核编程笔记【原创】
- win7 提升windows服务权限使非管理员用户可以控制windows服务的开启和关闭
- 怎么看时序图--nand flash的读操作详解(转载)
- SQL 2008执行语句遇到内存不足(1)——error 701
- STM32F0使用LL库实现SHT70通讯
- ionic3 导航的应用(页面跳转与参数传递)
- python练习题-day25
- python中的进程和线程
- C#数组冒泡
- 如何防止ElasticSearch集群出现脑裂现象
- P1020 导弹拦截 dp 树状数组维护最长升序列
热门文章
- Linux下Python3源码安装
- 5-网页,网站,微信公众号基础入门(配置网站--PHP配置上数据库)
- HashSet Integer输出有序,String输出无序
- UDF——计算壁面边界合力矩(旋转机械)
- maven 无法引入包 报错 处理方式
- ChIP-seq | ATAC-seq | 数据分析流程
- Keras split train test set when using ImageDataGenerator
- http 请求方式解析
- django orm 分页(paginator)取数据出现警告manage.py:1: UnorderedObjectListWarning: Pagination may yield inconsistent results with an unordered object_list: <;class &#39;sign.models.Guest&#39;>; QuerySet.
- 安装opencv时ippicv下载超时