(1)NVIC中断优先级分组

1>,CM4内核支持256个中断,其中包含了16个内核中断和240个外部中断,并且

具有256级的可编程中断设置。

2>,STM32F4并没有使用CM4的内核的全部东西,而只是用了它的一部分。

3>,STM32F40xx/STM32F41xx的92 个中断里面,包括10个内核中断和82个可屏蔽中

断,具有16级可编程中断优先级,而我们经常用的就是这82个可屏蔽中断。

特别说明:

一般情况下,系统代码执行过程中,只设置一次中断优先级分组,比如为分组2,设置

好分组后一般不会再改变分组。随意改变分组会导致中断管理混乱,程序出现意想不到的执

行结果。

中断优先级分组函数:

void NVCI_PriorityGroupConfig(uint32_t NVIC_PriorityGroup);

(2)中断优先级设置

中断使能寄存器组:ISER[8]

作用:用来使能中断

32位寄存器,每个为控制一个中断的是能。STM32F40x只能有82个可屏蔽中断,所以

只使用了其中的ISER[0]~ISER[2]。ISER[0]的bit0~bit31分别对应中断0~31。ISER[1]的bit0~31

对应中断的32~63,ISER[2]的bit0~bit31对应中断的64~81。

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

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

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

(3)NVIC总结:

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

void NVCI_PriorityGroupConfig(uint32_t NVIC_PriorityGroup);

整个系统执行过程中,只设置一次中断分组。

<2>,针对每个中断,设置对应的抢占优先级和相应优先级

void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct);

<3>,如果需要挂起/解挂,查看中断当前激活状态,分别调用相关函数即可。

【STM32】NVIC中断优先级管理的更多相关文章

  1. STM32F407 NVIC 中断优先级管理 个人笔记

    内嵌向量中断控制器:Nested Vectored Interrupt Controller (NVIC) 设置中断向量的优先级并使能. 响应优先级& 抢占优先级 抢占优先级:一个中断A还在处 ...

  2. STM32 NVIC中断优先级分组说明

    STM32F103系列上面,又只有60个可屏蔽中断(在107系列才有68个) 中断管理方法 首先,对STM32中断进行分组,组0~4.同时,对每个中断设置一个抢占优先级和一个响应优先级值. 分组配置是 ...

  3. stm32中断优先级管理与外部中断编程

    stm32中断优先级管理与外部中断编程 中断优先级管理 外部中断编程 官方示例程序 exti.h #ifndef __EXTI_H #define __EXIT_H #include "sy ...

  4. STM32 NVIC配置详解

    例程:  /* Configure one bit for preemption priority */  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1) ...

  5. (二)STM32中中断优先级理解

    很多人在配置STM32中断时对固件库中的这个函数NVIC_PriorityGroupConfig()——配置优先级分组方式,会很不理解,尤其是看中文翻译版的,因为中文翻译版里把这里翻译成“先占优先级和 ...

  6. STM32 NVIC

    在stm32中是要配置nvic的.何为nvic,对于我这样的初学者来说,直观感受就是在设置为中断后 还需要配置 中断的优先级nvic就是搞这个的. 那么具体的需要配置些什么那? void NVIC_C ...

  7. [STM32].NVIC嵌套中断向量的理解

    转自:http://www.21ic.com/embed/jiaocheng/sheji/201209/5634.html 一.STM32 (Cortex-M3) 中的优先级概念 STM32(Cort ...

  8. STM32之spi管理模式

    1)sip管理模式分为:硬件管理和软件管理:主要由NSS .SSI.SSM决定: NSS是芯片上一个实实在在的引脚,SSI和SSM是SPI_CR1控制器里的的位. 值得注意的是:NSS分外部引脚和内部 ...

  9. STM32的内存管理

    ref:https://www.cnblogs.com/leo0621/p/9977932.html 这里针对STM32F407芯片+1M外部内存的内存管理!(全篇是个人愚见,如果错误,请不吝指出!) ...

随机推荐

  1. phpstorm快捷键和激活

    点击PHP中文网->PHPstorm激活, 按照步骤激活 今天遇到了不能激活的情况, your activation code could not be validated.这个解决方法是把上面 ...

  2. Hibernate 5 的模块/包(modules/artifacts)

    Hibernate 的功能被拆分成一系列的模块/包(modules/artifacts),其目的是为了对依赖进行独立(模块化). 模块名称 说明 hibernate-core 这个是 Hibernat ...

  3. Java当中的IO流(上)

    Java当中的IO流 在Java中,字符串string可以用来操作文本数据内容,字符串缓冲区是什么呢?其实就是个容器,也是用来存储很多的数据类型的字符串,基本数据类型包装类的出现可以用来解决字符串和基 ...

  4. jQuery文档操作之删除操作

    remove() 语法: $(selector).remove(); 解释:删除节点后,事件也会删除(简言之,删除了整个标签) $("ul").remove(); detach() ...

  5. 简单消息监听容器--SimpleMessageListenerContainer

    这个类非常强大,我们可以对他做很多设置,对于消费者的配置项,这个类都可以满足监听队列(多个队列).自动启动.自动声明功能可以设置事务特性.事务管理器.事务属性.事务容量(并发).是否开启事务.回滚消息 ...

  6. 基于XML的AOP配置(2)-环绕通知

    配置方式: <aop:config> <aop:pointcut expression="execution(* com.itheima.service.impl.*.*( ...

  7. 软工团队Git现场编程实战

    组员职责分工 成员 分工 鲍子涵 分配职责,整合代码 吴宜航 UI设计与实现 钟博 UI设计与实现(Main Coder) 黄海东 数据整理 王镇隆 前端api接口分析和使用(Main Coder) ...

  8. rocketmq的生产者生产消息

    package com.bfxy.rocketmq.model; import org.apache.rocketmq.client.exception.MQClientException;impor ...

  9. SQL Server 数据库设计、命名、编码规范

    https://blog.csdn.net/songguozhi/article/details/5858159 SQL Server 数据库设计.命名.编码规范

  10. python - paramiko模块 修改logging提示为静默

    import paramiko import logging log = paramiko.util.get_logger("paramiko") log.setLevel(log ...