一、中断内核: 


STM32的中断很强大,每个外设都可以产生中断,F103在内核水平上搭载了异常响应系统,系统异常有8个(算上RESET和HardFault也就10个),外部中断有60个,但是根据NVIC(嵌套向量中断控制器,控制整个芯片中断相关的功能),IP(中断优先级寄存器)数组中预留了240个位置(NVIC结构如上图),可见眼光之远,用于扩展,这是STM32F103用不到这么多。


如果以后要找跟内核相关的函数,都存在core_cm3.c和misc.c中,包括NVIC的函数的声明,但是其具体的库函数内容并不是和固件库头文件core_cm3.h一致(不在core_cm3.c),而是放在库函数的misc.c中,这点需要注意。


二、中断优先级的定义和分组:

 

 三、中断编程的顺序:


1、使能中断请求


如何使能,需要配置哪个寄存器?


注意:这里与NVIC中的中断使能寄存器不是等同概念,中断使能可以理解成有2个大门,外设使能(小门,比如串口有发送完成中断,接收完成中断,这两个中断由串口控制寄存器的相关中断使能位来控制)和NVIC(大门,接受请求)。


2、配置中断优先级分组


如何配置,需要配置哪个寄存器?


通过NVIC_PriorityGroup函数。


3、配置NVIC寄存器,初始化NVIC_InitTypeDef;(定义在misc.h中,成员如下)


1-NVIC_IRQChannel:指定中断源(中断类型列表参考STM32F10X.H中已列举给出)             


2-NVIC_IRQChannelPreemptionPriority:抢占优先级(根据分组表和选择来给) 


3-NVIC_IRQChannelSubPriority:子优先级(根据分组表和选择来给)


4-NVIC_IRQChannelCmd:使能或者失能(内核使能,相当于上面说的大门,enable或disable)


4、编写中断服务函数


1-中断服务函数名要怎么写?写错了怎么办?


在启动文件的中断向量表中,将中断函数名称都已经初始化好了,由C语言特点可知,函数的名称对应于函数的地址,但是这些函数的内容都是空的,都是B. (启动文件是汇编程序)表示无限循环,如果自己写了函数,但是写错了,系统就在中断向量表中找不到中断服务函数的入口地址,但是电脑不是人,不会对你写错的函数报错,因为程序有无意义电脑不能识别,它只会自动去系统里执行这个循环空函数,所以自己函数的名称一定与启动文件中的名称相对应。


2-中断服务函数要写在什么地方?


为了编程方便管理,我们可以把程序直接可以写在中,内核的函数已经给了,如果外设中断函数可以自己继续补充。


四、中断小结


STM32F10X中断的方法还是比较清晰的,和单片机类似,多了一个优先级嵌套和分组的功能,另外要注意一些使用库函数编程的细节即可,后续再通过实验例子来测试各类中断的具体使用方法。

关键字:STM32F103  中断  中断内核 引用地址:【STM32F103】中断综述

上一篇:关于由CubeMx生成stm32f4+freertos,不正常分析之堆栈大小设置
下一篇:【STM32F103】RCC-使用HSE/HSI配置时钟

推荐阅读

