历史上的今天

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

正在发生

2021年10月12日 | STM32之中断函数介绍篇

发布者:CelestialSoul 来源: eefocus关键字:STM32  中断函数  中断请求 手机看文章 扫描二维码
随时随地手机看文章

NVIC驱动有很多的用途,如使能或者失能IRQ(中断请求),或者是使能或失能单独的IRQ通道,或者是改变其优先级。以下介绍相关函数的功能和基本用法。


1.NVIC_DeInit函数的功能是将外设NVIC寄存器重设为默认值。


2.NVIC)PriorityGroupConfig函数的功能是设置优先级分组:先占优先级和从优先级,且有一个输入参数是优先级分组的长度


例:定义先占优先级1,从优先级3.


NVIC_PriorityGroupConfig(NVICPriorityGroup_1);


3.NVIC_Init函数的功能是根据NVIC_InitStruct里面指定的参数初始化外设NVIC寄存器,其中NVIC_InitTypeDef structure定义结构体的代码如下:


typedef struct


{

u8 NVIC_IRQChannel;


u8 NVIC_IRQChannelPreemptionPriority;


u8 NVIC_IRQChannelSubPriority;


FunctionalState NVIC_IRQChannelCmd;


}NVIC_InitTypeDef;


NVIC_IRQChannel参数是用于使能或者失能指定的IRQ通道,其中IRQ通道有很多,可以自己查询相关的手册。


NVIC_IRQChannelPreemptionPriority参数设置了成员NVIC_IRQChannel中的先占优先级。


IRQChannelSubPriority参数设置了成员NVIC_IRQChannel中的从优先级。


当选定NVIC_PriorityGroup_0,参数NVIC_IRQChannelPreemptionPriority对中断通道的设置不产生影响;


当选定NVIC_PriorityGroup_4,参数IRQChannelSubPriority对中断通道的设置不产生影响。


NVIC_IRQChannelCmd参数指定了在成员NVIC_IRQChannel中定义的IRQ通道被使能或者失能,参数可取ENABLE 和 DISABLE。


例:定义优先级


NVIC_InittypeDef NVIC_InitStructure;


NVIC_PriorityGroupConfig(NVICPriorityGroup_1);//先占优先级用1 ,从优先级用3


//定义TIM3中断的优先级,先占优先级为0,从优先级为2


NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQChannel;


NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;


NVIC_InitStructure.NVIC_IRQSubPriority = 2;


NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;


NVIC_InitStructure(&NVIC_InitStructure);


//定义USART1串口中断的优先级,先占优先级1,从优先级5.



NVIC_InitStructure.NVIC_IRQChannel = SUART1_IRQChannel;


NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;


NVIC_InitStructure.NVIC_IRQSubPriority = 5;


NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;


NVIC_InitStructure(&NVIC_InitStructure);


//定义RTC中断优先级为1,从优先级为7;

NVIC_InitStructure.NVIC_IRQChannel = RTC_IRQChannel;


NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;


NVIC_InitStructure.NVIC_IRQSubPriority = 7;


// NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;


NVIC_InitStructure(&NVIC_InitStructure); 


4.NVIC_SetVectorTable函数的功能是设置向量表的位置和偏移。其中输入参数中,对于32位的OFFSET向量表基地址的偏移量对于FLASH,参数值必须高于0x08000100,对于RAM必须高于0X100.


例:对FLASH指定向量表基地址偏移量。


NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x00);

关键字:STM32  中断函数  中断请求 引用地址:STM32之中断函数介绍篇

上一篇:ST 扩大STM32生态系统加快基于STM32U5 极低功耗微控制器的开发
下一篇:STM32中断函数名

推荐阅读

