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; 
  • ISER8:ISER全称是:Interrupt Set Enable Registers,这是一个中断使能寄存器组。CM3内核支持256个中断,这里用8个32位寄存器来控制,每个位控制一个中断。但是STM32F103的可屏蔽中断最多只有60个,所以对我们来说,有用的就是两个(ISER0和ISER1),
    总共可以表示64个中断。而STM32F103只用了其中的60个。ISER0的bit0~31分别对应中
    断031;ISER[1]的bit027 对应中断32~59,这样总共60个中断就可以分别对应上了。你要使
    能某个中断,必须设置相应的ISER位为1,使该中断被使能(这里仅仅是使能,还要配合中断
    分组、屏蔽、IO口映射等设置才算是一个完整的中断设置)。具体每一位对应哪个中断,请参考
    stm32f103xe.h 里面的第 69 行。
相关推荐
✎ ﹏梦醒͜ღ҉繁华落℘4 天前
单片机基础知识---stm32单片机的优先级
stm32·单片机·mongodb
坏孩子的诺亚方舟4 天前
FPGA系统架构设计实践15_高云Arora V系列时钟体系
fpga开发·系统架构
u152109648494 天前
S.S.Audio PRO A2音频隔离器
嵌入式硬件·音视频·实时音视频·视频编解码·视频
桥田智能4 天前
桥田智能 QT-650S:面向白车身焊装的 800kg 重载快换解决方案
开发语言·qt·系统架构
zd8451015004 天前
RS485 总线详解
单片机·嵌入式硬件
半条-咸鱼4 天前
【STM32】I2C协议原理、HAL读写与OLED显示操作
嵌入式硬件·c·信息与通信
牛根生同志4 天前
SPI数据收发的时候 TXE与RXNE标志位置位的时机
stm32·spi·transfer
wohoo_wangzi4 天前
苏州晟雅泰电子:关于W25Q128JVSIQ这个芯片物料的参数,规格及应用领域
嵌入式硬件
goldenrolan4 天前
学习型红外控制系统稳定性挂测工装专项总结
软件测试·python·stm32·嵌入式·红外
✎ ﹏梦醒͜ღ҉繁华落℘4 天前
编程基础 --高内聚,低耦合
c语言·单片机