喇叭作响、手臂挥舞、信号灯闪、眼神交汇,这样的交通奏鸣曲每天都在全世界各个路口上演。 对于堵在通勤中无法移动的人来说,这样的奏鸣曲堪比“黑色星期五”,但在维持交通秩序上,它还是非常有用的。在集中注意力和保持冷静方面,人类确实没有机器强大,但在沟通上,我们才是真正的大师。 虽然无法透析自动驾驶汽车的内心,但在面对满是人类的环境时,...
别看三星再中国市场上不行了, 但是在全球市场上仍有话语权,而且这个话语权还不低。 根据市场研究公司IHS Markit的数据,依销售额计算,今年4月至6月期间,三星在全球电视市场市占率达31.5%, 创下6年来新高。 三星的市占率超越第2名整整将近两倍,力压竞争对手LG电子(LG Electronics)的16.5%,日本索尼(Sony )以8.8%排名第3,中国TCL集团排第4、市...
Slashleaks 网站现已曝光了华为畅享 20 Plus 官方渲染图和这款手机的部分参数。 根据爆料者 ZYAD ATEF 提供的消息,华为畅享 20 Plus 搭载了 6.63 英寸的 FHD+ IPS LCD 屏,采用了天玑 720 处理器,可选 6/8GB 内存和 64/128GB 闪存。华为畅享 20 Plus 后置摄像头采用了圆形的相机模组,搭载了 48MP+8MP+2MP...
广告摘要声明广告Tesla Bot所选择的细分赛道,与目前人形机器人领域主要的玩家所选择的细分领域不一,的确拥有着较大的市场,但同样存在一定的问题,既有人形机器人行业一贯的难题也有特斯拉所选择细分赛道难题。第一,人形机器人不仅仅是需要像人,还要像人一样去思考,这需要融合运动学、仿生学、材料学、计算机科学、控制学等多个学科最前沿的成果,是...

史海拾趣

问答坊 | AI 解惑

基于蓝牙技术的无线数据采集系统设计

摘要:利用蓝牙技术建立一个具有主从网络结构的蓝牙无线数据采集系统。设计采用基于BC219159 蓝牙芯片的蓝牙模块;从设备以AT89C2051为控制器,将采集的工业现场信号处理后送入蓝牙芯片进 行无线发送;主设备选用77E58作为控制器,实现对从设备的自动 ...…

查看全部问答∨

哪位有工作经验的大哥大姐请帮帮忙(可以是任何关于电子或编程开发方面的经验)

       我们老师最近要求写一篇职业生涯规划,由于我选的是关于嵌入式开发方面的,因此必须找一位有工作经验的人来做一个职业访谈。不需要浪费很长时间,问题我已经写好了,只要填完就行了。只要留下邮箱就行,我会把文档给你 ...…

查看全部问答∨

客户端安装sqlce3.0出错!

    我要在客户端(三星ARM6410SDB)上安装sqlce3.0,首先拷贝sqlce30.ppc.wce5.armv4i.CAB,sqlce30.repl.ppc.wce5.armv4i.CAB,sqlce.dev.ENU.ppc.wce5.armv4i.CAB三个文件至开发板的NandFlash,点击安装,出现错误:“没有应用程序与“s ...…

查看全部问答∨

找USB驱动开发和简单硬件开发的硬件人员

各位,我正在做一个项目,需要有经验的您参与: (1)USB驱动开发。 (2)普通电话机硬件。 (3)地点:上海 需要有丰富经验,酬金面谈,您如果需要挣外快,请和我联系:13818802872。 …

查看全部问答∨

小女子跪求IXDPG425平台的软件开发工具包

小女子跪求IXDPG425平台的软件开发工具包,有好心的哥哥姐姐能给我么,我是学生,想学下…

查看全部问答∨

J-LINK仿真器可以在KEIL下用吗?

                                 因为准备用STM32F103CB,想要一个仿真器。想在U-LINK和J-LINK中选一个,芯片商那说J-LINK性能要好一点的。我是要想 ...…

查看全部问答∨

有谁帮我一下 怎么将ucos弄到keil里啊

有谁帮我一下 怎么将ucos弄到keil里啊  一遍遍的失败直接令我灰心啊…

查看全部问答∨

飞思卡尔MCU开发全攻略

作为老牌的MCU 厂商,飞思卡尔的MCU 曾给开发者留下深刻印象,飞思卡尔不但有 自己架构的32 位MCU,也陆续推出了基于ARM 架构的32 位MCU,并取得骄人的业绩, 如率先推出了全球首款cortex-M0+ 内核架构的MCU 以及目前全球最小的ARM MCU(只 有1. ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved