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 行。
相关推荐
代码游侠5 分钟前
学习笔记——嵌入式系统与51单片机核心
笔记·单片机·嵌入式硬件·学习·51单片机
一枝小雨11 分钟前
【OTA专题】15 实现App后台无感下载固件
stm32·单片机·嵌入式·ota·bootloader
小郭团队36 分钟前
教育公平的探索
大数据·人工智能·嵌入式硬件·算法·硬件架构
lemoncat838 分钟前
PCB线圈电感设计器推荐
嵌入式硬件·pcb
TEC_INO42 分钟前
STM32_10:SPI
stm32·单片机·嵌入式硬件
polarislove02141 小时前
10.3[ADC]采样时间和转换时间-嵌入式铁头山羊STM32笔记
笔记·stm32·嵌入式硬件
创思通信1 小时前
STM32L151RCT6 BC20 采集温湿度DHT11 采集GPS定位 和ADC发送到最新版本ONENET物联网开放平台
stm32·嵌入式硬件·物联网
wusp19941 小时前
SSL 证书自动化系统架构文档
系统架构·自动化·ssl
__万波__1 小时前
STM32建立完全空白的工程
stm32·单片机·嵌入式硬件
松涛和鸣1 小时前
51、51单片机
c语言·网络·单片机·嵌入式硬件·tcp/ip·51单片机