历史上的今天
返回首页

历史上的今天

今天是:2025年01月13日(星期一)

正在发生

2020年01月13日 | STM32-嵌入式学习笔记02-中断应用概述

2020-01-13 来源:eefocus

STM32中断非常强大,每个外设都能产生中断


中断的优先级数值越小,说明他的中断优先级越高


配置中断需要了解NVIC寄存器:


NVIC是嵌套向量中断控制寄存器,控制中断的相关功能;它与内核紧密结合,是内核里的一个外设。管理着包括内核和片上的所有外设的中断相关功能。


因此配置中断需要参考下面两个头文件:core_cm3.h 和  misc.h


在配置中断的时候我们一般只配置ISER和ICER IP这3个寄存器:


1)ISER使能中断


2)ICER清除中断


3)设置中断的优先级


给出官方手册寄存器的资料

 

编程要领:


1)使能中断请求(外设中某个中断)


2)配置优先级分组


3)配置NVIC寄存器  初始化NVIC结构体


4)编写中断函数


static void EXTI_NVIC_Config(void)

{

NVIC_InitTypeDef NVIC_InitStructure;

//配置NVIC为优先组1

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);

//配置中断源:按键1

NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn ;

//配置抢占优先级:1

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;

//配置子优先级:1

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1 ;

//使能中断通道

NVIC_InitStructure.NVIC_IRQChannelCmd  = ENABLE ;

 

NVIC_Init(&NVIC_InitStructure);

}

推荐阅读

史海拾趣

Arcolectric公司的发展小趣事

随着技术的不断进步和市场需求的日益多样化,Arcolectric开始积极拓展其产品线,并逐渐将产品应用于电脑、电源设备及家用电器等多个领域。公司通过不断创新和研发,成功推出了一系列符合市场需求的新产品,进一步扩大了市场份额。

Gowanda Electronics公司的发展小趣事

Arcolectric深知合作伙伴的重要性,因此一直致力于与全球各地的优质企业建立紧密的合作关系。通过与这些合作伙伴的深入合作,Arcolectric不仅获得了更多的市场机会和资源支持,还不断吸收和借鉴先进的经验和技术,推动公司的持续发展和创新。

鸿展光电(GPO)公司的发展小趣事

Arcolectric公司成立于1932年,作为Elektron PLC Group的一个著名品牌,它从一开始就专注于开关、指示灯及保险丝座的生产。在创立初期,Arcolectric就展现出了对技术的深厚积累和独特见解,成功研发出了一系列高质量、高性能的产品,为公司的长远发展奠定了坚实的基础。

DBM REFLEX公司的发展小趣事

随着公司实力的不断增强,DBM REFLEX开始积极拓展全球市场。通过与全球知名企业的合作,公司成功将产品推向了世界各地。同时,DBM REFLEX还积极寻求与产业链上下游企业的合作,建立了稳定的供应链和销售渠道。这些合作伙伴的加入,不仅为公司提供了更多的市场机会,还进一步提升了公司的品牌影响力。

Dialog公司的发展小趣事

到了1981年,Dialog公司从洛克希德导弹航空公司中独立出来,成为了一个子公司,并开始独立经营。在独立发展的初期,Dialog公司继续专注于通信技术的研发,并逐渐将业务范围拓展到了个人便携式应用、低功耗短程无线应用以及LED固态照明、显示和汽车应用等领域。

富士康(FOXCONN)公司的发展小趣事

FMS深知合作的重要性,积极与行业内外的优秀企业建立长期合作关系。公司现已与伟创力、TCL、比亚迪、OPPO、京东方等多家知名企业建立了良好的合作关系,共同推动电子行业的发展。这些合作不仅为FMS带来了稳定的订单来源,也促进了双方在技术、市场等方面的深入交流与合作。

问答坊 | AI 解惑

请教AD采样的系统设计

原先的产品是通过51单片机 AD 后通过串口发送到上位机,上位机显示采样结果。 现在的打算用ARM来处理,移植CE5到FLASH中。 设计时,位机用EVC或者VS2005开发这个没问题; 但是: 1、下位机如果用ADS开发,ADS的输出是运行在目标机裸机上的,CE ...…

查看全部问答>

如何在单片机里存储一个数据,在掉电后还可以读取呀

如何在单片机里存储一个数据,在掉电以后我再开始运行程序,我能够把那个数据在从单片机里读出来呀,用于本次程序的执行呀! 非常感谢! 不外加芯片…

查看全部问答>

usb传输速率

wince 设备支持全速模式,但不支持高速模式,能和USB2.0兼容,但是,当设备连接上pc,进入存储(即设备当作u盘)时 设备的usb驱动设置为全速模式,但是实际COPY 文件的时候速度只有0.5Byte左右,按道理理论有12/8=1.5Byte,请问怎 样能提高呢。 ...…

查看全部问答>

求教wince5.0的USB Function驱动问题!

    请问wince5.0的usb function controller驱动是怎么被加载的?在Ufnmdd.cpp中的UFN_Init等接口函数怎么被调用执行?在source文件中利用Ufnmdd.cpp只生成了个usbmddbase.lib库而没有生成DLL,在最终的image中也没有打包进去,那怎么样才 ...…

查看全部问答>

VS 2005向开发板部署空的工程,出现超大DLL问题

VS 2005新建一个C#智能设备工程。 我自己没有向里面添加代码。 然后调试编译部署到我的开发板。 选择的是我开发板sdk部署。 然后开始部署。奇怪,总是提示磁盘空间不足:错误 0x80070070: 磁盘空间不足 后来在wince开发板下,设置内存,还是不 ...…

查看全部问答>

招聘嵌入式驱动开发工程师

职位信息 ·   工作性质:全职 ·   工作地点:武汉 ·   发布日期:2010/1/4 ·   截止日期:2010/3/1 ·   招聘人数:3 ·   薪  水: ·   工作经验:1-2 ...…

查看全部问答>

WINCE下载到目标板出现问题

很奇怪,当我把系统定制的比较小的时候,下载没有任何问题,当我的系统大概大于30M的时后,当我修改了config.bib的MEMORY中的ARM,ARMIMG的起始 地址以便可以容纳镜像大小,编译可以通过,可是通过网线下载快要结束的时候PB弹出报错对话框:Downloa ...…

查看全部问答>

TL431做基准源的问题

请问图中两个电路,对输出而言有什么区别呢?我现在需要的是10V的基准源。 图中的做法是用:3K电阻和1K电阻的比值+1=4,然后4×2.5V=10V 但是5V输入和15V输入难道就没区别了?不太明白...恳请赐教~~…

查看全部问答>

编程添加标准33600bps调制解调器的问题

我的机器是winXP,用USB口虚拟了一个串口,连接了一个modem 正常情况下要在控制面板->电话和调制解调器 中添加一个标准33600bps调制解调器才能正常通信 现在我想自己写程序完成这个安装过程(不调用电话和调制解调器窗口) inf文件用的是C:\\WINDO ...…

查看全部问答>

请教,arm的

来自 电子工程师技术交流(12425841)[<Rn>, +/-<Rm>][<Rn>, +/-<Rm>]![<Rn>], +/-<Rm>三种寻址方式有什么区别,看介绍都差不多…

查看全部问答>