当前位置: 首页 > article >正文

全局中断总开关位与各个中断源对应的寄存器使能位开启顺序

在微控制器中,中断总开关通常用来全局性地控制中断的使能和关闭。对于各个中断的位使能,则是用来单独控制每个中断源的使能状态。配置它们的先后关系通常遵循以下步骤:
1.全局中断禁能:首先,需要禁止中断总开关,这通常通过操作特定的寄存器来实现,比如在Cortex-M3内核中,可以通过写入 PRIMASK 寄存器来控制全局中断的使能与关闭 。
2.配置中断优先级分组:在STM32等微控制器中,通过 NVIC_PriorityGroupConfig() 函数设置中断优先级分组,这决定了抢占优先级和响应优先级的位数分配 。
3.配置各个中断源的优先级:接着,为每个中断源配置优先级,包括抢占优先级和响应优先级。这通常通过 NVIC_Init() 函数来实现,它允许你为特定中断源设置优先级并使能它 。
4.使能各个中断源、开启全局中断:针对每个需要响应的中断源,通过设置相应的位使能位来单独使能该中断。在STM32中,可以使用 NVIC_EnableIRQ() 函数来使能特定的中断通道 。配置、使能各个所需中断源后,开启全局中断使能。
5.关于编写中断服务函数:提前为每个使能的中断编写中断服务函数(ISR),并根据软硬件平台要求挂接中断。当中断发生时,微控制器会自动调用相应的ISR来处理中断。在中断服务函数的最后,通常需要清除中断标志位,以便微控制器可以响应后续的中断请求。
在实际编程中,具体的寄存器名称和配置函数可能会根据微控制器的型号和体系结构而有所不同,但基本的配置流程大致相同。
 

 

 


http://www.kler.cn/a/323605.html

相关文章:

  • QT QLineEdit失去焦点事件问题与解决
  • 跟我学C++中级篇——Design Patterns的通俗说法
  • 操作系统实验:在linux下用c语言模拟进程调度算法程序
  • 基于微信小程序的公务员考试学习平台的设计与实现,LW+源码+讲解
  • 深度学习之pytorch常见的学习率绘制
  • 穿越数据迷宫:C++哈希表的奇幻旅程
  • Vscode把全部‘def‘都收起来的快捷键
  • Django 对数据库的增删改查
  • [译] K8s和云原生
  • `torch.utils.data`模块
  • PostgreSQL 向量扩展插件pgvector安装和使用
  • 高等数学 第11讲 多元函数偏导数的计算与应用_复合函数求偏导_隐函数求偏导_条件极值
  • 什么是原生IP?
  • QT+ESP8266+STM32项目构建三部曲二--阿里云云端处理之云产品流转
  • 学习threejs,绘制二维线
  • 洛谷P1197.星球大战
  • 一道简单的css动态宽度问题?
  • List 循环遍历删除元素
  • 精通推荐算法31:行为序列建模之ETA — 基于SimHash实现检索索引在线化
  • rtsp 协议推流接收(tcp udp)
  • 【深度学习】(9)--调整学习率
  • 后端返回内容有换行标识,前端如何识别换行
  • Linux:LCD驱动开发
  • MySQL:进阶巩固-存储过程
  • 经典Python应用库一览
  • 智慧防灾,科技先行:EasyCVR平台助力地质灾害视频监测系统建设