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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • acwing-1088旅行问题

    acwing-1088旅行问题原题链接John 打算驾驶一辆汽车周游一个环形公路。公路上总共有 n 个车站,每站都有若干升汽油(有的站可能油量为零),每升油可以让汽车行驶一千米。John 必须从某个车站出发,一直按顺时针(或逆时针)方向走遍所有的车站,并回到起点。在一开始的时候,汽车内油量为零,John 每到一个车站就把该站所有的油都带上(起点站亦是如此),行驶过程中不能出现没有油的情况。任务:判断以每个车站为起点能否按条件成功周游一周。输入格式第一行是一个整数 n,表示环形公路上的车站数;接下来 n 行,每行两个整数

    2022年8月9日
    2
  • android toast_Android Toast

    android toast_Android ToastandroidtoastToastmessageisusefultoshownotificationforsmalltimeinandroidapp.Inthistutorial,we’lldiscussandimplementandroidToastmessageexample.Toast消息对在Android应用中显示少量通知非常有用。在本教…

    2022年9月13日
    0
  • 【解决方案】Pyinstaller打包exe文件详细教程

    【解决方案】Pyinstaller打包exe文件详细教程在业务场景中,经常需要Python开发一些小程序/脚本/GUI界面,交付给一些小白或未安装Python的小伙伴们使用。噔噔蹬蹬pyinstaller闪亮登场场景说明使用Pyinstaller将Python脚本或者项目打包,生成可执行的.exe文件。Pyinstaller是一个很不错的免费打包工具,支持Windows,Linux和MacOS,完美支持32位和64位系统。pyinstaller安装pipinstallpyinstaller打包参数#常用打包参数#-F.

    2022年6月16日
    28
  • 数据结构实验哈夫曼编码算法的实现_哈夫曼编码算法的实现

    数据结构实验哈夫曼编码算法的实现_哈夫曼编码算法的实现一、什么是赫夫曼编码哈夫曼编码(HuffmanCoding),又称霍夫曼编码,是一种编码方式,可变字长编码(VLC)的一种。Huffman于1952年提出一种编码方法,该方法完全依据字符出现概率来

    2022年8月16日
    3
  • 【从翻译mos文章】Weblogic AdminServer 启动fail,报错"unable to get file lock, will retry"

    【从翻译mos文章】Weblogic AdminServer 启动fail,报错"unable to get file lock, will retry"

    2022年1月1日
    54
  • 程序员法则 – 第二章[通俗易懂]

    程序员法则 – 第二章[通俗易懂]程序员可以让步,却不可以退缩,可以羞涩,却不可以软弱,总之,程序员必须是勇敢的。  /*  */  燥热的8月即将过去,而我也坐上了重庆开往西安的列车。抱上我心爱的笔记本,载着梦想,7小时后,我就能到达那个我要呆上我整整四年的城市了。  我放好行李,把笔记本放在身边,挥手和来给我送别的母亲道别。我微微闭上眼睛,小睡7小时吧,我想着。我是属于那种带点自闭的性格,别人不找我说话,我绝对不会主动搭讪,但

    2022年10月6日
    0

发表回复

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

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