历史上的今天
返回首页

历史上的今天

今天是:2025年08月15日(星期五)

正在发生

2018年08月15日 | STM32-中断优先级

2018-08-15 来源:eefocus

   中断作为系统资源里面尤为重要的一种系统资源,可以对于硬件的运行发挥着不可或缺的地位。基本每一个硬件都会有相应的中断,只不过是中断类型和中断数量多少的问题。像51单片机的硬件就拥有比较简单中断类型,例如定时器中断、串口接收中断、外部中断等几个简单中断,用起来也是十分简单。 
   对于STM32来说因为它使用的基于M3和M4的内核,就M3内核而言,支持256个中断其中包含了16个内核中断和240个外部中断,而且具有256级的可编程中断设置。但是STM32并没有将这些中断都添加到自身的硬件资源中而是使用了其中的部分中断,一种拥有84个中断,包括了16个内核中断和68个可屏蔽中断,具有16级可编程的中断优先级。103系列只有60个可屏蔽中断。可见下图: 
这里写图片描述 
这里写图片描述 
上图包含了103系列的60个全部中断,但是如何使用呢?这么多的中断如果准确的使用呢?其实使用起来还是相对简单的,首先STM32将所有的中断进行分组,给每个中断添加两个属性,可以称为先占优先级和从优先级。具体区别可以去百度一下。需要记住的是如果需要使用中断在系统开始或者初始化的时候就要将系统的中断分组设置好,而且不宜更改。如果更改可能会出现中断系统的麻烦。先来看一下中断相关的寄存器和函数表: 
这里写图片描述 
这里写图片描述
第一步先初始化中断优先级分组利用NVIC_PriorityGroupConfig() 
具体参数可以参照手册,一共有5种模式分别对应不同的先占优先级和从优先级。 
这里写图片描述

设置好优先级就可以对每个中断进行单独的设置了假设我想对我的串口中断进行设置,使用void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct);就可以了。这样才能在每个中断程序中使能或者打开对应的相应中断的对应中断函数。

#include "stm32f10x.h"

#include "GPIO.h"

#include "USART.h"

#include "SysTick.h"

#include "NVIC.h"


int main()

{   

        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);     //设置中断优先级的分组

        NVIC_init(USART1_IRQn,1,1,ENABLE);                              //设置串口中断的优先级和从优先级并使能

        //在串口初始化函数中使能串口接收中断 并在接收中断函数中填写相应代码

        UART_init(115200,USART_WordLength_8b,USART_StopBits_1,USART_Parity_No,USART_Mode_Tx|USART_Mode_Rx);

        SysTick_init();

        while(1)

        {

            delay_ms(1000);

            delay_ms(1000);

            printf("sss");

            delay_ms(1000);

            delay_ms(1000);

        }


}


推荐阅读

史海拾趣

Hitron公司的发展小趣事

机顶盒,全称为数字视频变换盒,是连接电视机与外部信号源的重要设备,具有高度的专业性和广泛的科普意义。作为信息家电的一员,机顶盒不仅实现了数模转换,让用户能够在模拟电视上观看数字电视节目,还通过接入互联网,极大地丰富了电视节目的选择,提升了观看体验。

从广义上讲,机顶盒涵盖了从模拟频道增补器到现代的数字卫星机顶盒(DVB-S)、数字地面机顶盒(DVB-T)、有线电视数字机顶盒(DVB-C)以及IPTV机顶盒等多种类型。这些机顶盒不仅接收来自有线电缆、卫星天线、宽带网络及地面广播的信号,还提供了电子节目指南、网页浏览等增值服务,使电视机成为了一个能够与用户进行互动的智能终端。

在技术层面,机顶盒的工作原理可概括为接收、解码和显示三个步骤。它首先通过内置的调谐器接收数字电视信号,随后由内部的解码器将信号转换成电视可识别的视频和音频流,最终通过电视机呈现给用户。随着技术的不断进步,机顶盒已能支持高清、甚至4K超高清视频播放,为用户带来更为细腻的画面和震撼的音效。

未来,机顶盒市场将继续保持稳定增长态势,技术创新与智能化将成为重要的发展方向。高清化、超高清化、人工智能及云计算等技术的应用,将使机顶盒不仅限于基本的电视信号接收与解码功能,而是向智能化、多功能化方向迈进,为用户提供更加便捷、智能的生活体验。

Excel-Display Corporation公司的发展小趣事

