历史上的今天
返回首页

历史上的今天

今天是:2024年12月14日(星期六)

2018年12月14日 | KST-STM32学习之中断优先级与中断嵌套

2018-12-14 来源:eefocus

1、NIVC


ARM Cortex-M3 内核搭载了一个强大而方便的中断系统,称之为 NVIC(嵌套向量中断控制器)。


Cortex-M3 支持 256 个“中断通道”(16 个异常+240 个中断)以及对应的可编程 256 级中断优先级设置。


STM32 虽然采用 Cortex-M3 内核,但是只使用了其中的 84 个“中断通道”(16 个异常+68 个中断)以及 16 级中断优先级设置。


同时也记录下自己当时的一个插曲。


这里写图片描述

 

这个TIM6_IRQn在《STM32固件库手册》中查NVIC_IRQChannel的取值是没有的,然后咨询下老师,如下回复


这里写图片描述


再拐回头看下教程,着实一不一样


这里写图片描述


看来要不看最新的手册,要不就是直接参考头文件才行!


2、优先级及中断嵌套


优先级分为抢占优先级和响应优先级。


51所设置的优先级均属于抢占优先级,默认的便是响应优先级!


高抢占优先级可以嵌套低抢占优先级的中断。


两者抢占优先级相同,那么无论响应优先级是什么关系,这两者都没有嵌套关系。


假如两者同时发生,且抢占优先级相同,则根据响应优先级顺序执行;加入此时他们的相应优先级也相同,则根据中断清单表排位顺序执行,序号越小,对应优先级越高!


编程时需要注意:


首先要预先对程序的各个功能模块进行计算论证,开机初始化时一次性设置好优先级分组,以后就再也不动他了,避免同一个程序中使用多个优先级分组。


默认情况下,如何不设置中断优先级分组,则使用系统默认的优先级,即按照中断源清单的顺序执行。(没有抢占的概念,两者同时到来,谁的号小谁先执行!)。


具体的中断源清单可参考《STM32中文参考手册》9.1.2。


小结


①、系统运行开始的时候设置中断分组。


确定组号,也就是确定抢占优先级和子优先级的分配位数。调用函数为 NVIC_PriorityGroupConfig();


②. 设置所用到的中断的中断优先级别。


对每个中断调用函数为 NVIC_Init();


推荐阅读

史海拾趣

Capital Advanced Technologies公司的发展小趣事

随着产品技术的不断升级和完善,CAT开始积极寻求市场拓展的机会。公司不仅在国内市场取得了显著的成绩,还逐步打开了国际市场的大门。CAT的产品远销海外,赢得了全球客户的信赖和好评。同时,公司还注重品牌塑造,通过参加国际电子展会、举办技术研讨会等方式,不断提升品牌知名度和影响力。

Astro Industries Inc公司的发展小趣事

随着国内市场的饱和,Astro Industries Inc开始将目光投向海外市场。公司制定了详细的国际化战略,通过参加国际展览、建立海外销售网络等方式,积极开拓国际市场。同时,公司还针对不同国家和地区的市场需求,推出了定制化的产品,满足了不同客户的特殊需求。这些举措使得Astro Industries Inc在国际市场上也取得了不俗的成绩。

General Electronic Devices公司的发展小趣事
负责产生控制信号,驱动开关元件按一定频率和占空比工作。
ACI [Applied Concepts, Inc.]公司的发展小趣事

随着全球电子市场的不断扩大,ACI公司开始将目光投向海外市场。公司积极实施国际化战略,通过设立海外分支机构、参加国际展会等方式拓展市场。同时,ACI还加强了与国际同行的交流与合作,共同推动电子行业的发展。通过国际化布局,ACI成功打开了海外市场的大门,为公司的发展注入了新的动力。

Cypress Industries公司的发展小趣事

Cypress在半导体制造领域一直处于技术革新的前沿。公司不断引入新的工艺技术,从早期的0.8微米CMOS技术到后来的0.21微米工艺,不断推动产品性能的提升。这种对技术的持续投入和追求,使Cypress在行业内树立了良好的技术形象,并赢得了客户的广泛认可。

Beck IPC GmbH公司的发展小趣事

为了进一步增强公司的竞争力,Beck IPC积极寻求与其他优秀企业的收购与合作机会。在某一时期,公司成功收购了一家在边缘网关系列产品领域具有领先地位的企业。通过这次收购,Beck IPC不仅获得了更多先进的技术和产品,还进一步巩固了其在工业物联网领域的地位。此外,公司还与多家知名企业建立了战略合作关系,共同推动行业发展。

问答坊 | AI 解惑

汽车导航系统的DC/DC转换器选择指南

汽车环境的宽工作电压要求、大瞬变电压以及大温度漂移等因素共同作用下,电子系统面临着严酷的条件,本文介绍如何在性能要求变得愈加苛刻的条件下,设计多个电源电压以满足汽车电子系统不同部分的要求。        ...…

查看全部问答>

编译问题解决

Can\'t insert Symbol into Block Design File filename because the Symbol represents the current Block Design File…

查看全部问答>

贴片电阻电容功率与尺寸对应表

贴片电阻电容功率与尺寸对应表 电阻封装尺寸与功率关系,通常来说: 0201 1/20W 0402 1/16W 0603 1/10W 0805 1/8W 1206 1/4W 电容电阻外形尺寸与封装的对应关系是: 0402=1.0x0.5 0603=1.6x0.8 0805=2.0x1.2 1206=3.2x1.6 1210=3.2x2.5 1 ...…

查看全部问答>

大功率开关电源中功率MOSFET的驱动技术

功率MOSFET具有导通电阻低、负载电流大的优点,因而非常适合用作开关电源(switch-mode power supplies,SMPS)的整流组件,不过,在选用MOSFET时有一些注意事项。    功率MOSFET和双极型晶体管不同,它的栅极电容比较大,在导通之前要 ...…

查看全部问答>

wi-fi的设置问题

我开发板上有一个wi-fi模块,经常在不同的无线局域网中使用,每次都需要手工设置,有没有办法用代码来完成无线网络的设置呢(无线网络没加密,或固定的一个密码)?…

查看全部问答>

单片机延时问题

小弟初学单片机,现在碰到一个现象,  当我加入延时程序后(控制控制LED亮灭),  单片机各管脚都变得很迟钝,貌似受延时程序影响,  我将延时程序删除,又恢复正常,  估计程序设计上不合理    ...…

查看全部问答>

关与ADuC7026和7028的问题

先前用keil编了一小段7026的C语言代码,想问下各位高手,如果要把此代码移植到7028下,需要作哪些调整???…

查看全部问答>

有偿寻找wince高手

目前手头有个项目使用omap3530做了一个显示器,采用wince系统,使用的是广州英码的核心板,本来厂家给定制内核但是不知为什么系统总是不稳定,现在想找一个熟悉wince的高手(要求人在北京)帮忙搞清楚什么原因,或者重新裁剪一下bsp,系统功能很简 ...…

查看全部问答>

atmega16单片机 自身AD问题

近期用atmega16 自身的ad测试陀螺仪,在测试的时候发现,当把ADC0接地时  LCD1602显示AD转换后的值为0096,接VCC=AVCC时  显示0993 这不对啊  应该是0和1023啊,这是程序 DDRA&=0xfe; PORTA&=0xfe; SF ...…

查看全部问答>

求助

有这么一个结构体static union{    struct    {        BYTE    bBroadcastSwitchToggled    : 1; & ...…

查看全部问答>