历史上的今天
返回首页

历史上的今天

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

2019年01月26日 | STM32->EXTI

2019-01-26 来源:eefocus

    CM3最多240个中断,每个中断有自己的可编程的中断优先级(唯一对应的中断优先级寄存器)。由于CM3支持硬件中断嵌套,所以可以有256级的可编程优先级和256级中断嵌套。


    STM32 目前支持的中断共为 84 个(16个内核+68个外部),16 级可编程中断优先级的设置(仅使用中断优先级设置 8bit 中的高 4 位)和16个抢占优先级(因为抢占优先级最多可以有四位数)。


    __set_FAULTMASK(1);     //关所有中断

    NVIC_SystemReset();     //复位,在core_cm3.h里定义


    上述代码通过__set_FAULTMASK(1)关闭所有中断,避免在执行NVIC_SystemReset()复位函数中被打断。想要保持之前配置好的寄存器不被初始化复位,需要在程序跳转之前先初始化堆栈


      __set_MSP(*(__IO uint32_t*)  0x08000000);    初始化堆栈指针

      ((void (*)(void)) (*(vu32 *)0x08000004)();   程序跳转




STM32/Cortex-M3中是通过改变 CPU的当前优先级来允许或禁止中断。  


PRIMASK位:允许NMI和hard fault异常,其他都被屏蔽(当前CPU优先级=0)。 


FAULTMASK位:允许NMI,其他所有都被屏蔽(当前CPU优先级=-1)。  


在STM32固件库中(stm32f10x_nvic.c和 stm32f10x_nvic.h)定义了四个函数操作PRIMASK位和FAULTMASK位,改变 CPU 的当前优先级,从而达到控制所有中断的目的。 


NVIC_SETPRIMASK();        //关闭总中断 


NVIC_RESETPRIMASK();      //开放总中断 



第二种方法: 


NVIC_SETFAULTMASK();     //关闭总中断 


NVIC_RESETFAULTMASK();   //开放总中断  




#define CLI()     __set_PRIMASK(1) 


#define SEI()     __set_PRIMASK(0)

上一篇:STM32-HAL

下一篇:STM32->RCC

推荐阅读

史海拾趣

Amphenol RF公司的发展小趣事

Amphenol RF 是 Amphenol 公司的一个子公司,专注于设计、制造和销售射频连接器和组件,在电子行业中占据重要地位。以下是关于 Amphenol RF 公司发展的五个相关故事:

  1. 创立与早期发展:Amphenol RF 公司的历史可以追溯到20世纪40年代,当时被称为RF Connector Division。最初,公司主要致力于生产射频连接器和组件,为通信、航空航天、军事和工业市场提供射频连接解决方案。随着射频技术的发展和市场需求的增长,Amphenol RF 逐渐壮大成为射频连接器领域的重要参与者。

  2. 技术创新与产品多样化:Amphenol RF 公司在射频领域持续进行技术创新,并不断推出新型的射频连接器和组件产品。公司致力于提升产品的性能、可靠性和适应性,满足客户对高频射频应用的需求。除了传统的射频连接器,Amphenol RF 还推出了一系列新型产品,如微波连接器、同轴连接器、板对板连接器等,拓展了产品线的多样性。

  3. 客户合作与定制化解决方案:Amphenol RF 公司与客户建立了紧密的合作关系,共同开发定制化的射频连接器和组件解决方案。公司的工程团队与客户密切合作,根据客户的需求和应用场景,设计和制造符合特定要求的产品。这种定制化解决方案能够满足客户个性化的需求,为客户提供更加专业和完善的服务。

  4. 质量控制与认证标准:Amphenol RF 公司高度重视产品质量控制,并严格遵循国际质量管理体系标准。公司的生产工艺和质量管理体系符合ISO 9001质量管理体系认证标准,以确保产品质量的稳定性和可靠性。此外,Amphenol RF 公司的产品还通过了各种行业和应用领域的认证标准,如航空航天领域的MIL-SPEC标准等,确保产品符合行业标准和规定。

  5. 全球市场拓展与合作伙伴关系:除了在美国的生产基地外,Amphenol RF 公司还在全球范围内设有多个销售办事处和代理商网络,拓展了国际市场份额。公司与全球各种行业领先企业建立了长期稳定的合作关系,共同推动产品的创新和市场拓展。通过全球市场拓展和合作伙伴关系,Amphenol RF 公司不断扩大业务规模,增强了在射频连接器领域的市场竞争力。

这些故事展示了 Amphenol RF 公司从成立初期到如今在技术创新、产品多样化、客户合作与定制化解决方案、质量控制与认证标准以及全球市场拓展与合作伙伴关系等方面取得的重要进展。

BILIN公司的发展小趣事

首先,需要指出的是,根据我所掌握的信息,并没有名为“BILIN”的公司在电子行业内有显著的发展记录。因此,我无法为你提供关于BILIN公司的5个发展起来的相关故事。可能是你对公司名称存在误解,或者你所指的公司在电子行业中并不广为人知。

然而,我可以为你描述一个知名的电子公司——如华为——的发展故事,作为参考。如果你对特定的公司或行业有更具体的要求,请提供更多信息,以便我能够为你提供更准确的答案。

华为的发展故事之一:技术创新的崛起

华为,作为中国电子行业的佼佼者,其发展历程充满了技术创新和不懈努力的故事。早在上世纪80年代,华为以交换机代理业务起步,逐步积累了通信行业的经验和知识。随着技术的不断进步,华为开始自主研发交换机产品,逐渐在市场上崭露头角。

进入21世纪,华为加大了对研发的投入,不仅推出了多款具有竞争力的通信设备,还开始涉足智能手机领域。通过持续的技术创新和优质的产品,华为逐渐在全球市场上取得了重要地位。

然而,华为的发展并非一帆风顺。在面对国际市场的竞争和贸易壁垒时,华为始终坚持自主创新,加强与国际合作伙伴的合作,努力拓展海外市场。同时,华为还积极投入研发,推出了5G等前沿技术,为全球通信行业的发展做出了重要贡献。

华为的发展故事,不仅是技术创新的崛起,更是中国电子行业不断壮大和走向世界的缩影。通过持续的创新和努力,华为已经成为了全球电子行业的领军企业之一。

请注意,这只是一个示例故事,并非真实关于BILIN公司的故事。如果你需要关于特定公司的信息,请提供准确的公司名称,以便我能够为你提供更准确的内容。

ConnectBlue公司的发展小趣事

随着无线通信技术的不断演进,ConnectBlue公司意识到,要想在市场中保持领先地位,必须不断进行产品创新和升级。因此,公司加大了研发投入,引进了一批高端人才,积极研发新型无线模块和解决方案。经过多年的努力,公司成功推出了一系列具有创新性的产品,如蓝牙低功耗模块、Wi-Fi模块等,这些产品不仅满足了市场需求,还为公司带来了可观的收益。

Ambersil公司的发展小趣事

随着环保意识的日益增强,Ambersil公司开始关注产品的环保性能。公司研发团队致力于开发环保型的电子清洁剂,减少产品对环境的污染。同时,公司还加强了对生产过程的环保管理,确保生产过程中的废弃物得到有效处理。这些举措使得Ambersil公司的产品在市场上更加受到消费者的青睐。

灿科盟(Ckmtw)公司的发展小趣事

为了提升产品质量,增强客户信任,灿科盟在2008年成功通过了ISO9001:2000版质量管理体系认证。这一认证标志着公司在质量管理方面达到了国际标准,也为公司赢得了更多客户的青睐。此后,公司继续加强质量管理体系建设,不断提升产品质量和服务水平。

Global Communications公司的发展小趣事
温度传感器的输出与温度之间的线性关系可能不理想,导致补偿效果不准确。此时,可以采用非线性补偿技术或选择具有更好线性度的温度传感器来解决问题。

问答坊 | AI 解惑

PROTEL常用元件封装

电阻:RES1,RES2,RES3,RES4;封装属性为axial系列   无极性电容:cap;封装属性为RAD-0.1到rad-0.4   电解电容:electroi;封装属性为rb.2/.4到rb.5/1.0   电位器:pot1,pot2;封装属性为vr-1到vr-5  &nbs ...…

查看全部问答>

新手入门,请大虾指点!

我想在半个时钟周期输出num,用如下语句 always@(posedge clk or posedge clk_re)      num…

查看全部问答>

求教各位大虾 DIY钳形表 小电流信号放大

求教各位大虾 DIY钳形表 小电流信号放大   我现在正在DIY一个钳形电流表 目标参数是测量mA至十安级电流 传感器是买的钳形表表头 前期测试了表头的工作曲线 在温湿度允许范围内 表头的线性度比较好   让我郁闷的是  变比 ...…

查看全部问答>

很好的Android论坛

需要的兄弟可以看一下 http://www.eoeandroid.com/?fromuid=9379 偷偷说一句:我不是来做广告的,呵呵…

查看全部问答>

减了BSP几个驱动编译出错,特来请教。

我在我得2440 的BSP减了 camera,SDHC,wavedev 三个驱动, 采用的是在 dirs 中把 camera,sdhc,wavedev删除,然后对BSP Rebuild, Error: Could not find file \'C:\\WINCE600\\OSDesigns\\OSDesign1\\OSDesign1\\RelDir\\smdk2440a_ARMV4I_Debug\\o ...…

查看全部问答>

菜鸟求助:一份正常的BSP我的电脑编译出来的系统无法正常运行?

OMAP3530 + WinCE6 R3 由于项目开始时是基于一个较早版本的BSP,现在打算更新到TI的最新BSP. 更新才刚刚开始一点,就被卡住了.先把屏的参数拷过来,屏可以正常显示,发现触摸屏没用,然后就拷过来触摸屏的一些参数,发现还是没用. 然后就开始分析了: ...…

查看全部问答>

【求助】退出低功耗

我用的是149,初始化后让其进入低功耗状态,我用一个端口实现外部中断,可不可以在中断执行完成后,让其退出低功耗,并继续往下执行主程序。(因为主程序比较复杂,无发都写到中断程序中执行) 谢谢!…

查看全部问答>

无线充电系统设计原理与实作讲析

引言   无线充电技术经过了数年的推广与演进后,到如今终于开始受到人们的关注。无线充电是指具有电池的装置透过无线感应的方式取得电力而进行充电,正是因为其方便性,才得以让消费者愿意支付额外的费用购买无线充电相关产品;如此一来,大批厂 ...…

查看全部问答>

宏定义怎样才能人为选择呢?

我想这样编程序:有2段程序,分别叫“程序1”、“程序0”。里面均包括多个函数。 我希望在这种情况下,执行程序1,另种情况下执行程序2。 我是这样做的: 一、程序开头写上: uint8_t x; #define cons x 二、程序中有赋值语句: 在按下某键 ...…

查看全部问答>

麻烦管理员请注意:我不参加SensorTag大赛了,别给我寄了

麻烦管理员请注意:我不想参加SensorTag有奖赛了,别给我寄了 不好弄 转玩别的了 别给我寄SensorTag了 ,别浪费。…

查看全部问答>