Excel-Display Corporation(以下简称EDC)成立于XX世纪初,由一群富有远见的电子工程师和企业家共同创立。他们看到了当时显示技术领域的巨大潜力,决定成立一家专注于研发和生产高质量显示器的公司。

EDC在创立初期就注重技术研发和产品质量,投入大量资金引进先进的生产设备和技术人才。经过几年的努力,EDC成功推出了一系列性能稳定、画质优良的显示器产品,逐渐在市场上崭露头角。

与此同时,EDC也积极开拓国际市场,与多家国际知名企业建立了合作关系。这些合作不仅为EDC带来了技术上的支持,也为其产品的国际化推广奠定了坚实的基础。

Blue Giga公司的发展小趣事

随着技术的不断进步,Blue Giga在无线网络连接领域取得了重要突破。其研发的超低功耗Bluetooth Smart和Bluetooth Classic模块,以及Wi-Fi模块,受到了市场的广泛欢迎。同时,公司还推出了配套的软件栈、开发工具和SDK,进一步丰富了产品线,满足了不同领域的需求。

ANADIGICS公司的发展小趣事

2015年,Silicon Labs(芯科科技有限公司)宣布收购Blue Giga。这一收购对于双方来说都是一个重要的里程碑。Silicon Labs通过收购获得了Blue Giga的先进技术和广泛的产品线,进一步增强了其在物联网和无线连接领域的竞争力。而Blue Giga则借助Silicon Labs的全球资源和市场渠道,实现了更快速的发展。

Carlo Gavazzi公司的发展小趣事

1984年,Carlo Gavazzi公司在瑞士成功上市,这是公司发展史上的一个重要里程碑。上市不仅为公司带来了更多的资金支持,也提高了公司的知名度和影响力。此后,公司利用资本市场的力量,进一步加快了业务扩展和技术创新的步伐。

高通(GENITOP)公司的发展小趣事

进入90年代,超霸电池开始拓展内地市场,先后在北京、上海、广州等十多个主要城市设立销售点。与此同时,公司业务也逐步向多元化发展,除了电池生产外,还涉足电缆、汽车配线、扬声器等领域。这一时期,超霸电池推出了可循环再用的镍氢充电电池和充电器,满足了市场对环保、高效电池产品的需求,进一步巩固了其在电池行业的领先地位。

问答坊 | AI 解惑

FPGA设计验证关键要点

FPGA设计验证关键要点…

查看全部问答>

FPGA应用举例.pdf

本帖最后由 paulhyde 于 2014-9-15 03:44 编辑 FPGA应用举例.pdf    …

查看全部问答>

问一个wince5.0 用以太网实现kitl 的问题

以太网kitl通信通道的实现,用到虚拟的网络设备,我想问一下 kitl所用的虚拟的网络设备是由vbridge实现的,还是 由vbridge和vmini共同实现的,或者说vmini在kitl的实现过程中用到了吗? vmini都做些什么? 请高手指点!…

查看全部问答>

十万火急!请教USB端口写数据~

各位前辈大侠,     我现在用一个USB接口的打印机,连接在Wince的PDA上,想直接发送打印数据到打印机。我在网上找了好几天资料都说要找到打印机设备的路径或者是名称,用CreateFile创建句柄,但是我不知道怎么找到该设备。无法用CreateF ...…

查看全部问答>

脉冲宽度的测量的怪问题?

目的是测量连续的脉冲宽度 源码见附件 typedef struct times {   uchar second;       //秒级     uint m_second;     //毫秒级     uchar mm_second_1;  / ...…

查看全部问答>

高质量C++编程指南

高质量C++编程指南…

查看全部问答>

高手帮帮忙

请问,我用的是MSP430F449单片机,其中很多模块都用不到,也有很多引脚用不上,这些多余的引脚怎么处理呢?肯定不能直接悬空吧?哪位大侠给指点一下呢,谢谢…

查看全部问答>

上、下拉电阻

为什么动不动就要上拉或下拉一个电阻?究竟有什么好处?更重要的是为什么会 有这样的好处?谢谢…

查看全部问答>

高手请指教,关于中断向量表的问题

请问用LF2407外部RAM调试程序时,中断向量表一定要先烧写到FLASH中吗? 现在用外扩的SRAM做程序调试仿真,把中断向量表也分配到了外部SRAM中,结果进不了中断;需要先把中断向量表先烧写到FLASH中吗?还需要加什么跳转指令吗? 更重要的是为 ...…

查看全部问答>