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);

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • win右键菜单二级菜单

    win右键菜单二级菜单参考:https://blog.csdn.net/mzYangMao/article/details/82913316一、创建对应的菜单组创建二级菜单,必须在下面创建SubCommands二、创建shell三、在shell下面创建对应的名字组,比如我这的sublime四、创建对应的command,然后对应的默认属性设置对应的值最终效果:…

  • vue文件上传功能_vue如何自定义组件

    vue文件上传功能_vue如何自定义组件vue的文件上传组件upload,拥有支持多种格式文件上传,单文件多文件等都支持,许多项目现在都少不了文件上传功能,但是vue的upload组件如果直接引用,肯定也有一些不方便之处,有的时候需要传参数,需要手动触发上传方法,而不是选择了文件就上传,所以结合我项目实例,写一vue自定义文件上传的实现,包括前端和后台的处理以及参数的接收。一、先认识一下vue的upload组件,官网链接ht…

  • matplotlib:第一节 初窥门径,简单示例,plot()函数介绍

    matplotlib:第一节 初窥门径,简单示例,plot()函数介绍

  • contextpath有什么用_context的用法

    contextpath有什么用_context的用法使用基于Java的后端(即servlet和JSP),如果我需要JavaScript的contextPath,那么推荐的模式是什么?为什么?我可以想到几种可能性。我缺少任何吗?1.将SCRIPT标记刻录到在某些JavaScript变量中设置的页面中varctx=””这是准确的,但在加载页面时需要脚本执行。2.在一些隐藏的DOM元素中设置contextPath这是准确的,并且在加载页面时不需要任…

  • google域名邮箱申请 gmail域名邮箱申请(企业应用套件)指南

    google域名邮箱申请 gmail域名邮箱申请(企业应用套件)指南

  • datax(24):远程调试datax

    datax(24):远程调试datax一、datax开启远程debug1、环境本地:win10,idea专业版2020.3,datax3.0远程:CentOS6.5,datax3.02、效果3、步骤3.1远程开启debug/apps/datax/bin/datax.py/apps/datax/job/job.json-d即在后面添加-d即可,默认端口为9999,也可以自行修改datax.py文件第35行REMOTE_DEBUG_CONFIG=”-Xdebug-Xrunjdwp:transport=dt

发表回复

您的电子邮箱地址不会被公开。

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