14、外部中断

1、NVIC

NVIC即嵌套向量中断控制器。它是内核的器件。M3内核都是支持256个中断,其中包含了16个系统中断和240个外部中断,并且具有256级的可编程中断设置。然而芯片厂商一般不会把内核的这些资源全部用完,STM32F103ZET6的系统中断有10个,外部中断有60个。STM32F103的中断向量表在STM32F103xx.h文件中被定义。

1.1、NVIC寄存器

NVIC相关的寄存器定义了可以在core_cm3.h文件中找到。

c 复制代码
typedef struct 
{
	__IOM 	uint32_t ISER[8U];             /* 中断使能寄存器 */ 
			uint32_t RESERVED0[24U]; 
	__IOM 	uint32_t ICER[8U];             /* 中断清除使能寄存器 */ 
			uint32_t RSERVED1[24U]; 
	__IOM 	uint32_t ISPR[8U];             /* 中断使能挂起寄存器 */ 
			uint32_t RESERVED2[24U]; 
	__IOM 	uint32_t ICPR[8U];             /* 中断解挂寄存器 */ 
			uint32_t RESERVED3[24U]; 
	__IOM 	uint32_t IABR[8U];             /* 中断有效位寄存器 */ 
			uint32_t RESERVED4[56U]; 
	__IOM 	uint8_t  IP[240U];             /* 中断优先级寄存器(8Bit 位宽) */ 
			uint32_t RESERVED5[644U]; 
	__OM  uint32_t STIR;                   /* 软件触发中断寄存器 */ 
}  NVIC_Type; 
  • ISER[8]:ISER全称是:Interrupt Set Enable Registers,这是一个中断使能寄存器组。CM3内核支持256个中断,这里用8个32位寄存器来控制,每个位控制一个中断。但是STM32F103的可屏蔽中断最多只有60个,所以对我们来说,有用的就是两个(ISER[0]和ISER[1]),
    总共可以表示64个中断。而STM32F103只用了其中的60个。ISER[0]的bit0~31分别对应中
    断031;ISER[1]的bit027 对应中断32~59,这样总共60个中断就可以分别对应上了。你要使
    能某个中断,必须设置相应的ISER位为1,使该中断被使能(这里仅仅是使能,还要配合中断
    分组、屏蔽、IO口映射等设置才算是一个完整的中断设置)。具体每一位对应哪个中断,请参考
    stm32f103xe.h 里面的第 69 行。
相关推荐
蓬荜生灰2 小时前
STM32(13)-- 位带操作
stm32·单片机·嵌入式硬件
成茂峰2 小时前
软考高级·系统架构设计师 | 一、绪论
架构·系统架构·软考高级·系统架构设计师
云蝠呼叫大模型联络中心2 小时前
深度解析|云蝠智能大模型呼叫系统架构:神鹤双擎 + 暴风引擎,低延迟高并发解锁呼叫中心降本增效新路径
系统架构·tts·asr·外呼系统·ai外呼·大模型呼叫·voiceagent
珠海西格电力科技2 小时前
微电网系统架构设计:并网/孤岛双模式运行与控制策略
网络·人工智能·物联网·系统架构·云计算·智慧城市
哎呦 你干嘛~4 小时前
plc单片机485通讯
单片机·嵌入式硬件
szxinmai主板定制专家4 小时前
基于 PC 的控制技术+ethercat+linux实时系统,助力追踪标签规模化生产,支持国产化
arm开发·人工智能·嵌入式硬件·yolo·fpga开发
泡泡糖的中文规格书7 小时前
【硬件设计】LM358DR2G中文文档深度解读:高质量翻译与芯片特性全解析
嵌入式硬件·规格说明书·电路设计·运放·中文翻译·datasheet
czwxkn8 小时前
2STM32(stdl)GPIO输入
stm32·单片机·嵌入式硬件
Coder个人博客9 小时前
Linux6.19-ARM64 mm ioremap子模块深入分析
linux·安全·车载系统·系统架构·系统安全·鸿蒙系统·安全架构
码农三叔9 小时前
(9-1)电源管理与能源系统:电池选择与安全
人工智能·嵌入式硬件·安全·机器人·能源·人形机器人