历史上的今天
返回首页

历史上的今天

今天是:2024年09月05日(星期四)

正在发生

2019年09月05日 | STM32外部中断笔记(一)

2019-09-05 来源:eefocus

关于外部中断


前言:


1:Cortex-M3允许具有较少中断源时使用较少的寄存器位指定中断源的优先级,因此,STM32吧指定中断优先级的寄存器为减少到4位,即AIRCR的高四位,于是对四位进行分组:


  组别                   分配情况

  第0组        0:4  无抢先式优先级,16 个子优先级 

  第1组        1:3  2 个抢先式优先级,8 个子优先级 

  第2组        2:2  4 个抢先式优先级,4 个子优先级 

  第3组        3:1  8 个抢先式优先级,2 个子优先级 

  第4组        4:0  16 个抢先式优先级,无子优先级 


使用函数:NVIC_PriorityGroupConfig(NVIC_PriorityGroup_n);  (n=0,1,2,3,4) 即可完成中断分组,那我们该如何使用分组呢?


例如: 现在选择分组3,也就是说此时芯片可以同时处理8个抢占优先级,2个子优先级,即   NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority =(0,1,2,3,4,5,6,7根据需要任选一个) ;


NVIC_InitStructure.NVIC_IRQChannelSubPriority =0,1(选0或1);


注意:

1:只有抢占优先级可以嵌套,响应优先级不可以嵌套。嵌套的意思为打断,0级抢占优先级可以打断1,2,3,4等抢占优先级;


 2:抢占优先级不同时,高优先级的程序首先执行,当抢占优先级相同时,中断按照先来后到执行,若有两个中断同时到来,则按照响应优先级的高低执行,注意,前提是中断同时到来,若响应优先级也相同,则根据对应中断在中断向量表中的排位先后执行。


外部中断配置步骤:


1:开启时钟,配置相应的端口(包括中断源的引脚);GPIO_Init();


2:选取中断源:


例:GPIO_EXTILineConfig(GPIO_PortSourceGPIOE, GPIO_PinSource4); 


3:配置EXTI寄存器:


typedef struct

{

   uint32_t EXTI_Line;             

        EXTIMode_TypeDef EXTI_Mode;     

        EXTITrigger_TypeDef EXTI_Trigger; 

        FunctionalState EXTI_LineCmd;    

 }     EXTI_InitTypeDef;


4:选取中断分组:(整个过程中只能配置一次)


例:NVIC_PriorityGroupConfig(NVIC_PriorityGroup_3);        


 5:配置NVIC:


typedef struct

{

      uint8_t NVIC_IRQChannel;                   

      uint8_t NVIC_IRQChannelPreemptionPriority;  

      uint8_t NVIC_IRQChannelSubPriority;         

     FunctionalState NVIC_IRQChannelCmd;        

} NVIC_InitTypeDef;   


(以上纯属个人陋见,如有不恰之处,请指点,谢谢!)


推荐阅读

史海拾趣

Firadec公司的发展小趣事

背景:随着电子行业竞争的日益激烈,成本控制成为了企业生存发展的关键。Firadec公司意识到优化供应链的重要性。

发展:公司开始与上游供应商建立长期稳定的合作关系,通过集中采购、共享库存等方式降低采购成本。同时,Firadec还加强了对生产过程的精细化管理,提高了生产效率和产品质量。

影响:供应链的优化和成本的有效控制,使Firadec公司在激烈的市场竞争中保持了较强的盈利能力。这也为公司后续的研发和市场拓展提供了有力的支持。

Hirosugi-Keiki公司的发展小趣事

背景:近年来,数字化转型和智能化升级成为了电子行业的发展趋势。Firadec公司紧跟时代步伐,积极推进数字化转型和智能化升级。

发展:公司引入了先进的智能制造系统和大数据分析工具,实现了生产过程的智能化和精细化管理。同时,Firadec还加强了与互联网企业的合作,共同探索智能家居、物联网等新兴市场。

影响:数字化转型和智能化升级的成功实施,使Firadec公司在保持传统业务优势的同时,也成功开拓了新的业务领域。公司的市场竞争力因此得到了进一步提升。

请注意,以上五个故事均是基于电子行业普遍发展规律和虚构的Firadec公司背景所构想的。在实际的电子行业中,不同公司的发展路径和故事可能因公司战略、市场环境等因素而有所不同。

General Cable公司的发展小趣事
根据应用需求,将YN5103的数据和控制引脚连接到相应的输入或输出设备。例如,数据引脚可能连接到微控制器或其他数据源,控制引脚可能用于接收外部控制信号。
广州奥松公司的发展小趣事