ramblock.c驱动源码:#include "linux/module.h"#include "linux/errno.h"#include "linux/interrupt.h"#include "linux/mm.h"#include "linux/fs.h"#include "linux/kernel.h"#include "linux/timer.h"#include "linux/genhd.h"#include "linux/hdreg.h"#include "linux/ioport.h"#include "linux/init.h"#include "linux/wait.h"#include "...
电磁流量计在各行业上的应用主要有三种:*、大口径仪表较多应用于给排水工程;第二、中小口径常用于固液双相等难测流体或高要求场所;如测量造纸工业纸浆液和黑液、有色冶金业的矿浆、选煤厂的煤浆、化学工业的强腐蚀液以及钢铁工业高炉风口冷却水控制和监漏,长距离管道煤的水力输送的流量测量和控制。第三、小口径、微小口径;常用于医药工业、食品工业...
探头是我们观测波形的第一步,它是连接被测设备与示波器输入端的电子部件,工程师每天都会使用它捕获波形,进行测试分析。但是你了解探头的那些重要参数吗? 01带宽 在我们选择探头时,首先要看的参数就是带宽,探头和示波器的带宽定义是一样的。如图1所示,带宽所指的频率是正弦波信号衰减到-3dB(即高频处增益下降到0...
要想获得示波器的最佳性能, prbtek提醒您根据应用使用正确的探头 ;选择最佳的探头,可确保您轻松访问信号并获得可靠的测量结果。无源探头当您需要进行高压测量时,您可选择使用非常坚固、经济的探头。有源探头这些单端或差分探头可通过较低的信号负载处理较高的带宽。单端有源探头具有低探头负载,通常适用于接地参考和高速信号测量。借助低负载,单端...

史海拾趣

问答坊 | AI 解惑

PoC:3G移动增值业务的亮点

      PTT又称为“一键通”,其特点是呼叫建立时间短,说话时才占用信道,接听时只监听信道,接收方不需要摘机即可随时接听下行的呼叫信息。基于公众蜂窝移动通信网络的PTT业务称为PoC业务。未来成熟的PoC业务是基于 ...…

查看全部问答∨

AD6常用元件库

这是一个跟随了我多年的库文件。近千个元件吧,特别是PBC库更多,可以让同行的人少画很多元件,自然是我自建的,就是标准库中没有的,也是我们常见的。比如各种排插,排阻,脚座,电位器,4~32位单片机。 [ 本帖最后由 jinpost 于 2008-6-25 12:02 编 ...…

查看全部问答∨

中东安防展/中东安防展/法兰克福安防展/法兰克福消防展/2009中东安防展/中东安防展

2009法兰克福(中东)商业安防及消防器材展 (Intersec 2009) 【展会时间】   2009年01月18 - 20日    【展会地点】   迪拜国际展览中心 【参展范围】 ◆ 商业安全类:防护系统、报警装置、CCTV 安防监控录像 ...…

查看全部问答∨

请问2442用什么工具烧写内部的NANDFLAH?

请问我应该用什么工具将bootloader烧写到Nand Flash里? S3C2442B内部集成了芯片"K5D1G13ACA-D075",该芯片是:“Multi-Chip Package MEMORY,1G Bit (128Mx8) Nand Flash / 512M Bit (4Mx32x4Banks) Mobile SDRAM”, 目前我手头有:sjf2440 ...…

查看全部问答∨

WINCE 拷贝文件时产生CHK文件,为什么?

wince5.0 我通过activesync拷贝文件或图片到我的硬件设备中flash里的时候,拷贝完毕后,只要断电重启,在flash目录下,产生了很多FILE0001.CHK,FILE0002,FIEL0003..........,这样很多的垃圾文件。 异常断电产生的备份文件? 什么原因,怎么解 ...…

查看全部问答∨

2440能否布四层板啊?

各位朋友,2440能否布四层板啊?谢谢!…

查看全部问答∨

stm32 PKstm8

STM8没有出路吗?我看到大家谈论的都是STM32的东西…

查看全部问答∨

烧写成功,启动未成功

   串口打印的消息如上图 就这样将就烧进去了,但启动的时候出现了好多TWID TIMEOUT的消息 有哪位大侠见过这种现象,求解决!谢谢。…

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

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

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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