一、中断内核:
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中断的方法还是比较清晰的,和单片机类似,多了一个优先级嵌套和分组的功能,另外要注意一些使用库函数编程的细节即可,后续再通过实验例子来测试各类中断的具体使用方法。
上一篇:关于由CubeMx生成stm32f4+freertos,不正常分析之堆栈大小设置
下一篇:【STM32F103】RCC-使用HSE/HSI配置时钟
推荐阅读
史海拾趣
Alorium Technology是一家总部位于美国俄亥俄州的公司,致力于提供用于嵌入式系统的可编程硬件和软件解决方案。以下是Alorium Technology公司发展的相关故事:
创立和初期发展: Alorium Technology公司成立于2013年,由Jeff Waters博士和John Dey共同创立。公司最初的目标是开发基于FPGA(可编程门阵列)技术的解决方案,用于提高嵌入式系统的性能和灵活性。通过创始团队的技术专长和市场洞察力,公司迅速吸引了投资者的注意,并在成立后不久获得了初步资金支持。
FPGA技术应用: Alorium Technology专注于开发基于FPGA的解决方案,以解决嵌入式系统中的性能和灵活性挑战。他们开发了一系列产品,包括FPGA模块、开发工具和软件库,为客户提供了简化的嵌入式系统设计和开发流程。这些产品广泛应用于工业控制、物联网、机器人技术和自动化系统等领域。
发展合作伙伴关系: 随着业务的不断发展,Alorium Technology开始与其他公司建立合作伙伴关系,以扩大其产品在市场上的影响力。他们与传感器制造商、嵌入式系统开发者和工业自动化公司等合作,共同推动技术创新,并开发定制化的解决方案,以满足不同行业的需求。
不断创新: Alorium Technology不断进行技术创新,推出新的产品和解决方案,以适应不断变化的市场需求。他们持续改进现有产品的性能和功能,并不断探索新的应用领域。公司在FPGA技术的基础上,积极探索人工智能、边缘计算和机器学习等新兴领域,为客户提供更多选择。
社区参与和知识分享: Alorium Technology积极参与嵌入式系统开发社区,并通过各种途径分享知识和经验。他们举办在线研讨会、技术培训课程和技术博客,与客户和合作伙伴分享最新的技术趋势和解决方案案例。同时,公司也积极参与行业展会和活动,与同行业交流经验,拓展业务网络。
以上是Alorium Technology公司发展的相关故事,展示了他们在嵌入式系统领域的创新和成就。
Electron Products Inc(简称EPI)成立于XXXX年,由一群对电子技术充满热情的工程师共同创立。初期,公司主要从事电子产品的设计和研发,致力于为小型企业和消费者提供高质量的电子产品。通过不断创新和优化产品,EPI逐渐在市场上树立了自己的品牌形象。
XXXX年,Exel Microsystems Inc公司意识到了品质管理对于企业发展的重要性。于是,公司开始引进先进的品质管理理念和体系,加强了对产品从研发到生产的全过程控制。通过严格的品质管理,Exel的产品质量得到了显著提升,客户满意度也随之提高。这一举措不仅增强了公司的市场竞争力,也为公司的长期发展奠定了坚实基础。
自1958年成立以来,Chemtronics公司在电子维护和维修领域不断进取。最初,公司专注于生产一系列清洁剂产品,以其高效清洁能力获得了市场的认可。随着时间的推移,Chemtronics逐渐将产品线扩展至超纯溶剂、净化室级别擦拭棒和擦拭布等领域,进而又扩展到电子电气和电信工业的精密返工和维修工具。这一转变不仅体现了公司对市场需求的敏锐洞察,也彰显了其不断创新的精神。
在发展过程中,BusBoard Prototype Systems深知单打独斗难以取得长远的发展。因此,公司积极寻求与上下游企业的合作,共同推动电子行业的发展。通过与芯片制造商、软件开发商等建立紧密的合作伙伴关系,BusBoard不仅能够获得更优质的资源支持,还能够为客户提供更加全面的解决方案。
近年来,随着电子行业技术的不断革新和市场环境的变化,协顺电子也面临着前所未有的挑战。为了应对这些挑战,公司开始进行转型升级。一方面,公司加大研发投入,推动产品创新和技术升级;另一方面,公司也积极探索新的业务领域和市场机会。同时,协顺电子还加强了与供应商和客户的合作关系,共同应对市场变化和挑战。这些努力使得公司在激烈的市场竞争中保持了良好的发展态势。
摘要:利用蓝牙技术建立一个具有主从网络结构的蓝牙无线数据采集系统。设计采用基于BC219159 蓝牙芯片的蓝牙模块;从设备以AT89C2051为控制器,将采集的工业现场信号处理后送入蓝牙芯片进 行无线发送;主设备选用77E58作为控制器,实现对从设备的自动 ...… 查看全部问答∨ |
|
哪位有工作经验的大哥大姐请帮帮忙(可以是任何关于电子或编程开发方面的经验) 我们老师最近要求写一篇职业生涯规划,由于我选的是关于嵌入式开发方面的,因此必须找一位有工作经验的人来做一个职业访谈。不需要浪费很长时间,问题我已经写好了,只要填完就行了。只要留下邮箱就行,我会把文档给你 ...… 查看全部问答∨ |
我要在客户端(三星ARM6410SDB)上安装sqlce3.0,首先拷贝sqlce30.ppc.wce5.armv4i.CAB,sqlce30.repl.ppc.wce5.armv4i.CAB,sqlce.dev.ENU.ppc.wce5.armv4i.CAB三个文件至开发板的NandFlash,点击安装,出现错误:“没有应用程序与“s ...… 查看全部问答∨ |
各位,我正在做一个项目,需要有经验的您参与: (1)USB驱动开发。 (2)普通电话机硬件。 (3)地点:上海 需要有丰富经验,酬金面谈,您如果需要挣外快,请和我联系:13818802872。 … 查看全部问答∨ |
|
因为准备用STM32F103CB,想要一个仿真器。想在U-LINK和J-LINK中选一个,芯片商那说J-LINK性能要好一点的。我是要想 ...… 查看全部问答∨ |
|
作为老牌的MCU 厂商,飞思卡尔的MCU 曾给开发者留下深刻印象,飞思卡尔不但有 自己架构的32 位MCU,也陆续推出了基于ARM 架构的32 位MCU,并取得骄人的业绩, 如率先推出了全球首款cortex-M0+ 内核架构的MCU 以及目前全球最小的ARM MCU(只 有1. ...… 查看全部问答∨ |