随着公司的不断发展,奥松电子陆续获得了多项荣誉资质,如“国家专精特新‘小巨人’企业”、“国家高新技术企业”等。这些荣誉的获得,不仅证明了公司在电子行业中的实力与地位,也为公司的品牌建设提供了有力的支撑。同时,这些荣誉也为公司的市场拓展和业务发展提供了更多的机遇和可能。

Coleman Cable Inc公司的发展小趣事

面对全球市场的不断变化和竞争态势的加剧,Coleman Cable制定了全球化的发展战略。公司加强了对国际市场的调研和分析,根据不同地区的市场需求和特点,制定针对性的市场策略和产品方案。同时,公司还积极拓展国际销售渠道,加强与国际客户的沟通和合作,为公司的长远发展奠定了坚实的基础。

以上五个故事仅代表可能的发展情况,并不代表Coleman Cable Inc公司真实的历史。如果需要更具体和准确的信息,建议直接查阅该公司的官方网站、年报或相关新闻报道。

Edcon Components Netherlands Cv公司的发展小趣事

随着全球环保意识的提高,Edcon Components Netherlands Cv积极响应绿色生产的号召。公司采用环保材料和工艺进行生产,减少废弃物排放和能源消耗。同时,公司还加强了员工的环保意识培训,鼓励员工积极参与环保活动。这些举措不仅有助于提升企业的社会责任感,也为公司的可持续发展奠定了坚实基础。

问答坊 | AI 解惑

问一下关于放大器的偏置电路

file:///C:/Documents%20and%20Settings/Administrator.4797A7AA28774FE/桌面/未命名.bmp请问这个电路中电感RFC和电容Cbypass值应如何计算,假如放大器的输出频率为5000MHz…

查看全部问答>

[求助]多点温度检测系统

如谁有这方面的材料的   请发给我一下可以么?不一定符合下面的要就的,关于多点温度检测系统的都可以发给me,设计一个多点温度检测系统,系统结构框图如下  : 温度测点1→   →  检测器单元1    ...…

查看全部问答>

如何修改VXWORKS的启动标题

VXWORKS启动时超级终端会打印以下信息: Copyright 1984-1998  Wind River Systems, Inc.             CPU: Motorola ADS - PowerPC 860         VxWorks: 5.4 ...…

查看全部问答>

make问题,如何解决? 困扰很久了,感谢指点

    在嵌入式系统上做Qt串口显示程序 ,make后出现的问题,查了一些资料,有的说是pro里面的HEADERS忘记加就会出现这个问题(具体加什么没说);有的说是出现“undefined reference”表示你缺少*.h        困扰很 ...…

查看全部问答>

vxWorks寄存器读写问题

我现在写不了某些寄存器(就I2C寄存器写不进去,其他都可以) 有遇见这种问题的么? 我是关了MMU的啊~ 情况如下: 我在shell中输入 查看内存0x55000000位置的寄存器。 d 0x55000000 55000000:  0100 0000 0000 0000 0000 0000 00 ...…

查看全部问答>

求购 S3C4510B 的开发板 (二手也可以)

求购 S3C4510B 的开发板 最近找了份4510b的资料,看着不错可惜没有板子练。真是郁闷啊!不知道哪为高手还有收藏! 有的话留个言! 电话:13141280460 qq:406672875…

查看全部问答>

额定电流估算口诀

已知电机功率,如何估算电机的额定电流? 三相二百二电机,千瓦三点五安培。 三相三百八电机,一个千瓦两安培。 三相六百六电机,千瓦一点二安培。 三相三千伏电机,四个千瓦一安培。 三相六千伏电机,八个千瓦一安培。 3KW以下,1个KW,2.5个流…

查看全部问答>

2812的eCAN模块问题

在自测试模式下,想实现从邮箱1发数据给邮箱3,但是运行程序发现TRS寄存器不能置位,信息发不出去,不知道怎么回事。 有没有人遇到过类似情况呢? 程序如下 void InitECan(void) { struct ECAN_REGS ECanaShadow; EALLOW; / ...…

查看全部问答>

[求教]TMS320C5416串口疑问,被卡住很久了!

学习C5416已经很久了,但是进度非常的慢,一个人盲打莽撞。 最近又碰上了个卡了很久的问题:     想用一个串口实现同时输入输出,因为C5416是全双工的。我用5416与TLV2541和TLV5636相接实现信号的输入与输出。     5416一个 ...…

查看全部问答>

The embedded system of the analog design

好书适合数字工程师了解的模拟知识   本书为那些希望掌握基本模拟知识的数字工程师而写,内容包括A/D转换器、D/A转换器、运放、滤波器以及模拟和数字系统集成设计。  本书特别适合那些从事信息家电、工业控制和机电控制系统等模拟/数字 ...…

查看全部问答>