NVIC设置

NVIC设置NVIC终端优先级分组(NestVectorInterruptControl嵌套式向量中断控制器)CM4内核支持256个中断,其中包含了16个内核中断和240个外部中断,并且具有256级的可编程中断设置。STM32F4只是使用了其中的一部分。STM32F40xx/STM32F41xx的92个中断里面,包括10个内核中断,82个可屏蔽中断(常用)“`分组寄存器SCB->…

大家好,又见面了,我是你们的朋友全栈君。

NVIC终端优先级分组(Nest Vector Interrupt Control 嵌套式向量中断控制器)

CM4内核支持256个中断,其中包含了16个内核中断和240个外部中断,并且具有256级的可编程中断设置。STM32F4只是使用了其中的一部分。

STM32F40xx/STM32F41xx的92个中断里面,包括10个内核中断,82个可屏蔽中断(常用)

“`
分组寄存器SCB->AIRCR [10:8]    ,  IP bit[7:4]分配情况
AIRCR————–应用程序中断控制寄存器
“`

一般情况下,代码在执行过程中,只设置一次中断优先级分组,比如分组2,设置好之后一般不会再改变分组,随意改变分组会导致中断混乱,程序出现意想不到的事情

中断优先级分组函数

“`
                                         void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup);

单个中断的抢占优先级和响应优先级的设置  

中断优先级控制寄存器组:IP[240]    (Interrupt Priority Registers)

240个8位寄存器,每个中断只能使用一个寄存器来确定优先级。

STM32F40x系列一共82个可屏蔽中断,使用IP[81]-IP[0]

NVIC_Init();设置每个中断的抢占优先级和响应优先级

中断使能寄存器:ISER[8];32位

中断失能寄存器组:ICER[8];32位

中断挂起控制寄存器组 :IPCR[8];

中断解挂控制寄存器 : ICPR[8];

中断激活标志位寄存器:IABR[8];     作用,了解当前正在执行的中断是哪一个。如果对应位为1则正在执行。

                                   static __INLINE uint32_t NVIC_GetActive(IRQn_Type  IRQn)

中断优先级设置步骤

系统运行后先设置中断优先级分组。调用函数:

                 void NVIC_PriorityGroupConfig(uint32_t  NVIC_PriorityGroup);//执行过程中,只设置一次中断优先级分组。

针对每个中断,设置对应的抢占优先级和响应优先级:

                                        void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct);

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/140411.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 黑盒测试用例设计方法详解

    黑盒测试用例设计方法详解黑盒测试用例设计方法包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法、场景图法等。(一)等价类划分法定义:等价类划分法是把所有可能输入的数据,即程序的输入域划分策划国内若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。方法是一种重要的、常用的黑盒测试用例设计方法。等价类是指某个输入域的子集合。在该子集合中,各个输入数据…

    2022年6月6日
    28
  • 彻底禁止win10更新的锅「建议收藏」

    彻底禁止win10更新的锅「建议收藏」背景:tonight,和往常一样,就在打开vmware的一瞬间……突然弹出下面这个令人懵逼致死的图:百度搜索一通,众说纷纭,发现竟然还是win10系统的锅。下面开始解决问题,直接上图:这1903版本不支持vmware14,需要更新vm为15版本,商业套路,NM真够了,果断拒绝,还是另想办法吧;想着把1903更新卸载了,但是没有卵用,重启之后,出现下图,反应老半天…

    2022年6月17日
    23
  • goland 2021.9.1激活码_最新在线免费激活

    (goland 2021.9.1激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月26日
    110
  • Redis之压缩列表ziplist

    Redis是基于内存的nosql,有些场景下为了节省内存redis会用“时间”换“空间”。ziplist就是很典型的例子。ziplist是list键、hash键以及zset键的底层实现之一(3.0之后list键已经不直接用ziplist和linkedlist作为底层实现了,取而代之的是quicklist)这些键的常规底层实现如下:list键:双向链表 hash键:字典di…

    2022年4月9日
    80
  • 常见浏览器兼容性问题与解决方案

    常见浏览器兼容性问题与解决方案所谓的浏览器兼容性问题 是指因为不同的浏览器对同一段代码有不同的解析 造成页面显示效果不统一的情况 在大多数情况下 我们的需求是 无论用户用什么浏览器来查看我们的网站或者登陆我们的系统 都应该是统一的显示效果 所以浏览器的兼容性问题是前端开发人员经常会碰到和必须要解决的问题 在学习浏览器兼容性之前 我想把前端开发人员划分为两类 第一类是精确按照设计图开发的前端开发人员 可以说是精确到 1

    2025年8月24日
    3
  • 利用PHPExcel导出Excel并设置Excel格式以及数据源

    利用PHPExcel导出Excel并设置Excel格式以及数据源

    2021年9月18日
    49

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号